一种推荐信息确定方法及装置与流程

文档序号:11729436阅读:215来源:国知局
一种推荐信息确定方法及装置与流程

本发明涉及数据处理技术领域,特别涉及一种推荐信息确定方法及装置。



背景技术:

目前,一些网站或者软件或者app(application,终端中的应用程序)已经具备了信息推荐功能,比如,豆瓣网站可以向用户推荐用户可能感兴趣的电影、音乐、书籍等等。

一般来说,这些网站(或者软件或者app,以下不再赘述)大多是基于用户的评分数据构建推荐信息模型;之后获取用户的标识数据,将该标识数据与该模型进行匹配;根据匹配结果,确定用户可能感兴趣的信息;将所确定的信息推荐给用户。

在实际应用中,网站可以获取到多种用户反馈数据,除上述评分数据外,还可以包括浏览次数、标记信息等其他反馈数据,这些反馈数据都可以反应用户的兴趣。而上述方案中,仅针对“评分数据”这一种反馈数据进行模型构建,利用该模型确定推荐信息的准确性较低。



技术实现要素:

本发明实施例的目的在于提供一种推荐信息确定方法及装置,提高确定推荐信息的准确性。

为达到上述目的,本发明实施例公开了一种推荐信息确定方法,包括:

获取目标用户的目标标识数据,将所述目标标识数据与预先构建的推荐信息模型进行匹配;

根据匹配结果,确定所述目标用户对应的推荐信息;

其中,所述推荐信息模型的构建过程包括:

获取n个用户的标识数据及每个用户的至少两种反馈数据,所述n大于1;

利用预设偏序样本生成算法,对每个用户的第一类反馈数据进行运算,得到每个用户对应的偏序样本;

利用预设建模框架,对所述每个用户对应的偏序样本及每个用户的第二类反馈数据进行运算,得到所述推荐信息模型,所述推荐信息模型中包含用户的标识数据及对应的推荐信息。

可选的,所述利用预设偏序样本生成算法,对每个用户的第一类反馈数据进行运算,得到每个用户对应的偏序样本的步骤,可以包括:

根据预先设定的训练集与测试集的数据量比例,确定训练集的目标数据量大小;

针对每个用户,将所述用户的第一类反馈数据中的数值进行两两比较,所述数值为所述用户针对推荐信息的评价数值;根据比较结果,确定所述用户对应的三元组,所述三元组中包含所述比较结果对应的两条推荐信息及所述用户的标识数据;

根据预设规则,将三元组添加至所述训练集中;直至所述训练集包含的数据量大小到达所述目标数据量大小时,停止添加;未添加至所述训练集中的三元组构成测试集;

利用所述测试集对所述训练集进行修正,根据修正结果确定目标三元组,所述目标三元组构成所述偏序样本。

可选的,所述将所述用户的第一类反馈数据中的数值进行两两比较的步骤,可以包括:

将所述用户的第一类反馈数据中的各个数值进行随机排列;

根据排列结果,将每两个相邻的数值进行比较;

所述根据比较结果,确定所述用户对应的三元组的步骤,包括:

当两个数值不相等时,根据比较结果,将所述两个数值对应的两条推荐信息及所述用户的标识数据组成一个三元组。

可选的,所述利用预设建模框架,对所述每个用户对应的偏序样本及每个用户的第二类反馈数据进行运算,得到所述推荐信息模型的步骤,可以包括:

利用预设建模框架,对所述每个用户对应的偏序样本及每个用户的第二类反馈数据进行概率建模;

根据概率建模的结果,确定每个用户针对各条推荐信息的预测排序得分;

根据所确定的预测排序得分,得到所述推荐信息模型。

可选的,所述预设建模框架的底层学习器可以为:

其中,所述第一类反馈数据为显示反馈数据,所述偏序样本根据显示反馈数据得到;所述第二类反馈数据为隐式反馈数据,表示用户u针对推荐信息i的预测排序得分,pu表示用户u的显示隐向量,qi表示推荐信息i的显示隐向量,τ表示第二类反馈数据中的数据种类,nt(u)表示用户u的第t种隐式反馈数据中的推荐信息集合,表示推荐信息k在第t种隐式反馈数据下的隐式隐向量。

可选的,所述根据所确定的预测排序得分,得到所述推荐信息模型的步骤,可以包括:

根据预测排序得分的大小,对每个用户对应的推荐信息进行排序;

根据排序结果,确定每个用户对应的目标推荐信息,所述推荐信息模型中包含用户的标识数据及对应的目标推荐信息。

