SR-GNN, 图网络召回

简述

SR-GNN,论文见[1],作者中科院(大学)。
将用户的session序列构建成有向图,通过考虑item之间的转移关系, 更好的学习item emb及用户的向量表达.

related work

一些流行的GNN演变.
word2vec, DeepWalk, LINE, node2vec.

结构及解读

网络结构

SR-GNN, 图网络召回_第1张图片

nodes connection

A s A_s As is defined as the concatenation of two adjacency matrices. directed edges have normalized weight.
SR-GNN, 图网络召回_第2张图片

gated recurrent units

SR-GNN, 图网络召回_第3张图片
这里就是直接挪用GRU,我挑几个该论文中的毛病:

  • r 才是 reset gate,文中一处错写为update gate;
  • 式(1)中,三个因式分别是 {12n, nd,d*2d},不能够正确地相乘啊
  • 式中的标识 i 与 时间step t 应该是一回事吧??
    有空看看源码探究吧。

session emb

h y b r i d _ s e s s i o n _ e m b = l i n e a r ( [ s l o c a l ; s g l o b a l ] ) hybrid\_session\_emb=linear([s_{local};s_{global}]) hybrid_session_emb=linear([slocal;sglobal]), where s g l o b a l = s o f t _ a t t e n t i o n ( ⋅ ) s_{global}=soft\_attention(\cdot) sglobal=soft_attention(),所谓 soft_attention 就是attention_score 没有经过 softmax 处理。

experiment

  • baselines. GRU4REC, STAMP, etc.
  • dataset. YooChoose from RecSys Chanllenge 2015.
  • P@20=71.36, evaluation metric , identical to recall@20.

讨论

Q: local or global graph ?
该文章将每个session作为一个单独的graph,称之为 local graph,只包含了当前session的信息。文中对比使用 global graph 效果下降,归因为 一个 session 中的点击是可以重复的,涉及到权重计算,global 的话会削弱权重,不能突出session中的喜好强度。

代码实现

见参考[2],其 tf 实现的代码可读性差,粗看下来并未同论文逻辑保持一致。差评!

参考

  1. paper,AAAI,2019, Session-based Recommendation with Graph Neural Networks
  2. corresponding official code,SR-GNN

你可能感兴趣的:(推荐系统)