论文《Session-based Social Recommendation via Dynamic Graph Attention Networks》阅读

论文概况

本文是2019年WSDM上的一篇论文,该篇文章聚焦于使用RNN、GNN、注意力机制来解决会话社交推荐问题

Introduction

作者提出了几个问题

  • 用户兴趣是不断变化的,同时用户兴趣也受到朋友影响
  • 当前推荐方法只关注用户动态兴趣或者社交影响,没有一个方法将他们们同时考虑

对于上述问题,作者提出了新的推荐方法:(1)同时学习用户动态兴趣与社交影响(2)提出了一种新的基于动态图注意网络的推荐方法,用于建模动态用户兴趣和上下文相关的社交影响,该方法可以有效地扩展到大型数据集(3)使用双线性函数来捕获项目之间的特征相关性。

Method

在这里插入图片描述在这里插入图片描述

A.Dynamic Individual Interests

设用户为U,每个用户都有连续的会话集 I T u = { S ⃗ 1 u , S ⃗ 2 u , … , S ⃗ T u } I_{T}^{u}=\left\{\vec{S}_{1}^{u}, \vec{S}_{2}^{u}, \ldots, \vec{S}_{T}^{u}\right\} ITu={S 1u,S 2u,,S Tu}每个会话中包含若干项目 { i t , 1 u , i t , 2 u , … , i t , N u , t u } \left\{i_{t, 1}^{u}, i_{t, 2}^{u}, \ldots, i_{t, N_{u, t}}^{u}\right\} {it,1u,it,2u,,it,Nu,tu}对于用户u,给定新的对话 S ⃗ T + 1 u = { i T + 1 , 1 u , … , i T + 1 , n u } \vec{S}_{T+1}^{u}=\left\{i_{T+1,1}^{u}, \ldots, i_{T+1, n}^{u}\right\} S T+1u={iT+1,1u,,iT+1,nu}
利用RNN来获取用户动态兴趣的表征
h n = f ( i T + 1 , n u , h n − 1 ) (1) h_{n}=f\left(i_{T+1, n}^{u}, h_{n-1}\right)\tag{1} hn=f(iT+1,nu,hn1)(1)
利用LSTM来按顺序整合近期会话项目
x n = σ ( W x [ h n − 1 , i T + 1 , n u ] + b x ) f n = σ ( W f [ h n − 1 , i T + 1 , n u ] + b f ) o n = σ ( W o [ h n − 1 , i T + 1 , n u ] + b o ) c ~ n = tanh ⁡ ( W c [ h n − 1 , i T + 1 , n u ] + b c ) c n = f n ⊙ c n − 1 + x n ⊙ c ~ n h n = o n ⊙ tanh ⁡ ( c n ) (2) \begin{aligned} x_{n} &=\sigma\left(\mathbf{W}_{x}\left[h_{n-1}, i_{T+1, n}^{u}\right]+b_{x}\right) \\ f_{n} &=\sigma\left(\mathbf{W}_{f}\left[h_{n-1}, i_{T+1, n}^{u}\right]+b_{f}\right) \\ o_{n} &=\sigma\left(\mathbf{W}_{o}\left[h_{n-1}, i_{T+1, n}^{u}\right]+b_{o}\right) \\ \tilde{c}_{n} &=\tanh \left(\mathbf{W}_{c}\left[h_{n-1}, i_{T+1, n}^{u}\right]+b_{c}\right) \\ c_{n} &=f_{n} \odot c_{n-1}+x_{n} \odot \tilde{c}_{n} \\ h_{n} &=o_{n} \odot \tanh \left(c_{n}\right) \end{aligned}\tag{2} xnfnonc~ncnhn=σ(Wx[hn1,iT+1,nu]+bx)=σ(Wf[hn1,iT+1,nu]+bf)=σ(Wo[hn1,iT+1,nu]+bo)=tanh(Wc[hn1,iT+1,nu]+bc)=fncn1+xnc~n=ontanh(cn)(2)

B.Representing Friends’ Interests

