本期推荐的论文笔记来自 PaperWeekly 社区用户 @spider。不同于传统推荐方法将社交信息作为用户的附加信息,在同一个域预测用户偏好。本文选择在信息域中学习用户偏好,然后将其沿社交网络进行传播,使原本不在该域的用户也可以学到他的偏好信息,角度新颖。
关于作者:黄若孜,复旦大学软件学院硕士生,研究方向为推荐系统。
■ 论文 | Item Silk Road: Recommending Items from Information Domains to Social Users
■ 链接 | http://www.paperweekly.site/papers/1885
■ 作者 | Xiang Wang / Xiangnan He / Liqiang Nie / Tat-Seng Chua
论文动机
在线平台一般分为两种,一种是信息导向的,比如一些电商的网站,强调 user-item 的相互作用;另一种是社交导向的,比如推特等提供社交网络服务,有丰富的 user-user 链接。虽然这两种 domain 是异构的,但是他们会共有一些用户,称为桥梁用户(bridge users),通过他们我们可以进行跨域社交推荐,也就是在社交网络中的一些潜在用户推荐信息 domain 中的相关 items。
当前大部分的 cross domain 的推荐方法都是对同构的域,而针对本文的 task,存在的困难有:
数据集中桥梁用户的不足
在信息域中的 attribute 充足,但是很少有人关注利用这些 attribute 来提高对社交网络中用户的推荐结果
本文提出了一种称为 Neural Social Collaborative Ranking (NSCR) 的方法来利用信息域中 user-item connection 和社交域中的 user-user connection。在信息域,利用属性增强对 user 和 item embedding 的效果,在社交域中,将桥梁用户的 embedding 结果通过社交网络传播给非桥梁用户。
问题描述
在信息域中,用户集合 U1,项目集合 I,用户给项目的打分信息为矩阵 Y,关于用户和项目的 attributes 分别为 Gu 和 Gi 表示;在社交域中,用户集合 U2,社交关系为 S。两个域的桥梁用户为 U=U1∩U2。
输入:信息域 {U1,I,Y,Gu,Gi},社交域 {S,U2},U1∩U2 非空。
输出:为社交域中每一个用户 u' 确定一个对 items 的排名函数。
NSCR Solution
矩阵分解模型(MF)是推荐系统重要的一个模型,这里先引入一个观点,即 CF 模型可以看做是一个浅层神经网络模型。
如下图所示,我们输入用户\项目 ID 的 one-hot 的表示,然后将其映射到一个 embedding 层,将两者 embedding 向量进行逐元素相乘,得到向量 h(如果直接将 h 映射到一个打分值的话,那么这个模型就是 MF 模型)。
本文认为,MF 的表现受限于使用内积来捕捉 user-item 交互作用;同样,在常规的对 attributes 的利用上,单纯的让用户 embedding 和 attribute embedding 相加,也不足以捕捉 user、item、attribute 之间的联系。
由于 task 是为社交网络中的用户进行跨域推荐,本文使用了基于表示学习(embedding)的方法,认为问题的关键在于如何将 item 和来自社交网络的用户映射到相同的 embedding 空间。
由于两个域的用户只有少量的重合,本文给出的解决方案是分开学习两个域的 embedding,而强迫两个学习过程共享相同桥梁用户的 embedding。优化目标为,等号右边分别是两个域各自的目标函数。
1. Learning of Information Domain
学习 cf 模型的参数,有两种目标函数:point-wise 和 pair-wise 目标函数,前者最小化预测分值和真实分值之间的损失,后者本质上是负采样,适合于本文中使用隐式反馈,同时要得到每个用户的个性化 item 排序的任务。
首先取三元组 (u,i,j),其中 u 是一个用户,i 是该用户评分过的项目 (yui = 1),j 是用户没有评分过的项目 (yuj = 0)。目标函数想要学到 (i,j) 的正确顺序:
其中 yuij = yui – yuj,^yuij = ^yui – ^yuj,其中 ^yui 是预测打分值。
确定目标函数之后,我们来看预测值 ^yui 是通过怎样的模型得到的。本文在 Neural Collaborative Filtering 模型的基础上,进一步加入了 attribute 的信息,结构如下图所示:
输入层:输入四种信息的 id,用 one-hot 向量表示。
embedding:将四种信息分别进行 embedding。
pooling 层:由于 attributes 的数量不确定,embedding 后的向量集大小不确定,为了给后面的 nn 一个定长的信息,进行 pooling 操作。
由于最大\平均 pooling 不能捕捉用户和各 attributes 之间的交互作用,所以设计了一种 pairwise pooling 的方法:
对项目也做类似处理,最后将 pu⊙qi 的结果作为后面 MLP 的输入,MLP 输出预测结果。
2. Learning of Social Domain
在社交域中,本文使用了半监督学习的方法将信息域中用户 embedding 结果从桥梁用户传播到非桥梁用户。这基于这样的一个假设:如果两个用户有很强的社交关系,那么他们可能会有相似的偏好,从而在 latent space 有相似的特征表示。
学习包括两部分:
平滑约束(smoothness constrain):定义了结构一致性损失,希望相邻的用户的表示相似;su',u'' 是两个用户社交关系的强度,du' 是节点 u' 的出度,称为平滑约束是因为为每个用户的特征表示除以了出度的开方,进行了平滑,如果没有这个处理,那么社交关系多的活跃用户将会产生更有效的传播。
拟合约束:为了使两个域的 latent space 保持一致,迫使桥梁用户的两种表示接近,也就是拟合损失:
训练完成后,将 pu' 输入信息域中的预测框架,得到预测 item 的排名。
实验结果
信息域数据集来自 trip.com,同时找到其中一些用户相关的 Facebook 和 Twitter 信息。评估指标为个性化排序的指标 AUC 和 Recall@k。
由于非桥梁用户没有评分信息,无法验证预测是否正确,所以使用了一部分的桥梁用户作为测试集。可以看到预测结果优于 state of art。
评价
不同于传统推荐方法将社交信息作为用户的附加信息,在同一个域预测用户偏好,本文是在信息域中学习了用户偏好,然后将其沿社交网络进行了传播,使原本不在该域的用户也可以学到他的偏好信息,角度新颖。
关于异构的推荐,是一个很有意思的 task,值得去 follow。