胡检华,李 平,2
1.长沙理工大学 计算机与通信工程学院,长沙 410114
2.智能交通大数据处理湖南省重点实验室,长沙 410114
随着Facebook、Twitter、微博以及微信等社交媒体在全球流行,Web2.0[1]的普及与应用,越来越多的用户在社交媒体上发布或传播信息[2],寻求或采纳其他用户的意见或建议。社会媒体系统对内容搜索以及产品推广等方面具有广泛的潜在影响,例如帮助用户快速找到喜欢的音乐或电影。然而,随着社交用户群体的不断壮大,社交媒体平台拥有海量的用户信息和用户记录。因此,信息过载成为一个重大的挑战议题。
推荐系统旨在从海量信息中过滤筛选,为用户提供最具吸引力或最相关的项目(如新闻、音乐、影像等),以缓解信息过载问题。协同过滤是当前应用最流行的推荐算法,其根据用户历史记录,预测特定用户的兴趣,为其提供个性化的服务。协同过滤算法可以分为基于记忆的方法和基于模型的方法。基于记忆的方法又可分为基于用户的方法和基于项目的方法。虽然基于记忆的方法易于实现,但数据稀疏时,推荐结果不可靠。而基于模型的方法为当前的主流,包括数据挖掘和机器学习算法。例如:基于邻域的协同过滤[3]、矩阵分解[4]、基于图的方法[5]和基于模糊的协同过滤[6]。
然而,用户反馈信息矩阵是稀疏的,即大多数的用户标记过极少数的项目。数据稀疏问题导致传统的协同过滤算法仅仅依靠反馈信息很难取得很好的效果。而社交媒体可以为推荐系统提供丰富的辅助信息,例如标签、评论以及用户社交关系。社交媒体与协同过滤相结合,可以有效缓解稀疏性问题,提高推荐效果。因此,如何利用社交媒体中丰富的信息来增强推荐模型,已成为学术界和行业极为关注的热点问题[7-8]。目前,一些学者将项目内容信息和用户社交网络融入推荐模型,来提高推荐效果,取得了不错的成果。例如,文献[9]充分挖掘社交媒体中社会网络信息,在协同主题回归模型的基础之上,提出一种融入社交网络信息和协同主题回归模型,该模型在推荐精度上有了较大的提高。
本章将回顾与总结一些关于基于协同过滤推荐的最新技术方法,可以分为:基于项目内容的协同过滤,基于社交网络的协同过滤,以及基于项目内容与社交网络的协同过滤。Wang等人[10]提出了协同主题模型(Collaborative Topic Regression modeling,CTR),通过将反馈矩阵和项目(文档)内容信息有效地融合到同一模型,并向用户推荐文档,有效地缓解了传统协同过滤预测不准确与不可靠的问题。Liu等人[11]在CTR模型的基础之上,采用流式变分推理来优化组合目标函数,实现CTR模型在线并行处理,在保证推荐精度的同时,提高运行效率。Wang等人[12]将深度学习应用到推荐系统中,利用堆叠去噪自动编码器学习项目内容,并与概率矩阵分解有效结合。在项目潜在特征学习上有效地去除噪声,更好地挖掘项目潜在特征表示,推荐精确更高。但是,这类模型在新用户或非活动用户上,并不能有效地学习用户潜在空间。
Xing等人[13]提出一种基于用户朋友关系的社交网络项目推荐模型,对用户与朋友共同兴趣特征进行潜在因式分解,预测用户喜欢的项目,该模型推荐效果较好,并具有一定的扩展性。Ma等人[14-16]将社会信息与矩阵分解过程相结合提出了三种不同的社会推荐算法,分别是基于概率矩阵分解的社会推荐(Social Recommendation,SoRec)、社会信任集成(Social Trust Ensemble,STE)和社会正规化。在SoRec[14]中,通过共享用户潜在因素来同时因子分解用户-项目反馈矩阵和用户-用户社交矩阵。在STE[15]中,通过评分的全局偏移、基于用户u和项目 j的潜在因素的预测,以及用户u所有朋友对项目j的预测评分的加权和,来决定用户u对项目 j的预测评分。社会规则化模型[16]间接模拟兴趣在社交网络中的传递性,并利用社会圈和用户的潜在因素构建社会正则化项,来约束矩阵分解过程中的目标函数。以上三种模型比最初的矩阵分解能够获得更好的预测精度。然而,这些模型不能用来推荐新的项目。
上述文献都是基于项目内容的协同过滤或基于社交网络的协同过滤,因此,如何将两者有效地与协同过滤算法结合,构建一个联合推荐引擎,成为一个亟待解决的难题。Purushotham等人[17]在CTR的基础之上,提出一种基于社交矩阵分解的协同主题回归(Collaborative Topic Regression with Social Matrix Factorization,CTRSMF),将协同主题回归和社交矩阵分解结合,构建一个动态的推荐系统。但CTRSMF直接分解社交矩阵,缺少物理解释,很难揭示用户之间的潜在关系。Kang等人[18]提出了一种基于社交媒体局部关注的协同主题回归(Limited Attention Collaborative Topic Regression,LACTR),利用在社交媒体中的同质效应去平滑用户与朋友之间兴趣的相似性,直接学习用户分配多少关注给朋友,并且利用这些影响去推荐。LACTR隐含了一个预设条件,即用户之间的社交互动通常遵循主题内容局部相似。但该假设条件较强,导致LACTR对数据集敏感。Wu等人[19]提出了一种基于社会信任集成的协同主题回归(Collaborative Topic Regression with Social Trust Ensemble,CTRSTE),将社会信任关系、主题模型和概率矩阵分解合并。在CTR-STE中,用户采纳项目的决定由用户自身的兴趣和他们信任朋友的兴趣共同影响,它隐含了一个前提假设,即用户与他们信任的朋友具有相似兴趣,但有时用户与他们信任的朋友兴趣差异较大,这导致推荐效果不佳。
为了将用户社会关系网络和项目内容信息与协同过滤算法有效结合,本文引入概率链接函数[20]来挖掘社会关系网络对用户潜在兴趣特征的影响,在协同主题回归模型的基础之上,提出一种融入用户社会关系的协同主题回归模型。本文的主要贡献由两点组成:一是本文提出一个新的算法框架,将用户项目反馈信息、项目内容和用户社会关系网络有效结合在一起,构建一个基于分层贝叶斯模型的推荐引擎。二是引入链接概率函数,将用户潜在特征与用户之间的社会关系建立联系,并以此来评估社会关系对用户兴趣的影响,约束目标函数,更好地挖掘用户潜在的兴趣特征。
CTR模型将传统协同过滤和主题模型有效结合。CTR表示用户具有主题兴趣,假定项目是由主题模型生成的。此外,利用项目内容信息,CTR可以预测新增项目的评分。图1展示了CTR模型。
图1 CTR模型
CTR在主题占比θj和项目潜在向量vj之间引入项目潜在偏移向量εj。偏移表示为项目主题分布θj和项目潜在向量vj之间的差。假定有K个主题β=β1:K,CTR的生成过程如下所示。
The description of generative process
1.For each useri,Draw a user latent vector
2.For each item j,
(c)For each wordwjn,
3.Draw the feedbackrijfor each user-item pair(i,j),
用户有着自己的兴趣爱好,在不同的项目上有着不同的偏好,例如:摇滚音乐、流行音乐等。另外,用户的兴趣很容易受到社会关系网络中其他用户的影响,人们往往比较容易接受来自社区的朋友关于电影、音乐或书籍等方面的推荐。
基于以上动机,本文在协同主题回归模型的基础之上,引入概率链接函数来挖掘社会关系网络对用户潜在兴趣特征的影响,以此来约束目标函数,并提出一种融入用户社会关系的协同主题模型。
图2展示了UCRCTR模型的图模型,其中用户对项目的评分rij、项目内容信息Wj,n和用户社会关系 fil为观察量。模型根据项目内容信息Wj,n生成主题特征向量θj,项目潜在特征向量vj的初始值由θj得来。用户潜在特征向量ui和项目潜在特征向量vj共同生成用户对项目的预测评分。用户社会关系向量si由ui生成,其表示其他用户对用户i的兴趣影响。而用户潜在特征向量ui通过用户社会关系向量si受到用户社会关系 fil的约束,即sl和si之间存在社会关系。η+为控制系数。
图2 USRCTR模型
USRCTR模型的生成过程如下所示。
The description of generative process
1.For each useri,
(a)Draw a user latent vector
(b)Draw user social relation offsetand set user social relation vectorsi=ui+τi;
2.For each item j,
(a)Draw topic proportions θj~Dirichlet(∂);
(c)For each wordwjn,
4.For each pair of users(i,j),draw a binary link indicator
5.Draw the feedback rijfor each user-item pair(i,j),
以上生成过程中,链接概率函数表示某两个用户之间的社会关系向量越相似,那么这两个用户之间存在社会关系的概率就越大。链接概率函数被定义为:
它表示两个用户之间的社会关系链接上的分布,其值取决于两个用户的用户社会关系向量si和sl。其中,如果 fi,l=1,则表示用户i和用户l存在社会关系,v是一个标量值表示偏移量中的符合表示向量标量级联,运算符表示元素级矢量乘法。通过约束参数η和v来确保函数ψ的取值在0到1的范围之内。
步骤1的(b),步骤3和4区分与CTR模型的生成过程不同。用户社会关系偏移量τi是USRCTR模型中的一个关键属性,与项目潜在偏移量εj类似,τi可以使得si在有需要的情况下偏离用户潜在特征向量ui。用户潜在特征向量ui表示用户的自身兴趣特征,si表示社会关系网络中其他用户对用户i兴趣特征的影响。λr越大,si和ui就越接近,当λr趋于无穷时,si=ui。
用户社会关系的条件分布可以表示为:
在已知观测数据用户-项目评分矩阵R、项目内容信息W和用户社会关系网络 fi,l=1的情况下,用户潜在特征矩阵U、项目潜在特征矩阵V、用户社会关系矩阵S、控制系数η+和主题分布矩阵θ的联合后验概率函数,即目标函数可以表示为:
其中,α、λu、λv、λe、λr分别为θ、U 、V 、η+和 si的超参数。K为主题的个数,I为单位矩阵。P(W,θ|∂,β)表示为潜在狄里克雷分布中文本描述的似然函数,其中狄里克雷先验参数∂被设定为1,以便计算简单。
给定训练数据集,本文将所有参数视为随机变量,采用马尔可夫链蒙特卡罗方法和变分方法,用于学习和推理,并找到U、V、S和η+的最大后验估计。参数的学习和推断过程与CTR模型类似。最后,根据训练得到潜在特征矩阵U和V来预测评分矩阵R中的缺失值,并通过预测评分来推荐。根据上一节,需求联合后验概率函数公式(3)的最大后验,即等价于求给定超参数λu、λv、λr、λe、∂和 β 的U、V、s1:I、η+和 θ1:J的对数似然的最大值,如公式(4)所示:
在协同主题回归模型中,主题模型的超参数α设置为1。由于L对于所有变量中很难同时达到最优,因此本文采用坐标上升算法来优化目标函数,通过设计一个交替算法来学习参数,即每次优化某个参数时将其他参数固定不变。
对于ui和vj,通过将其的梯度设置为零,可以得到以下更新规则:
其中,Ci={cij|j=1,2,…J}是一个对角矩阵,cij是用户i对项目 j评分rij的置信参数,如果cij越大,rij就越可信。通常,如果rij=1,那么cij=a,如果rij=0,那么cij=b,其中a和b都是置信参数,并满足a>b>0。是用户i对所有项目反馈信息的列向量。对于每个项目 j,Cj和Rj被类似定义。
对于si和η+,由于不能直接求得L关于si或η+的梯度,并将其设置为零。因此,梯度上升被用来更新变量si和η+。L相对于si和η+的梯度分别为:
对于θj,首先定义q(zjn=k)=ψjnk,然后在将包含θj的项目分离出来之后应用Jensen不等式:
对于参数β,并遵循与LDA中相同的M步更新。
在学习到所有最优参数U 、V 、θ1:J、φ 、η+和S之后,本模型可用于用户对项目评分的预测。D表示为观察到的测试数据,用户i对项目 j的预测评分被估计为:
对于非冷启动预测,使用ui、θj和εj的点估计值来估计用户i对项目 j的评分如下:
对于项目特定的冷启动预测,项目刚刚发布,没有观察到的评分数据可用。因此,E[εj]=0。用户i对项目 j的评分如下:
实验数据来自知名社交音乐媒体Lastfm上收集的真实数据集。Lastfm是全球最大的社交音乐平台,允许用户标记音乐曲目和艺术家,本文选用hetrec2011-lastfm-2k数据集。该数据集,把艺术家当作项目,如果用户已经收听过某个艺术家,那么用户对这个艺术家的评分为“1”。该数据集包含社交网络、标签和用户对项目的评分信息。数据集的统计资料如表1所示。
表1 数据集的统计
准确性是衡量推荐系统好坏的一个重要属性,其特征是产生的推荐是否能准确地匹配用户的兴趣/喜好。本文同时采用准确率和召回率来评估推荐的精度。相关项目(relevance items)为测试集中的验证项目,top-N项目为预测评分排名前N的项目。给出推荐项目的排名列表,准确率Precision表示在top-N项目中检索到相关项目所占的比例。
召回率Recall表示在所有相关项目中检索到相关项目所占的比例。
推荐的质量可以沿着多个维度进行评估,仅仅依靠推荐的精度可能不足以为每个用户找到最有用的项目。推荐的多样性和覆盖率也是衡量推荐推荐质量的重要标准。在推荐系统中,多样性可分为用户间的多样性和用户内的多样性。本文只考虑用户间的多样性,即向不同用户推荐不同项目的能力。本文采用汉明距离(Hamming Distance,HD)来衡量推荐系统的综合多样性。
其中,Qut(top-N)为用户i和用户 j的推荐列表top-N中相同项目的数目。
覆盖率表示所有用户推荐列表top-N中的项目占全部项目的比例。
其中,Nd(top-N)表示所有用户推荐列表top-N中不同项目的个数。
本文采用五折交叉验证将数据集分为训练集和测试集,其中80%用于训练,20%用于测试。通过网格搜索的方法找到最优参数,当λu=0.01,λv=100,a=1,b=0.01,k=200时,CTR模型给出的推荐性能最好。为了更好地与其他几种基于CTR的模型进行对比,对于USRCTR模型,本文给定参数 λu=0.01,λv=100,a=1,b=0.01,其中a和b为置信参数。
4.2.1 λr和λe参数对推荐精度的影响
首先给定主题的数目k=200,并向用户推荐预测评分排名前20的项目,即top-N=20,使用网格搜索的方法来分析不同用户社会关系参数λr和系数参数λe对USRCTR推荐的准确率和召回率的影响,来获得更好的项目推荐。当λr=0时,USRCTR模型退化为CTR模型,即没有考虑用户社会关系。当λr=∞时,用户社会关系向量si与用户潜在特征向量ui相等。在其他情况下,USRCTR模型将主题模型和用户社会关系网络融合到矩阵分解,并预测用户评分。
图3(a)展示随着λr和λe值变化时,准确率变化的3D图,图3(b)是其轮廓图。由图3可以发现,λr的最优值较小,而λe的最优值较大,当λr=0.1和λe=1 000时,USRCTR模型的准确率最高。
图4(a)展示随着λr和λe的值变化时,召回率变化的3D图,图4(b)是其轮廓图。由图4可以发现,当λr=0.1和λe=1 000时,USRCTR模型的召回率最高。
然后,在给定λr=0.1和λe=1 000的情况下,来分析主题数目K=50,K=100和K=200时,其对推荐前20项目的准确率和召回率的影响。
图3 λr和λe对准确率的影响
图4 λr和λe对召回率的影响
从图5可以发现,随着K的增加,准确率和召回率显著提高。这说明,随着K的增加,更有意义的主题将会被发现,这有助于提高用户兴趣模型的粒度,从而提高推荐的性能。和CTRSTE作为参照方法,因为CTRSMF、LACTR和CTRSTE这三种模型都是利用社会信息来提高CTR模型,CTR模型是这几种模型的基础。
图5 K对准确率与召回率的影响
将参数K=200,λv=0.01,λr=100,λr=0.1,λe=1 000,推荐项目的数量Top-N设置为Top-N=5,10,20和50来比较USRCTR模型和其他基于CTR的模型的精确度、召回率、多样性和覆盖率。
图6表明,随着推荐项目的数量Top-N增加,各个模型的准确率降低,而召回率明显提高,USRCTR模型比其他四种模型在准确率和召回率上表现更加优异。当Top-N=50时,USRCTR模型比CTR模型,在准确率上提高2.1%,在召回率上提高4.6%。在Lastfm网站上,大多数用户将喜欢的艺术家(项目)与朋友在线共享。实验结果表明,用户的社会关系网络在推荐预测中扮演重要角色。
图7表明,随着推荐项目的数量Top-N增加,各模型
4.2.2 与其他基于CTR模型的比较
图6 USRCTR与其他模型在准确率和召回率上的比较
图7 USRCTR与其他模型在多样性和覆盖率上的比较
通过使用项目推荐的不同质量评价指标——准确率、召回率、多样性和覆盖率来比较USRCTR模型和其他四种基于CTR的模型。本文将CTR、CTRSMF、LACTR推荐项目多样性,即汉明距离略有减少,而各模型的推荐项目覆盖率显著提高。CTR模型在推荐项目多样性和覆盖率上的表现要优于其他几种模型,即CTR模型给用户推荐项目的种类较多,推荐多样新颖的可能性要大。USCTR虽然在推荐的多样性和覆盖率上效果不如CTR,但总体表现稳定,比其他几种基于CTR的模型要好。
4.2.3 时间复杂度分析
本模型USRCTR与CTR模型都是采用LDA方法进行主题建模,因此与传统矩阵分解不同,时间复杂度更高。根据USRCTR学习过程中的更新规则,对于每次迭代,更新η的时间复杂度为O(KL),其中K是潜在因素的空间维度,L是用户社交网络中社会关系的总数。对于每次迭代,更新用户社会关系矩阵S={si|i=1,2,…,I}的时间复杂度是O(KL),其他变量更新的时间复杂度与CTR模型相同。对于用户潜在因素矩阵U,时间复杂度是O(IK3+IJK2),对于项目潜在因素矩阵V,时间复杂度也是O(IK3+IJK2),其中I是用户的数量,J是项目的数量。在每一次迭代过程中,与CTR模型相比,USRCTR模型只增加了额外的时间复杂度O(KL)。由于用户社交网络通常是稀疏的,这意味着L可被视为I的常数倍数。因此,USRCTR模型的额外时间成本是最小的。
学习参数的收敛阈值设定为1E-4,设置K=50,K=200分别得到CTR模型和USRCTR模型时间成本。
图8表明,USRCTR模型每次迭代运行的时间比CTR模型略长,但USRCTR模型达到收敛条件所需的迭代次数比CTR模型要小。因此,USRCTR模型的总体时间复杂度比CTR模型要低。
图8 CTR模型和USRCTR模型时间成本的比较
本文提出融入用户社会关系的协同主题回归模型,可以为社交媒体系统提供项目推荐。通过将用户社会关系网络引入协同主题回归模型,USRCTR将用户-项目反馈信息、项目内容和用户社会网络关系集成到基于分层贝叶斯模型的算法框架中,并完成项目推荐。实验结果表明,USRCTR模型与其他几种基于CTR的模型相比,推荐结果更好,预测评分更具解释性。
今后工作中,希望研究更多先进的方法,如深度学习,使得USRCTR更好地挖掘用户之间的关系对用户评分的影响,以提高推荐效果。