一种集成用户行为和物品内容的推荐方法及系统转让专利

申请号 : CN201210486275.1

文献号 : CN103514239B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李朝汪灏泓

申请人 : TCL美国研究所

摘要 :

本发明公开了一种集成用户行为和物品内容的推荐方法及系统。所述方法包括:通过关联每个用户的行为数据和所有物品的内容数据,获取每个用户对所有物品内容的用户兴趣列表;计算所述用户兴趣列表与所述所有物品的内容数据的相似度,得出每个用户对物品的内容数据的推荐物品权重,并通过对推荐物品权重进行排序得出每个用户的推荐物品。本发明有效的解决了当前推荐系统所面临的主要问题,比如推荐系统的冷启动,以及如何从冷启动顺利的过度到正常运行状态等等,大大提高了系统准确率、覆盖率、新颖度等等,能更好的提高推荐系统的精度和个性化,吸引更多的用户使用。

权利要求 :

1.一种集成用户行为和物品内容的推荐方法,其特征在于,包括以下步骤:A、通过关联每个用户的行为数据和所有物品的内容数据,获取每个用户对所有物品内容的用户兴趣列表;

B、计算所述用户兴趣列表与所述所有物品的内容数据的相似度,得出每个用户对物品的内容数据的推荐物品权重,并通过对推荐物品权重进行排序得出每个用户的推荐物品;

所述步骤A具体包括:

A1、分别将用户的行为数据和物品的内容数据采用用户的行为向量以及物品的内容向量表示,并通过矩阵分解的方法关联用户的行为向量和物品的内容向量,获取用户的兴趣向量;

所述步骤A具体包括分别将用户的行为数据和物品的内容数据采用用户的行为向量以及物品的内容向量表示,根据单个用户的行为向量生成所有用户的行为矩阵,根据单个物品的内容向量生成所有物品的内容矩阵,则定义单个用户行为向量的主题模型为所有物品内容矩阵与单个用户的兴趣向量的内积;

将已有用户的行为数据和物品的内容数据通过主题模型获得用户的兴趣列表;而如果有新的用户行为或者新的物品内容输入,则更新所有的用户行为数据或者所有的物品内容数据的向量空间模型,通过主题模型去获取更新后的用户兴趣列表。

2.根据权利要求1所述的集成用户行为和物品内容的推荐方法,其特征在于,所述步骤B具体还包括:通过所有物品的内容数据更新新增物品的内容数据,并通过计算所述新增物品的内容数据与所有用户的行为数据的相似度,得出新增物品对用户的行为数据的推荐用户权重,并通过对推荐物品权重进行排序得出新增物品的推荐用户。

3.根据权利要求1所述的集成用户行为和物品内容的推荐方法,其特征在于,通过以下公式计算用户的兴趣向量:      公式(1)

其中, 表示单个用户的行为向量u, 表示单个物品的内容向量

c, 表示所有物品的内容矩阵C, 表示单个用

户的兴趣向量f,n和m均为自然数, ;

当所有物品的内容矩阵固定时,通过上述公式(1)推导出单个用户的兴趣向量f。

4.根据权利要求3所述的集成用户行为和物品内容的推荐方法,其特征在于,当有新增用户且所述新增用户产生行为数据时,通过新增用户的行为数据更新新增用户的行为向量,并通过上述公式(1)得出新增用户的兴趣向量,且通过以下公式(2)推导出新增用户的推荐物品权重向量:    公式(2)

其中, 表示推荐物品权重向量,通过上述推荐物品权重向量获取推荐物品推荐给用户。

5.根据权利要求3所述的集成用户行为和物品内容的推荐方法,其特征在于,当有新增物品时,根据所述所有物品的内容矩阵C更新新增物品的内容向量,并通过公式(3)推导出新增物品的推荐用户权重向量:    公式(3)

其中, 表示所述用户行为矩阵U, 表示推荐用户权重

向量,通过上述推荐用户权重向量获取新增物品的推荐用户。

6.根据权利要求1所述的集成用户行为和物品内容的推荐方法,其特征在于,所述步骤A还包括:采用稀疏存储的数据结构计算单个用户的兴趣向量。

7.一种集成用户行为和物品内容的推荐系统,其特征在于,所述系统包括:关联模块,用于通过关联每个用户的行为数据和所有物品的内容数据,获取每个用户对所有物品内容的用户兴趣列表;

