摘要
解决的问题:
- 稀疏图忽略了link,导致传播不准确;
- 预定义的粗粒度规则决定propagation weight,只考虑到node层次
本文提出了3种方法补全稀疏图:
- 基于推荐模型补全图;
- 基于“谱聚类”衡量node distance;
- 基于“预测嵌入”预测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 相关工作
- LightGCN三问
为什么叫lightGCN,究竟哪里light?
lightGCN是如何实现的?
performance有怎样的提升? - NGCF, LightGCN, APPNP
- 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,如果user和item有联系0,otherwise
嵌入矩阵:
E
∈
R
(
M
+
N
)
×
K
1
E ∈ R^{(M+N)×K_1}
E∈R(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=D−1A (left normalization)
P
=
D
−
1
/
2
A
D
−
1
/
2
P=D^{-1/2}AD^{-1/2}
P=D−1/2AD−1/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=0∑Ll+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}
F∈R(M+N)×K2:传播嵌入
E
∈
R
(
M
+
N
)
×
K
1
E ∈ R^{(M+N)×K_1}
E∈R(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(l−1)))⋅⋅⋅⋅⋅⋅(4)
在每个传播层中,上一层的嵌入作为input。
4.3 Constructing Propagation Embeddings
-
推荐模型SGNN_RM
第1层的见式(4),预测嵌入情况见式(1),偏好预测情况见式(2),损失函数为(5)
-
谱特征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(l−1)))
预测嵌入由式(1)表示,偏好预测由式(2)表示,损失函数由式(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′=0∑l−11+l′1E(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(l−1)))←微改(4)
预测嵌入式为式(1),偏好预测式为式(2),损失函数为式(3)。
在SGNN PE中,节点表示和传播是由相同的嵌入来建模。E (0)和n是可训练的参数。
对于这三个sgnn,我们通过使用RMSProp [28]最小化公式(3)和(5)中的损失函数来学习它们。在推荐时,我们根据公式(2)中给出的ˆRu对项目进行排序,并将排序列表返回给用户u。