一种物品推荐方法和装置转让专利

申请号 : CN201810257617.X

文献号 : CN108647985B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈超超周俊

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本说明书实施例公开了预测用户对物品的评分的方法和装置以及物品推荐方法和装置。其中,所述预测评分的方法包括:获取多个样本对,所述样本对包括选自于多个用户标识的任一个用户标识和选自于多个物品标识的任一个物品标识;获取多个已有评分,所述多个已有评分对应于所述多个样本对中的部分样本对;获取分别与各个样本对对应的多组上下文特征;基于所述多组上下文特征,将所述多个样本对聚类为多个子类;以及关于每个子类,基于多个所述第一用户标识和多个所述第一物品标识、和多个所述第一用户相对于多个所述第一物品的多个已有评分,通过协同过滤算法预测各个第一用户对其未评分的第一物品的评分。

权利要求 :

1.一种预测用户对物品的评分的方法,包括:

获取多个样本对,所述样本对包括选自于多个用户标识的任一个用户标识和选自于多个物品标识的任一个物品标识;

获取多个已有评分,所述多个已有评分对应于所述多个样本对中的部分样本对;

获取分别与各个样本对对应的多组上下文特征,其中,一组上下文特征包括以下至少一类特征:用户特征、物品特征、以及交互特征;

基于所述多组上下文特征,将所述多个样本对聚类为多个子类,其中每个子类包括取自于所述多个样本对中的多个第一样本对,每个所述第一样本对包括第一用户标识和第一物品标识,其中所述第一用户标识为第一用户的标识,所述第一物品标识为第一物品的标识;以及关于每个子类,基于多个所述第一用户标识、多个所述第一物品标识、和多个所述第一用户相对于多个所述第一物品的多个已有评分,通过协同过滤算法预测各个第一用户对其未评分的第一物品的评分。

2.根据权利要求1所述的预测用户对物品的评分的方法,其中,所述用户特征包括用户属性特征和/或用户评分统计特征,所述物品特征包括物品属性特征和/或物品评分统计特征。

3.根据权利要求1所述的预测用户对物品的评分的方法,其中,所述聚类算法为k-means算法或gmm算法。

4.根据权利要求1所述的预测用户对物品的评分的方法,其中基于所述多组上下文特征,将所述多个样本对聚类为多个子类包括:在所述多个样本对中随机选择预定数目的初始质心;

基于所述多组上下文特征,计算每个非质心的样本对到各个质心的距离;

根据所述距离,将每个非质心的样本对归类到距离最近的质心;

基于所述多组上下文特征,根据所述预定数目的质心及其对应的非质心样本对,计算相同数目的新的质心;

判断所述新的质心是否满足预定条件;以及

在满足所述预定条件的情况中,输出对所述多个样本对的聚类结果。

5.根据权利要求1所述的预测用户对物品的评分的方法,其中,所述协同过滤算法为矩阵分解算法或knn算法。

6.根据权利要求1所述的预测用户对物品的评分的方法,其中通过协同过滤算法预测各个第一用户对其未评分的第一物品的评分包括:对于每个子类,基于所述多个第一用户标识、所述多个第一物品标识及所述多个第一用户相对于所述多个第一物品的所述多个已有评分,获取用户-物品评分矩阵;

将所述用户-物品评分矩阵分解为两个低维矩阵,使得所述两个低维矩阵的乘积最接近所述用户-物品评分矩阵;

根据将两个低维矩阵相乘获得的矩阵,预测所述用户-物品评分矩阵中各个第一用户对其未评分的第一物品的评分。

7.根据权利要求1所述的预测用户对物品的评分的方法,其中,所述已有评分为用户直接评分或基于用户操作获取的评分。

8.一种物品推荐方法,包括:

获取多个第二样本对,所述第二样本对包括第二用户标识和第二物品标识,其中,所述第二用户标识为待推荐用户的用户标识,所述第二物品标识为对应于多个待推荐物品的多个物品标识中的任一个物品标识;

在通过根据权利要求1-7中任一项所述的方法获取的多个子类中,确定各个所述第二样本对所在的子类;

从通过根据权利要求1-7中任一项所述的方法预测的评分中,获取每个所述第二样本对在其所属子类中对应的预测评分;

根据所述预测评分,对所述各个第二样本对中包括的第二物品标识进行排序;以及根据所述排序,对所述第二用户推荐所述第二物品。