为达到上述目的,本发明实施例还公开了一种推荐信息确定装置,包括:

匹配模块,用于获取目标用户的目标标识数据,将所述目标标识数据与构建模块构建的推荐信息模型进行匹配;

确定模块,用于根据匹配结果,确定所述目标用户对应的推荐信息;

所述构建模块,用于构建所述推荐信息模型;

所述构建模块,包括:

获取子模块,用于获取n个用户的标识数据及每个用户的至少两种反馈数据,所述n大于1;

第一运算子模块,用于利用预设偏序样本生成算法,对每个用户的第一类反馈数据进行运算,得到每个用户对应的偏序样本;

第二运算子模块,用于利用预设建模框架,对所述每个用户对应的偏序样本及每个用户的第二类反馈数据进行运算,得到所述推荐信息模型,所述推荐信息模型中包含用户的标识数据及对应的推荐信息。

可选的,所述第一运算子模块,可以包括:

第一确定子模块,用于根据预先设定的训练集与测试集的数据量比例,确定训练集的目标数据量大小;

第二确定子模块,用于针对每个用户,将所述用户的第一类反馈数据中的数值进行两两比较,所述数值为所述用户针对推荐信息的评价数值;根据比较结果,确定所述用户对应的三元组,所述三元组中包含所述比较结果对应的两条推荐信息及所述用户的标识数据;

或者,所述第二确定子模块,用于针对每个用户,将所述用户的第一类反馈数据中的各个数值进行随机排列,所述数值为所述用户针对推荐信息的评价数值;根据排列结果,将每两个相邻的数值进行比较;当两个数值不相等时,根据比较结果,将所述两个数值对应的两条推荐信息及所述用户的标识数据组成一个三元组;

添加子模块,用于根据预设规则,将三元组添加至所述训练集中;直至所述训练集包含的数据量大小到达所述目标数据量大小时,停止添加;未添加至所述训练集中的三元组构成测试集;

修正子模块,用于利用所述测试集对所述训练集进行修正,根据修正结果确定目标三元组,所述目标三元组构成所述偏序样本。

可选的,所述第二运算子模块,具体可以用于:

利用预设建模框架,对所述每个用户对应的偏序样本及每个用户的第二类反馈数据进行概率建模;

根据概率建模的结果,确定每个用户针对各条推荐信息的预测排序得分;

根据所确定的预测排序得分,得到所述推荐信息模型。

可选的,所述预设建模框架的底层学习器可以为:

其中,所述第一类反馈数据为显示反馈数据,所述偏序样本根据显示反馈数据得到;所述第二类反馈数据为隐式反馈数据,表示用户u针对推荐信息i的预测排序得分,pu表示用户u的显示隐向量,qi表示推荐信息i的显示隐向量,τ表示第二类反馈数据中的数据种类,nt(u)表示用户u的第t种隐式反馈数据中的推荐信息集合,表示推荐信息k在第t种隐式反馈数据下的隐式隐向量。

应用本发明实施例,利用用户的至少两种反馈数据,构建推荐信息模型,可以有效利用获取到的多种反馈数据;相比于现有技术中,仅针对“评分数据”这一种反馈数据构建的模型,提高了确定推荐信息的准确性。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种推荐信息确定方法的流程示意图;

图2为本发明实施例提供的一种构建推荐信息模型的流程示意图;

图3为本发明实施例提供的一种推荐信息确定装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了解决上述技术问题,本发明实施例提供了一种推荐信息确定方法及装置,可以应用于计算机、平板电脑等各种电子设备,具体不做限定。下面首先对本发明实施例提供的推荐信息确定方法进行详细说明。

图1为本发明实施例提供的一种推荐信息确定方法的流程示意图,包括:

s101:获取目标用户的目标标识数据,将所述目标标识数据与预先构建的推荐信息模型进行匹配。

标识数据可以为用户名称、用户id、或者用户的登录信息:比如邮箱、手机号等可以区分用户身份的信息,还可以为用户所使用设备的地址信息等,具体不做限定。

一般来说,可以在检测到用户登录后,向用户进行信息推荐;或者,也可以在用户未登录的情况下,根据用户所使用设备的地址信息,确定用户身份,再向用户进行信息推荐。如果检测到用户登录,则可以将用户的登录信息作为标识数据,如果用户未登录,则可以将用户所使用设备的地址信息作为标识数据。

目标用户就是需要向其进行信息推荐的用户,为了方便描述,将目标用户的标识数据称为目标标识数据。

s102:根据匹配结果,确定所述目标用户对应的推荐信息。

