《Neural Graph Collaborative Filtering》
Q1
论文试图解决什么问题?
Q2
这是否是一个新的问题?
Q3
这篇文章要验证一个什么科学假设?
Q4
有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?
Q5
论文中提到的解决方案之关键是什么?
Q6
论文中的实验是如何设计的?
Q7
用于定量评估的数据集是什么?代码有没有开源?
Q8
论文中的实验及结果有没有很好地支持需要验证的科学假设?
Q9
这篇论文到底有什么贡献?
Q10
下一步呢?有什么工作可以继续深入?
1、问题描述
问题:对于user-item二部图,输入为ID embedding,传统CF方法无法显式编码user-item之间的交互信号,更无法处理高阶连通信息。
解决:GNN消息传递。
2、NGCF
2.0 Input node feature
2.1 邻居聚合
user和item的邻居聚合都分为两部分:(以user的聚合为例)
-
item-->user的消息
- 正常的item消息传递
- 为了让消息依赖于边关系的强弱(相似节点间传递更多的消息),user和item之间的点积:
-
user-->自己的消息:
2.2 层组合(concat所有层的输出)
从0层原始特征开始concat,借鉴jumping knowledge,整合不同阶的信息。
2.3 损失函数
点积表示分数,bayes personalized ranking(BPR) loss希望u和i如果是邻居(j一般是通过负采样来实现),分越高越好。后面是L2正则化,防止过拟合。
3、实验
3.1 数据集
- Gowalla:用户通过check-in共享他们的位置。保留至少有10个交互的用户和项目。
- Amazon-book:产品推荐数据集
- Yelp2018:取自2018年版的Yelp挑战赛。其中,餐厅、酒吧等当地企业被视为项目。
3.2 baseline
不基于图的方法
- MF:基于矩阵分解的方法
- NeuMF:基于神经网络的CF方法
- ...
基于图的方法
- HOP-Rec
- GC-MC
- PinSage
3.3 评估指标
-
recall@k(item集合评估指标)
- 可以简单理解为,user的推荐集合中,和真实的user行为比较,相关的item所占的比例
-
NDCG@k(item排序评估指标)
- 按照排名依次衰减权重
- , L为列表长度
3.4 实验结果
感觉recall和ndcg比较低啊。
不同层:
不同消息函数: