FGNN论文阅读

Info

title: Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks
github: https://github.com/RuihongQiu/FGNN

关键词:

WGAT、Readout function

1 Motivation

当前工作的几个缺陷:
在这里插入图片描述
对于 session based 的推荐系统,当前的 model 只是简单的将 session 看作 time series 处理,建模物品的时间顺序并且计算它们的表示
然而如果只是这样处理,会忽略物品之间复杂的转移模式信息,导致推荐效果并不是最优

为了更好的捕捉物品的转移模式,论文提出了 FGNN 模型

2 Contribution

在这里插入图片描述

  1. 第一次在session-base RC中研究了序列中物品转移模式,提出了FGNN model
  2. WGAT model提出来作为 item feature encoder,用于学习分配权重给neighbors
  3. Readout function 用来生成恰当的 graph level 表示,用来生成推荐

3 Solution

在这里插入图片描述
论文在公式这一块做了很多讲解,下面简单总结一下步骤

  1. session graph 的构造
  2. 计算得到 item level 的表示
  3. 把 item level 的表示整合成 graph level 的表示
  4. 进行预测

3.1 session graph

在这里插入图片描述

论文构造的是带有权重的有向图
这个 session graph 的构造方法和常规的相比就是多了一个指向自己的边, ( v i , v j ) (v_i,v_j) (vi,vj) 的权重是 session 中 ( v i , v j ) (v_i,v_j) (vi,vj) 的出现次数

3.2 计算 item level 的表示

在这里插入图片描述
这里是论文的第一个创新点,论文提出了一个叫 WGAT 的机制,它能够处理论文中构造的带有权重的 graph

简单来说就是把结点边的权重作为新的参数传递到注意力机制中

这里堆叠了 L 层 WGAT,最后得到 session 中每个 item 的表示,如上图右所示
在这里插入图片描述
以上面的 graph 为例, x 6 x_6 x6 的两层聚合过程如右图所示

简单介绍一下 WGAT
全名是 Weighted Graph Attentional Layer,带有 Weighted 是因为论文构造的是带权重的有向图,传统的 GCN 和 GAT 直接处理会丢失掉权重的信息
在这里插入图片描述
WGAT 的 input 和 output 如上图所示,input 就是经过 embedding 的 item 组成的 session 序列,output 也是一个 session 序列,序列中每个 item 都经过了 L 层 WGAT 转换表示

更具体的,给定 node i 和 node j,它们的注意力系数计算公式:
在这里插入图片描述
Att 是一个映射函数, e i j e_{ij} eij 是一个实数,W 是一个共享参数(?), w i j wij wij 是 i 到 j 的权重

neighbour 的权重计算公式:
在这里插入图片描述
注意我们这里采样的 neighbour 是直接相邻的结点

更进一步的,定义 e i j e_{ij} eij 的计算方法:
在这里插入图片描述
Att 直接使用 MLP 作为实现

然后我们得到结点的表示:
在这里插入图片描述
为了稳定 self-attention layers 的训练,具体实现机制我们采用 GAT 中的多头注意力机制
在这里插入图片描述
其中 K 是 head 的数量,最后由于统一维度,我们采用公式 9 作为最终的结点表示
在这里插入图片描述

3.3 计算 graph level 的表示

这里是论文的第二个创新点,定义 Readout function
论文强调了要消除系统中的 bias 以及要充分地捕捉到 session embedding 的信息量
这里借鉴了 Set2Set 的方法
在这里插入图片描述
在这里插入图片描述
i 是图中结点的索引,q 代表目前所有结点级联表示的查询向量,e 是注意力系数,a 是归一化后的注意力系数

最终公式14得到的是 graph 的表示

3.4 预测

这里就是把前面的结果乘起来
在这里插入图片描述
在这里插入图片描述

损失函数用的是多分类交叉熵
在这里插入图片描述

4 Evaluation

在这里插入图片描述
数据集
在这里插入图片描述
结果
还有一些消融实验的图就不贴了

5 Summarization

回顾一下论文提到的问题

不能简单地把 session 当作时间序列处理,否则会漏掉物品之间的转移信息

为此提出了两个模块

WGAT,用于更好的提取 session 的表示,生成 item 的表示
Readout function,用于消除传统工作引入的 bias,生成 graph 的表示

问题是很关键的问题,但是两个处理方法感觉并不是很好,论文的公式有点混乱,读起来挺费劲的,最后实验效果显示和 SR-GNN 差距也不大

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值