推荐物品模块,用于计算所述用户兴趣列表与所述所有物品的内容数据的相似度,得出每个用户对物品的内容数据的推荐物品权重,并通过对推荐物品权重进行排序得出每个用户的推荐物品;

所述关联模块具体用于分别将用户的行为数据和物品的内容数据采用用户的行为向量以及物品的内容向量表示,并通过矩阵分解的方法关联用户的行为向量和物品的内容向量,获取用户的兴趣向量;

分别将用户的行为数据和物品的内容数据采用用户的行为向量以及物品的内容向量表示,根据单个用户的行为向量生成所有用户的行为矩阵,根据单个物品的内容向量生成所有物品的内容矩阵,则定义单个用户行为向量的主题模型为所有物品内容矩阵与单个用户的兴趣向量的内积;

将已有用户的行为数据和物品的内容数据通过主题模型获得用户的兴趣列表;而如果有新的用户行为或者新的物品内容输入,则更新所有的用户行为数据或者所有的物品内容数据的向量空间模型,通过主题模型去获取更新后的用户兴趣列表。

8.根据权利要求7所述的集成用户行为和物品内容的推荐系统,其特征在于,所述系统包括:推荐用户模块,用于通过所有物品的内容数据更新新增物品的内容数据,并通过计算所述新增物品的内容数据与所有用户的行为数据的相似度,得出新增物品对用户的行为数据的推荐用户权重,并通过对推荐物品权重进行排序得出新增物品的推荐用户。

说明书 :

一种集成用户行为和物品内容的推荐方法及系统

技术领域

[0001] 本发明涉及智能推荐系统,尤其涉及的是一种集成用户行为和物品内容的推荐方法及系统。

背景技术

[0002] 随着信息技术和互联网的发展,如何从大量的信息中找到用户感兴趣的信息,如何让自己的信息受到广大用户的欢迎,对于用户和提供商来说都是一件非常困难的事情。推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,而另一方面让信息能够展现在对它有兴趣的用户面前,从而实现信息消费者和信息提供者的双赢。推荐系统主要是通过分析用户的行为,对其建模,从而预测用户的兴趣并给用户做推荐。
[0003] 按照处理数据的不同方式,推荐系统使用的方法主要可分为协同过滤和内容过滤,如果推荐系统仅仅利用用户的行为数据,根据用户的历史兴趣来给用户做推荐,那么这种方法被称为协同过滤算法(collaborative filtering)。如果推荐系统利用了物品的内容数据 (content filtering),计算用户的兴趣和物品描述之间的相似度,来给用户做推荐,称为内容过滤。协同过滤是推荐系统领域最著名的算法,该算法主要通过研究用户的历史行为来给用户的兴趣建模并给用户做出推荐。它主要包含基于用户的协同过滤, 基于物品的协同过滤, 和基于主题的模型。内容过滤是在基于物品内容的基础上给用户推荐和他们之前喜欢的物品在内容上相似的其他物品。内容主要包括物品的一些属性。这种方法可以更加清楚地了解用户的兴趣点,从而更好的解释推荐的理由。
[0004] 协同过滤主要依赖于历史行为数据,因此不能很好的解决系统的冷启动问题,也就是说这些算法无法给新用户做推荐,因为没有相关的行为数据。同时也无法将新的物品推荐给可能对它感兴趣的用户。内容过滤算法主要是利用物品之间内容的相似度来给用户推荐,它只依赖于物品内容本身的数据,所以能很好的解决冷启动问题。但是由于内容过滤算法忽视了用户行为,从而也忽视了物品的流行度以及用户行为中所包含的规律,所以它的精度比协同过滤要低。如何融合这两种算法的优点来设计一种新的推荐算法对于推荐系统面临的冷启动和提高推荐系统的精度有十分重要的意义。
[0005] 因此,现有技术还有待于改进和发展。

发明内容