朋友的兴趣也分为短期兴趣和长期兴趣,二者都会影响用户喜好。
短期喜好还是用近期会话通过RNN来计算
s k s = r N k , T = f ( i T , N k , T k , r N k , T − 1 ) (2) s_{k}^{s}=r_{N_{k, T}}=f\left(i_{T, N_{k, T}}^{k}, r_{N_{k, T-1}}\right)\tag{2} sks=rNk,T=f(iT,Nk,Tk,rNk,T1)(2)
因为长期兴趣不随时间发生巨大变动,我们用一个单独的向量来表示长期兴趣,利用用户嵌入来表示用户k的长期兴趣
s k l = W u [ k , : ] (3) s_{k}^{l}=\mathbf{W}_{u}[k,:]\tag{3} skl=Wu[k,:](3)
使用非线性变换连接朋友的短期和长期偏好
s k = ReLU ⁡ ( W 1 [ s k s ; s k l ] ) (4) s_{k}=\operatorname{ReLU}\left(\mathbf{W}_{1}\left[s_{k}^{s} ; s_{k}^{l}\right]\right)\tag{4} sk=ReLU(W1[sks;skl])(4)

C.Context-dependent Social Influences

首先构建会话图,单纯的待预测用户作为中心点连接所有朋友,也没有权重关系。待预测用户的初始向量为 h u ( 0 ) = h n h_{u}^{(0)}=h_{n} hu(0)=hn,其余朋友点的初始向量为 { h k ( 0 ) = s k , k ∈ N ( u ) } \left\{h_{k}^{(0)}=s_{k}, k \in N(u)\right\} {hk(0)=sk,kN(u)}在这里插入图片描述每一轮GNN利用用户与朋友喜好的相似度来计算注意力,得到用户的社交影响
α u k ( l ) = exp ⁡ ( f ( h u ( l ) , h k ( l ) ) ) ∑ j ∈ N ( u ) ∪ { u } exp ⁡ ( f ( h u ( l ) , h j ( l ) ) ) (5) \alpha_{u k}^{(l)}=\frac{\exp \left(f\left(h_{u}^{(l)}, h_{k}^{(l)}\right)\right)}{\sum_{j \in N(u) \cup\{u\}} \exp \left(f\left(h_{u}^{(l)}, h_{j}^{(l)}\right)\right)}\tag{5} αuk(l)=jN(u){u}exp(f(hu(l),hj(l)))exp(f(hu(l),hk(l)))(5)
h ~ u ( l ) = ∑ k ∈ N ( u ) ∪ { u } α u k ( l ) h k ( l ) (6) \tilde{h}_{u}^{(l)}=\sum_{k \in N(u) \cup\{u\}} \alpha_{u k}^{(l)} h_{k}^{(l)}\tag{6} h~u(l)=kN(u){u}αuk(l)hk(l)(6)

D.Recommendation

将短期兴趣与社交影响级联,得到用户最终的兴趣
h ^ n = W 2 [ h n ; h u ( L ) ] (7) \hat{h}_{n}=\mathbf{W}_{2}\left[h_{n} ; h_{u}^{(L)}\right]\tag{7} h^n=W2[hn;hu(L)](7)
利用该向量对其他物品做点积进行用户兴趣预测
p ( y ∣ i T + 1 , 1 u , … , i T + 1 , n u ; { S ⃗ T k , k ∈ N ( u ) } ) = exp ⁡ ( h ^ n ⊤ z y ) ∑ j = 1 ∣ I ∣ exp ⁡ ( h ^ n ⊤ z j ) (8) p\left(y \mid i_{T+1,1}^{u}, \ldots, i_{T+1, n}^{u} ;\left\{\vec{S}_{T}^{k}, k \in N(u)\right\}\right)=\frac{\exp \left(\hat{h}_{n}^{\top} z_{y}\right)}{\sum_{j=1}^{|I|} \exp \left(\hat{h}_{n}^{\top} z_{j}\right)}\tag{8} p(yiT+1,1u,,iT+1,nu;{S Tk,kN(u)})=j=1Iexp(h^nzj)exp(h^nzy)(8)
目标函数为
∑ u ∈ U ∑ t = 2 T ∑ n = 1 N u , t − 1 log ⁡ p ( i t , n + 1 u ∣ i t , 1 u , … , i t , n u ; { S ⃗ t − 1 k , k ∈ N ( u ) } ) \sum_{u \in U} \sum_{t=2}^{T} \sum_{n=1}^{N_{u, t}-1} \log p\left(i_{t, n+1}^{u} \mid i_{t, 1}^{u}, \ldots, i_{t, n}^{u} ;\left\{\vec{S}_{t-1}^{k}, k \in N(u)\right\}\right) uUt=2Tn=1Nu,t1logp(it,n+1uit,1u,,it,nu;{S t1k,kN(u)})

总结

该方法使用RNN计算短期兴趣、简单GNN来进行朋友兴趣的传播,整体方法较为简单。
一点改进意见:该方法考虑了用户短期兴趣、朋友的社交影响但没有考虑用户的长期兴趣,不知道如果在最后级联时加入用户嵌入会不会让效果更好

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值