一文了解推荐系统中的图神经网络
作者|杨晨
机构|中国人民大学高瓴人工智能学院硕士
研究方向 | 推荐系统
本文主要介绍推荐系统中的图神经网络,欢迎交流探讨!
引言:近年来,GNN技术由于其在图数据学习方面的出色表现,在许多领域得到了广泛的应用。在推荐系统中,大部分信息本质上具有图结构,而由于GNN对于表示学习具有一定的优势,所以GNN在推荐系统相关领域的应用迅速发展。本文尽可能用通俗的语言代替算法公式来进行讲述,希望可以让读者对推荐系统中的图神经网络有一个基本的了解。
一、什么是图神经网络?
Graph Neural Network(GNN),顾名思义,图上的神经网络,为了理解GNN,需要弄清楚以下两个问题:
1.首先,什么是图(Graph)?简单来讲,图是定义了节点(node)和连接方式(edge)的一种结构,节点和边都分别具有其性质,比如化学分子(原子/键)、城市地铁(站台/铁路)、社交网络(人/关系)。
直观上想,近朱者赤近墨者黑,一个节点跟他所连接的节点应该有一些相似的关系,那么就可以利用这些特定的关系来帮助我们的模型学到好的节点表示,那么怎么做到这件事呢?
二、为什么要在推荐系统中使用图神经网络?
对于 general recommendation:交互数据,可以看作二部图(bipartite graph)
对于 sequential recommendation:物品序列,可以抽象成序列图(sequence graph)
其他辅助信息:社会关系(social relationship)和知识图谱(knowledge graph)均可以看作图结构数据
对于 general recommendation:GNN可以通过节点聚合显式地编码协同信号来增强用户和物品的表示学习能力,相比与其他模型,GNN对多跳信息的建模更加灵活方便。
对于 sequential recommendation:将序列数据转换为序列图可以更灵活地进行项目选择的原始转换,并且,GNN可以通过环的结构捕获隐含在顺序行为中的复杂用户偏好。
三、推荐系统中的图神经网络分类
General Recommendation
图结构建模。是在异构二部图上应用GNN,还是基于两跳近邻重构齐次图?考虑到计算效率,如何对有代表性的邻域进行图传播,而不是对整个图进行操作? 邻居聚合。如何聚合来自邻居节点的信息?具体来说,是否要区分邻居的重要性?还是要区分邻居之间的相互作用? 信息更新。如何将中心节点表示与其相邻节点的聚合表示相结合? 最终节点表示。是否使用最后一层中的节点表示,还是使用所有层中的节点表示的组合作为最终的节点表示?
社会关系的影响。社会关系中朋友有同等的影响力吗?如果没有,如何区分不同朋友的影响? 偏好集成。如何整合社会影响角度和交互行为这两方面的用户表示?
图结构建模。怎样平衡信息丰富度和图网络复杂度?怎样把用户融合进知识图谱? 关系感知聚合。如何设计关系感知的聚合函数来聚合链接实体的信息?
Sequential Recommendation
图结构建模。为每个序列单独构造一个子图是否足够?在几个连续项之间添加边是否比只在两个连续项之间添加边更好? 信息传递。要捕获转换模式,哪种传播机制更合适?是否有必要区分链接项的顺序? 序列偏好。为了获得用户的实时偏好,应该集成序列中的表示。是简单地应用注意力池还是利用RNN结构来增强连续时间模式?
其他推荐任务
四、结语
本文主要围绕推荐系统中的图神经网络这个主题,从图神经网络到其在推荐系统中的分类的进行了概述,希望可以通过这篇文章让读者对该领域有一个简单认识。同时欢迎对文章内容有疑问或想法的同学在评论区积极留言讨论!
最后,仍然向大家推荐非常好用的推荐算法工具包“伯乐”(RecBole,github链接在这里:https://github.com/RUCAIBox/RecBole),包含并实现了上述提到的多种GNN相关模型(NGCF / LightGCN / KGCN / KGAT / SRGNN / GCSAN 等),非常适合刚刚入门推荐系统的朋友,下面是RecBole介绍文章,希望大家多多支持!
参考文献
[1] https://www.bilibili.com/video/BV1Wv411h7kN?p=28
[2] Thomas N Kipf, et al. Semi-supervised classification with graph convolutional networks. ICLR 2017.
[3] William L. Hamilton, et al. Inductive Representation Learning on Large Graphs. NIPS 2017.
[4] Petar Veličković, et al. Graph attention networks. arXiv preprint arXiv:1710.10903 (2017).
[5] Yujia Li et al. Gated graph sequence neural networks. arXiv preprint arXiv:1511.05493 (2015).
[6] Wu S, et al. Graph Neural Networks in Recommender Systems: A Survey[J]. 2020.
[7] J. Bruna, et al. Spectral networks and locally connected networks on graphs. ICLR 2014.
[8] Zonghan Wu, et al. A comprehensive survey on graph neural networks. IEEE Transactions on Neural Networks and Learning Systems (2020).
[9] Xiang Wang, et al. Neural Graph Collaborative Filtering. SIGIR 2019.
[10] Xiangnan He, et al. LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation. SIGIR 2020.
[11] Le Wu, et al. A Neural Influence Diffusion Model for Social Recommendation. SIGIR 2019.
[12] Wenqi Fan, et al. Graph Neural Networks for Social Recommendation. WWW 2019.
[13] Hongwei Wang, et al. Knowledge Graph Convolutional Networks for Recommender Systems. WWW 2019.
[14] Xiang Wang, et al. KGAT: Knowledge Graph Attention Network for Recommendation. KDD 2019.
[15] Shu Wu, et al. Session-based recommendation with graph neural networks. AAAI 2019
[16] Chengfeng Xu, et al. Graph contextualized self-attention network for session-based recommendation. IJCAI 2019.
[17] Weiping Song, et al. Session-based social recommendation via dynamic graph attention networks. WSDM 2019.
[18] Zekun Li, et al. Fi-GNN: Modeling Feature Interactions via Graph Neural Networks for CTR Prediction. WWW 2019.
[19] Buru Chang, et al. Learning Graph-Based Geographical Latent Representation for Point-of-Interest Recommendation. CIKM 2020.
[20] Zhixiang He, et al. GAME: Learning Graphical and Attentive Multi-View Embeddings for Occasional Group Recommendation. SIGIR 2020.
[21] Jianxin Chang, et al. Bundle Recommendation with Graph Convolutional Networks. SIGIR 2020.