9.一种预测用户对物品的评分的装置,包括:

样本对获取单元,配置为,获取多个样本对,所述样本对包括选自于多个用户标识的任一个用户标识和选自于多个物品标识的任一个物品标识;

评分获取单元,配置为,获取多个已有评分,所述多个已有评分对应于所述多个样本对中的部分样本对;

上下文特征获取单元,配置为,获取分别与各个样本对对应的多组上下文特征,其中,一组上下文特征包括以下至少一类特征:用户特征、物品特征、以及交互特征;

聚类单元,配置为,基于所述多组上下文特征,将所述多个样本对聚类为多个子类,其中每个子类包括取自于所述多个样本对中的多个第一样本对,每个所述第一样本对包括第一用户标识和第一物品标识,其中所述第一用户标识为第一用户的标识,所述第一物品标识为第一物品的标识;以及评分预测单元,配置为,关于每个子类,基于多个所述第一用户标识和多个所述第一物品标识、和多个所述第一用户相对于多个所述第一物品的多个已有评分,通过协同过滤算法预测各个第一用户对其未评分的第一物品的评分。

10.根据权利要求9所述的预测用户对物品的评分的装置,其中,所述用户特征包括用户属性特征和/或用户评分统计特征,所述物品特征包括物品属性特征和/或物品评分统计特征。

11.根据权利要求9所述的预测用户对物品的评分的装置,其中,所述聚类算法为k-means算法或gmm算法。

12.根据权利要求9所述的预测用户对物品的评分的装置,其中所述聚类单元包括:选择单元,配置为,在所述多个样本对中随机选择预定数目的初始质心;

第一计算单元,配置为,基于所述上下文特征,计算每个非质心的样本对到各个质心的距离;

归类单元,配置为,根据所述距离,将每个非质心的样本对归类到距离最近的质心;

第二计算单元,配置为,根据所述预定数目的质心及其对应的非质心样本对,计算相同数目的新的质心;

判断单元,配置为,判断所述新的质心是否满足预定条件;以及输出单元,配置为,在满足所述预定条件的情况中,输出对所述多个样本对的聚类结果。

13.根据权利要求9所述的预测用户对物品的评分的装置,其中,所述协同过滤算法为矩阵分解算法或knn算法。

14.根据权利要求9所述的预测用户对物品的评分的装置,其中所述评分预测单元包括:获取单元,配置为,对于每个子类,基于所述多个第一用户标识、所述多个第一物品标识及所述多个第一用户相对于所述多个第一物品的所述多个已有评分,获取用户-物品评分矩阵;

分解单元,配置为,将所述用户-物品评分矩阵分解为两个低维矩阵,使得所述两个低维矩阵的乘积最接近所述用户-物品评分矩阵;以及预测单元,配置为,根据将两个低维矩阵相乘获得的矩阵,预测所述用户-物品评分矩阵中各个第一用户对其未评分的第一物品的评分。

15.根据权利要求9所述的预测用户对物品的评分的装置,其中,所述已有评分为用户直接评分或基于用户操作获取的评分。

16.一种物品推荐装置,包括:

样本对获取单元,配置为,获取多个第二样本对,所述第二样本对包括第二用户标识和第二物品标识,其中,所述第二用户标识为待推荐用户的用户标识,所述第二物品标识为对应于多个待推荐物品的多个物品标识中的任一个物品标识;

确定单元,配置为,在通过根据权利要求1-7中任一项所述的方法获取的多个子类中,确定各个所述第二样本对所在的子类;

预测评分获取单元,配置为,从通过根据权利要求1-7中任一项所述的方法预测的评分中,获取每个所述第二样本对在其所属子类中对应的预测评分;

排序单元,配置为,根据所述预测评分,对所述各个第二样本对中包括的第二物品标识进行排序;以及推荐单元,配置为,根据所述排序,对所述第二用户推荐所述第二物品。

说明书 :

一种物品推荐方法和装置

技术领域

[0001] 本说明书实施例涉及数据处理领域,更具体地,涉及一种预测用户对物品的评分的方法和装置、以及一种物品推荐方法和装置。

背景技术

