基于显式与隐式反馈信息的概率矩阵分解推荐

  • 格式:doc
  • 大小:29.50 KB
  • 文档页数:8

龙源期刊网

基于显式与隐式反馈信息的概率矩阵分解推荐

作者:王东

来源:《计算机应用》2015年第09期

摘 要:

针对现有的基于用户显式反馈信息的推荐系统推荐准确率不高的问题,提出了一种基于显式与隐式反馈信息的概率矩阵分解推荐方法。该方法综合考虑了显示反馈信息和隐式反馈信息,在对用户信任关系矩阵和商品评分矩阵进行概率分解的同时加入了用户评分记录的隐式反馈信息,优化训练模型参数,为用户提供精确的预测评分。实验结果表明,该方法可以有效地获得用户偏好,产生大量的准确度高的推荐。

关键词:

推荐系统;概率矩阵分解;显示反馈;隐式反馈

0 引言

由于商品规模越来越庞大,用户很难快速地找到自己感兴趣的商品,推荐系统的任务就是帮助用户快速准确地找到喜欢的商品。近年来,基于协同过滤的显式反馈的推荐系统普遍增多,很多推荐系统都是结合用户的评分和信任信息来提高推荐的准确度[1-2],以及解决数据稀疏和冷启动问题[3],但这却浪费了大量的宝贵的隐式反馈信息。

推荐系统主要是根据用户历史行为数据作出判断,这些历史行为数据具体可分为两类:显式反馈与隐式反馈。显式反馈是指用户给出的显式倾向,如评分信息、用户与用户之间的信任关系等。隐式反馈是指用户不直接表现出的隐式倾向,如购买了哪些商品、给哪些电影评分了等。推荐系统可以很容易地获取这些隐式反馈信息,而且用户不会很反感,因此隐式反馈信息具有收集成本低、应用场景广、数据规模大等特点[4]。

绝大多数基于信任的推荐系统都是采用显式反馈信息来进行推荐的,由于显式的反馈信息可能包含一些噪声,并不能很好地展现出推荐系统准确性高的性能,而用户的隐式反馈评分却可以用来提高推荐的准确性[5],因此本文在基于信任的概率矩阵分解基础上,结合隐式反馈信息,提出一种新的推荐方法:基于显式与隐式反馈信息的概率矩阵分解推荐方法(Probabilistic Matrix Factorization recommendation with Explicit and implicit feedback,

EifPMF)。本文方法整合了显式和隐式反馈信息,显式的信任关系用来约束用户的信任关系概率矩阵分解,而在对评分项进行概率矩阵分解时,需要考虑显式反馈的评分和隐式反馈的评龙源期刊网

分项,从而使推荐具有更好的准确性。此外,在防止训练数据时出现过拟合情况,本文采用了加权的规则化方法。实验结果表明,本文方法在评分预测方面具有很高的准确性。

1 相关工作

推荐方法主要分为两大类:基于内容过滤的推荐和基于协同过滤的推荐。基于内容过滤的推荐主要是在项目的内容信息上作出推荐,没有考虑用户对项目的评价意见。而基于协同过滤的推荐是应用最为成功的推荐系统,它是从用户的角度来进行相应推荐的;但基于协同过滤的推荐通常都面临着冷启动(如何对新用户进行推荐)、数据稀疏、算法可扩展性等问题[6]。

为了解决冷启动和数据稀疏问题,信任信息被加入到推荐方法中来。一种模式是基于邻域的信任关系模型:Jamali等[7]提出了一种结合信任和协同过滤的随机漫步模型的推荐方法;Guo等[8]提出把信任的邻域用户的评分信息考虑进来,可以有效地提高推荐系统的性能。但是这些方法也会有一些问题,它们只考虑了邻域用户的信任关系,并没有全面地考虑所有用户之间的关系。另外一种模式是基于矩阵分解的信任关系模型:Ma等[9]提出一种SoRec(Social

Recommendation)方法,该方法将评分矩阵和用户信任关系矩阵的分解进行了整合;Jamali等[1]提出了SocialMF(a matrix factorization based model for recommendation in social rating

networks)方法,该方法考虑了信任的传播特性。Ma等[10]又提出一种SoReg(Social

Regularization)方法,该方法对信任关系进行了规则化处理;Fang等[3]在概率矩阵分解模型中将信任信息进行了分解,然后进行推荐。这些方法只是简单地考虑了显式反馈信息,并没有将隐式反馈信息加入进来,考虑的信息不够全面。

近年来,隐式反馈也逐渐被研究:Losup等[11]提出了一种提取和分析隐式社会结构的方法;Guo等[12]在SVD++[5]基础上提出了包含显式反馈和隐式反馈信息的奇异值分解方法,该方法可以有效地处理冷启动和数据稀疏等问题。本文在概率矩阵分解[13]基础上,结合显式反馈和隐式反馈方面的信息,提出了一种新的方法,该方法比传统的协同过滤方法的推荐效果更好。实验结果表明:该方法可以有效地利用多方面信息,在推荐时有更好的准确率;而且复杂度不高,适合处理大规模数据。

2 基于显式与隐式反馈的概率矩阵分解方法

2.1 问题定义

为了便于形式化描述,本文的符号标记见表1。

假定有一组用户US={u1,u2,…,um}以及一组商品I={i1,i2,…,in},用户对商品的评分信息可以用矩阵R=[rij]m×n来描述,rij表示用户ui对商品ij的评分。用户和用户之间的信任关系可以用矩阵T=[tik]m×m来描述,tik表示用户ui对用户uk的信任值,如果用户ui与用户uk之间没有信任关系,则tik=0。这里需要注意的是,信任矩阵T并不是一个对称的矩阵,因为用户ui信任用户uk,并不能表明用户uk也信任用户ui。推荐系统的目标是:给定一龙源期刊网

