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

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

摘要

社交网络中快速增长的用户对现有好友推荐系统提出了挑战。本文我们用张量分解模型基于用户的标签行为信息提出了一种新的推荐框架,解决社交网络中的好友推荐问题。该研究有两个主要贡献:(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)。这种方法用标签来代表用户的兴趣,基于他们兴趣的KLKL散度来推荐用户。与之前的方法不同的是,所提方法同时考虑了链接关系和用户的标签内容。

问题描述

  通常一个社会化标签系统由实体(用户、标签和资源)和实体之间的关系(如用户之间的友谊)组成。我们定义虽有用户集合U={ui}Ii=1U=\left \{ u_i \right \}_{i=1}^{I},所有标签集合T={tj}Jj=1T=\left \{ t_j \right \}_{j=1}^{J}和所有资源集合R={rk}Kk=1R=\left \{ r_k \right \}_{k=1}^{K}。用户-标签关系(u,t)∈O⊆U×T(u,t) \in O \subseteq U \times T意味着用户uu用标签tt注释过资源。用户uu使用过的所有标签集合用T(u)T(u)表示。用户-好友(u,ui)∈P⊆U×U(u,u_i) \in P \subseteq U \times U意味着uiu_i是用户uu的一个好友。用户uu的所有好友集合用F(u)F(u)表示。
  给定一个用户uu,好友推荐系统是给用户uu推荐一个个性化用户列表,上面的用户是uu想要成为朋友的人。这意味着给定一个预测器Y^\hat{Y},我们应该为每个候选好友uiu_i预测一个得分y^u,ui\hat{y}_{u,u_i}。为了避免符号的歧义,我们用ff来表示用户的朋友。因此,用户uu的前N个高分用户可以用下士计算:
  

T(u,N)=argmaxf∈U/{u}Ny^u,f(1)

\textit{T}(u,N) = \arg \max_{f \in U / \left \{ u \right \}}^N \hat{y}_{u,f} (1)
其中上标N表示的是推荐的用户数目。  

所提好友推荐方法

基于张量分解的用户-兴趣-好友模型

  之前的研究工作表明社会化标签可以表征用户在Web上的兴趣[1]。因此我们提出如下假设。
  假设1. 用户的标签表征用户的兴趣。
  在此假设下,我们可以将T(u)T(u)视作用户uu的兴趣集合,(u,t)(u,t)的意思是用户uu对tt(如rock, pop)感兴趣。McPherso提出,用户更喜欢与其他有着相似兴趣的人交友。因此我们得到如下假设。
  假设2. 用户与其他有着相似兴趣的人交友。
  结合假设1和2,我们可以构建一个三维张量集合以对用户,用户的兴趣和好友之间的关联进行建模,如命题1所述。
  命题1. ∀f∈F(u),∀t∈T(u)∩T(f)⇒(u,t,f)∈Ω\forall f \in F(u), \forall t \in T(u) \cap T(f) \Rightarrow (u,t,f) \in \Omega
  一个三维张量(u,t,f)(u,t,f)意味着用户uu可能是因为兴趣tt与ff成为好友。在Ω\Omega上给定一个预测器Y^\hat{Y},z^u,t,f1>z^u,t,f2\hat{z}_{u,t,f_1} > \hat{z}_{u,t,f_2}意味着用户因为兴趣tt更喜欢与f1f_1交朋友而不是f2f_2。那么计算y^u,f\hat{y}_{u,f}可以分解为计算z^u,t,f,∀t∈T(u)\hat{z}_{u,t,f}, \forall t \in T(u)的子任务:

y^u,f=∑t∈T(u)ϕ(z^u,t,f)

\hat{y}_{u,f} = \sum_{t \in T(u)} \phi(\hat{z}_{u,t,f})
其中 ϕ(⋅):Z^→Y^\phi(\cdot): \hat{Z} \rightarrow \hat{Y},表示由Z到Y的映射。接下来,我们通过将张量分解为三个低秩特征矩阵和一个核心张量的乘积来预测 Z^\hat{Z},这三个低秩张量分别代表用户、兴趣和朋友。预测器 Z^\hat{Z}通过将核心张量和三个特征矩阵相乘得到:

Z^=C^×uU^×tT^×fF^

