一种用户上下文信息聚合的协同推荐方法与流程

文档序号:12598808阅读:270来源:国知局

本发明属于个性化推荐技术领域,特别涉及一种用户上下文信息聚合的协同推荐方法。



背景技术:

推荐系统以缓解信息过载、提高物品的点击率和转化率为目的,已被广泛应用于广告、电子商务、电信服务、电影、视频、音乐、设计网络、阅读、基于位置的服务及个性化服务等领域。通过分析大量的用户历史行为日志,推荐系统能够实时地为不同的用户提供个性化的页面,极大限度地提升用户体验。

协同过滤(Collaborative Filtering)算法是推荐系统领域最早提出来的算法,该算法已经在学术界和工业界得到深入的研究和广泛的应用。基于用户的协同过滤算法用于为用户推荐和该用户兴趣相似的用户喜欢的物品。但由于用户对物品的喜好反馈,如用户历史购买记录、用户对物品的超链接点击、用户对项目的订阅等,存在严重的稀疏性,导致用户的相似性计算过程存在较大的误差,从而降低了协同过滤算法的准确率。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提供一种用户上下文信息聚合的协同推荐方法,用以缓解用户对物品喜好反馈稀疏的问题,降低用户相似性计算的误差,提高协同过滤推荐的准确性。

本发明的目的通过以下的技术方案实现:一种用户上下文信息聚合的协同推荐方法,包括如下步骤:

S1:根据用户对物品的行为日志,将用户对物品的行为分类,每个行为类别赋予一个数值评分,作为用户对物品的评分,建立用户-物品评分矩阵;将包含用户属性和用户自身行为的用户上下文信息转换成定量表示的用户特征,建立用户-特征矩阵;

S2:针对需要推荐物品的当前用户,根据用户-物品评分矩阵计算当前用户与其他用户的评分相似性;根据用户-特征矩阵计算当前用户与其他用户的特征相似性;

S3:根据所述评分相似性和特征相似性,计算当前用户与其他用户之间的聚合相似性,得到K个近邻用户;

S4:根据当前用户与K个近邻用户的聚合相似性,以及K个近邻用户对物品的评分,预测当前用户对所有未评分物品的预测评分,选取预测评分最高的N个物品为对当前用户的推荐候选物品集;

S5:针对需推荐物品的当前用户,从推荐候选物品集中选择若干个物品进行推荐。

优选的,所述步骤S2中,当前用户与其他用户的评分相似性通过如下第一相似性计算方法计算得到,步骤为:

S2-1:采用聚类平滑计算方法估计当前用户对未评分物品的预测评分;

S2-2:对当前用户对物品的评分赋予权重向量;

S2-3:根据当前用户对未评分物品的预测评分、当前用户对物品的主动评分、当前用户对物品评分权重向量和其他用户对物品的评分,采用皮尔逊(Pearson)相关系数、余弦相似性或杰卡德(Jaccard)相似系数法中的一种计算用户与其他用户之间的评分相似性。

进一步的,所述步骤S2-1中聚类平滑计算方法是指,根据用户-物品评分矩阵,对其他用户进行聚类,计算该聚类中所有用户的评分向量的平均值作为该聚类中心的评分向量;计算当前用户与各聚类中心的相似性,找到相似性最大的聚类中心,利用该中心的评分向量估计当前用户对未评分物品的评分。

更进一步的,所述步骤S2-2中,给当前用户对未评分物品的预测评分赋予权重λ,给用户-物品评分矩阵中当前用户对物品的主动评分赋予权重1-λ,其中0<λ<0.5。

优选的,所述步骤S2中,当前用户与其他用户的特征相似性通过第二相似性计算方法计算得到,第二相似性计算方法采用皮尔逊相关系数、余弦相似性或杰卡德相似系数法中的任意一种。

优选的,步骤S3中得到K个近邻用户的方法包括如下步骤:

S3-1:根据步骤S2中得到的当前用户与其他用户的评分相似性和特征相似性,计算聚合相似性;

S3-2:根据所述聚合相似性,计算得到本次当前用户的K个近邻用户;

S3-3:利用本次当前用户的K个近邻用户和K个近邻用户与当前用户的聚合相似性,计算全体其他用户的个性化聚合相似性,将本次迭代中的个性化聚合相似性最大的K个近邻用户作为新的K个近邻用户,累计到历史累计结果中;

S3-4:判断当前迭代次数是否达到T轮,如果未达到T轮,则利用上一轮的K个近邻用户重复步骤S3-3,得到新的K个近邻用户并计算新的个性化聚合相似性,累计到历史累计结果中;

如果达到T轮,则停止迭代,并以历史累计结果中累计出现次数最多的前K个用户作为最终的K个近邻用户。

优选的,如果达到T轮,则优先选取历史累计结果中累计出现次数最多的前K个用户作为最终的K个近邻用户;如果达到T轮时的K近邻用户中存在用户的累计次数相同,则选取最后一轮的个性化聚合相似性较大者进入。

进一步的,步骤S3-1中聚合相似性的计算方法是指:采用聚合函数将当前用户与其他用户的评分相似性和特征相似性聚合,所述聚合函数可采用最小值,最大值或乘积中的一种。