个用户ui∈US,以及一个商品ij∈I,如果用户ui对商品ij的评分未知,则系统会根据已知的一些信息来预测出未知评分ij,然后再根据每个用户预测的评分对商品进行排序分别推荐给用户。

2.2 基于显式与隐式反馈的概率矩阵分解模型

为了解决解决冷启动和数据稀疏问题,提高推荐的准确性,本文在基于信任的概率矩阵分解基础上,增加了隐式反馈信息,创建了一种新的推荐方法,该方法的模型如图1所示。在该模型中,用户信任关系矩阵被分解成用户特征矩阵和信任特征矩阵,而用户商品矩阵则被表示成用户特征矩阵和商品特征矩阵以及隐式反馈内积的形式。

本文对用户信任关系进行分解时采用的是概率矩阵分解技术。令U为d×m维的用户特征矩阵,Z为d×m维的信任特征矩阵,其中d表示的是用户的特征数,m表示的是用户个数。Ui表示用户ui的特征列向量,UTi表示Ui的转置,Zk表示第k个信任关系特征向量,T表示m×m维的用户信任关系矩阵,推荐系统的目标就是将用户信任关系矩阵分解成合适的U和Z,则令用户信任关系矩阵T满足式(1)的条件概率分布。

p(T|U,Z,σ2T)=∏mi=1∏mk=1N[(tik|g(UTiZk),σ2T)]ITik(1)

其中:N(x|μ,σ2)表示均值为μ、方差为σ2的高斯(正态)分布;ITik是一个变量,表示用户ui与用户uk之间信任关系,当用户ui信任用户uk时,ITik=1,否则ITik=0。令函数g(x)=1/(1+exp(-x)),它的作用是将UTiZk的值限定在[0,1]。在社交网络中,由于用户的信任关系是非对称的,tik并不能准确地反映用户之间的信任关系,还应跟信任和被信任的用户个数有关。比如说,当用户ui信任很多用户时,用户ui和用户uk之间的信任值tik应降低,反之,当用户uk被很多用户信任时,用户ui和用户uk之间的信任值tik应得到增强。因此,用t*ik来替换tik,t*ik如式(2)所示:

tik=d-(uk)d+(ui)+d-(uk)×tik(2)

其中:d+(ui)表示用户信任的用户数量,d-(uk)表示用户uk被信任的用户数量。因此,式(1)可重新表示为式(3):

p(T|U,Z,σ2T)=∏mi=1∏mk=1N[(tik|g(UTiZk),σ2T)]ITik(3)

另外,令用户特征向量和信任关系特征向量都满足均值为0的高斯分布,如式(4)和式(5)所示:

p(U|σ2U)=∏mi=1N(Ui|0,σ2UI)(4)

p(Z|σ2Z)=∏mk=1N(Zk|0,σ2zI)(5) 龙源期刊网

其中:σ2U和σ2z分别表示U和Z分布的方差,I表示单位矩阵。因此,根据贝叶斯定理,用户的信任关系矩阵分解满足式(6):

本文对用户的商品评分进行分解同样采用的是概率矩阵分解技术。令U为d×m维的用户特征矩阵,V为d×n维的商品特征矩阵,其中d表示的是用户的特征数,m表示的是用户个数,n表示的是商品的个数。Ui表示用户ui的特征列向量,Vj表示商品ij的特征向量,R表示m×n维的用户对商品评分的矩阵,Iu表示被用户u评过分的商品的集合。令商品评分矩阵R满足式(7)的条件概率分布,如式(7)所示:

其中:γ为预先定义的步长。

重复上述训练过程,每次迭代后,计算并验证平均绝对误差,当目标函数L值的变化小于某个预先定义的很小的常数或在经过设定的迭代次数后终止迭代过程。求解的算法如下。

程序前

输入:测试样本集Ttest,学习率γ,最大迭代次数Q,一些规则化数。

输出:潜在特征矩阵U、V,特征向量Y。

根据式(12)计算目标函数值L

for iter=1,2,…,Q do

for each〈i, j〉∈Ttest

更新UiUi-γ·LUi

更新VjVj-γ·LVj

更新ZkZk-γ·LZk

更新yjyj-γ·Lyj

根据式(12)计算目标函数值L′

if (‖L′-L‖

else L=L′

end for 龙源期刊网

end for

程序后

在得到迭代终止后的Ui、Vj、Zk和yj之后,就可以预测用户ui对商品ij的未知评分ij,如下所示:

ij=UTi(Vj+|Iu|-12∑j∈Iuyj)

对于每一个用户,根据计算得到的预测评分ij的值由高到低对候选商品进行排序,产生TopN推荐列表,然后推荐给用户。

2.3 时间复杂度分析

基于显式与隐式反馈的概率矩阵分解模型的时间复杂度主要是根据目标函数L和偏导数的求解来计算的,令矩阵R和T中的非零元素个数分别为|R|和|T|,则计算目标函数L的算法时间复杂度为O(d|R|+d|T|),计算偏导函数LUi、LVj、LZk和Lyj的算法时间复杂度分别为O(d|R|+d|T|)、O(d|R|)、O(d|T|)和O(d|R|),由此得到一次迭代的总的算法时间复杂度是O(d|R|+d|T|)。由于算法的时间复杂与矩阵R和T的非零元个数是线性相关的,因此,基于显式与隐式反馈的概率矩阵分解模型可以扩展应用到更大的数据集上。