\hat{Z} = \hat{C} \times _u\hat{U} \times _t\hat{T} \times _f\hat{F}
其中核心张量 C^\hat{C}和特征矩阵 U^\hat{U}, T^\hat{T}和 F^\hat{F}是待学习的模型参数。参数表示为 θ^=(C^,U^,T^,F^)\hat{\theta} = (\hat{C},\hat{U}, \hat{T}, \hat{F}),且有如下规模: C^∈RkU×kT×kF\hat{C} \in \mathbb{R}^{k_U \times k_T \times k_F}, U^∈R|U|×kU\hat{U} \in \mathbb{R}^{|U| \times k_U }, T^∈R|T|×kT\hat{T} \in \mathbb{R}^{|T| \times k_T }, F^∈R|U|×kF\hat{F} \in \mathbb{R}^{|U| \times k_F }。 kUk_U, kTk_T和 kFk_F为对应的低秩特征的维度。那么给定参数 θ^\hat{\theta}, z^u,t,f\hat{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)

\hat{z}_{u,t,f} = \sum_{\tilde{u}=1}^{k_U}\sum_{\tilde{t}=1}^{k_T}\sum_{\tilde{f}=1}^{k_F} \hat{c}_{\tilde{u}, \tilde{t}, \tilde{f}} \cdot \hat{u}_{u, \tilde{u}} \cdot \hat{t}_{t, \tilde{t}} \cdot \hat{f}_{f, \tilde{f}} (2)

学习模型参数

  本文我们通过最大化排序统计指标AUC(在ROC曲线下的面积)利用一个最优化准则来找到最优的模型参数θ^\hat{\theta},如式3和4所述:
  

argmaxθ^∑(u,t)∈OAUC(θ^,u,t)(3)

\arg \max _{\hat{\theta}} \sum _{(u,t) \in O} AUC(\hat{\theta},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)

AUC(\hat{\theta},u,t) = \frac{1}{|F_{u,t}^+||F_{u,t}^-|} \sum_{f^+ \in F_{u,t}^+}\sum_{f^- \in F_{u,t}^-} H_{0.5}(\hat{z}_{u,t,f^+} - \hat{z}_{u,t,f^-}) (4)
其中

F+u,t={f|(u,t)∈O∧(u,t,f)∈Ω}

F_{u,t}^+=\left \{ f|(u,t) \in O \wedge (u,t,f) \in \Omega \right \}

F−u,t={f|(u,t)∈O∧(u,t,f)∉Ω}

F_{u,t}^-=\left \{ f|(u,t) \in O \wedge (u,t,f) \notin \Omega \right \}
其中 H0.5H_{0.5}是Heaviside函数。随后我们使用梯度下降算法来学习最优的模型参数。学习过程与[8]相似。

朋友排序

  一旦学习到了θ^\hat{\theta},我们就按照式(2)计算z^u,t,f\hat{z}_{u,t,f}。然后对于每个(u,t)(u,t),我们得到一个排序列表ru,t={f1,...,fN|z^u,t,f1>...>z^u,t,fN}r_{u,t}=\left \{f_1,...,f_N | \hat{z}_{u,t,f_1} > ... > \hat{z}_{u,t,f_N}\right \}。但是{z^u,t,f}t∈T(u)\left \{ \hat{z}_{u,t,f} \right \}_{t \in T(u)}不能直接用来排序以生成Top(u,N)Top(u,N)。为了解决这个问题,我们用倒数排序融合方法作为函数ϕ(⋅)\phi(\cdot):

ϕ(z^u,t,f)=1Δ+ru,t(f)(5)

\phi( \hat{z}_{u,t,f}) = \frac{1}{\Delta + r_{u,t}(f)} (5)
其中 Δ\Delta是一个固定的参数, ru,t(f)r_{u,t}(f)返回 ff在ru,tr_{u,t}中的排序。最后,我们得到 Top(u,N)={f1,...,fN|y^u,f1>...>y^u,fN}Top(u,N) = \left \{ f_1,...,f_N|\hat{y}_{u,f_1} > ... > \hat{y}_{u,f_N} \right \}。(译注:这里感觉漏了一个步骤没有交待,对于用户 uu的所有(u,t)(u,t),其中 t∈T(u)t\in T(u),将所有的 ϕ(z^u,t,f)\phi( \hat{z}_{u,t,f})进行聚合得到 y^u,f\hat{y}_{u,f},进而根据(1)式得到 Top(u,N)Top(u,N)。)

实验验证

  本节,我们将所提方法与其它最优算法进行对比。

