论文《Graph-Refined Convolutional Network for Multimedia Recommendation with Implicit Feedback》阅读
论文概况
本文是2021年ACMMM 上的一篇论文,该篇文章将对用户-物品交互图进行提纯,来更好的进行推荐。(有点拉跨,模型就是GAT+GNN+生硬的多模态)
Introduction
作者提出问题
- 用户点击的物品中很可能包含用户不感兴趣的物品(因为误点或者随便看看等原因),这部分假positive物品会对真positive物品信息传播产生影响,减少推荐系统的推荐准确性
对于上述问题,作者提出了GRCN模型(Graph-Refined Convolutional Network):(1) 探讨了隐性反馈对基于GCN的推荐模型的影响。
(2) 开发了一种新的方法GRCN,它可以自适应地改进用户-项目交互图的结构,以利用GNN在推荐任务中的应用
Method
A.Model Framework
首先将物品嵌入线性投影
i
‾
m
=
r
e
l
u
(
W
m
i
m
+
b
m
)
(1)
\overline{\mathbf{i}}_{m}=relu\left(\mathbf{W}_{m} \mathbf{i}_{m}+\mathbf{b}_{m}\right)\tag{1}
im=relu(Wmim+bm)(1)
其中
W
m
∈
R
D
′
×
D
m
\mathbf{W}_{m} \in \mathbb{R}^{D^{\prime} \times D_{m}}
Wm∈RD′×Dm,
b
m
∈
R
D
′
×
1
\mathbf{b}_{m} \in \mathbb{R}^{D^{\prime \times 1}}
bm∈RD′×1是可学习参数,
i
m
\mathbf{i}_{m}
im是物品嵌入
然后利用注意力机制来计算每个用户邻接结点的权重
p
u
,
i
=
exp
(
i
‾
T
u
(
0
)
)
∑
j
∈
N
(
u
)
exp
(
j
‾
T
u
(
0
)
)
,
(2)
p_{u, i}=\frac{\exp \left(\overline{\mathbf{i}}^{\mathrm{T}} \mathbf{u}_{(0)}\right)}{\sum_{j \in \mathcal{N}(u)} \exp \left(\overline{\mathrm{j}}^{\mathrm{T}} \mathbf{u}_{(0)}\right)},\tag{2}
pu,i=∑j∈N(u)exp(jTu(0))exp(iTu(0)),(2)
其中,i,j分别是用户邻接的物品节点嵌入。
用户新一轮的嵌入表示为上一轮的嵌入加上邻接物品的加权和
u
(
1
)
=
u
(
0
)
+
∑
i
∈
N
(
u
)
p
u
,
i
i
‾
,
(3)
\mathbf{u}_{(1)}=\mathbf{u}_{(0)}+\sum_{i \in \mathcal{N}(u)} p_{u, i} \overline{\mathbf{i}},\tag{3}
u(1)=u(0)+i∈N(u)∑pu,ii,(3)
因此,第t轮的用户嵌入为:
{
u
(
t
)
=
u
(
t
−
1
)
+
∑
i
∈
N
(
u
)
p
u
,
i
i
‾
,
p
u
,
i
=
exp
(
i
T
u
(
t
−
1
)
)
∑
j
∈
N
(
u
)
exp
(
j
T
u
(
t
−
1
)
)
.
(4)
\left\{\begin{array}{l} \mathbf{u}_{(t)}=\mathbf{u}_{(t-1)}+\sum_{i \in \mathcal{N}(u)} p_{u, i} \overline{\mathbf{i}}, \\ p_{u, i}=\frac{\exp \left(\mathrm{i}^{\mathrm{T}} \mathbf{u}_{(t-1)}\right)}{\sum_{j \in \mathcal{N}(u)} \exp \left(\mathbf{j}^{\mathrm{T}} \mathbf{u}_{(t-1)}\right)} . \end{array}\right.\tag{4}
⎩
⎨
⎧u(t)=u(t−1)+∑i∈N(u)pu,ii,pu,i=∑j∈N(u)exp(jTu(t−1))exp(iTu(t−1)).(4)
相对的,对于用户u来说i的权重、对于物品i来说u的权重分别为,
{
s
ˉ
u
←
i
m
=
exp
(
u
‾
m
T
i
‾
m
)
∑
j
∈
N
(
u
)
exp
(
u
m
T
j
‾
m
)
s
ˉ
i
←
u
m
=
exp
(
i
‾
m
T
u
‾
m
)
∑
v
∈
N
(
i
)
exp
(
i
‾
m
v
v
‾
m
)
(5)
\left\{\begin{array}{l} \bar{s}_{u \leftarrow i}^{m}=\frac{\exp \left(\overline{\mathbf{u}}_{m}^{\mathrm{T}} \overline{\mathbf{i}}_{m}\right)}{\sum_{j \in \mathcal{N}(u)} \exp \left(\mathbf{u}_{m}^{\mathrm{T}} \overline{\mathbf{j}}_{m}\right)} \\ \bar{s}_{i \leftarrow u}^{m}=\frac{\exp \left(\overline{\mathbf{i}}_{m}^{\mathrm{T}} \overline{\mathbf{u}}_{m}\right)}{\sum_{v \in N(i)} \exp \left(\overline{\mathbf{i}}_{m}^{\mathrm{v}} \overline{\mathbf{v}}_{m}\right)} \end{array}\right.\tag{5}
⎩
⎨
⎧sˉu←im=∑j∈N(u)exp(umTjm)exp(umTim)sˉi←um=∑v∈N(i)exp(imvvm)exp(imTum)(5)
其中,
u
m
\mathbf{u}_{m}
um表示在m模态下用户的嵌入,
i
m
\mathbf{i}_{m}
im表示在m模态下物品的嵌入,在本论文中m可取{v,a,t}
为了结合多个模态下的权重,我们引入
ρ
=
[
ρ
v
,
ρ
a
,
ρ
t
]
,
(6)
\rho=\left[\rho^{v}, \rho^{a}, \rho^{t}\right],\tag{6}
ρ=[ρv,ρa,ρt],(6)
通过加权后取所有模态中权重的最大值来确定最终权重
{
s
u
←
i
=
max
(
ρ
u
v
s
ˉ
u
←
i
v
,
ρ
u
a
s
ˉ
u
←
i
a
,
ρ
u
t
s
ˉ
u
←
i
t
)
,
s
i
←
u
=
max
(
ρ
i
v
s
ˉ
i
←
u
v
,
ρ
i
a
s
ˉ
i
←
u
a
,
ρ
i
t
s
ˉ
i
←
u
t
)
.
(7)
\left\{\begin{array}{l} s_{u \leftarrow i}=\max \left(\rho_{u}^{v} \bar{s}_{u \leftarrow i}^{v}, \rho_{u}^{a} \bar{s}_{u \leftarrow i}^{a}, \rho_{u}^{t} \bar{s}_{u \leftarrow i}^{t}\right), \\ s_{i \leftarrow u}=\max \left(\rho_{i}^{v} \bar{s}_{i \leftarrow u}^{v}, \rho_{i}^{a} \bar{s}_{i \leftarrow u}^{a}, \rho_{i}^{t} \bar{s}_{i \leftarrow u}^{t}\right) . \end{array}\right.\tag{7}
{su←i=max(ρuvsˉu←iv,ρuasˉu←ia,ρutsˉu←it),si←u=max(ρivsˉi←uv,ρiasˉi←ua,ρitsˉi←ut).(7)
物品和用户的迭代更新算法如下,即对邻接节点加权求和
{
e
u
(
l
)
=
∑
i
∈
N
(
u
)
s
u
←
i
e
i
(
l
−
1
)
,
e
i
(
l
)
=
∑
u
∈
N
(
i
)
s
i
←
u
e
u
(
l
−
1
)
.
(8)
\left\{\begin{array}{l} \mathbf{e}_{u}^{(l)}=\sum_{i \in \mathcal{N}(u)} s_{u \leftarrow i} \mathbf{e}_{i}^{(l-1)}, \\ \mathbf{e}_{i}^{(l)}=\sum_{u \in \mathcal{N}(i)} s_{i \leftarrow u} \mathbf{e}_{u}^{(l-1)} . \end{array}\right.\tag{8}
{eu(l)=∑i∈N(u)su←iei(l−1),ei(l)=∑u∈N(i)si←ueu(l−1).(8)
将L层的节点向量相加,作为当前状态下的物品、用户嵌入
e
u
=
∑
l
=
0
L
e
u
(
l
)
,
e
i
=
∑
l
=
0
L
e
i
(
l
)
(9)
\mathbf{e}_{u}=\sum_{l=0}^{L} \mathbf{e}_{u}^{(l)}, \mathbf{e}_{i}=\sum_{l=0}^{L} \mathbf{e}_{i}^{(l)}\tag{9}
eu=l=0∑Leu(l),ei=l=0∑Lei(l)(9)
将得到的嵌入与各个模态下的物品、用户嵌入级联,得到最终的用户向量和物品向量
{
e
u
∗
=
e
u
∥
u
‾
v
∥
u
‾
a
∥
u
‾
t
,
e
i
∗
=
e
i
∥
i
‾
v
∥
i
‾
a
∥
i
‾
t
,
(10)
\left\{\begin{array}{l} \mathbf{e}_{u}^{*}=\mathbf{e}_{u}\left\|\overline{\mathbf{u}}_{v}\right\| \overline{\mathbf{u}}_{a} \| \overline{\mathbf{u}}_{t}, \\ \mathbf{e}_{i}^{*}=\mathbf{e}_{i}\left\|\overline{\mathbf{i}}_{v}\right\| \overline{\mathbf{i}}_{a} \| \overline{\mathbf{i}}_{t}, \end{array}\right.\tag{10}
{eu∗=eu∥uv∥ua∥ut,ei∗=ei∥
∥iv∥
∥ia∥it,(10)
用户向量乘物品向量即可对物品进行打分
y
u
,
i
=
e
u
∗
T
e
i
∗
(11)
y_{u, i}=e_{u}^{*T} \mathrm{} e_{i}^{*}\tag{11}
yu,i=eu∗Tei∗(11)
B. Optimization
优化公式为
T
=
{
(
u
,
i
,
j
)
∣
A
u
,
i
=
1
,
A
u
,
j
=
0
}
,
(12)
\mathcal{T}=\left\{(u, i, j) \mid \mathbf{A}_{u, i}=1, \mathbf{A}_{u, j}=0\right\},\tag{12}
T={(u,i,j)∣Au,i=1,Au,j=0},(12)
L
=
∑
(
u
,
i
,
j
)
∈
T
−
ln
ϕ
(
y
u
,
i
−
y
u
,
j
)
+
λ
∥
θ
∥
2
(13)
\mathcal{L}=\sum_{(u, i, j) \in \mathcal{T}}-\ln \phi\left(y_{u, i}-y_{u, j}\right)+\lambda\|\theta\|_{2}\tag{13}
L=(u,i,j)∈T∑−lnϕ(yu,i−yu,j)+λ∥θ∥2(13)
实际上就是将positive物品选中,而不选择negative物品
总结
GRCN模型太简单了点,只能说文章写得可能有点东西,但从模型看来则太浅了,多模态的运用很突兀,可解释性不强。