目录
PROBLEM
以往的方法以序列建模session来评估用户、items表示,但不能准确高效地获取sessions里的用户向量,忽略了items复杂的过渡.
SOLUTION
提出基于GNN的SBR方法,sessions被建模成图结构数据,GNN可以捕捉items间复杂的过渡,每一session利用注意网络由全局偏好和当前兴趣组成.
APPROACH
Framework
Constructing Session Graphs
V
=
{
v
1
,
v
1
,
⋯
,
v
m
}
V=\{v_1,v_1,\cdots,v_m\}
V={v1,v1,⋯,vm}表示所有sessions里包含的所有unique items.
一个session按时间戳排序,由
s
=
[
v
s
,
1
,
v
s
,
2
,
⋯
,
v
s
,
n
]
s=[v_{s,1},v_{s,2}, \cdots, v_{s,n}]
s=[vs,1,vs,2,⋯,vs,n]表示.
每一session s s s建模为有向图 G = ( V s , E s ) \mathcal{G}=(\mathcal{V}_s,\mathcal{E}_s) G=(Vs,Es),在session graph中,每一结点表示一个item v s , i ∈ V v_{s,i} \in V vs,i∈V,每条边 ( v s , i − 1 , v s , i ) (v_{s,i-1},v_{s,i}) (vs,i−1,vs,i)意味着用户在session s s s内在点击 v s , i − 1 v_{s,i-1} vs,i−1后点击了 v s , i v_{s,i} vs,i.
Learning Item Embeddings on Session Graphs
a
s
,
i
t
=
A
s
,
i
:
[
v
1
t
−
1
,
…
,
v
n
t
−
1
]
T
H
+
b
,
z
s
,
i
t
=
σ
(
W
z
a
s
,
i
t
+
U
z
v
i
t
−
1
)
,
r
s
,
i
t
=
σ
(
W
r
a
s
,
i
t
+
U
r
v
i
t
−
1
)
,
v
~
i
t
=
tanh
(
W
o
a
s
,
i
+
U
o
(
r
s
,
i
t
⊙
v
i
t
−
1
)
)
,
v
i
t
=
(
1
−
z
s
,
i
t
)
⊙
v
i
t
−
1
+
z
s
,
i
t
⊙
v
~
i
t
(1,2,3,4,5)
\begin{aligned} \textbf{a}_{s,i}^t&=\textbf{A}_{s,i:}\left[\textbf{v}_1^{t-1},\dots,\textbf{v}_n^{t-1}\right]^T\textbf{H}+\textbf{b}, \\ \textbf{z}_{s,i}^t&=\sigma(\textbf{W}_z\textbf{a}_{s,i}^t+\textbf{U}_z\textbf{v}_i^{t-1}), \\ \textbf{r}_{s,i}^t&=\sigma(\textbf{W}_r\textbf{a}_{s,i}^t+\textbf{U}_r\textbf{v}_i^{t-1}), \\ \tilde{\textbf{v}}_i^t&=\tanh(\textbf{W}_o\textbf{a}_{s,i}+\textbf{U}_o(\textbf{r}_{s,i}^t\odot\textbf{v}_i^{t-1})), \\ \textbf{v}_i^t&=(1-\textbf{z}_{s,i}^t)\odot \textbf{v}_i^{t-1}+\textbf{z}_{s,i}^t\odot \tilde{\textbf{v}}_i^t \tag{1,2,3,4,5} \end{aligned}
as,itzs,itrs,itv~itvit=As,i:[v1t−1,…,vnt−1]TH+b,=σ(Wzas,it+Uzvit−1),=σ(Wras,it+Urvit−1),=tanh(Woas,i+Uo(rs,it⊙vit−1)),=(1−zs,it)⊙vit−1+zs,it⊙v~it(1,2,3,4,5)
其中
H
∈
R
d
×
2
d
\textbf{H} \in \mathbb{R}^{d \times 2d}
H∈Rd×2d控制权重,
z
s
,
i
\textbf{z}_{s,i}
zs,i和
r
s
,
i
\textbf{r}_{s,i}
rs,i分别是重置门和更新门,
[
v
1
t
−
1
,
…
,
v
n
t
−
1
]
\left[\textbf{v}_1^{t-1},\dots,\textbf{v}_n^{t-1}\right]
[v1t−1,…,vnt−1]是session
s
s
s结点向量列表,
v
i
\textbf{v}_i
vi是结点
v
s
,
i
v_{s,i}
vs,i的潜在向量表示,连接矩阵
A
s
∈
R
n
×
2
n
\textbf{A}_s \in \mathbb{R}^{n \times 2n}
As∈Rn×2n决定graph中结点间如何彼此交互,
A
s
,
i
:
∈
R
1
×
2
n
\textbf{A}_{s,i:}\in \mathbb{R}^{1 \times 2n}
As,i:∈R1×2n是相对于结点
v
s
,
i
v_{s,i}
vs,i在
A
s
\textbf{A}_s
As中的两列.
A
s
\textbf{A}_s
As被定义为两个邻接矩阵
A
s
(
out
)
\textbf{A}_s^{(\text{out})}
As(out)和
A
s
(
in
)
\textbf{A}_s^{(\text{in})}
As(in)的拼接.
Generating Session Embeddings
local embedding
s
l
=
v
n
\textbf{s}_l=\textbf{v}_n
sl=vn.
采取软注意力机制得到global preference:
α
i
=
q
T
σ
(
W
1
v
n
+
W
2
v
i
+
c
)
,
s
g
=
∑
i
=
1
n
α
i
v
i
(6)
\begin{aligned} \alpha_i&=\textbf{q}^T\sigma(\textbf{W}_1\textbf{v}_n+\textbf{W}_2\textbf{v}_i+\textbf{c}), \\ \textbf{s}_g&=\sum_{i=1}^n\alpha_i\textbf{v}_i \tag{6} \end{aligned}
αisg=qTσ(W1vn+W2vi+c),=i=1∑nαivi(6)
其中参数
q
∈
R
d
\textbf{q}\ \in \mathbb{R}^d
q ∈Rd和
W
1
,
W
2
∈
R
d
×
d
\textbf{W}_1,\textbf{W}_2 \in \mathbb{R}^{d \times d}
W1,W2∈Rd×d控制item embeddings向量的权重.
最终混合embedding表示:
s
h
=
W
3
[
s
l
;
s
g
]
(7)
\textbf{s}_h=\textbf{W}_3[\textbf{s}_l;\textbf{s}_g] \tag{7}
sh=W3[sl;sg](7)
矩阵
W
3
∈
R
d
×
2
d
\textbf{W}_3 \in \mathbb{R}^{d \times 2d}
W3∈Rd×2d将两个合并的embedding向量压缩到潜在空间
R
d
\mathbb{R}^d
Rd.
Making Recommendation and Model Training
计算每一候选item
v
i
∈
V
v_i \in V
vi∈V的得分并归一化:
z
^
i
=
s
h
T
v
i
y
^
=
softmax
(
z
^
)
(8,9)
\begin{aligned} \hat{\textbf{z}}_i&=\textbf{s}_h^T\textbf{v}_i \\ \hat{y}&=\text{softmax}(\hat{\textbf{z}}) \tag{8,9} \end{aligned}
z^iy^=shTvi=softmax(z^)(8,9)
使用交叉熵作为优化目标:
L
(
y
^
)
=
−
∑
i
=
1
m
y
i
log
(
y
^
i
)
+
(
1
−
y
i
)
log
(
1
−
y
^
i
)
(10)
\mathcal{L}(\hat{\textbf{y}})=-\sum_{i=1}^m\textbf{y}_i\log (\hat{\textbf{y}}_i)+(1-\textbf{y}_i)\log (1-\hat{\textbf{y}}_i) \tag{10}
L(y^)=−i=1∑myilog(y^i)+(1−yi)log(1−y^i)(10)
EXPERIMENT
符号 | 表示 |
---|---|
SR-GNN-FC | session内items间全连接 |
SR-GNN-NGC | 归一化全局连接 |
符号 | 表示 |
---|---|
SR-GNN-L | 只有local embedding |
SR-GNN-AVG | 平均池化的global embedding |
SR-GNN-ATT | 采取注意力机制的global embedding |