优选的,S3-3所述个性化聚合相似性采用如下的方法计算:

假设将个性化聚合相似性定义为:

simu,v=f(αu;sim Ru,v,sim Au,v)

其中αu为当前用户u的个性化因子,sim Ru,v和sim Au,v分别为用户u与v的评分相似性和特征相似性,f(·)为某个合适的函数(如f=αu·sim Ru,v·sim Au,v);

假设采用某个聚合函数,给定K近邻用户的评分矩阵,计算得到当前用户u对物品a的评分为当前用户u对物品a的原评分为ru,a,则个性化因子αu的具体取值为下述目标函数的最优解:

其中pua为u对a的评分权重,当a是u的主动评分物品时,权重为1-λ;否则为λ。为某个正则化项。

本发明与现有技术相比,具有如下优点和有益效果:

本方法根据当前用户与其他用户的评分相似性和特征相似性,计算当前用户与其他用户之间的聚合相似性,利用个性化相似性聚合计算方法,得到K个近邻用户;并根据当前用户与K个近邻用户的聚合相似性,以及K个近邻用户对物品的评分,预测当前用户对所有未评分物品的预测评分,选取预测评分最高的N个物品为当前用户的推荐候选物品集,可以降低用户相似性计算的误差,提高协同过滤推荐的准确性。

附图说明

图1是本发明方法的流程图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

用户上下文信息聚合的协同推荐方法的一种典型流程示意图,如图1所示。

S1:根据用户对物品的行为日志,将用户对物品的行为分类,每个行为类别赋予一个数值评分,作为用户对物品的评分(评分越高,对此物品越感兴趣),建立用户-物品评分矩阵,如表1所示;将包含用户属性和用户自身行为的用户上下文信息,转换成定量表示的用户特征,建立用户-特征矩阵,如表2所示。

表1用户-物品评分矩阵

表2用户-特征矩阵

S2:针对需推荐物品的当前用户,根据所述用户-物品评分矩阵,利用第一相似性计算方法计算所述当前用户与其他用户的评分相似性;根据所述用户-特征矩阵,利用第二相似性计算方法计算所述当前用户与所述其他用户的特征相似性。

S3:根据所述评分相似性和所述特征相似性,计算当前用户与其他用户之间的聚合相似性,得到K个近邻用户。

S4:根据当前用户与K个近邻用户的聚合相似性,以及K个近邻用户对物品的评分,预测当前用户对所有未评分物品的预测评分,选取预测评分最高的N个物品为对所述当前用户的推荐候选物品集。N根据具体业务要求确定。比如某页面一次最多展示n个推荐物品,则N的取值必须满足n≤N。

S5:针对需推荐物品的所述当前用户,根据推荐策略从推荐候选物品集中选择若干个物品进行推荐。

本实施例中,步骤S2中当前用户与其他用户的评分相似性通过如下第一相似性计算方法计算得到,步骤为:

S2-1:采用聚类平滑计算方法估计所述当前用户对未评分物品的预测评分;这里的评分主要用于缓解当前用户评分的稀疏性。

S2-2:对当前用户对物品的评分赋予权重向量;聚类平滑过程只对当前用户未评分的物品进行平滑,平滑得到的值由于不是当前用户主动评分的值,故只能在一定程度上反映当前用户的偏好。用户主动评分更能反映用户的偏好,所以应对用户主动评分的物品采用一个更大的权重。因此,本实施例对当前用户对未评分物品的预测评分赋予权重0.4(λ,0<λ<0.5),给当前用户对物品的主动评分(也就是用户-物品评分矩阵中用户对物品的评分)赋予权重0.6(1-λ)。

S2-3:根据当前用户对未评分物品的预测评分、当前用户对物品的主动评分、当前用户对物品评分权重向量、其他用户对物品的评分,采用皮尔逊相关系数、余弦相似性或杰卡德相似系数法中的一种计算用户之间的评分相似性,本实施例中采用加权皮尔逊相关系数法计算用户之间的相似性:

a)加权皮尔逊相关系数计算公式:

