ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

论文《Sequential Recommendation with Graph Neural Networks》阅读

2022-01-15 22:59:57  阅读:241  来源: 互联网

标签:right mathbf Neural Graph tag Sequential vec Aggregate left


论文《Sequential Recommendation with Graph Neural Networks》阅读

论文概况

本文是2021年SIGIR上的一篇论文,该篇文章通过计算用户在会话中的主要兴趣并计算兴趣聚簇来解决顺序推荐问题

Introduction

作者提出了几个问题

  • 并不是会话中的每个项目都能体现用户的兴趣,会话中夹杂大量噪音.
  • 用户的喜好是迅速变化的,单从历史会话中很难捕获接下来的喜好变化

对于上述问题,作者提出SURGE网络(Sequential Recommendation with Graph Neural Networks):(1)从新角度解决顺序推荐,考虑隐信号行为和快速变化的偏好(2)通过物品-物品兴趣图,使用GNN网络将隐式信号转化为显式信号,设计动态池化来过滤和保留主要偏好以供推荐

Method

在这里插入图片描述

A.Interest Graph Construction

SURGE根据物品之间的相似度来构建兴趣图,一个会话中有n个物品,则有n*n的邻接矩阵,邻接矩阵的数值是按照相似度来计算,这里还使用了多头机制
M i j = cos ⁡ ( w → ⊙ h ⃗ i , w → ⊙ h ⃗ j ) (1) M_{i j}=\cos \left(\overrightarrow{\mathbf{w}} \odot \vec{h}_{i}, \overrightarrow{\mathbf{w}} \odot \vec{h}_{j}\right)\tag{1} Mij​=cos(w ⊙h i​,w ⊙h j​)(1)
M i j δ = cos ⁡ ( w → δ ⊙ h ⃗ i , w → δ ⊙ h ⃗ j ) , M i j = 1 δ ∑ δ = 1 ϕ M i j δ (2) M_{i j}^{\delta}=\cos \left(\overrightarrow{\mathbf{w}}_{\delta} \odot \vec{h}_{i}, \overrightarrow{\mathbf{w}}_{\delta} \odot \vec{h}_{j}\right), \quad M_{i j}=\frac{1}{\delta} \sum_{\delta=1}^{\phi} M_{i j}^{\delta}\tag{2} Mijδ​=cos(w δ​⊙h i​,w δ​⊙h j​),Mij​=δ1​δ=1∑ϕ​Mijδ​(2)
此时,邻接矩阵每个位置都有相似度数值,设相似度数值大于某一阈值,则将此处数值设为1,其余为0
A i j = { 1 , M i j > = Rank ⁡ ε n 2 ( M ) 0 ,  otherwise;  (3) A_{i j}=\left\{\begin{array}{ll} 1, & M_{i j}>=\operatorname{Rank}_{\varepsilon n^{2}}(M) \\ 0, & \text { otherwise; } \end{array}\right.\tag{3} Aij​={1,0,​Mij​>=Rankεn2​(M) otherwise; ​(3)

B. Interest-fusion Graph Convolutional Layer

通过兴趣图来计算每个节点的向量表征,aggregate可以是Mean,Sum, Max, GRU,这里使用Sum,并且同样利用多头机制
h ⃗ i ′ = σ ( W a ⋅  Aggregate  ( E i j ∗ h ⃗ j ∣ j ∈ N i ) + h ⃗ i ) .  (4) \vec{h}_{i}^{\prime}=\sigma\left(\mathbf{W}_{\mathbf{a}} \cdot \text { Aggregate }\left(E_{i j} * \vec{h}_{j} \mid j \in \mathcal{N}_{i}\right)+\vec{h}_{i}\right) \text {. }\tag{4} h i′​=σ(Wa​⋅ Aggregate (Eij​∗h j​∣j∈Ni​)+h i​). (4)
h i ′ → = ∥ δ = 1 ϕ σ ( W a δ ⋅  Aggregate  ( E i j δ ∗ h ⃗ j ∣ j ∈ N i ) + h ⃗ i ) , (5) \overrightarrow{h_{i}^{\prime}}=\|_{\delta=1}^{\phi} \sigma\left(\mathbf{W}_{\mathbf{a}}^{\delta} \cdot \text { Aggregate }\left(E_{i j}^{\delta} * \vec{h}_{j} \mid j \in \mathcal{N}_{i}\right)+\vec{h}_{i}\right),\tag{5} hi′​ ​=∥δ=1ϕ​σ(Waδ​⋅ Aggregate (Eijδ​∗h j​∣j∈Ni​)+h i​),(5)
之后是 E i j E_{i j} Eij​计算,包含聚簇注意力和查询感知注意力
聚簇注意力代表当前节点与邻居节点的相似度, h ⃗ i c \vec{h}_{i_{c}} h ic​​是k-hop内的邻居向量的平均值
α i =  Attention  c ( W c h ⃗ i ∥ h ⃗ i c ∥ W c h ⃗ i ⊙ h ⃗ i c ) (6) \alpha_{i}=\text { Attention }_{c}\left(\mathbf{W}_{\mathbf{c}} \vec{h}_{i}\left\|\vec{h}_{i_{c}}\right\| \mathbf{W}_{\mathbf{c}} \vec{h}_{i} \odot \vec{h}_{i_{c}}\right)\tag{6} αi​= Attention c​(Wc​h i​∥∥∥​h ic​​∥∥∥​Wc​h i​⊙h ic​​)(6)
查询感知注意力代表邻居节点和目标物品的相似度
β j =  Attention  q ( W q h ⃗ j ∥ h ⃗ t ∥ W q h ⃗ j ⊙ h ⃗ t ) (7) \beta_{j}=\text { Attention }_{q}\left(\mathbf{W}_{\mathbf{q}} \vec{h}_{j}\left\|\vec{h}_{t}\right\| \mathbf{W}_{\mathbf{q}} \vec{h}_{j} \odot \vec{h}_{t}\right)\tag{7} βj​= Attention q​(Wq​h j​∥∥∥​h t​∥∥∥​Wq​h j​⊙h t​)(7)
最终注意力计算如下:
E i j = softmax ⁡ j ( α i + β j ) = exp ⁡ ( α i + β j ) ∑ k ∈ N i exp ⁡ ( α i + β k ) (8) E_{i j}=\operatorname{softmax}_{j}\left(\alpha_{i}+\beta_{j}\right)=\frac{\exp \left(\alpha_{i}+\beta_{j}\right)}{\sum_{k \in \mathcal{N}_{i}} \exp \left(\alpha_{i}+\beta_{k}\right)}\tag{8} Eij​=softmaxj​(αi​+βj​)=∑k∈Ni​​exp(αi​+βk​)exp(αi​+βj​)​(8)

C.Interest-extraction Graph Pooling Layer

我们将n个项目的表征用S矩阵分为m个类, γ \gamma_{} γ​是经过softmax的查询感知注意力.
{ h ⃗ 1 ∗ , h ⃗ 2 ∗ , … , h ⃗ m ∗ } = S T { h ⃗ 1 ′ , h ⃗ 2 ′ , … , h ⃗ n ′ } (9) \left\{\vec{h}_{1}^{*}, \vec{h}_{2}^{*}, \ldots, \vec{h}_{m}^{*}\right\}=S^{T}\left\{\vec{h}_{1}^{\prime}, \vec{h}_{2}^{\prime}, \ldots, \vec{h}_{n}^{\prime}\right\}\tag{9} {h 1∗​,h 2∗​,…,h m∗​}=ST{h 1′​,h 2′​,…,h n′​}(9)
{ γ 1 ∗ , γ 2 ∗ , … , γ m ∗ } = S T { γ 1 , γ 2 , … , γ n } (10) \left\{\gamma_{1}^{*}, \gamma_{2}^{*}, \ldots, \gamma_{m}^{*}\right\}=S^{T}\left\{\gamma_{1}, \gamma_{2}, \ldots, \gamma_{n}\right\}\tag{10} {γ1∗​,γ2∗​,…,γm∗​}=ST{γ1​,γ2​,…,γn​}(10)
W p \mathbf{W}_{\mathrm{p}} Wp​对应着m个分类,矩阵S每一行由邻居节点影响
S i : = softmax ⁡ ( W p ⋅  Aggregate  ( A i j ∗ h ⃗ j ′ ∣ j ∈ N i ) ) (11) S_{i:}=\operatorname{softmax}\left(\mathbf{W}_{\mathrm{p}} \cdot \text { Aggregate }\left(A_{i j} * \vec{h}_{j}^{\prime} \mid j \in \mathcal{N}_{i}\right)\right)\tag{11} Si:​=softmax(Wp​⋅ Aggregate (Aij​∗h j′​∣j∈Ni​))(11)
同时,加入正则项来训练S
为了让相似的两个物品被分到同一类中,设:
L M = ∥ A , S S T ∥ F (12) L_{\mathrm{M}}=\left\|A, S S^{T}\right\|_{F}\tag{12} LM​=∥∥​A,SST∥∥​F​(12)
S S T S S^{T} SST代表两个点落入同一类的概率,在邻接矩阵中相连的点应被分为同一类
其次使用熵函数使得一个点尽可能只被分到一类中
L A = 1 n ∑ i = 1 n H ( S i : ) (13) L_{\mathrm{A}}=\frac{1}{n} \sum_{i=1}^{n} H\left(S_{i:}\right)\tag{13} LA​=n1​i=1∑n​H(Si:​)(13)
最后,保证当n个项目变成m个类时,类与类之间的时间关系可以与项目于项目之间的时间关系相同
L P = ∥ P n S , P m ∥ 2 (14) L_{\mathrm{P}}=\left\|P_{n} S, P_{m}\right\|_{2}\tag{14} LP​=∥Pn​S,Pm​∥2​(14)

将所有项目的表征乘以分数加和,得到整体的用户兴趣
h ⃗ g = Readout ⁡ ( { γ i ∗ h ⃗ i ′ , i ∈ G } ) , (15) \vec{h}_{g}=\operatorname{Readout}\left(\left\{\gamma_{i} * \vec{h}_{i}^{\prime}, i \in \mathcal{G}\right\}\right),\tag{15} h g​=Readout({γi​∗h i′​,i∈G}),(15)

D. Prediction Layer

使用GRU来计算用户接下来可能感兴趣的项目类别
h ⃗ s = AUGRU ⁡ ( { h ⃗ 1 ∗ , h ⃗ 2 ∗ , … , h ⃗ m ∗ } ) (16) \vec{h}_{s}=\operatorname{AUGRU}\left(\left\{\vec{h}_{1}^{*}, \vec{h}_{2}^{*}, \ldots, \vec{h}_{m}^{*}\right\}\right)\tag{16} h s​=AUGRU({h 1∗​,h 2∗​,…,h m∗​})(16)
进行用户点击物品预测,将目标项目 用户综合兴趣 用户预测兴趣类别相结合
y ^ = Predict ⁡ ( h ⃗ s ∥ h ⃗ g ∥ h ⃗ t ∥ h ⃗ g ⊙ h ⃗ t ) (17) \hat{y}=\operatorname{Predict}\left(\vec{h}_{s}\left\|\vec{h}_{g}\right\| \vec{h}_{t} \| \vec{h}_{g} \odot \vec{h}_{t}\right)\tag{17} y^​=Predict(h s​∥∥∥​h g​∥∥∥​h t​∥h g​⊙h t​)(17)
使用交叉熵和正则项来训练参数
在这里插入图片描述

总结

SURGE使用了独特的兴趣图来进行GNN,同时还将项目聚类,通过RNN预测用户会点击的下一个物品类别,创新点值得借鉴.

标签:right,mathbf,Neural,Graph,tag,Sequential,vec,Aggregate,left
来源: https://blog.csdn.net/wzj1212123/article/details/122508200

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有