对用户进行个性化推荐的方法和装置的制作方法

文档序号:6364474阅读:130来源:国知局
专利名称:对用户进行个性化推荐的方法和装置的制作方法
技术领域
本发明涉及计算机应用领域,具体涉及一种对用户进行个性化推荐的方法和装置。
背景技术
随着信息技术和互联网的蓬勃发展,网络上的资源呈爆炸式增长。例如:Netflix上有数万部电影,Amazon上有数百万本书,Taobao上有上亿件商品。面对如此多的信息,如果利用传统的信息搜索引擎进行信息搜索,得到的千篇一律的信息排序结果,无法根据不同用户的偏好提供相应的服务。因此,海量的信息空间在带给用户多元化选择的同时,反而使用户迷失在信息的海洋中,用户不得不花费大量的时间成本来寻找所需的消息,即所谓的“信息超载”现象。针对上述问题,个性化推荐系统孕育而生,该系统能够根据用户的历史行为预测用户的兴趣特征,为不同的用户量身推荐个性化的产品。与传统的信息搜索引擎“一对多”的服务方式不同,个性化推荐系统提供的是“一对一”的服务,更能符合用户需求。推荐算法是个性化推荐系统的核心和关键部分,其性能的优劣直接影响了推荐系统的推荐效果。目前,最常用的个性化推荐系统包括以下两类:基于内容的推荐系统和协同过滤推荐系统。基于内容的推荐系统需要分别对用户和产品建立配置文件,通过用户填写的个人信息、用户的产品购买记录以及用户对产品的描述信息,建立和更新用户的配置文件。该系统可以比较用户的配置文件与产品的配置文件的相似度,并直接向用户推荐与其配置文件最相似的产品。而协同过滤推荐系统并不需要建立用户和产品的配置文件,它能够根据用户的历史行为(如用户浏览购买行为,用户对产品的评分)推断出用户对产品的偏好程度进而进行推荐。协同过滤技术无`需用户的个人信息,不涉及到隐私问题,且简单有效,这些优点使得协同过滤技术成为迄今为止应用最成功的个性化推荐技术。在协同过滤技术中,通常将用户、类目的二元关系组成一个二维矩阵,矩阵中第i行第j列的值表示用户i对产品j的评分。一般而言,由于用户评分的产品相对于所有产品而言很少,所以该矩阵特别稀疏(稀疏度=1-矩阵中有评分的项/矩阵大小),很多稀疏度都在99%以上。因此,仅仅利用评分数据来预测用户的偏好是不够的。Web2.0技术的出现,使得用户从被动的“信息”接收者变成了主动的信息参与者。很多以用户为中心的应用孕育而生,如社会化标签系统。这些系统允许用户为不同的产品随意的打上标签数据,从而便于用户查找分类信息。现有技术中还没有综合利用用户-产品的评分数据以及用户的标签数据来对用户进行个性化推荐的方法。

发明内容
本发明实施例提供了一种对用户进行个性化推荐的方法和装置,以实现对用户进行有效的个性化产品推荐。
—种对用户进行个性化推荐的方法,包括:利用用户的标签数据计算用户之间的相似度,利用产品的标签数据计算产品之间的相似度,根据相似度信息获取每个用户和每项产品的邻居集合;基于所述用户和产品的邻居集合信息,采取最近邻居矩阵分解算法计算出用户和产品的特征向量;根据用户和产品的特征向量,预测用户对未评分产品的评分数据,根据所述评分数据对用户进行个性化产品推荐。一种对用户进行个性化推荐的装置,包括:邻居集合获取模块,用于利用用户的标签数据计算用户之间的相似度,利用产品的标签数据计算产品之间的相似度,根据相似度信息获取每个用户和每项产品的邻居集合;特征向量获取模块,用于基于所述用户和产品的邻居集合信息,采取最近邻居矩阵分解算法计算出用户和产品的特征向量;个性化推荐处理模块,用于根据用户和产品的特征向量,预测用户对未评分产品的评分数据,根据所述评分数据对用户进行个性化产品推荐。由上述本发明的实施例提供的技术方案可以看出,本发明实施例提出了一种新型的个性化推荐算法框架,该算法能整合用户的评分数据和标签数据,在矩阵分解模型中引入了标签信息、邻居集合信息,因此既拥有矩阵分解模型的优点,又能够在全局结构中抓住邻居间的强关系。在公开数据集上的实验结果表明,本发明实施例的最近邻居矩阵分解算法远远优于现今最流行的矩阵分解算法和最近邻算法。


·图1为本发明实施例一提出的一种结合用户-产品的评分数据和用户的标签数据对用户进行个性化推荐的方法的处理流程图;图2为本发明实施例一提出的一种用户和产品特征向量的后验分布的计算原理示意图;图3为本发明实施例二提出的一种对用户进行个性化推荐的装置的结构图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图,以对本发明实施例进行清楚、完整地描述人员。实施例一在协同过滤的算法中,有两个最基本的算法:最近邻算法和矩阵分解算法,其中最近邻算法包括基于用户的最近邻算法和基于产品的最近邻算法,两个算法的共同特点都是通过评分矩阵寻找到每个用户或者是每个产品的K个最近邻居,通过K个最近邻居的评分预测用户对产品的喜爱程度。其中基于用户的最近邻居算法假定:如果两个用户对相同的产品有相似的评分,那么他们很可能对其他产品也有相似的评分。而基于产品的最近邻居算法假定:如果很多用户对两个不同的产品有相似的评分,那么其他用户对这两个产品也应有相似的评分。
矩阵分解算法,如奇异值分解,通过对用户-产品评分矩阵进行降维处理,将用户和产品同时表示在一个相同的低维稠密空间,从而使用户和产品具有了可比性。产品向量的每一个维度表示产品的一个潜在属性。比如,当产品为电影时,矩阵分解模型可能将维度分解为喜剧片,动作片,科幻片以及现实主义电影或者浪漫主义电影等等。用户特征向量对应的维度表示了用户对该维度的喜爱程度。所以当用户和产品在对应低维度表示越接近时候,用户可能越喜欢该部电影,此时用户i对产品j的评分可以用用户特征向量Ui和产品特征向量Vj的线性点乘表示。上述最近邻算法和矩阵分解算法从不同程度分析了用户-产品评分数据。最近邻居模型擅长于抓住评分数据中的局部性信息,它依据一些最重要的邻居信息预测评分,而忽略了大多数评分。因此该算法不能抓住评分矩阵中隐藏的全局微弱的关系。而矩阵分解模型具有能够抓住评分矩阵的全局结构,却不能像最近邻算法一样——抓住一小部分邻居之间存在的强关系。因此,本发明实施例考虑到能否通过标签数据查找用户或者产品的近邻,并将邻居信息引入到矩阵分解模型中,提高个性化推荐算法的准确度。传统的协同过滤算法一般只利用到了显式的用户-产品评分矩阵,而在实际的推荐系统中,用户给产品打的标签信息也隐式反映用户的偏好,也概括化的反映了产品的特征信息。本发明实施例将这种标签信息也考虑进入用户-产品评分矩阵模型中,进一步提高了算法的精确度。

该实施例提出的一种结合用户-产品的评分数据和用户的标签数据对用户进行个性化推荐的方法的处理流程如图1所述,包括如下的处理步骤:步骤11、建立用户-产品评分矩阵、用户-标签信息矩阵和产品-标签信息矩阵。假设个性化推荐系统中分别有M个用户,N个产品,L个标签。RM*N为用户-产品评分矩阵,其中Ru表示用户i对产品j的评分。Pm “和Qn “分别表示用户-标签和产品-标签信息矩阵,Pil表示用户i与标签I的交互程度,Qjl表示产品j与标签I的交互程度,Pil(Qu)的值越大,表明用户i (产品j)越喜爱此标签。在实际的社会化标签系统中,用户不仅可以给他们看过的产品评分,还可以个性化的为产品打上标签。这些标签信息从一定程度上反映了用户的偏好和产品的属性信息。如:用户A观看了电影“罗马假日”,为其打上标签“奥黛丽赫本经典爱情”;用户B观看了电影“魂断蓝桥”,为其打上标签“爱情,经典,费雯丽,美国”。因为用户A和用户B同时拥有标签“经典”和“爱情”,所以我们可以认为A和B的偏好相似。而对于电影“罗马假日”和“魂断蓝桥”,它们拥有共同的标签“爱情,电影”,所以当用户C观看过“罗马假日”后,我们可以向他推荐“魂断蓝桥”。在社会化标签系统中,“用户”,“产品”,“标签”构成了其最基本的三项元素。这三者之间的关系可以用一个三元图来表示。我们分别沿着“产品”和“用户”这两个维度将三元图分解为二元图,相应得到用户-标签信息矩阵P和产品-标签信息矩阵Q。对于用户-标签信息矩阵P,Pil是用户i对标签I的权重值,Pil的具体计算公式是:Pil = tf(i, l)*ln(L/d(fl)) (I)其中tf (i, I)表示用户i的标签记录中标签I出现的归一化频率,df (I)表示使用过标签I的用户数。
相应的,我们可以根据公式⑴可以计算产品-标签矩阵IQjl是产品j对标签I的权重值,Qjl的具体计算公式是:Qjl = tf (j,I) *ln (L/df (I))其中tf (j, I)表示产品j的标签记录中标签I出现的归一化频率,df (I)表示使用过标签I的产品数。本发明实施例提出了最近邻居矩阵分解算法,该算法目的是通过分析矩阵P,Q和R获得一个高质量的D维的用户特征矩阵Ud * M和产品特征矩阵Vd *N,其中Ui和Vj分别代表了用户i的特征向量和产品j的特征向量。但是与传统矩阵分解算法不同的是,最近邻居矩阵分解算法考虑了邻居信息——相似的用户/产品具有相似的特征表示,Nm/NVJ分别表示用户i/产品j的邻居集合。算法的目的就是使用低维的表示X = {/逼近真实的评分矩阵R。在实际应用中,从后端数据库中取出所有的用户对产品的评分记录以及用户对产品的标签记录后,需要对数据进行预处理。对于某些评分项目非常少的用户或者是产品,由于可利用的信息非常少,无法准确的进行推荐,因此我们必须剔除这部分数据。在评分数据中,我们挑选出的每个用户必须至少对3项产品进行评分,每个产品至少被3个用户评分过。由于标签的随意性,必须预处理选择有代表性的标签,本发明实施例要求对于每个标签至少同时被3个不同的用户和产品拥有过。步骤12、利用标签数据分别计算用户之间和产品之间的相似度,根据相似度信息获取每个用户和每项产品的邻居集合。利用公式(1),根据所述用户-标签矩阵P分别得到用户i在标签空间中对应的向量7、用户j在标签空间中对应的向量_/,用户i和用户j之间的相似度s(i, j)可以用这两
个向量之间的cosine夹角来衡量:`
权利要求
1.一种对用户进行个性化推荐的方法,其特征在于,包括: 利用用户的标签数据计算用户之间的相似度,利用产品的标签数据计算产品之间的相似度,根据相似度信息获取每个用户和每项产品的邻居集合; 基于所述用户和产品的邻居集合信息,采取最近邻居矩阵分解算法计算出用户和产品的特征向量; 根据用户和产品的特征向量,预测用户对未评分产品的评分数据,根据所述评分数据对用户进行个性化产品推荐。
2.根据权利要求1所述的对用户进行个性化推荐的方法,其特征在于,所述的利用用户的标签数据计算用户之间的相似度,利用产品的标签数据计算产品之间的相似度,根据相似度信息获取每个用户和每项产品的邻居集合,包括: 对于用户-标签信息矩阵P,Pil是用户i对标签I的权重值,Pil的具体计算公式是:Pil = tf(i, l)*ln(L/d(fl)) 其中tf (i,I)表示用户i的标签记录中标签I出现的归一化频率,df (I)表示使用过标签I的用户数; 对于产品-标签矩阵Q,Qjl是产品j对标签I的权重值,Qjl的具体计算公式是:Qj1 = tf (j, l)*ln(L/df(l)) 其中tf (j, I)表示产品j的标签记录中标签I出现的归一化频率,df (I)表示使用过标签I的产品数; 根据所述用户-标签矩阵P分别得到用户i在标签空间中对应的向量7、用户j在标签空间中对应的向量j,用户i和用户j之间的相似度s (i,j)的计算方法如下:
3.根据权利要求1所述的对用户进行个性化推荐的方法,其特征在于,所述的基于所述用户和产品的邻居集合信息,采取最近邻居矩阵分解算法计算出用户和产品的特征向量,包括: 将用户i的邻居集合中的所有用户的特征向量的平均值加上一个随机高斯噪声得到用户i的特征向量Ui,计算方法如下:
4.根据权利要求3所述的对用户进行个性化推荐的方法,其特征在于,所述的根据所述p(V\T,a^)γ, σ2)之间的乘积得到用户和产品特征矩阵的后验概率分布,通过求所述用户和产品特征矩阵的后验概率分布的最大值得到所述用户和产品特征矩阵的具体数值,包括:将所有用户之间的相似度的值组成用户相似度矩阵S,将所有产品之间的相似度的值组成产品相似度矩阵T,根据所述用户-产品评分矩阵R,用户相似度矩阵S和产品相似度矩阵T的情况下,通过贝叶斯推断得到用户和产品特征矩阵的后验概率分布
5.根据权利要求1、2、3或4所述的对用户进行个性化推荐的方法,其特征在于,所述的根据用户和产品的特征向量,预测用户对未评分产品的评分数据,根据所述评分数据对用户进行个性化产品推荐,包括: 设用户i的未评分产品j的预测评分为Ru,Rij的计算方法为:R11=U1tVj Ui为用户i的特征向量,Vj为产品j的特征向量, 按预测得分从高到低选择设定数量个产品作为用户i的推荐产品列表。
6.一种对用户进行个性化推荐的装置,其特征在于,包括: 邻居集合获取模块,用于利用用户的标签数据计算用户之间的相似度,利用产品的标签数据计算产品之间的相似度,根据相似度信息获取每个用户和每项产品的邻居集合;特征向量获取模块,用于基于所述用户和产品的邻居集合信息,采取最近邻居矩阵分解算法计算出用户和产品的特征向量; 个性化推荐处理模块,用于根据用户和产品的特征向量,预测用户对未评分产品的评分数据,根据所述评分数据对用户进行个性化产品推荐。
7.根据权利要求6所述的对用户进行个性化推荐的装置,其特征在于: 所述的邻居集合获取模块,还用于对于用户-标签信息矩阵PiPil是用户i对标签I的权重值,Pil的具体计算公式是: Pil = tf(i, l)*ln(L/d(fl)) 其中tf (i,I)表示用户i的标签记录中标签I出现的归一化频率,df (I)表示使用过标签I的用户数; 对于产品-标签矩阵Q,Qjl是产品j对标签I的权重值,Qjl的具体计算公式是:Qj1 = tf (j, l)*ln(L/df(l)) 其中tf (j, I)表示产品j的标签记录中标签I出现的归一化频率,df (I)表示使用过标签I的产品数; 根据所述用户-标签矩阵P分别得到用户i在标签空间中对应的向量7、用户j在标签空间中对应的向量i,用户i和用户j之间的相似度s(i,j)的计算方法如下:
8.根据权利要求6所述的对用户进行个性化推荐的装置,其特征在于: 所述的特征向量获取模块,还用于将用户i的邻居集合中的所有用户的特征向量的平均值加上一个随机高斯噪声得到用户i的特征向量Ui,计算方法如下:
9.根据权利要求8所述的对用户进行个性化推荐的装置,其特征在于: 所述的特征向量获取模块,还用于将所有用户之间的相似度的值组成用户相似度矩阵S,将所有产品之间的相似度的值组成产品相似度矩阵Τ,根据所述用户-产品评分矩阵R,用户相似度矩阵S和产品相似度矩阵T的情况下,通过贝叶斯推断得到用户和产品特征矩阵的后验概率分布/Kf/y I Κσ\σ2υ,σ2ν):
10.根据权利要求6至9任一项所述的对用户进行个性化推荐的装置,其特征在于:所述的个性化推荐处理模块,还用于设用户i的未评分产品j的预测评分为Ru,Rij的计算方法为:Ry=UirVjUi为用户i的特征向量,Vj为产品j的特征向量,按预测得分从 高到低选择设定数量个产品作为用户i的推荐产品列表。
全文摘要
本发明涉及一种对用户进行个性化推荐的方法和装置。该方法主要包括利用用户的标签数据计算用户之间的相似度,利用产品的标签数据计算产品之间的相似度,根据相似度信息获取每个用户和每项产品的邻居集合;基于所述用户和产品的邻居集合信息,采取最近邻居矩阵分解算法计算出用户和产品的特征向量;根据用户和产品的特征向量,预测用户对未评分产品的评分数据,根据所述评分数据对用户进行个性化产品推荐。本发明实施例能在矩阵分解模型中引入了标签信息、邻居集合信息,使得相似的用户/产品具有相似的特征向量,因此既拥有矩阵分解模型的优点,又能够在全局结构中抓住邻居间的强关系。
文档编号G06F17/30GK103246672SQ20121002889
公开日2013年8月14日 申请日期2012年2月9日 优先权日2012年2月9日
发明者陈恩红, 吴乐, 宝腾飞, 向彪, 徐林莉 申请人:中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1