本文是2020年AAAI上的一篇论文,该篇文章聚焦于短期兴趣、长期兴趣、项目共现来解决会话推荐问题,提出了MAGNN(Memory Augmented Graph Neural Networks )模型。
作者提出了几个问题
对于上述问题,作者提出了MAGNN模型:(1)捕获项目的短期上下文信息和长期依赖关系(2)在GNN框架中加入了一个门控机制,有效地融合短期和长期利益(3)使用双线性函数来捕获项目之间的特征相关性。
将完整的用户会话分为l份,每个子会话包含|L|个项目,取最后一个子会话计算当前兴趣
会话图的构建:每个项目与之后3个连续的项目连接,一个项目的边的权重均分且相加等于1
然后根据邻接矩阵进行聚合更新,并于自身向量级联,此处存在两轮GNN。MAGNN中短期兴趣表示为第L个子会话中所有项目的向量均值。
h
i
=
tanh
(
W
(
1
)
⋅
[
∑
k
∈
N
i
e
k
A
i
,
k
;
e
i
]
)
,
∀
i
∈
L
u
,
l
(1)
\mathbf{h}_{i}=\tanh \left(\mathbf{W}^{(1)} \cdot\left[\sum_{k \in \mathcal{N}_{i}} \mathbf{e}_{k} A_{i, k} ; \mathbf{e}_{i}\right]\right), \forall i \in L_{u, l}\tag{1}
hi=tanh(W(1)⋅[k∈Ni∑ekAi,k;ei]),∀i∈Lu,l(1)
之后利用前l-1个子会话来计算用户的长期兴趣(前面的子会话设为
H
u
,
l
\mathbf{H}_{u, l}
Hu,l)
首先使用PE函数将项目的位置信息考虑在内
H
u
,
l
:
=
H
u
,
l
+
PE
(
H
u
,
l
)
(2)
\mathbf{H}_{u, l}:=\mathbf{H}_{u, l}+\operatorname{PE}\left(H_{u, l}\right)\tag{2}
Hu,l:=Hu,l+PE(Hu,l)(2)
用用户嵌入来对
H
u
,
l
\mathbf{H}_{u, l}
Hu,l进行注意力计算
S
u
,
l
=
softmax
(
W
a
(
3
)
tanh
(
W
a
(
1
)
H
u
,
l
+
(
W
a
(
2
)
p
u
)
⊗
1
ϕ
)
)
(3)
\mathbf{S}_{u, l}=\operatorname{softmax}\left(\mathbf{W}_{a}^{(3)} \tanh \left(\mathbf{W}_{a}^{(1)} \mathbf{H}_{u, l}+\left(\mathbf{W}_{a}^{(2)} \mathbf{p}_{u}\right) \otimes \mathbf{1}_{\phi}\right)\right)\tag{3}
Su,l=softmax(Wa(3)tanh(Wa(1)Hu,l+(Wa(2)pu)⊗1ϕ))(3)
Z
u
,
l
\mathbf{Z}_{u, l}
Zu,l的每一行都代表过去会话的一个方面
Z
u
,
l
=
tanh
(
S
u
,
l
⋅
H
u
,
l
⊤
)
(4)
\mathbf{Z}_{u, l}=\tanh \left(\mathbf{S}_{u, l} \cdot \mathbf{H}_{u, l}^{\top}\right)\tag{4}
Zu,l=tanh(Su,l⋅Hu,l⊤)(4)
此时
z
u
,
l
\mathbf{z}_{u, l}
zu,l是对不同方面求平均值的组合查询嵌入
z
u
,
l
=
avg
(
Z
u
,
l
)
(5)
\mathbf{z}_{u, l}=\operatorname{avg}\left(\mathbf{Z}_{u, l}\right)\tag{5}
zu,l=avg(Zu,l)(5)
然后我们利用
z
u
,
l
\mathbf{z}_{u, l}
zu,l作为查询向量通过记忆网络来查找内存网络中共享用户潜在兴趣,将用户潜在兴趣与长期会话表征相加即可得到长期兴趣。
s
i
=
softmax
(
z
u
,
l
⊤
⋅
k
i
)
,
o
u
,
l
=
∑
i
s
i
v
i
,
p
u
,
l
H
=
z
u
,
l
+
o
u
,
l
,
(6)
\begin{array}{l} s_{i}=\operatorname{softmax}\left(\mathbf{z}_{u, l}^{\top} \cdot \mathbf{k}_{i}\right), \\ \mathbf{o}_{u, l}=\sum_{i} s_{i} \mathbf{v}_{i}, \\ \mathbf{p}_{u, l}^{H}=\mathbf{z}_{u, l}+\mathbf{o}_{u, l}, \end{array}\tag{6}
si=softmax(zu,l⊤⋅ki),ou,l=∑isivi,pu,lH=zu,l+ou,l,(6)
使用门控机制将长期兴趣与短期兴趣结合。
g
u
,
l
=
σ
(
W
g
(
1
)
⋅
1
∣
L
∣
∑
i
∈
L
u
,
l
h
i
+
W
g
(
2
)
⋅
p
u
,
l
H
+
W
g
(
3
)
⋅
p
u
)
(7)
\mathbf{g}_{u, l}=\sigma\left(\mathbf{W}_{g}^{(1)} \cdot \frac{1}{|L|} \sum_{i \in L_{u, l}} \mathbf{h}_{i}+\mathbf{W}_{g}^{(2)} \cdot \mathbf{p}_{u, l}^{H}+\mathbf{W}_{g}^{(3)} \cdot \mathbf{p} u\right)\tag{7}
gu,l=σ⎝⎛Wg(1)⋅∣L∣1i∈Lu,l∑hi+Wg(2)⋅pu,lH+Wg(3)⋅pu⎠⎞(7)
P
u
,
l
C
=
g
u
,
l
⊙
1
∣
L
∣
∑
i
∈
L
u
,
l
h
i
+
(
1
d
−
g
u
,
l
)
⊙
p
u
,
l
H
(8)
\mathbf{P}_{u, l}^{C}=\mathbf{g}_{u, l} \odot \frac{1}{|L|} \sum_{i \in L_{u, l}} \mathbf{h}_{i}+\left(\mathbf{1}_{d}-\mathbf{g}_{u, l}\right) \odot \mathbf{p}_{u, l}^{H}\tag{8}
Pu,lC=gu,l⊙∣L∣1i∈Lu,l∑hi+(1d−gu,l)⊙pu,lH(8)
预测层不只有用户的综合兴趣,还考量了用户嵌入,同时还适用双线性函数来捕获最后一个子会话与其他子会话之间的物品关系
r
^
u
,
j
=
p
u
⊤
⋅
q
j
+
p
u
,
l
C
⊤
⋅
q
j
+
1
∣
L
∣
∑
i
∈
L
u
,
l
e
i
⊤
W
r
q
j
(9)
\hat{r}_{u, j}=\mathbf{p}_{u}^{\top} \cdot \mathbf{q}_{j}+\mathbf{p}_{u, l}^{C \top} \cdot \mathbf{q}_{j}+\frac{1}{|L|} \sum_{i \in L_{u, l}} \mathbf{e}_{i}^{\top} \mathbf{W}_{r} \mathbf{q}_{j}\tag{9}
r^u,j=pu⊤⋅qj+pu,lC⊤⋅qj+∣L∣1i∈Lu,l∑ei⊤Wrqj(9)
MAGNN将连续的会话切分为多个子会话,通过最后一个子会话计算短期兴趣,通过其余会话使用注意力机制以及记忆网络计算长期兴趣,在计算的过程中还将用户嵌入考虑在内,使用门控单元来融合长短期兴趣,最后也是综合兴趣、用户嵌入、最近的子会话结合起来进行预测。