预先构建的推荐信息模型中包含用户的标识数据及对应的推荐信息,因此,将目标标识数据与该推荐信息模型进行匹配,便可以匹配出目标用户对应的推荐信息。

具体的,推荐模型的构建过程可以如图2所示:

s201:获取n个用户的标识数据及每个用户的至少两种反馈数据。

本领域技术人员可以理解,可以通过爬虫从网络中爬取到大量用户的反馈数据,因此,n的取值较大(大于1);或者,也可以通过其他方式获取用户的反馈数据,具体不做限定。

本实施例中,获取至少两种反馈数据,本领域技术人员可以理解,可以将获取到的反馈数据分为两类:第一类反馈数据可以为显式反馈数据,比如,现有方案中利用的“评分数据”可以理解为显式反馈数据;第二类反馈数据可以为隐式反馈数据,比如,现有方案中未能利用的“浏览次数、标记信息等其他反馈数据”可以理解为隐式反馈数据。

s202:利用预设偏序样本生成算法,对每个用户的第一类反馈数据进行运算,得到每个用户对应的偏序样本。

作为一种实施方式,s202可以包括:

根据预先设定的训练集与测试集的数据量比例,确定训练集的目标数据量大小;

针对每个用户,将所述用户的第一类反馈数据中的数值进行两两比较,所述数值为所述用户针对推荐信息的评价数值;根据比较结果,确定所述用户对应的三元组,所述三元组中包含所述比较结果对应的两条推荐信息及所述用户的标识数据;

根据预设规则,将三元组添加至所述训练集中;直至所述训练集包含的数据量大小到达所述目标数据量大小时,停止添加;未添加至所述训练集中的三元组构成测试集;

利用所述测试集对所述训练集进行修正,根据修正结果确定目标三元组,所述目标三元组构成所述偏序样本。

该预设偏序样本生成算法可以为ipre(itempairsofpartialorderareobtainedfromcheckingrandompairsofexplicititemset)算法,也可以为ippe算法(itempairswithpartialorderareobtainedfromcheckingadjacentitemsinapermutationofexplicititemset)。

假设获取的第一类反馈数据的数据量大小为1000mb,预先设定的训练集与测试集的数据量比例为6:4,则确定训练集的目标数据量大小为600mb。

假设第一类反馈数据为评分数据,其中包括:用户u针对推荐信息i的评分为6,用户u针对推荐信息j的评分为8,用户u针对推荐信息k的评分为11,用户u针对推荐信息m的评分为10……用户x针对推荐信息i的评分为10,用户x针对推荐信息j的评分为7,用户x针对推荐信息k的评分为9,用户x针对推荐信息m的评分为8……

上述u、x为用户的标识数据,上述评分为“用户针对推荐信息的评价数值”。

则针对用户u,将用户u的评价数值(6、8、11、10)进行两两比较,如果两个数值不相等,则将这两个数值对应的推荐信息及用户u的标识数据组成一个三元组。

举例来说,6小于8,表示用户u偏好i的程度小于偏好j的程度,因此组成三元组:(u,j,i)。在本实施方式中,可以将用户的标识数据置于三元组的第一个位置,将用户偏好程度高的推荐信息置于三元组的第二个位置,将用户偏好程度低的推荐信息置于三元组的第三个位置。

如果利用ipre算法,则可以随机将用户u的各个评价数值两两比较,或者,也可以将用户u的全部评价数值进行两两比较。

而如果利用ippe算法,则将所述用户的第一类反馈数据中的各个数值进行随机排列;根据排列结果,将每两个相邻的数值进行比较。

假设将用户u的各个评价数据进行随机排列,排列结果为(6、10、11、8)。将每两个相邻的数值进行比较:6<10,10<11,11>8。当两个数值不相等时,根据比较结果,将所述两个数值对应的两条推荐信息及所述用户的标识数据组成一个三元组。

6对应推荐信息i,10对应推荐信息m,11对应推荐信息k,8对应推荐信息j;因此,用户u对应的三元组包括:(u,m,i),(u,k,m),(u,k,j)。

类似的,假设将用户u的各个评价数据进行随机排列,排列结果为(9、7、10、8)。将每两个相邻的数值进行比较:9>7,7<10,10>8。当两个数值不相等时,根据比较结果,将所述两个数值对应的两条推荐信息及所述用户的标识数据组成一个三元组。

9对应推荐信息k,7对应推荐信息j,10对应推荐信息i,8对应推荐信息m;因此,用户u对应的三元组包括:(x,k,j),(x,i,j),(x,i,m)。

