社交网络中基于张量分解的好友推荐

社交网络中基于张量分解的好友推荐

  • 摘要
  • 引言
  • 相关研究
  • 问题描述
  • 所提好友推荐方法
  • 实验验证
  • 结论

摘要

社交网络中快速增长的用户对现有好友推荐系统提出了挑战。本文我们用张量分解模型基于用户的标签行为信息提出了一种新的推荐框架,解决社交网络中的好友推荐问题。该研究有两个主要贡献:(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所示。

时间: 2024-10-17 18:51:14

社交网络中基于张量分解的好友推荐的相关文章

基于两两交互张量分解模型的个性化标签推荐

基于PITF的个性化标签推荐 摘要 关键词 引言 相关工作 个性化标签推荐 非个性化标签推荐 张量分解模型 成对交互模型 个性化标签推荐 形式化定义 数据分析 标签推荐的贝叶斯个性化排序BPR BPR最优化准则 BPR学习算法 张量分解模型 塔克分解模型TDTF 规范化分解模型CDTF 成对交互张量分解模型PITF TDCD和PITF之间的关系 实验评价 数据集 评价方法 实验结果 学习运行时间 预测质量 ECMLPKDD 2009知识发现挑战赛 结论和未来工作 基于PITF的个性化标签推荐 摘

简单的基于矩阵分解的推荐算法-PMF, NMF

介绍: 推荐系统中最为主流与经典的技术之一是协同过滤技术(Collaborative Filtering),它是基于这样的假设:用户如果在过去对某些项目产生过兴趣,那么将来他很可能依然对其保持热忱.其中协同过滤技术又可根据是否采用了机器学习思想建模的不同划分为基于内存的协同过滤(Memory-based CF)与基于模型的协同过滤技术(Model-based CF).其中基于模型的协同过滤技术中尤为矩阵分解(Matrix Factorization)技术最为普遍和流行,因为它的可扩展性极好并且易

社会友谊和人群移动:基于位置的社交网络中的用户移动(一)

原文标题:Friendship and Mobility: User Movement In Location-Based Social Networks 作者单位:斯坦福大学    发表日期:2011年 会议:第十七届 ACM SIGKDD 国际会议--知识发现和数据挖掘 引用:Cho E, Myers S A, Leskovec J. Friendship and mobility: user movement in location-based social networks[C]// P

PeopleRank从社交网络中发现个体价值

阅读导读: 1.什么是PeopleRank? 2.PeopleRank和PageRank有什么区别? 3.PR分析微博数据时,如何对微博单个账号评分? 4.R语言如何递归计算矩阵特征值? 5.如何计算粉丝的关注度? 1. PeopleRank和PageRank PageRank让Google成为搜索领域的No.1,也是当今最有影响力的互联网公司之一,用技术创新改变人们的生活.PageRank主要用于网页评分计算,把互联网上的所有网页都进行打分,给网页价值的体现. 自2012以来,中国开始进入社交

Mahout分布式运行实例:基于矩阵分解的协同过滤评分系统

Apr 08, 2014  Categories in tutorial tagged with Mahout hadoop 协同过滤  Joe Jiang 前言:之前配置Mahout时测试过一个简单的推荐例子,当时是在Eclipse上运行的,由于集成插件的缘故,所以一切进行的都比较顺利,唯一不足的是那是单机运行的,没有急于分布式系统处理.所以基于测试分布式处理环境的目的,下午找了一个实例来运行,推荐系统原型是一个电影评分的系统. 一.问题描述 对于协同过滤(Collaborative Filt

基于用户的协同过滤推荐算法原理和实现

在推荐系统众多方法中,基于用户的协同过滤推荐算法是最早诞生的,原理也较为简单.该算法1992年提出并用于邮件过滤系统,两年后1994年被 GroupLens 用于新闻过滤.一直到2000年,该算法都是推荐系统领域最著名的算法. 本文简单介绍基于用户的协同过滤算法思想以及原理,最后基于该算法实现园友的推荐,即根据你关注的人,为你推荐博客园中其他你有可能感兴趣的人. 基本思想 俗话说"物以类聚.人以群分",拿看电影这个例子来说,如果你喜欢<蝙蝠侠>.<碟中谍>.&l

基于Spark ALS构建商品推荐引擎

基于Spark ALS构建商品推荐引擎 一般来讲,推荐引擎试图对用户与某类物品之间的联系建模,其想法是预测人们可能喜好的物品并通过探索物品之间的联系来辅助这个过程,让用户能更快速.更准确的获得所需要的信息,提升用户的体验.参与度以及物品对用户的吸引力. 在开始之前,先了解一下推荐模型的分类: 1.基于内容的过滤:利用物品的内容或是属性信息以及某些相似度定义,求出与该物品类似的物品 2.协同过滤:利用大量已有的用户偏好来估计用户对其未接触过的物品的喜好程度 3.矩阵分解(包括显示矩阵分解.隐式矩阵

基于矩阵分解的隐因子模型

推荐系统是现今广泛运用的一种数据分析方法.常见的如,“你关注的人也关注他”,“喜欢这个物品的用户还喜欢..”“你也许会喜欢”等等. 常见的推荐系统分为基于内容的推荐与基于历史记录的推荐. 基于内容的推荐,关键在于提取到有用的用户,物品信息,以此为特征向量来进行分类,回归. 基于历史记录的推荐,记录用户的评分,点击,收藏等等行为,以此来判断. 基于内容的推荐对于用户物品的信息收集度要求比较高,而许多情况下很难得到那么多的有用信息.而基于历史记录的方法,则利用一些常见的历史记录,相比与基于内容的方法

基于矩阵分解的推荐系统应用

使用MATLAB尝试了随机梯度下降的矩阵分解方法,实现了一个比较简单的推荐系统的原理. 常用推荐系统的方法有协同过滤,    基于物品内容过滤等等. 这次是用的矩阵分解模型属于协同过滤的一种方法,大致原理是通过一定数量的因子来描述各个用户的喜好和各个物品的属性. 通过随机梯度下降法分解后得到两个矩阵,一个是用户因子矩阵,另一个是物品因子矩阵. 这两个矩阵相乘可以得到所有用户对所有电影的预测评分. 以Movie-Lens数据集举例,这包含943个用户对1682部电影的十万条评分. 第一列用户编号,