Memory Augmented Graph Neural Networks for Sequential Recommendation

emm…图片复制过来显示不了(因为我太懒了0.0),要看图的话可以去我的博客瞅瞅,嘿嘿嘿
对了,有些英文短句假如翻译成中文,阅读的时候就太搞脑子了,所以我干脆就不翻译了

我的博客地址:https://hikg.net/archives/126/

1. Motivation

推荐系统中,user-item交互的时间顺序 可以反应出随着时间演化的、序列化的用户行为。users将要发生交互的items取决于这个用户过去访问的items。

作者认为:在序列推荐任务中,需要考虑这四个因素:

  1. general user interest:

    采用矩阵分解来对general interest进行建模,不去考虑item sequential dynamics。

  2. user short-term interests:

    根据短期内的几个访问过的items,捕捉到的用户偏好;

    使用GNN来聚合items的邻域,用来生成短期内的user intentions。可以在短期内捕捉局部上下文信息、结构。

  3. user long-term interests:

    捕获了users早期访问的items、users将来访问的items之间的长期依赖关系;

    使用一个key-value memory network,基于users的long-term item sequences来生成interest representations。

    这样做之后,other users with similar preferences will be taken into consideration when recommending an item. ??????

  4. item co-occurrence patterns:

    说明了常见的相关items之间会共同发生;

    使用一个bilinear function来捕捉item序列中的那种一个接着一个出现的密切相关的items。

为了融合short-term、long-term interest,在GNN框架中引入一个gating机制,与LSTM相类似。其控制了这两者对于combined representation的贡献。

2. Problem Formulation

user偏好表示为按照时间排序的user-item序列, S u = ( I 1 , I 2 , . . . I ∣ S u ∣ ) S^u = (I_1,I_2,...I_{|S^u|}) Su=(I1,I2,...ISu),其中 I ∗ I_* I是user u交互过的item index。

给定earlier sub-sequence S 1 : t u S_{1:t}^u S1:tu ( t < ∣ S u ∣ t < |S^u| t<Su) of M M M users,该问题可以看作:从总共 N N N个items中,为每个user推荐出 K K K个items的列表 ( K < N K < N K<N),并且评估 S t + 1 : ∣ S u ∣ u S_{t+1:|S^u|}^u St+1:Suu中的items是否出现在这个推荐列表中。

3. Methodology

3.1 General Interest Modeling

一个用户的general或是static interest被认为随着时间的变化是稳定的。

使用matrix factorization term来捕捉general user interest,不去考虑sequential dynamics of items。矩阵分解项的形式如下:

p u ⊤ ⋅ q j \large {p_u}^\top \cdot q_j puqj

p u ∈ R d p_u \in \mathbb{R}^d puRd 是 user u u u的embedding;

q j ∈ R d q_j \in \mathbb{R}^d qjRd 是 output embedding of item j j j ??????

d d d 是latent space的维度

3.2 Short-term Interest Modeling

user的short-term interest描述了用户的当前偏好,是基于短期内最近访问的几个items。一个user在不久的将来将要发生交互的items很可能与她刚刚访问过的items相关。

为了显示地对user short-term interest进行建模,采用sliding window strategy将item sequence拆分成细粒度的sub-sequence。接下来,可以关注最近的子序列,来预测接下来会出现哪些items,并忽略那些影响较小的不相关items。

对于每个user u,抽取出 ∣ L ∣ |L| L个连续的items作为输入,接下来的 ∣ T ∣ |T| T个items作为预测目标。其中, L u , l = ( I l , I l + 1 , . . . , I l + ∣ L ∣ − 1 ) L_{u,l} = (I_l, I_{l+1}, ..., I_{l+|L|-1}) Lu,l=(Il,Il+1,...,Il+L1)是user u的第 l l l个sub-sequence。

然后问题可以被定义为:在user-item交互序列 S u S^u Su中,给定 ∣ L ∣ |L| L个连续items的一个序列,对于那个user,预测的items与 ∣ T ∣ |T| T个目标items相符的可能性有多大。

Item Graph Construction.

需要将item sequences转换为graph:对于item sequences中的每一个item,抽取出几个后续items(例如3个),然后在它们之间添加边。

对每个user执行上述操作,然后数出所有users中,抽取出的item对的边的数量。之后对邻接矩阵的行进行归一化。

将邻接矩阵记作: A A A

A i , k A_{i,k} Ai,k 表示item k关于 i的节点权重

将item i的相邻的items记作: N i N_i Ni

Short-term Interest Aggregation.

使用一个2层的GNN来聚合 L u , l L_{u,l} Lu,l 中的相邻items,用来学习user的short-term interest表示。

对于第 l l l个short-term窗口 $ L_{u,l}$中的一个item j j j,其input embedding表示为 e j ∈ R d e_j \in \mathbb{R}^d ejRd,user short-term interest通过下面的式子计算:

h i = t a n h ( W ( 1 ) ⋅ [ ∑ k ∈ N i e k A i , k ; e i ] ) \large h_i = tanh(W^{(1)} \cdot [\sum\limits_{k \in N_i} e_k A_{i,k} ; e_i]) hi=tanh(W(1)[kNiekAi,k;ei])

p u , l S = t a n h ( W ( 2 ) ⋅ [ 1 ∣ L ∣ ∑ i ∈ L u , l h i ; p u ] ) \large p_{u,l}^S = tanh(W^{(2)} \cdot [\frac{1}{|L|} \sum\limits_{i \in L_{u,l}} h_i ; p_u]) pu,lS=tanh(W(2)[L1iLu,lhi;pu])

其中, [ ⋅ ; ⋅ ] ∈ R 2 d \large [\cdot ; \cdot] \in \mathbb{R}^{2d} [;]R2d 表示vertical concatenation;

W ( 1 ) , W ( 2 ) ∈ R d × 2 d W^{(1)}, W^{(2)} \in \mathbb{R}^{d \times 2d} W(1),W(2)Rd×2d是GNN的可学习参数;

上标 S S S代表这个表示来自user short-term兴趣

(先按照行进行聚合,更新每个item i的局部表示,然后再聚合所有items的表示,得到该用户的短期兴趣表示)

通过聚合 L u , l L_{u,l} Lu,l 中items的邻居, p u , l S p_{u,l}^S pu,lS 表明哪个items与 L u , l L_{u,l} Lu,l 中的items接近。

3.3 Long-term Interest Modeling

但是,在short-term window L u , l L_{u,l} Lu,l 之外的long-term user interest H u , l = ( I 1 , I 2 , . . . , I l − 1 ) H_{u,l} = (I_1, I_2, ..., I_{l-1}) Hu,l=(I1,I2,...,Il1)无法被捕捉到。

论文p4:为什么memory unit学习到的embedding会跟 p u p_u pu 相似 ??????

本文使用的memory network存储了所有users共享的潜在兴趣表示,其中的每个memory unit表示某种类型的潜在user interest。


Self-attention

Self-attention的思想是:将输入a分别乘上3个权重矩阵W,各自得到query q q q、key k k k、value v v v

a 2 a^2 a2关于 a 1 a^1 a1的权重系数 α 1 , 2 = q 1 k 2 \large \alpha_{1,2} = q^1 k^2 α1,2=q1k2

