社交网络中基于张量分解的好友推荐
- 摘要
- 引言
- 相关研究
- 问题描述
- 所提好友推荐方法
- 实验验证
- 结论
摘要
社交网络中快速增长的用户对现有好友推荐系统提出了挑战。本文我们用张量分解模型基于用户的标签行为信息提出了一种新的推荐框架,解决社交网络中的好友推荐问题。该研究有两个主要贡献:(1)提出了一种新的张量模型来刻画社会化标签系统中用户、用户兴趣和朋友之间的潜在关联;(2)基于上述模型提出了一种新的好友推荐方法。在一个真实数据集上的实验表明所提算法由于当前最优算法。
引言
随着互联网上用户和电子媒体资源(音乐、照片和视频)的爆炸式增长,大量社交网络如Last.fm和Flickr已经使用社会化标签系统来组织大量数据。社会化标签系统允许用户使用他们最喜欢的词称作Tag来标记网上的资源。标签不仅仅可以完善那些难以直接抽取的多媒体数据的元信息,还可以表征用户的兴趣[1]。另一方面,用户想要找到有着相似兴趣的人,如Last.fm中的好友或者是Flickr中的联系人。但是现有好友推荐系统的结果常常不能让人满意。为一个用户找到新的合适的朋友,特别是在快速增长的社交网络中不是一件容易的事。解决该问题会有两个重要意义:首先,它帮助用户找到了新的有趣的多媒体资源。其次,这种推荐服务鼓励有着相似兴趣的用户之间的交流,提高了用户满意度,这也意味着网站更高的广告收益。
本文我们提出一种新的基于张量分解模型来进行用户推荐任务。所提框架包括三个阶段:(a)用张量分解模型构建用户-兴趣-朋友模型;(b)学习最优的模型参数;(c)为用户的新好友进行排序推荐。本文的贡献如下:(1)我们提出一种新的张量分解模型来刻画用户、用户兴趣和朋友之间的潜在关联;(2)基于该模型,我们提出一种新的方法为用户推荐有着相似兴趣的用户作为新朋友。
本文剩余部分结构如下。第二节我们综述了之前的相关工作。在第三节我们形式化定义了问题。我们在第四节介绍了用于好友推荐的框架。在第五节,我们用实验将所提方法与当前最优算法进行了比较。最后在第六节得出了结论
相关工作
到目前为止,社会化标签系统中已经提出了多种好友推荐方法[3]。大量现有的推荐系统是基于协同过滤的方法[4,5],它们广泛应用于Amazon和MovieLens中。此外,Google Follower Finder采用了一种基于社交图的方法[6]。这种方法仅仅利用社交图上的链接信息,基于用户的共同好友来预测新的好友。最近,Zhou[2]提出了一个社会化标签系统的两阶段框架(UR)。这种方法用标签来代表用户的兴趣,基于他们兴趣的KL散度来推荐用户。与之前的方法不同的是,所提方法同时考虑了链接关系和用户的标签内容。
问题描述
通常一个社会化标签系统由实体(用户、标签和资源)和实体之间的关系(如用户之间的友谊)组成。我们定义虽有用户集合U={ui}Ii=1,所有标签集合T={tj}Jj=1和所有资源集合R={rk}Kk=1。用户-标签关系(u,t)∈O?U×T意味着用户u用标签t注释过资源。用户u使用过的所有标签集合用T(u)表示。用户-好友(u,ui)∈P?U×U意味着ui是用户u的一个好友。用户u的所有好友集合用F(u)表示。
给定一个用户u,好友推荐系统是给用户u推荐一个个性化用户列表,上面的用户是u想要成为朋友的人。这意味着给定一个预测器Y^,我们应该为每个候选好友ui预测一个得分y^u,ui。为了避免符号的歧义,我们用f来表示用户的朋友。因此,用户u的前N个高分用户可以用下士计算:
T(u,N)=argmaxf∈U/{u}Ny^u,f(1)
其中上标N表示的是推荐的用户数目。
所提好友推荐方法
基于张量分解的用户-兴趣-好友模型
之前的研究工作表明社会化标签可以表征用户在Web上的兴趣[1]。因此我们提出如下假设。
假设1. 用户的标签表征用户的兴趣。
在此假设下,我们可以将T(u)视作用户u的兴趣集合,(u,t)的意思是用户u对t(如rock, pop)感兴趣。McPherso提出,用户更喜欢与其他有着相似兴趣的人交友。因此我们得到如下假设。
假设2. 用户与其他有着相似兴趣的人交友。
结合假设1和2,我们可以构建一个三维张量集合以对用户,用户的兴趣和好友之间的关联进行建模,如命题1所述。
命题1. ?f∈F(u),?t∈T(u)∩T(f)?(u,t,f)∈Ω
一个三维张量(u,t,f)意味着用户u可能是因为兴趣t与f成为好友。在Ω上给定一个预测器Y^,z^u,t,f1>z^u,t,f2意味着用户因为兴趣t更喜欢与f1交朋友而不是f2。那么计算y^u,f可以分解为计算z^u,t,f,?t∈T(u)的子任务:
y^u,f=∑t∈T(u)?(z^u,t,f)
其中?(?):Z^→Y^,表示由Z到Y的映射。接下来,我们通过将张量分解为三个低秩特征矩阵和一个核心张量的乘积来预测Z^,这三个低秩张量分别代表用户、兴趣和朋友。预测器Z^通过将核心张量和三个特征矩阵相乘得到:
Z^=C^×uU^×tT^×fF^
其中核心张量C^和特征矩阵U^,T^和F^是待学习的模型参数。参数表示为θ^=(C^,U^,T^,F^),且有如下规模:C^∈RkU×kT×kF,U^∈R|U|×kU,T^∈R|T|×kT,F^∈R|U|×kF。kU,kT和kF为对应的低秩特征的维度。那么给定参数θ^,z^u,t,f可以通过下式计算:
z^u,t,f=∑u~=1kU∑t~=1kT∑f~=1kFc^u~,t~,f~?u^u,u~?t^t,t~?f^f,f~(2)
学习模型参数
本文我们通过最大化排序统计指标AUC(在ROC曲线下的面积)利用一个最优化准则来找到最优的模型参数θ^,如式3和4所述:
argmaxθ^∑(u,t)∈OAUC(θ^,u,t)(3)
其中
AUC(θ^,u,t)=1|F+u,t||F?u,t|∑f+∈F+u,t∑f?∈F?u,tH0.5(z^u,t,f+?z^u,t,f?)(4)
其中
F+u,t={f|(u,t)∈O∧(u,t,f)∈Ω}
F?u,t={f|(u,t)∈O∧(u,t,f)?Ω}
其中H0.5是Heaviside函数。随后我们使用梯度下降算法来学习最优的模型参数。学习过程与[8]相似。
朋友排序
一旦学习到了θ^,我们就按照式(2)计算z^u,t,f。然后对于每个(u,t),我们得到一个排序列表ru,t={f1,...,fN|z^u,t,f1>...>z^u,t,fN}。但是{z^u,t,f}t∈T(u)不能直接用来排序以生成Top(u,N)。为了解决这个问题,我们用倒数排序融合方法作为函数?(?):
?(z^u,t,f)=1Δ+ru,t(f)(5)
其中Δ是一个固定的参数,ru,t(f)返回f在ru,t中的排序。最后,我们得到Top(u,N)={f1,...,fN|y^u,f1>...>y^u,fN}。(译注:这里感觉漏了一个步骤没有交待,对于用户u的所有(u,t),其中t∈T(u),将所有的?(z^u,t,f)进行聚合得到y^u,f,进而根据(1)式得到Top(u,N)。)
实验验证
本节,我们将所提方法与其它最优算法进行对比。
数据集
由于较少有数据集适合本文描述的推荐场景,我们从Last.fm上通过它的官方API收集到了从2011年4月份到2011年7月份的真实数据集。我们得到最终实验的数据集,我们随机抽取了1000个用户,然后收集了用户的朋友和所有用户的标签。在将无效记录删除后,实验数据集的特征如表1所示。