[0006] 本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种集成用户行为和物品内容的推荐方法及系统,解决现有推荐系统的冷启动、以及如何从冷启动顺利的过度到正常运行状态的问题。
[0007] 本发明解决技术问题所采用的技术方案如下:
[0008] 一种集成用户行为和物品内容的推荐方法,其中,包括以下步骤:
[0009] A、通过关联每个用户的行为数据和所有物品的内容数据,获取每个用户对所有物品内容的用户兴趣列表;
[0010] B、计算所述用户兴趣列表与所述所有物品的内容数据的相似度,得出每个用户对物品的内容数据的推荐物品权重,并通过对推荐物品权重进行排序得出每个用户的推荐物品。
[0011] 所述的集成用户行为和物品内容的推荐方法,其中,所述步骤A具体包括:
[0012] A1、分别将用户的行为数据和物品的内容数据采用用户的行为向量以及物品的内容向量表示,并通过矩阵分解的方法关联用户的行为向量和物品的内容向量,获取用户的兴趣向量。
[0013] 所述的集成用户行为和物品内容的推荐方法,其中,所述步骤B具体还包括:
[0014] 通过所有物品的内容数据更新新增物品的内容数据,并通过计算所述新增物品的内容数据与所有用户的行为数据的相似度,得出新增物品对用户的行为数据的推荐用户权重,并通过对推荐物品权重进行排序得出新增物品的推荐用户。
[0015] 所述的集成用户行为和物品内容的推荐方法,其中,通过以下公式计算用户的兴趣向量:
[0016]       公式(1)
[0017] 其中, 表示单个用户的行为向量u, 表示单个物品的内容向量c, 表示所有物品的内容矩阵C, 表示
单个用户的兴趣向量f,n和m均为自然数, ;
[0018] 当所有物品的内容矩阵固定时,通过上述公式(1)推导出单个用户的兴趣向量f。
[0019] 所述的集成用户行为和物品内容的推荐方法,其中,当有新增用户且所述新增用户产生行为数据时,通过新增用户的行为数据更新新增用户的行为向量,并通过上述公式(1)得出新增用户的兴趣向量,且通过以下公式(2)推导出新增用户的推荐物品权重向量:
[0020]     公式(2)
[0021] 其中, 表示推荐物品权重向量,通过上述推荐物品权重向量获取推荐物品推荐给用户。
[0022] 所述的集成用户行为和物品内容的推荐方法,其中,当有新增物品时,根据所述所有物品的内容矩阵C更新新增物品的内容向量,并通过公式(3)推导出新增物品的推荐用户权重向量:
[0023]     公式(3)
[0024] 其中, 表示所述用户行为矩阵U, 表示推荐用户权重向量,通过上述推荐用户权重向量获取新增物品的推荐用户。
[0025] 所述的集成用户行为和物品内容的推荐方法,其中,所述步骤A还包括:采用稀疏存储的数据结构计算单个用户的兴趣向量。
[0026] 一种集成用户行为和物品内容的推荐系统,其中,所述系统包括:
[0027] 关联模块,用于通过关联每个用户的行为数据和所有物品的内容数据,获取每个用户对所有物品内容的用户兴趣列表;
[0028] 推荐物品模块,用于计算所述用户兴趣列表与所述所有物品的内容数据的相似度,得出每个用户对物品的内容数据的推荐物品权重,并通过对推荐物品权重进行排序得出每个用户的推荐物品。
[0029] 所述的集成用户行为和物品内容的推荐系统,其中,所述系统包括:
[0030] 推荐用户模块,用于通过所有物品的内容数据更新新增物品的内容数据,并通过计算所述新增物品的内容数据与所有用户的行为数据的相似度,得出新增物品对用户的行为数据的推荐用户权重,并通过对推荐物品权重进行排序得出新增物品的推荐用户。
[0031] 本发明所提供的集成用户行为和物品内容的推荐方法及系统,有效的解决了当前推荐系统所面临的主要问题,比如推荐系统的冷启动,以及如何从冷启动顺利的过度到正常运行状态等等,大大提高了系统准确率、覆盖率、新颖度等等,能更好的提高推荐系统的精度和个性化,吸引更多的用户使用。

附图说明

[0032] 图1是本发明提供的集成用户行为和物品内容的推荐方法的流程图。
[0033] 图2是本发明提供的集成用户行为和物品内容的推荐系统的结构示意图。

具体实施方式

