查看原文
其他

【综述专栏】基于图神经网络的推荐系统

在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。

本文作者:
SHIWEN WU, Peking University, China 
FEI SUN∗ , Alibaba Group, China 
WENTAO ZHANG, XU XIE, BIN CUI† , Peking University, China
ACM Computing Surveys(CSUR)中文全称为美国计算机学会计算概观,是计算机学科最具影响力的期刊之一。作为计算机科学、理论和方法的综述类顶刊,其2020影响因子10.282,该期刊主要发表计算机科学领域较有代表性的综述论文。PKU-DAIR实验室研究成果《Graph Neural Networks in Recommender Systems: A Survey》已被ACM Computing Surveys接收。近几年,图神经网络(GNN)技术在推荐系统中得到了广泛的应用,因为推荐系统中的大部分信息本质上都具有图结构,而 GNN 在图表示学习方面具有优势。该综述旨在梳理、总结并讨论关于基于 GNN 的推荐系统的研究工作,便于对此领域感兴趣的研究者或者工业界人士快速了解这一领域。具体来说,该综述基于推荐过程中使用的信息类型和推荐任务对现有工作进行分类。此外,我们分析了将 GNN 应用于不同类型数据和推荐任务面临的挑战,总结了现有工作如何应对这些挑战,并讨论了现有工作的优点和局限性。此外,我们阐述了9个该领域有待进一步研究的方向。
综述中提及的代表性工作及其对应的开源实现:
https://github.com/PKU-DAIR/GNN-in-RS
论文链接:
https://dl.acm.org/doi/abs/10.1145/3535101

01

引言
随着在线信息的爆炸式增长,推荐系统在缓解这种信息过载方面发挥着关键作用。由于推荐系统的重要应用价值,该领域一直有新兴的工作。在推荐系统中,主要挑战是从交互和辅助信息(如果有的话)中学习有效的用户/项目表示。最近,图神经网络(GNN)技术在推荐系统中得到了广泛的应用,主要原因有以下三点:(1)推荐系统中的大部分信息本质上都具有图结构,而 GNN 在图表示学习方面具有优势;(2)从图结构的角度,不同的数据类型信息可以采用统一的框架建模;(3)GNN通过多层网络传递信息,可以显式地编码用户交互行为中的高阶信号。本文基于推荐过程中使用的信息类型和推荐任务对现有工作进行分类,分别为用户-项目协同过滤,序列推荐,基于社交网络的推荐,基于知识图谱的推荐,以及其他任务。对于每个类别,我们总结了主要挑战,介绍了代表性模型并说明了它们如何解决这些问题。每一章的最后对现有工作的优点和局限性展开了讨论。本文总结了主流基准数据集、广泛采用的评估指标,并简述了实际应用。此外,我们阐述了9个该领域有待进一步研究的方向。

02

User-item Collaborative Filtering
给定 user-item 交互数据,user-item collaborative filtering 的目标是利用 items 来加强 user representations、利用 users 来加强 item representation。下图演示了如何使用 GNN 做 Collaborative Filtering。
目前工作集中于解决以下四个问题:

2.1 Graph Construction

使用异构的 user-item bipartite graph 还是使用两阶(two-hop)邻的同质图?考虑到效率,如何采样邻居?最直接的方法是直接使用原始的用户-项目二分图。如果某些节点在原始图中的邻居很少,则通过添加边或节点来丰富图结构将是有益的。在处理大规模图时,需要对邻域进行采样以提高计算效率。抽样是有效性和效率之间的权衡,更有效的抽样策略值得进一步研究。

2.2 Neighbor Aggregation

如何从邻居汇聚信息?是否区分邻居的重要程度?当邻居更加异质时,采用注意力机制对邻居进行聚合比相等的权重和程度归一化更可取;否则,后两者更易于计算。显式建模邻居之间的影响或中心节点与邻居之间的亲和力可能会带来额外的好处,但需要在更多数据集上进行验证。

2.3 Information Update

为更新节点,如何整合中心节点的当前表征和聚合邻居节点得到的表征?与丢弃原始节点相比,使用其原始表示和聚合的邻居表示更新节点会更可取。最近的工作表明,通过去除变换和非线性操作来简化传统的 GCN,可以获得比原始 GCN 更好的性能。

2.4 Final Node Representation

使用最后一层特征还是合并所有层?为了获得整体的用户/项目表示,利用所有层的表示比直接使用最后一层表示更可取。在整合来自所有层的表示的功能方面,线性加权且权重可学习的方式允许更大的灵活性,而拼接操作则保留了来自所有层的信息。


