[TKDE 2021] Self-propagation Graph Neural Network for Recommendation

摘要

解决的问题:

  1. 稀疏图忽略了link,导致传播不准确;
  2. 预定义的粗粒度规则决定propagation weight,只考虑到node层次

本文提出了3种方法补全稀疏图:

  1. 基于推荐模型补全图;
  2. 基于“谱聚类”衡量node distance;
  3. 基于“预测嵌入”预测missing link;

链接: 源码

1 引言

GNN两个问题

问题1

关于传播的图是非常不完整的和有偏差的。在实际应用程序中,我们只能观察到很小部分的链接。这一问题严重损害了传播质量。图1显示了一个玩具示例。具体地说,链路缺失问题导致了两个关键缺陷。
(i) 传播是非常无效的:通过只删除图1(a)所示的图中的一个链接,就删除了图1(b)中的传播树的一个大部分。在推荐上下文中,由于曝光不足,图的很大一部分链接被遗漏,因此传播树的不完整问题很严重,嵌入不能有效地传播。
(ii) 更糟糕的是,传播有严重的偏差,不能通过多跳传播来解决。深度gnn的设计是为了通过探索多跳连接来缓解链接缺失的问题——虽然连接u1−i2丢失了,但项目i2通过3跳链接连接到用户u1(请参见图1(b))。
然而,这种缓解并远非令人满意——嵌入数在1跳传播后显著衰减,项目i2的嵌入在通过3跳传播到用户u1后非常弱。项目i1和i2对用户u1确实同样重要,但由于缺少链接,i2对gnn中的u1的贡献要弱得多,导致了有偏传播问题。

问题2

基于规则的传播权值是经验性的和粗糙的

正如我们所看到的,权重是由邻居集的大小决定的,但是它们在现实应用程序中则更为复杂。例如,一个篮球比一个杯子提供了更多关于用户偏好的信息,尽管它们可能有相似的销售额(具有相似的邻居设置大小),所以对于一个用户节点,到一个篮球的链接应该比到一个杯子的链接增加更多的重量。
为了解决这一差距,[2]提出了注意机制来计算链接的重要性,但仍然需要额外的计算。在我们的传播策略中,这个问题可以不需要额外的计算而很自然地得到解决。
此外,在传统的传播策略中,仅通过一跳连接来计算传播权值。在我们的密集图中,传播权重,即每个链路的强度,是通过考虑多跳连接来预测的。
在这里插入图片描述

2 相关工作

  1. LightGCN三问
    为什么叫lightGCN,究竟哪里light?
    lightGCN是如何实现的?
    performance有怎样的提升?
  2. NGCF, LightGCN, APPNP
  3. LightGCN具体细节

3 Preliminaries