[0002] 在互联网中,推荐功能是频繁使用的一种功能。在现有的推荐系统中,一般依据已有的用户对物品的评分进行推荐。然而,在系统中,除了评分信息之外,还存在多种多样的信息。以电影推荐为例,除了用户对电影的评分信息以外,还有许多潜在的上下文特征,比如评分的时间(是否节假日,早上、中午、晚上等),用户的年龄(青少年、中年还是老年),电影的类型(如爱情,动作,恐怖)等等。因此,需要一种更有效的推荐方案,其除了利用显式的评分信息外,还可以利用所述上下文特征,以更有效地进行推荐。

发明内容

[0003] 本说明书实施例旨在提供一种更有效的物品推荐方案,以解决现有技术中的不足。
[0004] 为实现上述目的,本说明书一个方面提供一种预测用户对物品的评分的方法,包括:获取多个样本对,所述样本对包括选自于多个用户标识的任一个用户标识和选自于多个物品标识的任一个物品标识;获取多个已有评分,所述多个已有评分对应于所述多个样本对中的部分样本对;获取分别与各个样本对对应的多组上下文特征,其中,一组上下文特征包括以下至少一类特征:用户特征、物品特征、以及交互特征;基于所述多组上下文特征,将所述多个样本对聚类为多个子类,其中每个子类包括取自于所述多个样本对中的多个第一样本对,每个所述第一样本对包括第一用户标识和第一物品标识,其中所述第一用户标识为第一用户的标识,所述第一物品标识为第一物品的标识;以及关于每个子类,基于多个所述第一用户标识和多个所述第一物品标识、和多个所述第一用户相对于多个所述第一物品的多个已有评分,通过协同过滤算法预测各个第一用户对其未评分的第一物品的评分。
[0005] 在一个实施例中,在所述预测用户对物品的评分的方法中,一组上下文特征包括以下至少一类特征:用户特征、物品特征、以及交互特征。
[0006] 在一个实施例中,在所述预测用户对物品的评分的方法中,所述用户特征包括用户属性特征和/或用户评分统计特征,所述物品特征包括物品属性特征和/或物品评分统计特征。
[0007] 在一个实施例中,在所述预测用户对物品的评分的方法中,所述聚类算法为k-means算法或gmm算法。
[0008] 在一个实施例中,在所述预测用户对物品的评分的方法中,基于所述多组上下文特征,将所述多个样本对聚类为多个子类包括:在所述多个样本对中随机选择预定数目的初始质心;基于所述上下文特征,计算每个非质心的样本对到各个质心的距离;根据所述距离,将每个非质心的样本对归类到距离最近的质心;根据所述预定数目的质心及其对应的非质心样本对,计算相同数目的新的质心;判断所述新的质心是否满足预定条件;以及在满足所述预定条件的情况中,输出对所述多个样本对的聚类结果。
[0009] 在一个实施例中,在所述预测用户对物品的评分的方法中,所述协同过滤算法为矩阵分解算法或knn算法。
[0010] 在一个实施例中,在所述预测用户对物品的评分的方法中,通过协同过滤算法预测各个第一用户对其未评分的第一物品的评分包括:对于每个子类,基于所述多个第一用户标识、所述多个第一物品标识及所述多个第一用户相对于所述多个第一物品的所述多个已有评分,获取用户-物品评分矩阵;将所述用户-物品评分矩阵分解为两个低维矩阵,使得所述两个低维矩阵的乘积最接近所述用户-物品评分矩阵;根据将两个低维矩阵相乘获得的矩阵,预测所述用户-物品评分矩阵中各个第一用户对其未评分的第一物品的评分。
[0011] 在一个实施例中,在所述预测用户对物品的评分的方法中,所述已有评分为用户直接评分或基于用户操作获取的评分。
[0012] 本说明书另一方面提供一种物品推荐方法,包括:获取多个第二样本对,所述第二样本对包括第二用户标识和第二物品标识,其中,所述第二用户标识为待推荐用户的用户标识,所述第二物品标识为对应于多个待推荐物品的多个物品标识中的任一个物品标识;在通过上述预测评分的方法获取的多个子类中,确定各个所述第二样本对所在的子类;从通过上述预测评分的方法预测的评分中,获取每个所述第二样本对在其所属子类中对应的预测评分;根据所述预测评分,对所述各个第二样本对中包括的第二物品标识进行排序;以及根据所述排序,对所述第二用户推荐所述第二物品。
[0013] 本说明书另一方面提供一种预测用户对物品的评分的装置,包括:样本对获取单元,配置为,获取多个样本对,所述样本对包括选自于多个用户标识的任一个用户标识和选自于多个物品标识的任一个物品标识;评分获取单元,配置为,获取多个已有评分,所述多个已有评分对应于所述多个样本对中的部分样本对;上下文特征获取单元,配置为,获取分别与各个样本对对应的多组上下文特征,其中,一组上下文特征包括以下至少一类特征:用户特征、物品特征、以及交互特征;聚类单元,配置为,基于所述多组上下文特征,将所述多个样本对聚类为多个子类,其中每个子类包括取自于所述多个样本对中的多个第一样本对,每个所述第一样本对包括第一用户标识和第一物品标识,其中所述第一用户标识为第一用户的标识,所述第一物品标识为第一物品的标识;以及评分预测单元,配置为,关于每个子类,基于多个所述第一用户标识和多个所述第一物品标识、和多个所述第一用户相对于多个所述第一物品的多个已有评分,通过协同过滤算法预测各个第一用户对其未评分的第一物品的评分。
[0014] 在一个实施例中,在所述预测用户对物品的评分的装置中,所述聚类单元包括:选择单元,配置为,在所述多个样本对中随机选择预定数目的初始质心;第一计算单元,配置为,基于所述上下文特征,计算每个非质心的样本对到各个质心的距离;归类单元,配置为,根据所述距离,将每个非质心的样本对归类到距离最近的质心;第二计算单元,配置为,根据所述预定数目的质心及其对应的非质心样本对,计算相同数目的新的质心;判断单元,配置为,判断所述新的质心是否满足预定条件;以及输出单元,配置为,在满足所述预定条件的情况中,输出对所述多个样本对的聚类结果。
[0015] 在一个实施例中,在所述预测用户对物品的评分的装置中,所述评分预测单元包括:获取单元,配置为,对于每个子类,基于所述多个第一用户标识、所述多个第一物品标识及所述多个第一用户相对于所述多个第一物品的所述多个已有评分,获取用户-物品评分矩阵;分解单元,配置为,将所述用户-物品评分矩阵分解为两个低维矩阵,使得所述两个低维矩阵的乘积最接近所述用户-物品评分矩阵;以及预测单元,配置为,根据将两个低维矩阵相乘获得的矩阵,预测所述用户-物品评分矩阵中各个第一用户对其未评分的第一物品的评分。
[0016] 本说明书另一方面提供一种物品推荐装置,包括:样本对获取单元,配置为,获取多个第二样本对,所述第二样本对包括第二用户标识和第二物品标识,其中,所述第二用户标识为待推荐用户的用户标识,所述第二物品标识为对应于多个待推荐物品的多个物品标识中的任一个物品标识;确定单元,配置为,在通过上述预测评分的方法获取的多个子类中,确定各个所述第二样本对所在的子类;预测评分获取单元,配置为,从通过所述预测评分的方法预测的评分中,获取每个所述第二样本对在其所属子类中对应的预测评分;排序单元,配置为,根据所述预测评分,对所述各个第二样本对中包括的第二物品标识进行排序;以及推荐单元,配置为,根据所述排序,对所述第二用户推荐所述第二物品。
[0017] 在根据本说明书实施例的物品推荐方法中,通过使用用户-物品的上下文特征对用户-物品对进行聚类,使得每个子类的评分噪音更小,相关性更高,因此,在每个子类中使用协同过滤方法,可以获得更好的推荐性能。

