以下内容纯属个人见解,欢迎大家交流。
发布于2019 SIGIR
1 motivation
1.1 问题
传统上,协同过滤(CF)提供了一种从用户-项目交互历史中了解用户和项目嵌入的方法,但是,由于用户行为数据的稀疏性,性能受到了限制。
对于一个社交平台的每个用户来说,其潜在嵌入受到其信任用户的影响,而这些信任用户又受到信任用户的社会关系的影响。随着社会影响力在社交网络中递归传播和扩散,每个用户的兴趣也在递归过程中发生变化。然而,目前的社交推荐模型只是利用每个用户的本地邻居来开发静态模型,而没有模拟全局社交网络中的递归扩散,导致推荐性能不佳。
1.2 解决方法
我们提出了一个深度影响传播模型,以刺激用户如何受递归社会扩散过程的影响进行社会推荐。对于每个用户来说,扩散过程从最初的嵌入开始,融合相关特性和捕获潜在行为偏好的free用户潜在向量。我们提出的模型的关键思想是,我们设计了一个分层的影响传播结构,以模拟用户的潜在嵌入如何随着社会扩散过程的继续而演变。
2 相关介绍
社交推荐系统是利用用户之间的社交网络来缓解数据稀疏问题,提高推荐性能的一个很有前途的方向。这些社会推荐方法是基于社会影响理论,即联系在一起的人会相互影响,导致社会联系之间的兴趣相似。尽管通过考虑每个用户的一阶局部邻居来提高性能,但我们认为,对于每个用户来说,社交扩散并不是一次从用户的邻居扩散到该用户,而是呈现出一种动态的递归效应来影响每个用户的嵌入。
具体来说,随着社会影响力传播过程的开始,每个用户的第一次潜在嵌入都会受到其信任连接的初始嵌入的影响。随着递归影响随时间扩散,每个用户在第k次迭代时的潜在嵌入会在(k?1)次迭代时受到其信任邻居的影响。因此,社会影响在社会网络中递归传播和扩散。相应地,在递归过程中,每个用户的兴趣都会发生变化。精确地模拟全局社交网络中的递归扩散过程,可以更好地模拟每个用户的嵌入,从而提高社交推荐的性能。
DiffNet模型背后的关键思想是为用户精心设计的分层影响扩散结构,该结构建模了用户的潜在嵌入如何随着社会扩散过程的继续而演变。具体地说,扩散过程开始于每个用户的初始嵌入到融合每个用户的特性和捕获潜在行为偏好的自由用户潜在向量之上。对于物品方面,由于物品在社交网络中不传播,每个物品的嵌入也被自由物品潜在嵌入和物品特征融合。将影响扩散到预定义的第k个扩散步骤,得到第k层用户兴趣嵌入。
3 符号说明
用户、物品集合分别为。为user-item交互矩阵,social graph是一个无向图,S为用户关系矩阵,1为信任,0为不信任。
用户属性矩阵为,物品属性矩阵为
4 模型介绍
4.1 embedding layer
分别表示用户、物品的free embedding集合,捕获用户和项目的协作性潜在表示。分别表示用户和物品的free embedding。
4.2 Fusion Layer
对于一个用户,分别为free embedding和特征向量,利用一个全联接进行融合,公式如下:
其中是一个非线性的激活函数,省略了偏执项。类似的,对于一个物品的融合如下所示:
4.3 Influence Diffusion Layers
对于用户,为该模块的输入向量,该模块一共有层,其中第的输入为,具体计算为:
注意:DiffNet只在influence diffusion layers扩散用户的潜在矢量,不进行任何项目矢量扩散建模。这是非常合理的,因为项目潜在嵌入是静态的,不会在社交网络中传播。
4.4 predictor
4.5 trianing
采用pair-wise,每次迭代过程中,1个正样例随机抽取10个负样例。
在数据预处理步骤中,对于两个数据集,我们过滤掉了评分记录小于2次和2个社交链接的用户,删除了评分小于2次的项目。我们随机选择10%的数据进行测试。在剩下的90%数据中,为了调整参数,我们从训练数据中选取10%作为验证集
5 结果
对于这两个度量标准,值越大,性能越好。由于没有评级的物品太多,为了减少计算成本,对于每个用户,我们每次随机抽取1000个未评级的物品,并在排序过程中将它们与用户喜欢的正的物品结合起来。我们重复这个程序10次,并报告平均排名结果。