<mrow> <msubsup> <mi>sim</mi> <mrow> <mi>u</mi> <mo>,</mo> <mi>v</mi> </mrow> <mrow> <mi>P</mi> <mi>C</mi> <mi>C</mi> </mrow> </msubsup> <mo>=</mo> <msqrt> <mfrac> <mrow> <mo>|</mo> <mi>I</mi> <mo>|</mo> </mrow> <mrow> <msub> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>&Element;</mo> <mi>I</mi> </mrow> </msub> <msub> <mi>w</mi> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> </mrow> </mfrac> </msqrt> <mfrac> <mrow> <msub> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>&Element;</mo> <msub> <mi>I</mi> <mi>u</mi> </msub> <mo>&cup;</mo> <msub> <mi>I</mi> <mi>v</mi> </msub> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>u</mi> <mo>,</mo> <mi>i</mi> </mrow> </msub> <mo>-</mo> <mover> <msub> <mi>r</mi> <mi>u</mi> </msub> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>v</mi> <mo>,</mo> <mi>i</mi> </mrow> </msub> <mo>-</mo> <mover> <msub> <mi>r</mi> <mi>v</mi> </msub> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> </mrow> <mrow> <msqrt> <mrow> <msub> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>&Element;</mo> <mi>i</mi> <mo>&Element;</mo> <msub> <mi>I</mi> <mi>u</mi> </msub> <mo>&cup;</mo> <msub> <mi>I</mi> <mi>v</mi> </msub> </mrow> </msub> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>u</mi> <mo>,</mo> <mi>i</mi> </mrow> </msub> <mo>-</mo> <mover> <msub> <mi>r</mi> <mi>u</mi> </msub> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> <msqrt> <mrow> <msub> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>&Element;</mo> <mi>i</mi> <mo>&Element;</mo> <msub> <mi>I</mi> <mi>u</mi> </msub> <mo>&cup;</mo> <msub> <mi>I</mi> <mi>v</mi> </msub> </mrow> </msub> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>v</mi> <mo>,</mo> <mi>i</mi> </mrow> </msub> <mo>-</mo> <mover> <msub> <mi>r</mi> <mi>v</mi> </msub> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> </mfrac> </mrow>

b)加权杰卡德相似系数计算公式:

c)加权余弦相似性计算公式:

步骤S2-1中聚类平滑计算方法是指,根据所述用户-物品评分矩阵,对所述其他用户进行聚类,计算该聚类中所有用户的评分向量的平均值作为该聚类中心的评分向量,计算所述当前用户与各聚类中心的相似性,找到相似性最大的聚类中心,利用该中心的评分向量估计所述当前用户的未评分物品的评分。

步骤S2中当前用户与其他用户的特征相似性通过第二相似性计算方法计算得到,所述第二相似性计算方法可采用皮尔逊相关系数、余弦相似性或杰卡德相似系数法中的一种计算用户之间的相似性,本实施例中采用皮尔逊相关系数法计算用户之间的相似性:

a)皮尔逊相关系数计算公式:

b)杰卡德相似系数计算公式:

c)余弦相似性计算公式:

步骤S3中,得到K个近邻用户的方法包括如下步骤:

根据步骤S2得到的评分相似性和特征相似性,执行下述迭代过程:

S3-1:根据当前用户与其他用户的评分相似性和特征相似性,计算聚合相似性。

S3-2:根据所述聚合相似性,计算得到本次当前用户的K个近邻用户;

S3-3:利用本次当前用户的K个近邻用户和K个近邻用户与当前用户的聚合相似性,计算全体其他用户的个性化聚合相似性,将本次迭代中的个性化聚合相似性最大的K个近邻用户作为新的K个近邻用户,累计到历史累计结果中;

S3-4:判断当前迭代次数是否达到T轮,如果未达到T轮,则利用上一轮的K个近邻用户重复步骤S3-3,得到新的K个近邻用户并计算新的个性化聚合相似性并累计到历史累计结果中;

如果达到T轮,则停止迭代,并以历史累计结果中累计出现次数最多的前K个用户作为最终的K个近邻用户。

同时,如果达到T轮,则优先选取历史累计结果中累计出现次数最多的前K个用户作为最终的K个近邻用户;如果达到T轮时的K近邻用户中存在用户的累计次数相同,则选取最后一轮的个性化聚合相似性较大者进入。

举个例子,设其他用户分别为a,b,c,K=2,T=3,第一轮topK为用户a,b,则计数c(a)=1,c(b)=1;第二轮topK为用户a,c,则累计计数c(a)=2,c(b)=1,c(c)=1。第三轮由于用户a计数最大,则a入选;b,c计数一致,以最后一轮的相似性较大者进入,即用户c。故,迭代完成后的K近邻为a,c。

K的值主要根据领域经验取得,比如K=50。K太大会使用户的个性信息被埋没,K太少容易过度计算用户的兴趣。

T的值也是主要根据领域经验取得。

S3-1中,聚合相似性计算方案指采用某聚合函数将所述当前用户与所述其他用户的评分相似性和特征相似性聚合,所述聚合函数可采用最小值,最大值或乘积中的一种,本实施例中采用最小值。

上述步骤S3-3中,所述个性化聚合相似性可以用如下的方法计算:

假设将个性化聚合相似性定义为:

simu,v=f(αu;sim Ru,v,sim Au,v)

其中αu为当前用户u的个性化因子,sim Ru,v和sim Au,v分别为用户u与v的评分相似性和特征相似性,f(·)为某个合适的函数(如f=αu·sim Ru,v·sim Au,v);

假设采用某个聚合函数,给定K近邻用户的评分矩阵,计算得到当前用户u对物品a的评分为当前用户u对物品a的原评分为ru,a,则个性化因子αu的具体取值为下述目标函数的最优解:

其中pua为u对a的评分权重,当a是u的主动评分物品时,权重为1-λ;否则为λ。为某个正则化项。

如公式simu,v所述,计算得到αu就可以得到更新后的simu,v,根据所计算的个性化聚合相似性,又可以得到新的K近邻用户。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

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