在本实施方式中,将三元组添加至训练集中的预设规则可以为:

每当生成一个三元组后,将其添加至训练集中,直至训练集包含的数据量大小到达目标数据量大小时,停止添加。或者,也可以生成全部三元组后,按照设定的顺序,将生成的三元组添加至训练集中,直至训练集包含的数据量大小到达目标数据量大小时,停止添加。

该顺序可以根据实际情况进行设定,也可以随机。该预设规则也可以为其他,具体不做限定。

当训练集包含的数据量大小到达目标数据量大小时,未添加至训练集中的三元组构成测试集,这样,便得到了训练集和测试集。

本领域人员可以理解,利用测试集对训练集进行修正,根据修正结果确定目标三元组,目标三元组便构成了偏序样本。这样便得到了每个用户对应的偏序样本。

s203:利用预设建模框架,对所述每个用户对应的偏序样本及每个用户的第二类反馈数据进行运算,得到所述推荐信息模型;所述推荐信息模型中包含用户的标识数据及对应的推荐信息。

作为一种实施方式,s203可以包括:

利用预设建模框架,对所述每个用户对应的偏序样本及每个用户的第二类反馈数据进行概率建模;

根据概率建模的结果,确定每个用户针对各条推荐信息的预测排序得分;

根据所确定的预测排序得分,得到所述推荐信息模型。

本实施方式中,预设建模框架可以为bpr(bayesianpersonalizedranking)框架,该预设建模框架利用的基础模型可以为svd++,svd++在svd(singlevaluedecomposition,奇异值分解)模型的基础上,能够整合显式反馈数据和隐式反馈数据。

可以将以svd++为基础模型的bpr框架称为sfpr模型(personalizedrankingmodelintegratingexplicitwithone-singleimplicitfeedbacks),或者,也可以继续对sfpr模型进行改进,得到mfpr(multiplefeedbacksbasedpersonalizedrankingmodel)

如果采用sfpr模型,则预设建模框架的底层学习器可以为:

其中,所述第一类反馈数据为显示反馈数据,所述偏序样本根据显示反馈数据得到,所述第二类反馈数据为隐式反馈数据;表示用户u针对推荐信息i的预测排序得分,pu表示用户u的显示隐向量,qi表示推荐信息i的显示隐向量,表示qi的转置矩阵,n(u)表示用户u的隐式反馈数据中的推荐信息集合,γk表示推荐信息k在隐式反馈数据下的隐式隐向量。

在sfpr模型中,第二类反馈数据,也就是隐式反馈数据只能有一种,因此,在sfpr模型的基础上提出mfpr。如果利用mfpr,则预设建模框架的底层学习器可以为:

其中,所述第一类反馈数据为显示反馈数据,所述偏序样本根据显示反馈数据得到,所述第二类反馈数据为隐式反馈数据;表示用户u针对推荐信息i的预测排序得分,pu表示用户u的显示隐向量,qi表示推荐信息i的显示隐向量,表示qi的转置矩阵,τ表示第二类反馈数据中的数据种类,nt(u)表示用户u的第t种隐式反馈数据中的推荐信息集合,表示推荐信息k在第t种隐式反馈数据下的隐式隐向量。

由此可见,mfpr的算式中,第二类反馈数据可以有τ种,τ>1,再加上第一类反馈数据,也就是基于至少三种反馈数据构建推荐信息模型,可以有效利用获取到的多种反馈数据;相比于现有技术中,仅针对“评分数据”这一种反馈数据构建的模型,提高了确定推荐信息的准确性。

本领域技术人员可以理解,利用sfpr或者mfpr建模,可以包括两个阶段:模型训练学习阶段和模型预测阶段。模型训练学习阶段通过bpr框架概率建模进行参数优化,参数为上述底层学习器中的参数;模型预测阶段利用参数优化后的底层学习器,计算预测排序分数。

利用bpr框架得到的推荐信息模型为topn的类型。

作为一种实施方式,可以根据预测排序得分的大小,对每个用户对应的推荐信息进行排序;根据排序结果,确定每个用户对应的目标推荐信息,所述推荐信息模型中包含用户的标识数据及对应的目标推荐信息。

具体的,可以按照预测排序得分由高到低的顺序,对每个用户对应的推荐信息进行排序;针对每个用户,选择排在前面的预设数量个推荐信息作为目标推荐信息。

