基于图的推荐算法(12):Handling Informatio
前言
- KDD2020,针对基于会话推荐任务提出的GNN方法
- 对已有的GNN方法的缺陷进行分析并做出改进
- 主要针对lossy session encoding和ineffective long-range dependency capturing两个问题:基于GNN的方法存在损失部分序列信息的问题,主要是在session转换为图以及消息传播过程中的排列无关(permutation-invariant)的聚合过程中造成。
-
由于GNN层数限制,session内的一些长期依赖无法被捕捉
引言
基于会话的推荐算法具有极高的实用价值,近年来被广泛研究,基于GNN的会话推荐也被很多学者研究,然而却存在着信息损失的问题。
-
有损编码问题 lossy session encoding problem
如下图所示,不同的session被编码成同样的graph,
- 长期依赖捕捉问题 ineffective long-range dependency capturing
文中提出无损编码:edge-order preserving(EOP) multigraph 保存交互顺序信息;
并提出shortcut graph来解决长期依赖捕捉的问题。
模型方法
1. 问题定义
物品集合:![](https://img.haomeiwen.com/i16043538/d0c02a0e4e8a2c43.png)
![](https://img.haomeiwen.com/i16043538/075de4effa7e936d.png)
![](https://img.haomeiwen.com/i16043538/5db9627133c41060.png)
没有利用额外的上下文信息
2. 构图
包含两种构图方式:构建EOP graph和构建shortcut graph
![](https://img.haomeiwen.com/i16043538/2e0dde7f97d288b0.png)
S2MG: Session to EOP Multigraph
给每个节点的入边进行有序编号,是一种无损编码的方法
S2SG: Session to Shortcut Graph
为了有效解决现有基于GNN的方法无法处理长期依赖的问题,文中提出构建shortcut graph,利用the shortcut graph attention (SGAT) layer处理graph. 图中的边根据session中物品的时序来构建,当且仅当节点u,v都在session中并且时,二者之间存在一条边,即单向全连接图
(本质上是加了Mask的Transformer)
3. 模型LESSR
![](https://img.haomeiwen.com/i16043538/4cc1b9b022cfbd5b.png)
![](https://img.haomeiwen.com/i16043538/a0dcdc8b45660bf3.png)
主要工作创新在于利用RNN聚合来解决信息损失问题。
信息更新过程如下![](https://img.haomeiwen.com/i16043538/41d4c525802b99e2.png)
shortcut graph Attention (SGAT)
![](https://img.haomeiwen.com/i16043538/cc8da3b7ce10644a.png)
不加限制的添加short-cut 会不会造成信息冗余?
将EOP Layer和SGAT交替堆叠,一方面避免SGAT构图的损失累计;另一方面:可以有效地利用不同层学习到的特征。
最后将图中节点表征进行聚合得到session的表征,即readout操作![](https://img.haomeiwen.com/i16043538/8529229a5bdb3706.png)
模型预测与训练
预测方法:![](https://img.haomeiwen.com/i16043538/a108c521b97ce9da.png)
![](https://img.haomeiwen.com/i16043538/a74b04c3d483b724.png)
![](https://img.haomeiwen.com/i16043538/6a5c7f4d86beb502.png)
实验情况
![](https://img.haomeiwen.com/i16043538/916a18750a59134a.png)
![](https://img.haomeiwen.com/i16043538/ec52dde16b807f2c.png)
小结
本文对GNN方法中的缺陷进行了分析,指出了GNN用于SBR的问题,并针对性地提出了无损编码方法和GNN改进方法,工作还是挺有创新性,但在具体的SGAT中仍然存在着改进的空间。