03

Sequential Recommendation
序列推荐是基于用户的近期活动预测用户下一个偏好,因此需要建模序列特征。下图演示了如何使用 GNN 做序列推荐:
目前工作集中于解决以下三个问题:

3.1 Graph Construction

为了使用 GNN,序列数据需要转化为图。是否为每一个序列建立子图?是否在多个连续 items 上添加边会比只在连续的两个 items 上加边更好?下图显示了4种代表性的构图方式:
最直接的构造是在两个连续项目之间添加边。当序列长度较短时,利用附加序列可以丰富序列图,如果附加序列与原始序列更相似则更好。另一条线是调整行为序列的图结构。关于哪种方法更好,没有公认的说法。此外,序列和序列之间的关系图也被用来获得进一步的改进。

3.2 Information Propagation

哪一种 propagation 机制更好?是否有必要区分序列的顺序?大多数信息传播方法是传统的GNN方向中传播方式的变体,对于哪种方法更好还没有共识。一些复杂的传播方法,例如 LESSR,以更多的计算为代价实现了性能提升。在实践中是否采用复杂的传播方法取决于计算成本和性能增益之间的权衡。

3.3 Sequential Preference

为了获取用户时间上的偏好,需要集成序列中的每一个项目的表征。是否简单使用 pooling 或者使用 RNN 结构来加强这种时间上连续的特征?为了获得顺序偏好,广泛采用注意力机制来整合序列中项目的表示。除此之外,添加位置嵌入可以增强项目的相对顺序并带来一些改进。利用 RNN 结构是否可以提高所有顺序推荐任务的性能需要进一步研究。


04

Social Recommendation
随着在线社交网络的出现,推荐系统开始采用和当前用户存在社交关系的用户来增强用户表征。这些工作基于同一个假设,即具有社交关系的用户,他们的表征符合社会影响理论:相互联系的人会相互影响。一部分工作将此作为正则项来约束最终的用户表征,另一部分工作则用这些关系来丰富单一的用户表征。GNN的信息传播和更新机制和社交关系中的社会影响关系十分相近,因此最近的研究开始将GNN用于基于社交关系的推荐系统中。
目前工作集中于解决以下两个问题:

4.1 Influence of Friends

存在社交关系的朋友有同等的影响力吗?如果不是,如何区分不同朋友的影响?相比对好友赋予同等权重,区分不同好友的影响力更为合适。一个新兴的方向是自动修改社交关系,这可以从社交网络中存在的噪音中受益。

4.2 Preference Integration

用户涉及两种类型的关系,即与朋友的社会关系和与项目的交互。如何从社会影响角度和交互行为整合用户表征?整合两种信息源的策略取决于是分别考虑这两个图还是将它们统一为一个图。对于单独的图,用户偏好是从这两个图中学习的整体表示的集成。对于统一图,通常采用的策略是分层聚合模式。


05

Knowledge Graph based Recommendation
相比于社交网络,知识图谱表达的是 items 之间的关系,可以用来增强 item表征。另外它还连接了用户历史喜好 items 和被推荐 items,能有助于提升模型可解释性。同时,知识图谱也存在结构复杂的问题,实例(entities)和关系(relations)都有多个种类。
目前高效的基于知识图谱的推荐系统有两大主要问题:

5.1 Graph Construction

如何聚合 user-item interactions 和知识图谱中的语义信息?是否显式地将用户节点放入知识图谱或是隐式地使用用户表征来区分不同关系的重要程度?现有工作要么将用户节点视为一种实体,要么隐式使用用户节点来区分关系。第一个方向可以进一步分为整体统一图或用户-项目对的特定子图。与整体统一图相比,user-item子图的优势在于关注更多相关的实体和关系,但需要更多的计算时间,性能取决于子图的构建,这还需要进一步研究。

5.2 Relation-aware Aggregation

知识图谱中的关系有很多种,如何设计一个聚合函数聚合这些信息?考虑到关系的多样性及其包含的丰富语义,GAT 的变体被广泛用于聚合来自链接实体的信息。对于没有明确包含用户节点的图,使用用户表示来为关系分配权重。


06

Other tasks
除了这四类任务之外,研究人员还开始利用 GNN 来提高其他推荐任务的性能,例如 POI 推荐和多媒体推荐。本文分别总结每个任务的最新进展,包含POI推荐,群组推荐,组合推荐,CTR预测,多媒体推荐。详细内容请参见综述。