a 1 a^1 a1经过self-attention后的输出 b 1 = α 1 , 1 v 1 + α 1 , 2 v 2 + α 1 , 3 v 3 + α 1 , 4 v 4 \large b^1 = \alpha_{1,1} v^1 + \alpha_{1,2} v^2 + \alpha_{1,3} v^3 + \alpha_{1,4} v^4 b1=α1,1v1+α1,2v2+α1,3v3+α1,4v4 (表明:如果 a 1 a^1 a1 a 2 a^2 a2的关联性很强,则 α 1 , 2 ′ \alpha_{1,2}^{'} α1,2的得分越高,做weighted sum后, b 1 b^1 b1的值就越接近 v 2 v^2 v2


本篇论文使用multi-dimensional attention model来生成query embedding,这就使得能较好反应用户偏好的items对相应的外部memory units的定位产生较大的影响。

H u , l H_{u,l} Hu,l中的item embeddings记作 H u , l ∈ R d × ∣ H u , l ∣ \large \mathcal{H}_{u,l} \in \mathbb{R}^{d \times |H_{u,l}|} Hu,lRd×Hu,l,query embedding计算过程如下:

H u , l : = H u , l + P E ( H u , l ) \large \mathcal{H}_{u,l} := \mathcal{H}_{u,l} + PE(H_{u,l}) Hu,l:=Hu,l+PE(Hu,l)

S u , l = s o f t m a x { W a ( 3 ) t a n h [ W a ( 1 ) H u , l + ( W a ( 2 ) p u ) ⊗ 1 ϕ ] } \large S_{u,l} = softmax \{ W_a^{(3)} tanh [W_a^{(1)} \mathcal{H}_{u,l} + (W_a^{(2)} p_u) \otimes 1_{\phi} ] \} Su,l=softmax{Wa(3)tanh[Wa(1)Hu,l+(Wa(2)pu)1ϕ]}

Q u , l = t a n h ( S u , l ⋅ H u , l ⊤ ) \large Q_{u,l} = tanh(S_{u,l} \cdot \mathcal{H}_{u,l}^{\top}) Qu,l=tanh(Su,lHu,l)

q u , l = a v g ( Q u , l ) \large q_{u,l} = avg(Q_{u,l}) qu,l=avg(Qu,l)

P E ( ⋅ ) PE(\cdot) PE()是sinusoidal positional encoding function,将item positions映射为position embeddings(与Transformer中使用的一样):也就是说,保持sequence里面的items的相对顺序。

ϕ \phi ϕ的值为 ∣ H u , l ∣ |H_{u,l}| Hu,l ⊗ \otimes 表示outer product;

h h h是超参数,用来控制attention model的维数;

S u , l ∈ R h × ∣ H u , l ∣ \large S_{u,l} \in \mathbb{R}^{h \times |H_{u,l}|} Su,lRh×Hu,l是attention score matrix:个人觉得是multi-head self-attention的 q 1 q^1 q1 q 2 q^2 q2相加的过程

Q u , l ∈ R h × d Q_{u,l} \in \mathbb{R}^{h \times d} Qu,lRh×d是query matrix representation,h行的每一行都代表了query的一个不同方面;

最终的 q u , l ∈ R d q_{u,l} \in \mathbb{R}^d qu,lRd是combined query embedding,其平均了不同方面。

使用query embedding q u , l q_{u,l} qu,l 在memory network中找到共享用户潜在兴趣的合适组合appropriate combination of the shared user latent interest。

memory network中的keys、values记作 K ∈ R d × m K \in \mathbb{R}^{d \times m} KRd×m V ∈ R d × m V \in \mathbb{R}^{d \times m} VRd×m,其中m是memory units的数量。

user的long-term interest embedding建模如下:

α i = s o f t m a x ( q u , l T ⋅ k i ) \large \alpha_i = softmax(q_{u,l}^T \cdot k_i) αi=softmax(qu,lTki)

o u , l = ∑ i α i v i \large o_{u,l} = \sum\limits_i \alpha_i v_i ou,l=iαivi

p u , l H = q u , l + o u , l \large p_{u,l}^H = q_{u,l} + o_{u,l} pu,lH=qu,l+ou,l

k i , v i ∈ R d k_i, v_i \in \mathbb{R}^{d} ki,viRd是第i个memory unit;

上标H代表:这个表示是来自user long-term interest

3.4 Interest Fusion

下面一步是组合上述的两种隐藏表示,以方便user对未评级的items进行偏好预测。

借用了LSTM(使用可学习的gates来平衡当前输入、历史隐藏状态)的思想,本文中,使用一个可学习的gate来控制recent user interest表示、long-term user interest表示对combined user interest作出的贡献大小:

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 ) \large g_{u,l} = \sigma(W_g^{(1)} \cdot \frac{1}{|L|} \sum\limits_{i \in L_{u,l}}h_i + W_g^{(2)} \cdot p_{u,l}^H + W_g^{(3)} \cdot p_u) gu,l=σ(Wg(1)L1iLu,lhi+Wg(2)pu,lH+Wg(3)pu)

p u , l C = g u , l ⊙ 1 ∣ L ∣ ∑ i ∈ L u , l h i + ( 1 d − g u , l ) ⊙ p u , l H p_{u,l}^C = g_{u,l} \odot \frac{1}{|L|} \sum\limits_{i \in L_{u,l}}h_i + (1_d - g_{u,l}) \odot p_{u,l}^H pu,lC=gu,lL1iLu,lhi+(1dgu,l)pu,lH

W g ( 1 ) 、 W g ( 2 ) 、 W g ( 3 ) ∈ R d × d W_g^{(1)}、W_g^{(2)}、W_g^{(3)} \in \mathbb{R}^{d \times d} Wg(1)Wg(2)Wg(3)Rd×d是gating layer中的可学习参数;

⊙ \odot 表示element-wise multiplication;

g u , l ∈ R d g_{u,l} \in \mathbb{R}^{d} gu,lRd是可学习的gate;

上标 C C C表示 fusion of long- and short-term interests

3.5 Item Co-occurrence Modeling

序列推荐任务中,紧密相关的items通常在item sequence中一个接着一个出现(比如手机、保护壳)使用一个bilinear function来捕捉item的co-occurence patterns,来显示地对 L u , l L_{u,l} Lu,l中的items、其他的items 之间的成对关系 进行建模。形式如下:

e i ⊤ W r q j \large e_i^{\top} W_r q_j eiWrqj

W r ∈ R d × d W_r \in \mathbb{R}^{d \times d} WrRd×d是可学习的参数矩阵,捕捉了item latent features之间的相关性。

3.6 Prediction & Training

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 \large \hat{r}_{u,j} = p_u^{\top} \cdot q_j + p_{u,l}^{C\top} \cdot q_j + \frac{1}{|L|} \sum\limits_{i \in L_{u,l}} e_i^{\top} W_r q_j r^u,j=puqj+pu,lCqj+L1iLu,leiWrqj

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值