附图说明

[0018] 通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
[0019] 图1示出了根据本说明书实施例的系统100的示意图;
[0020] 图2示意示出了根据本说明书实施例的一种预测用户对物品的评分的方法的流程图;
[0021] 图3示意示出了与用户-物品对应的多组上下文特征;
[0022] 图4示出了根据本说明书实施例的通过K-means算法进行聚类的流程图;
[0023] 图5示出了根据本说明书实施例的通过协同过滤算法预测评分的方法流程图;
[0024] 图6示意示出了矩阵分解的过程;
[0025] 图7示出了根据本说明书实施例的一种物品推荐方法的流程图;
[0026] 图8示出了根据本说明书实施例的一种预测用户对物品的评分的装置800;
[0027] 图9示出根据本说明书实施例的一种物品推荐装置900。

具体实施方式

[0028] 下面将结合附图描述本说明书实施例。
[0029] 图1示出了根据本说明书实施例的系统100的示意图。如图1所示,系统100包括聚类模块11、预测评分模块12和推荐模块13。首先,将多个用户-物品对及其对应的多组上下文特征输入给聚类模块11。聚类模块11通过对由每组上下文特征构成的多个特征向量进行聚类,而获得对用户-物品对的聚类,即,将每个用户-物品对都聚类到对应的子类中。然后,聚类模块11将通过聚类获得的多个子类发送给预测评分模块12。同时,将各个子类包括的用户对物品的已有评分发送给预测评分模块12。预测评分模块12在各个子类中利用所述已有评分,通过协同过滤算法预测子类中的用户对物品的缺失的评分。在通过推荐模块13对用户进行推荐时,推荐模块13通过用户标识和待推荐物品标识,确定用户-待推荐物品对所在的子类,从预测评分模块12获取关于该子类的该用户-待推荐物品对的预测评分,并根据多个待推荐物品的预测评分的排序,向用户推荐物品。
[0030] 图2示意示出了根据本说明书实施例的一种预测用户对物品的评分的方法的流程图,包括:在步骤S21,获取多个样本对,所述样本对包括选自于多个用户标识的任一个用户标识和选自于多个物品标识的任一个物品标识;在步骤S22,获取多个已有评分,所述多个已有评分对应于所述多个样本对中的部分样本对;在步骤S23,获取分别与各个样本对对应的多组上下文特征,其中,一组上下文特征包括以下至少一类特征:用户特征、物品特征、以及交互特征;在步骤S24,基于所述多组上下文特征,将所述多个样本对聚类为多个子类,其中每个子类包括取自于所述多个样本对中的多个第一样本对,每个所述第一样本对包括第一用户标识和第一物品标识,其中所述第一用户标识为第一用户的标识,所述第一物品标识为第一物品的标识;以及在步骤S25,关于每个子类,基于多个所述第一用户标识和多个所述第一物品标识、和多个所述第一用户相对于多个所述第一物品的多个已有评分,通过协同过滤算法预测各个第一用户对其未评分的第一物品的评分。
[0031] 首先,在步骤S21,获取多个样本对,所述样本对包括选自于多个用户标识的任一个用户标识和选自于多个物品标识的任一个物品标识。所述样本对即用户-物品对,其可以表示为(用户标识,物品标识)。所述用户可以是推荐系统中的全部用户,例如,在豆瓣电影APP中包括的全部用户、淘宝中包括的全部用户等。当然,所述多个用户不必须是推荐系统中的全部用户,其例如也可以是推荐系统中的一个单元所涉及的系统部分用户。所述物品可以是推荐系统中包括的全部物品,例如,豆瓣电影中的电影、淘宝中的商品等。同理,所述多个物品不必须是系统中的全部物品,其也可以是系统中一定范围内的部分物品。通过将多个用户中的每个用户与多个物品中的每个物品两两组合,从而获得多个用户-物品对。
[0032] 在步骤S22,获取多个已有评分,所述多个已有评分对应于所述多个样本对中的部分样本对。这里,已有评分可以是用户的直接评分,例如,在豆瓣电影中,用户会以1到5的分值对每个电影进行评分。在另一个实例中,通过用户的操作间接获取所述已有评分。例如,在淘宝中,可基于用户对物品的点击、购买等操作,计算出用户对物品的评分。在推荐系统中,通常只有部分用户对部分物品的评分,例如,在豆瓣电影中,有的用户只是浏览,不对电影进行打分,或者,有的电影过于生僻,没有用户对其进行打分。因此,只有部分样本对具有对应的用户对物品的已有评分。
[0033] 在步骤S23,获取分别与各个样本对对应的多组上下文特征,其中,一组上下文特征包括以下至少一类特征:用户特征、物品特征、以及交互特征。不同的推荐场景存在不同的特征类型,例如,在豆瓣电影中,与用户-物品对对应的上下文特征通常可分为以下几类特征:用户静态特征,例如用户的年龄特征,青少年、中年和老年,用户的性别特征等等;物品静态特征,如电影类别,爱情,动作,恐怖,等等;用户评分统计特征,如用户评分的平均分,方差等;物品评分统计特征,如电影的平均评分,方差等;交互特征,如评分时间是否节假日,早上、中午、晚上等。可从用户资料、物品属性及用户-物品交互信息获取所述上下文特征。
[0034] 图3示意示出了与用户-物品对应的多组上下文特征。图中u1、u2、u3和u4为用户标识,v1、v2、v3和v4为物品标识,ui与vj相交的方格表示一个用户-物品对,方格中的数字3、4、5等为对应的用户对物品的评分。在每个用户-物品对方格的后方,都包括一列方块,其示意表示对应于该用户-物品对的上下文特征组。该上下文特征组包括与该用户-物品对中包括的用户、物品及其交互相关的至少一个特征。
[0035] 在步骤S24,基于所述多组上下文特征,将所述多个样本对聚类为多个子类,其中每个子类包括取自于所述多个样本对中的多个第一样本对,每个所述第一样本对包括第一用户标识和第一物品标识,其中所述第一用户标识为第一用户的标识,所述第一物品标识为第一物品的标识。
[0036] 可以将上下文特征组以特征向量的形式表示,该特征向量的维度为一组上下文特征中包括的特征数,并且,该特征向量中的每个分量表示在对应的特征维度中的特征值。例如,一组上下文特征可能包括:年龄,中年;电影类型,爱情。通过将年龄维度中的取值量化为:1(青少年)、2(中年)、3(老年),将电影类型维度中的取值量化为:1(爱情)、2(动作)、3(恐怖),从而获得对应于该组上下文特征的特征向量:(2,1),其中第一分量表示年龄特征维度,第二个分量表示电影类型特征维度。从而可在由各个特征维度构成的特征空间中以向量点定位与所述上下文特征组对应的特征向量。不同用户-物品对对应的特征向量可能是相等的,即在维度空间中重合在一点上,即,该点对应于多个用户-物品对。
[0037] 通过以上述方式将上下文特征组表示为特征空间中的向量点之后,可通过各种聚类算法对这些向量点进行聚类,例如K-means算法、gmm(高斯混合模型)算法、BIRCH算法、OPTICS算法等等。
[0038] 下面将以K-means为例说明根据本说明书实施例的聚类过程。图4示出了根据本说明书实施例的通过K-means算法进行聚类的流程图。在步骤S41,在所述多个特征向量点中随机选择预定数目的初始质心。该预定数目即K-means算法中需预先确定的k。在本说明书实施例中,可通过预估的子类数确定k,例如,针对豆瓣电影,预估的子类可包括:(青少年,爱情)、(青少年、动作)、(青少年、恐怖)、(中年、爱情)、(中年、动作)、(中年、恐怖)、(老年、爱情)、(老年、动作)、(老年、恐怖),因此,可将k设定为9。即,k的值与特征数及其组合相关。在确定好k之后,在选择初始质心时,优选选择分散的k个初始质心。
[0039] 在步骤S42,基于各个特征向量点,计算每个非质心点到各个质心点的距离。所述距离可以采用各种计算形式,例如,其可以为欧式距离、明氏(Minkowsky)距离、马氏(Manhattan)距离等。在步骤S43,根据所述距离,将每个非质心点对归类到距离最近的质心,从而获得k个簇。
[0040] 在步骤S44,根据所述预定数目的质心点及其对应的非质心点,计算相同数目的新的质心,使得全部点到自己所属的簇中心的距离之和最小,即,如公式(1)所示,新的质心为簇中的全部向量点的平均向量。
[0041]
[0042] 在步骤S45,判断所述新的质心是否满足预定条件,例如,预定条件为,新的质心相对于原有的质心未发生变化。
[0043] 在不满足所述预定条件的情况中,流程回到步骤S42,以重复步骤S42-S45,在满足所述预定条件的情况中,流程进到步骤S46。在步骤S46,输出聚类结果,所述聚类结果包括多个簇及每个簇中包括的点,所述点对应于特征向量,即,对应于用户-物品对。从而基于上下文特征,将多个用户-物品对聚类到多个子类中。其中每个子类包括取自于所述多个用户-物品对中的多个第一用户-物品对,每个所述第一用户-物品对包括第一用户标识和第一物品标识,其中所述第一用户标识为第一用户的标识,所述第一物品标识为第一物品的标识。
[0044] 再参考图2,在步骤S25,关于每个子类,基于多个所述第一用户标识和多个所述第一物品标识、和多个所述第一用户相对于多个所述第一物品的多个已有评分,通过协同过滤算法预测各个第一用户对其未评分的第一物品的评分。
[0045] 这里的协同过滤算法可采用各种算法,例如knn算法或矩阵分解算法。下面以矩阵分解算法为例说明根据本说明书实施例的预测评分的过程。图5示出了根据本说明书实施例的通过协同过滤算法预测评分的方法流程图。
[0046] 如图5所示,首先在步骤S51,对于每个子类,基于所述多个第一用户标识、所述多个第一物品标识及所述多个第一用户相对于所述多个第一物品的所述多个已有评分,获取用户-物品评分矩阵。图6示意示出了矩阵分解的过程。图6中的左侧的矩阵示意示出了一个用户-物品评分矩阵,其中u1、u2、u3和u4为用户标识,v1、v2、v3、v4和v5为物品标识,ui与vj相交的方格中的数字表示ui对vj的评分,其中的“?”表示ui对vj未评分。
[0047] 在步骤S52,将所述用户-物品评分矩阵分解为两个低维矩阵,使得所述两个低维矩阵的乘积最接近所述用户-物品评分矩阵。设用户-评分矩阵为R,可将其分解为用户矩阵的转置矩阵UT和物品矩阵V,即R=UTV。使得所述两个低维矩阵的乘积最接近所述用户-物品评分矩阵,也就是使得所述两个低维矩阵的乘积与所述用户-物品评分矩阵的差最小。因此,目标函数可设为以下公式(2):
[0048]
[0049] 可通过例如梯度下降算法迭代计算U和V,从而获得使得所述目标函数最小的两个低维矩阵U和V。例如,如图6所示,图6中间相乘的两个矩阵即为通过例如梯度下降算法获得的两个低维矩阵UT和V。
[0050] 在步骤S53,根据将两个低维矩阵相乘获得的矩阵,预测所述用户-物品评分矩阵中各个用户对其未评分的物品的评分。例如,如图6所示,通过将UT与V相乘,获得图6右侧所示的预测矩阵。对比图6中的的评分矩阵与预测矩阵,可见,预测矩阵中的灰色方格中的评分等于(或尽可能接近)评分矩阵中的已有评分,而预测矩阵中的白色方格中的评分即为通过矩阵分解算法预测的评分。
[0051] 图7示出了根据本说明书实施例的一种物品推荐方法的流程图。所述方法包括:在步骤S71,获取多个样本对,所述样本对包括用户标识和物品标识,其中,所述用户标识为待推荐用户的用户标识,所述物品标识为对应于多个待推荐物品的多个物品标识中的任一个物品标识;在步骤S72,在通过上述预测评分的方法获取的多个子类中,确定各个样本对所在的子类;在步骤S73,从通过上述预测评分的方法预测的评分中,获取每个所述样本对在其所属子类中对应的预测评分;在步骤S74,根据所述预测评分,对所述各个样本对中包括的物品标识进行排序;以及,在步骤S75,根据所述排序,对所述用户推荐物品。
[0052] 首先,在步骤S71,获取多个样本对,所述样本对包括用户标识和物品标识,其中,所述用户标识为待推荐用户的用户标识,所述物品标识为对应于多个待推荐物品的多个物品标识中的任一个物品标识。例如,当用户u1在豆瓣电影中打开关于电影v1的页面之后,或者当用户u1在淘宝中打开商品v1的购买页面之后,在诸如此类的场景中,系统会启动物品推荐流程。此时,系统根据用户标识u1和用户操作的物品的物品标识v1召回向用户u1推荐的物品候选集。这里的召回是根据预定条件对推荐物品的粗筛,例如根据用户的初始喜好生成候选集、根据物品的属性(例如,当物品为推荐饭店时,该属性例如为地理位置)生成候选集等。将用户标识u1分别与候选集中的每个物品的物品标识vi相组合,从而可获得多个样本对。
[0053] 在步骤S72,在通过上述预测评分的方法获取的多个子类中,确定各个样本对所在的子类。根据上述预测评分方法,可以明确,一个样本对对应于一个特征向量,即对应于向量空间中的一个点。因此,一个样本对只可能被归类到一个子类中。从而,通过样本对中的用户标识和物品标识,可以在上述获得的多个子类中搜索出该样本对,从而确定该样本对所在的子类。类似地,可以获得这里的各个样本对所在的子类。
[0054] 在步骤S73,从通过上述预测评分的方法预测的评分中,获取每个所述样本对在其所属子类中对应的预测评分。如上述参考图5中所述,在每个子类中,通过协同过滤算法预测子类中的各个用户对其未评分的子类中的物品的评分。从而,在确定样本对所在的子类之后,可从与该子类关联的全部预测评分中获取与该样本对对应的预测评分。
[0055] 在步骤S74,根据所述预测评分,对所述各个样本对中包括的物品标识进行排序。预测评分越高,表示用户对该物品的预估喜好程度越大。从而,可将预测评分高的物品排在靠前的位置。
[0056] 在步骤S75,根据所述排序,对所述用户推荐物品。根据所述排序,可以以多种方式向用户推荐物品。例如,可仅向用户推荐排序靠前的物品,可向用户优先推荐排序靠前的物品,可以根据排序,顺序(时间顺序或空间顺序)向用户推荐物品,等等。
[0057] 图8示出了根据本说明书实施例的一种预测用户对物品的评分的装置800,包括:样本对获取单元81,配置为,获取多个样本对,所述样本对包括选自于多个用户标识的任一个用户标识和选自于多个物品标识的任一个物品标识;评分获取单元82,配置为,获取多个已有评分,所述多个已有评分对应于所述多个样本对中的部分样本对;上下文特征获取单元83,配置为,获取分别与各个样本对对应的多组上下文特征,其中,一组上下文特征包括以下至少一类特征:用户特征、物品特征、以及交互特征;聚类单元84,配置为,基于所述多组上下文特征,将所述多个样本对聚类为多个子类,其中每个子类包括取自于所述多个样本对中的多个第一样本对,每个所述第一样本对包括第一用户标识和第一物品标识,其中所述第一用户标识为第一用户的标识,所述第一物品标识为第一物品的标识;以及评分预测单元85,配置为,关于每个子类,基于多个所述第一用户标识和多个所述第一物品标识、和多个所述第一用户相对于多个所述第一物品的多个已有评分,通过协同过滤算法预测各个第一用户对其未评分的第一物品的评分。
[0058] 在一个实施例中,在上述预测用户对物品的评分的装置800中,所述聚类单元84包括:选择单元841,配置为,在所述多个样本对中随机选择预定数目的初始质心;第一计算单元842,配置为,基于所述上下文特征,计算每个非质心的样本对到各个质心的距离;归类单元843,配置为,根据所述距离,将每个非质心的样本对归类到距离最近的质心;第二计算单元844,配置为,根据所述预定数目的质心及其对应的非质心样本对,计算相同数目的新的质心;判断单元845,配置为,判断所述新的质心是否满足预定条件;以及输出单元846,配置为,在满足所述预定条件的情况中,输出对所述多个样本对的聚类结果。
[0059] 在一个实施例中,在上述预测用户对物品的评分的装置中,所述评分预测单元85包括:获取单元851,配置为,对于每个子类,基于所述多个第一用户标识、所述多个第一物品标识及所述多个第一用户相对于所述多个第一物品的所述多个已有评分,获取用户-物品评分矩阵;分解单元852,配置为,将所述用户-物品评分矩阵分解为两个低维矩阵,使得所述两个低维矩阵的乘积最接近所述用户-物品评分矩阵;以及预测单元853,配置为,根据将两个低维矩阵相乘获得的矩阵,预测所述用户-物品评分矩阵中各个第一用户对其未评分的第一物品的评分。
[0060] 图9示出根据本说明书实施例的一种物品推荐装置900,包括:样本对获取单元91,配置为,获取多个第二样本对,所述第二样本对包括第二用户标识和第二物品标识,其中,所述第二用户标识为待推荐用户的用户标识,所述第二物品标识为对应于多个待推荐物品的多个物品标识中的任一个物品标识;确定单元92,配置为,在通过上述预测评分的方法获取的多个子类中,确定各个所述第二样本对所在的子类;预测评分获取单元93,配置为,从通过所述预测评分的方法预测的评分中,获取每个所述第二样本对在其所属子类中对应的预测评分;排序单元94,配置为,根据所述预测评分,对所述各个第二样本对中包括的第二物品标识进行排序;以及推荐单元95,配置为,根据所述排序,对所述第二用户推荐所述第二物品。
[0061] 在根据本说明书实施例的物品推荐方法中,通过使用用户-物品的上下文特征对用户-物品对进行聚类,使得每个子类的评分噪音更小,相关性更高,因此,在每个子类中使用协同过滤方法,可以获得更好的推荐性能。
[0062] 本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0063] 结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0064] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。