跨域社交推荐:如何透过用户社交信息“猜你喜欢”?

论文动机

在线平台一般分为两种,一种是信息导向的,比如一些电商的网站,强调 user-item 的相互作用;另一种是社交导向的,比如推特等提供社交网络服务,有丰富的 user-user 链接。虽然这两种 domain 是异构的,但是他们会共有一些用户,称为桥梁用户(bridge users),通过他们我们可以进行跨域社交推荐,也就是在社交网络中的一些潜在用户推荐信息 domain 中的相关 items。

当前大部分的 ­cross domain 的推荐方法都是对同构的域,而针对本文的 task,存在的困难有:

d47e62d2b349aca45e42305ed6714efbe5ed61d9 数据集中桥梁用户的不足
d47e62d2b349aca45e42305ed6714efbe5ed61d9 在信息域中的 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 模型)。

32485f4bd8c5597cbb31e2038ce1e4adfbb5db6f

本文认为,MF 的表现受限于使用内积来捕捉 user-item 交互作用;同样,在常规的对 attributes 的利用上,单纯的让用户 embedding 和 attribute embedding 相加,也不足以捕捉 user、item、attribute 之间的联系。

由于 task 是为社交网络中的用户进行跨域推荐,本文使用了基于表示学习(embedding)的方法,认为问题的关键在于如何将 item 和来自社交网络的用户映射到相同的 embedding 空间。

,等号右边分别是两个域各自的目标函数。由于两个域的用户只有少量的重合,本文给出的解决方案是分开学习两个域的 embedding,而强迫两个学习过程共享相同桥梁用户的 embedding。优化目标为e72d224906d55bb31ecdbbfe0293a3c3c893eb48

1. Learning of Information Domain

学习 cf 模型的参数,有两种目标函数:point-wise 和 pair-wise 目标函数,前者最小化预测分值和真实分值之间的损失,后者本质上是负采样,适合于本文中使用隐式反馈,同时要得到每个用户的个性化 item 排序的任务。

首先取三元组 (u,i,j),其中 u 是一个用户,i 是该用户评分过的项目 (yui = 1),j 是用户没有评分过的项目 (yuj = 0)。目标函数想要学到 (i,j) 的正确顺序:

6c4901457288e5a96c48340c79c24aae56227a6a

其中 yuij = yui – yuj,^yuij = ^yui – ^yuj,其中 ^yui 是预测打分值。

确定目标函数之后,我们来看预测值 ^yui 是通过怎样的模型得到的。本文在 Neural Collaborative Filtering 模型的基础上,进一步加入了 attribute 的信息,结构如下图所示:

f32ab162e05b301cd3877fc96483b7624318ff1a

输入层:输入四种信息的 id,用 one-hot 向量表示。

embedding:将四种信息分别进行 embedding。

pooling 层:由于 attributes 的数量不确定,embedding 后的向量集大小不确定,为了给后面的 nn 一个定长的信息,进行 pooling 操作。

由于最大\平均 pooling 不能捕捉用户和各 attributes 之间的交互作用,所以设计了一种 pairwise pooling 的方法

7a82739dfcc33a6db6e919d047800a16bcdcdadf

对项目也做类似处理,最后将 pu⊙qi 的结果作为后面 MLP 的输入,MLP 输出预测结果。

2. Learning of Social Domain

在社交域中,本文使用了半监督学习的方法将信息域中用户 embedding 结果从桥梁用户传播到非桥梁用户。这基于这样的一个假设:如果两个用户有很强的社交关系,那么他们可能会有相似的偏好,从而在 latent space 有相似的特征表示。

学习包括两部分:

平滑约束(smoothness constrain):定义了结构一致性损失,希望相邻的用户的表示相似;su',u'' 是两个用户社交关系的强度,du' 是节点 u' 的出度,称为平滑约束是因为为每个用户的特征表示除以了出度的开方,进行了平滑,如果没有这个处理,那么社交关系多的活跃用户将会产生更有效的传播。

57912a345e748bb80f15af226e9456ea86516c29

拟合约束:为了使两个域的 latent space 保持一致,迫使桥梁用户的两种表示接近,也就是拟合损失:

1553b596a19ce35cefd269d1bb0b2d2d15a72b07

训练完成后,将 pu' 输入信息域中的预测框架,得到预测 item 的排名。

实验结果

信息域数据集来自 trip.com,同时找到其中一些用户相关的 Facebook 和 Twitter 信息。评估指标为个性化排序的指标 AUC 和 Recall@k。

由于非桥梁用户没有评分信息,无法验证预测是否正确,所以使用了一部分的桥梁用户作为测试集。可以看到预测结果优于 state of art。

c2d208fe57af34c2fda721c86063e48c79451e46

评价

不同于传统推荐方法将社交信息作为用户的附加信息,在同一个域预测用户偏好,本文是在信息域中学习了用户偏好,然后将其沿社交网络进行了传播,使原本不在该域的用户也可以学到他的偏好信息,角度新颖。

关于异构的推荐,是一个很有意思的 task,值得去 follow。


原文发布时间为:2018-05-9
本文作者:黄若孜
本文来自云栖社区合作伙伴“ PaperWeekly”,了解相关信息可以关注“ PaperWeekly”。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值