假设对用户u对应的推荐信息进行排序,由高到低为:k,j,i。该预设数量可以根据实际情况进行设定,比如为2,则k和j为用户u对应的目标推荐信息。推荐信息模型中包含的是用户的标识数据及对应的目标推荐信息。需要说明的是,推荐信息模型中还可以包含目标推荐信息的先后顺序,上述例子中,可以将k排在j的前面,表示用户对k的偏好程度大于j。

可以理解,如果推荐信息模型中包含:用户u——k,j,当用户u为目标用户时,也就是对用户u进行信息推荐时,可以将k和j推荐给用户u。另外,可以优先向用户u推荐k,然后再推荐j,这样更符合用户的偏好。

应用本发明所示实施例,利用用户的至少两种反馈数据,构建推荐信息模型,可以有效利用获取到的多种反馈数据;相比于现有技术中,仅针对“评分数据”这一种反馈数据构建的模型,提高了确定推荐信息的准确性。

与上述方法实施例相对应,本发明实施例还提供一种推荐信息确定装置。

图3为本发明实施例提供的一种推荐信息确定装置的结构示意图,包括:

匹配模块301,用于获取目标用户的目标标识数据,将所述目标标识数据与构建模块303构建的推荐信息模型进行匹配;

确定模块302,用于根据匹配结果,确定所述目标用户对应的推荐信息;

构建模块303,用于构建所述推荐信息模型;

所述构建模块303,包括:

获取子模块3031,用于获取n个用户的标识数据及每个用户的至少两种反馈数据,所述n大于1;

第一运算子模块3032,用于利用预设偏序样本生成算法,对每个用户的第一类反馈数据进行运算,得到每个用户对应的偏序样本;

第二运算子模块3033,用于利用预设建模框架,对所述每个用户对应的偏序样本及每个用户的第二类反馈数据进行运算,得到所述推荐信息模型,所述推荐信息模型中包含用户的标识数据及对应的推荐信息。

作为一种实施方式,第一运算子模块3032,包括:第一确定子模块、第二确定子模块、添加子模块和修正子模块(图中未示出),其中,

第一确定子模块,用于根据预先设定的训练集与测试集的数据量比例,确定训练集的目标数据量大小;

第二确定子模块,用于针对每个用户,将所述用户的第一类反馈数据中的数值进行两两比较,所述数值为所述用户针对推荐信息的评价数值;根据比较结果,确定所述用户对应的三元组,所述三元组中包含所述比较结果对应的两条推荐信息及所述用户的标识数据;

或者,所述第二确定子模块,用于针对每个用户,将所述用户的第一类反馈数据中的各个数值进行随机排列,所述数值为所述用户针对推荐信息的评价数值;根据排列结果,将每两个相邻的数值进行比较;当两个数值不相等时,根据比较结果,将所述两个数值对应的两条推荐信息及所述用户的标识数据组成一个三元组;

添加子模块,用于根据预设规则,将三元组添加至所述训练集中;直至所述训练集包含的数据量大小到达所述目标数据量大小时,停止添加;未添加至所述训练集中的三元组构成测试集;

修正子模块,用于利用所述测试集对所述训练集进行修正,根据修正结果确定目标三元组,所述目标三元组构成所述偏序样本。

在本实施例中,第二运算子模块3033,具体可以用于:

利用预设建模框架,对所述每个用户对应的偏序样本及每个用户的第二类反馈数据进行概率建模;

根据概率建模的结果,确定每个用户针对各条推荐信息的预测排序得分;

根据所确定的预测排序得分,得到所述推荐信息模型。

其中,根据所确定的预测排序得分,得到所述推荐信息模型,具体可以为:

根据预测排序得分的大小,对每个用户对应的推荐信息进行排序;

根据排序结果,确定每个用户对应的目标推荐信息,所述推荐信息模型中包含用户的标识数据及对应的目标推荐信息。

在本实施例中,所述预设建模框架的底层学习器可以为:

其中,所述第一类反馈数据为显示反馈数据,所述偏序样本根据显示反馈数据得到;所述第二类反馈数据为隐式反馈数据,表示用户u针对推荐信息i的预测排序得分,pu表示用户u的显示隐向量,qi表示推荐信息i的显示隐向量,τ表示第二类反馈数据中的数据种类,nt(u)表示用户u的第t种隐式反馈数据中的推荐信息集合,表示推荐信息k在第t种隐式反馈数据下的隐式隐向量。

应用本发明图3所示实施例,利用用户的至少两种反馈数据,构建推荐信息模型,可以有效利用获取到的多种反馈数据;相比于现有技术中,仅针对“评分数据”这一种反馈数据构建的模型,提高了确定推荐信息的准确性。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:rom/ram、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1