以LightGCN为例
目标: 预测 R u i R_{ui} Rui的缺失值,返回每个user的 top items
R u i = { 1 , 如果 u s e r 和 i t e m 有联系 0 , o t h e r w i s e R_{ui}= \begin{cases} 1, 如果user和item有联系\\ 0, otherwise \end{cases} Rui={1,如果useritem有联系0,otherwise

嵌入矩阵: E ∈ R ( M + N ) × K 1 E ∈ R^{(M+N)×K_1} ER(M+N)×K1
用户嵌入: E U = E 1 : M E^U=E_{1:M} EU=E1:M
物品嵌入: E I = E M + 1 : M + N E^I=E_{M+1:M+N} EI=EM+1:M+N
传播矩阵: P = D − 1 A P=D^{-1}A P=D1A (left normalization)
P = D − 1 / 2 A D − 1 / 2 P=D^{-1/2}AD^{-1/2} P=D1/2AD1/2 (symmetric normalization)
A = [ 0 R R T 0 ] A=\begin{bmatrix} 0 & R \\R^T & 0 \end{bmatrix} A=[0RTR0]

3.1 传播层

在这里插入图片描述

3.2 多层结构

E = ∑ l = 0 L 1 l + 1 E l ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ( 1 ) E=\sum^L_{l=0}\frac{1}{l+1}E^{l} ········(1) E=l=0Ll+11El⋅⋅⋅⋅⋅⋅⋅⋅(1)

R ^ = E U E l T ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ( 2 ) \hat{R}=E^U E^{l^T}······(2) R^=EUElT⋅⋅⋅⋅⋅⋅(2)

3.3 模型学习

Bayesian Pairwise Learning to Rank (BPR)
在这里插入图片描述
在这里插入图片描述
图2:现有gnn中的稀疏传播,1-hop。
白色条表示原始嵌入,灰色条表示传播的嵌入,蓝色条表示合并后的嵌入。
如图1(a)所示,每个节点的嵌入通过观察到的链接传播到相邻节点。
采用对称归一化,线上的数字是传播权值。

4 GNN WITH SELF PROPAGATION

在这里插入图片描述
图3:1-hop自传播。
这些线上的数字是由数据驱动的传播权值。
考虑了潜在的链接,传播权值是由数据构建的。

4.1 Self Propagation

P的存储耗时空间,传播操作PE的计算非常耗时
由于P表示节点之间的相似性,所以它应该是一个低秩矩阵
本文通过矩阵分解来重构它
P = n F F T P=nFF^T P=nFFT
F ∈ R ( M + N ) × K 2 F ∈ R^{(M+N)×K_2} FR(M+N)×K2传播嵌入
E ∈ R ( M + N ) × K 1 E ∈ R^{(M+N)×K_1} ER(M+N)×K1:预测嵌入
P i j P_{ij} Pij:节点i 节点j之间的相似性

4.2 Multi-layer Structure

[6]表明sigmoid和ReLU不利于偏好预测
E ( l ) = t a n h ( n F ( F T E ( l − 1 ) ) ) ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ( 4 ) E^{(l)} = tanh ( nF( F^TE^{(l−1)}))······(4) E(l)=tanh(nF(FTE(l1)))⋅⋅⋅⋅⋅⋅(4)
在每个传播层中,上一层的嵌入作为input。

4.3 Constructing Propagation Embeddings

  1. 推荐模型SGNN_RM
    第1层的见式(4),预测嵌入情况见式(1),偏好预测情况见式(2),损失函数为(5)
    在这里插入图片描述

  2. 谱特征SGNN_SF
    在谱聚类算法中,将图的归一化邻接矩阵进行特征分解,得到特征向量,然后利用这些修剪后的向量进行聚类。
    在这里插入图片描述
    谱特征可以很好的控制幅度,删除(4)的n ↓
    E ( l ) = t a n h ( F ( F T E ( l − 1 ) ) ) E^{(l)} = tanh ( F( F^TE^{(l−1)})) E(l)=tanh(F(FTE(l1)))
    预测嵌入由式(1)表示,偏好预测由式(2)表示,损失函数由式(3)表示

  3. 预测嵌入 SGNN_PE
    F ( l ) = ∑ l ′ = 0 l − 1 1 1 + l ′ E ( l ′ ) ← 小改 ( 1 ) F^{(l)}=\sum_{l'=0}^{l−1} \frac{1}{1+l'}E^{(l')} \gets小改(1) F(l)=l=0l11+l1E(l)小改(1) E ( l ) = t a n h ( n F ( l ) ( F ( l ) T E ( l − 1 ) ) ) ← 微改 ( 4 ) E^{(l)} = tanh ( nF^{(l)}( F^{(l)^T}E^{(l−1)}))\gets微改(4) E(l)=tanh(nF(l)(F(l)TE(l1)))微改(4)
    预测嵌入式为式(1),偏好预测式为式(2),损失函数为式(3)。
    在SGNN PE中,节点表示和传播是由相同的嵌入来建模。E (0)和n是可训练的参数。

对于这三个sgnn,我们通过使用RMSProp [28]最小化公式(3)和(5)中的损失函数来学习它们。在推荐时,我们根据公式(2)中给出的ˆRu对项目进行排序,并将排序列表返回给用户u。

4.4 Time Complexity Analysis

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值