【论文笔记】AAAI2019 Session-based Recommendation with Graph Neural Networks

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,iV,每条边 ( v s , i − 1 , v s , i ) (v_{s,i-1},v_{s,i}) (vs,i1,vs,i)意味着用户在session s s s内在点击 v s , i − 1 v_{s,i-1} vs,i1后点击了 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:[v1t1,,vnt1]TH+b,=σ(Wzas,it+Uzvit1),=σ(Wras,it+Urvit1),=tanh(Woas,i+Uo(rs,itvit1)),=(1zs,it)vit1+zs,itv~it(1,2,3,4,5)
其中 H ∈ R d × 2 d \textbf{H} \in \mathbb{R}^{d \times 2d} HRd×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] [v1t1,,vnt1]是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} AsRn×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=1nα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,W2Rd×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} W3Rd×2d将两个合并的embedding向量压缩到潜在空间 R d \mathbb{R}^d Rd.

Making Recommendation and Model Training

计算每一候选item v i ∈ V v_i \in V viV的得分并归一化:
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=1myilog(y^i)+(1yi)log(1y^i)(10)

EXPERIMENT

在这里插入图片描述
在这里插入图片描述

符号表示
SR-GNN-FCsession内items间全连接
SR-GNN-NGC归一化全局连接

在这里插入图片描述

符号表示
SR-GNN-L只有local embedding
SR-GNN-AVG平均池化的global embedding
SR-GNN-ATT采取注意力机制的global embedding
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值