07

Datasets, Evaluation Metrics and Applications
我们介绍了针对不同推荐任务的常用数据集和评估指标,并总结了基于 GNN 的推荐的实际应用。本节可以帮助研究人员找到合适的数据集和评估指标来测试他们的方法,并概述基于 GNN 的推荐的实际应用。


08

Future research directions and open issues
虽然 GNN 在推荐系统方面取得了巨大成功,但这一领域依然值得进一步地研究。本节概述了几个有前途的前瞻性研究方向。

8.1多样化的用户表征

除了数据类型的异质性(例如,像用户和项目对应不同的节点类型,以及不同行为类型对应不同的边的类型),图中的用户通常还具有多样化和不确定的兴趣。将每个用户表示为一个单一的向量(低维向量空间中的一个点)很难捕捉用户感兴趣的这些特征。因此,如何代表用户的多重不确定兴趣是一个值得探索的方向。

8.2 GNN用于推荐系统的可扩展性和效率

在数据集包含数十亿个节点和边,而每个节点包含数百万个特征的工业推荐场景中,由于内存使用量大、训练时间长,直接应用传统 GNN 具有挑战性。

8.3 推荐系统中的动态图上如何使用GNN技术

在实际的推荐系统中,不仅用户和物品等对象,而且它们之间的关系都随着时间而变化。为了保持最新的推荐,系统应该使用新的信息迭代更新。从图的角度来看,不断更新的信息带来的是动态图而不是静态图。

8.4 推荐中 GNN 的接收域

对于推荐中的图数据,节点度呈现长尾分布,即活跃用户与物品的交互较多,冷用户交互较少,类似于热门物品和冷物品。因此,在所有节点上应用相同的传播步骤可能不是最理想的。只有少数新兴工作可以自适应地决定每个节点的传播步骤,以获得合理的接收域。因此,如何在基于 GNN 的推荐中为每个用户或项目自适应地选择合适的接收域仍然是一个值得研究的问题。

8.5 自监督学习

自监督学习 (SSL) 是一种用于提高数据利用率的新兴范式,有助于缓解稀疏问题。受 SSL 在其他领域的成功启发,最近的努力将 SSL 用于推荐系统,并取得了显著成就。在基于 GNN 的推荐系统领域,值得进一步探索自监督学习方向。

8.6 基于GNN的推荐系统的鲁棒性

最近的研究表明,GNN 很容易被输入上的小扰动所欺骗,即如果图结构包含噪声,GNN 的性能将大大降低。在实际推荐场景中,节点之间的关系并不总是可靠的,这是一个普遍的现象。例如,用户可能不小心点击了物品,无法捕捉到部分社交关系。此外,攻击者还可能将虚假数据注入推荐系统。因此,构建一个鲁棒的推荐系统,即使在存在先令攻击的情况下也能产生稳定的推荐,具有重要的现实意义。

8.7 隐私保护

由于《通用数据保护条例》第 12 条对隐私的严格保护,推荐系统中的隐私保护引起了学术界和工业界的广泛关注,因为大多数数据可能被视为机密/私人,例如社交网络和历史行为。随着社会对隐私保护的日益重视,基于 GNN 的推荐中的隐私保护由于其实用价值应该是一个有吸引力的方向。

8.8 公平性

近年来,关于推荐偏差的研究工作激增,以实现公平。例如,对不同群体的用户的推荐性能应该接近,并且每个项目应该具有相同的整体曝光概率。随着 GNN 的广泛普及,社会越来越担心 GNN 可能会做出歧视性决定。目前已经有一些工作对减轻基于 GNN 的推荐系统中的偏差进行了一些探索。由于推荐系统中普遍存在偏见以及社会对公平性的日益关注,在基于 GNN 的推荐系统中确保公平性的同时保持可比性能值得进一步研究。

8.9可解释性

可解释性对推荐系统是有益的:一方面,向用户提供可解释的推荐让他们知道为什么推荐这些项目并且可能具有说服力;另一方面,从业者可以知道该模型为何有效,这有助于进一步改进。由于可解释性的重要性,许多兴趣都集中在设计可解释的推荐模型或进行事后解释上。到目前为止,可解释的基于 GNN 的推荐系统仍未得到充分探索,这应该是一个有趣且有益的方向。

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“综述专栏”历史文章


更多综述专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存