数据集

  由于较少有数据集适合本文描述的推荐场景,我们从Last.fm上通过它的官方API收集到了从2011年4月份到2011年7月份的真实数据集。我们得到最终实验的数据集,我们随机抽取了1000个用户,然后收集了用户的朋友和所有用户的标签。在将无效记录删除后,实验数据集的特征如表1所示。

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

  1. 基于张量分解和关系约束的多种类型的MicroRNA-疾病预测

    今天给大家介绍的文章是"Tensor Decomposition with Relational Constraints for Predicting Multiple Types of M ...

  2. 论文浅尝 | TuckER:基于张量分解的知识图谱补全

    笔记整理:孙泽群,南京大学计算机科学与技术系,博士研究生. 论文链接:https://arxiv.org/abs/1901.09590   背景 知识图谱是图结构的数据库,以三元组(es, r, eo ...

  3. 社交网络中基于位置的影响力最大化 CIKM2015 译文

    社交网络中基于位置的影响力最大化 摘要 这篇文章的目的是通过研究在LBSN平台中基于位置的影响最大化来实现O2O模式上的产品推广.随着O2O环境下存在的消费行为,传统的线上影响力扩散模型不能准确描述产 ...

  4. 基于张量分解的遥感图像恢复及常用高光谱遥感数据集

    本文为初期学习总结,本篇文章总结了遥感高光谱图像研究背景.高光谱图像噪声的分类,介绍了基于张量的图像恢复方法及近年来对于张量分解的相关研究,总结了几个常用的图像评价指标,总结了高光谱遥感图像常用的数据 ...

  5. Python中的张量分解

    https://www.toutiao.com/a6643769342720737795/ 2019-01-07 22:58:12 本文是讲解如何在Python中实现CP张量分解,包括张量分解的简要介 ...

  6. 协同过滤与隐语义模型推荐系统实例3: 基于矩阵分解(SVD)的推荐

    [ 协同过滤与隐语义模型推荐系统实例1: 数据处理 ] [ 协同过滤与隐语义模型推荐系统实例2: 基于相似度的推荐 ] 隐语义模型推荐 基于矩阵分解(SVD)的推荐 # 先计算歌曲被当前用户播放量/用 ...

  7. 《推荐系统笔记(十四)》矩阵分解(MF)以及基于矩阵分解的topN推荐

    前言 用户评分矩阵往往十分稀疏,为了对这种稀疏矩阵进行补全,充分利用已有数据,我们可以采用矩阵分解办法.实际上,一旦矩阵补全,相当于预测出用户对未购买物品的评分,基于这些评分,我们就可以对任何用户进行 ...

  8. 交通物流模型 | Python实现基于张量分解的交通流量时空模式挖掘(出租车车载GPS数据、公交卡刷卡数据、POI的分布数据)

    文章目录 效果一览 文章概述 研究内容 源码设计 参考资料 效果一览 文章概述 一般出行行程通常都由某种明确目的驱使,例如上班.购物或娱乐,出行的起始区域因其承担功能的不同,通常能够反映出用户的出行目 ...

  9. 基于社区划分和用户相似度的好友推荐

    社交型网络(SNS, Social Networking Services)以六度分割理论[1]为基础,构建好友圈并通过"好友的好友"来无限扩张人脉.社交网络在近几年获得了空前的发 ...

最新文章

  1. python excel操作单元格_python 操作excel表格的方法
  2. Windows Nano Server安装配置详解07:部署IIS
  3. vue-cli + lib-flexible + px2rem实现px自动转化为rem
  4. 机器学习-聚类之K均值(K-means)算法原理及实战
  5. php文件夹重命名,PHP重命名和移动目录
  6. Tomcat的BIO、NIO、ARP模式
  7. LeetCode-94. 二叉树的中序遍历
  8. java大数据组件Kafka
  9. 英特尔“Beach”图片泄露 Optane SSD路线图成关注焦点
  10. 同一个项目的同一DLL多版本的兼容问题
  11. 学习编译原理遇到的问题
  12. 基于Flink建设流批一体实时数仓
  13. 10个空手套白狼案例:不花一分钱为自己赚大钱
  14. Java网络爬虫Spider
  15. 2021/10/9正睿7测Day.6
  16. 计算机知识利用率,电脑CPU使用率怎么看 查看CPU使用率的快速方法图解
  17. JAVA面向对象(OOP)-类和对象
  18. 大一下实验总结(三)
  19. 【转】委外加工的核算流程
  20. c++控制台工程,窗口最小化

热门文章

  1. protal服务器获取不到设备信息,Poral网页认证提示portal服务器获取不到设备信息或者设备没有回应req_info报文的解决办法...
  2. Win10 1809美化
  3. 惠普1005w打印机使用说明书_【惠普NS1005w 一体机功能展示】卡槽|色带|APP|按钮|收纳_摘要频道_什么值得买...
  4. [2015国家集训队互测]口胡
  5. 华为设备三层交换机与路由器对接上网
  6. 如何组建游戏制作团队?团队人员如何寻找?
  7. 参加第一场多校大一训练赛后的感想
  8. 坦克大战第一个不爆炸
  9. JavaScript对象 1
  10. ThinkPHP php 仿千图网源码_2018最新友价内核