[0034] 为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0035] 参见图1,图1是本发明提供的集成用户行为和物品内容的推荐方法的流程图,包括以下步骤:
[0036] 步骤S100、通过关联每个用户的行为数据和所有物品的内容数据,获取每个用户对所有物品内容的用户兴趣列表;
[0037] 步骤S200、计算所述用户兴趣列表与所述所有物品的内容数据的相似度,得出每个用户对物品的内容数据的推荐物品权重,并通过对推荐物品权重进行排序得出每个用户的推荐物品。
[0038] 下面结合具体的实施例对上述步骤进行详细的说明。
[0039] 本发明主要是通过集成物品的内容数据和用户的行为数据来对用户的兴趣建模,从而有效地结合内容过滤和协同过滤的优点来对用户进行推荐。具体地,本发明主要分为离线和在线两个部分,离线部分主要是为了获取用户的兴趣列表,而在线部分则是通过在离线部分获取的用户兴趣列表,在新增用户时给出其相应的推荐物品以及在新增物品时给出其相应的推荐用户。
[0040] 在离线部分,为了获取用户的兴趣列表,首先对用户的兴趣进行建模,定义一主题模型,用以获取用户的兴趣列表。通过关联物品的内容数据和用户的行为数据,主题模型利用矩阵分解的数据挖掘算法来获取用户对物品内容的兴趣列表。在离线部分获取用户对物品内容的兴趣列表的主要流程如下:首先分别将用户的行为数据和物品的内容数据采用用户的行为向量以及物品的内容向量表示,单个用户的行为向量u表示为 ,[0041] 所有用户的行为矩阵U= ,单个物品的内容向量c表示为 ,所有物品的内容矩阵 ,单
个用户的兴趣向量f用 表示,这样主题模型为:
[0042]
[0043] 把已有用户的行为数据和物品的内容数据通过主题模型获得用户的兴趣列表;而如果有新的用户行为或者新的物品内容输入,则更新所有的用户行为数据或者所有的物品内容数据的向量空间模型,这样以便在全局的向量空间模型中更精确地获取其特征的权重,然后通过主题模型去获取更新后的用户兴趣列表。
[0044] 在在线部分,建立推荐系统的推荐模型,推荐模型主要通过用户的兴趣列表来衡量用户对每个物品的喜好程度,并在线给出推荐结果。在这里,推荐模型分为两个类型,一个是对于用户的推荐物品模型,一个是对于物品的推荐用户模型。在对推荐模型进行定义时,根据推荐模型类型的不同进行不同的处理。当对用户推荐物品时,如果是已有的用户,可以直接查询到这个用户的兴趣列表,然后通过推荐物品模型给出在线推荐物品;如果是新增用户且产生了相应的行为数据,为了准确地获取这个新增用户的行为数据在全局中的权重,首先通过所有用户的行为数据去更新这个新增用户的行为数据,然后通过主题模型去获取其用户兴趣列表并给出推荐物品。当新增物品推荐用户时,如果有新增物品的内容数据,首先通过所有内容数据去更新这个新增物品的内容数据,然后通过所有用户的兴趣列表和推荐用户模型去获取推荐用户。
[0045] 具体地,推荐物品模型如下所示:
[0046]
[0047] 推荐用户模型如下所示:
[0048]
[0049] 具体的推荐过程为:当有新增用户且所述新增用户产生行为数据时,通过新增用户的行为数据更新新增用户的行为向量,并通过得出新增用户的兴趣向量,且通过以下推荐物品模型推导出新增用户的推荐物品权重向量,通过上述推荐物品权重向量获取推荐物品推荐给用户。当有新增物品时,根据所述所有物品的内容矩阵C更新新增物品的内容向量,并通过推荐用户模型推导出新增物品的推荐用户权重向量,再通过上述推荐用户权重向量获取新增物品的推荐用户。
[0050] 通过上述两个推荐模型,可以分别得出推荐物品的权重向量和推荐用户的权重向量,根据推荐物品的权重向量和推荐用户的权重向量可以很准确的给出推荐物品和推荐用户,这里的推荐物品和推荐用户不限于推荐一个,可以推荐多个。通过兴趣列表分析用户的爱好,得出较好的推荐理由。
[0051] 本发明采用矩阵分解法获取用户的兴趣列表,具体的计算过程如下:物品的内容数据和用户的行为数据用向量空间模型来表示。每个物品的内容权重向量可表示为,每个用户的行为向量可表示为  ,可通过TF-IDF(Term Frequency–Inverse Document Frequency、词频–反文档频率)方法来计算,同时将这些向量正则化以避免计算的误差;
[0052]
[0053]
[0054] TF(词频)计算特征在当前对象的向量中出现的次数,DF(文档频率)计算在整个向量空间中特征出现在多少个不同的对象中。当有新的用户行为数据或者新的物品内容数据加入,将根据这个计算模型来更新。
[0055] 定义用户的兴趣矩阵为F,为了获取F,定义目标函数J:
[0056]
[0057] 其中, 是Frobenius范数。为求 , 可以改写为:
[0058]
[0059] 通过使用拉格朗日函数求解这个条件目标函数J。因为 矩阵已经固定,因此只需求解 。假设其对应的拉格朗日乘子为 ,则拉格朗日函数L定义为:
[0060]
[0061] 对 求偏导得到
[0062]
[0063] 因此,
[0064] .
[0065] 从上述公式可以看出,目标函数是单调递减收敛的。在初始化时, 可以为一些随机数,但是为了得到唯一的用户兴趣列表,我们初始化 为全为1的矩阵,也即是说在获得真实的用户兴趣向量之前我们认为用户对所有的兴趣是一致的。随着算法的不断地迭代,会逐渐地收敛。算法的终止条件可以设置一定的迭代次数,或者当目标函数的误差精度在一定的范围之内。
[0066] 同时考虑到用户和物品的数目非常庞大,而用户行为数据和物品内容数据矩阵非常稀疏,为了提高计算的速度同时减少内存的消耗,采用稀疏的存储方式,通过稀疏存储的数据结构计算单个用户的兴趣向量,即将非零的值与其所引用两个数组来存储,这样可以有效的进行稀疏矩阵的运算,解决大矩阵运算,快速地获取推荐列表。
[0067] 在上述给单个用户 推荐物品时,需要计算用户的兴趣向量 和所有物品的内容矩阵 之间的推荐物品权重向量 ,由于 和 都已经固定化,因此它们的乘积也就是余弦相似度。通过对推荐物品权重向量进行排序来获取最相关的物品。同理,在将新增物品推荐给用户时,计算新增物品的内容向量 和所有用户的兴趣矩阵 之间的推荐用户权重向量 。然后对其进行排序来获取最高几个权重的用户来进行推荐。
[0068] 进一步地,本发明中的用户的行为数据可以有多种表达形式,比如说显性反馈或者隐形反馈,显示反馈可以是用户对物品的评分而隐形反馈可以从用户的浏览记录来表示。而物品的内容数据可以用物品的标签,物品的文本描述等等。无论哪种表示形式,本发明提出的模型充分利用了各种不同的数据表达形式来进行推荐,而且能有效地处理系统从冷启动到正常运行的整个过程,从而具有广泛的实用性。
[0069] 基于上述推荐方法,本发明还提供了一种集成用户行为和物品内容的推荐系统,如图2所示,所述系统包括:
[0070] 关联模块10,用于通过关联每个用户的行为数据和所有物品的内容数据,获取每个用户对所有物品内容的用户兴趣列表;
[0071] 推荐物品模块20,用于计算所述用户兴趣列表与所述所有物品的内容数据的相似度,得出每个用户对物品的内容数据的推荐物品权重,并通过对推荐物品权重进行排序得出每个用户的推荐物品。
[0072] 推荐用户模块30,用于通过所有物品的内容数据更新新增物品的内容数据,并通过计算所述新增物品的内容数据与所有用户的行为数据的相似度,得出新增物品对用户的行为数据的推荐用户权重,并通过对推荐物品权重进行排序得出新增物品的推荐用户。
[0073] 优选地,本发明提供的推荐系统可以广泛用于各种智能推荐系统,比如说电影推荐系统、音乐推荐系统、读书推荐系统等等。
[0074] 综上所述,本发明提供的集成用户行为和物品内容的推荐方法及系统,通过数据挖掘模型有效地结合这行为推荐和内容推荐的优点,有效的解决当前推荐系统所面临的主要问题,比如推荐系统的冷启动,以及如何从冷启动顺利的过度到正常运行状态等等。本发明的集成用户行为和物品内容的推荐方法及系统可以克服没有内容或者没有行为这两种特殊情况,并且大大提高了系统准确率、覆盖率和新颖度等,能更好的提高推荐系统的精度和个性化,吸引更多的用户使用。
[0075] 应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。