作者:PKU-DAIR
单位:北京大学
研究方向:大规模图学习
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 个该领域有待进一步研究的方向。
论文标题:
Graph Neural Networks in Recommender Systems: A Survey
综述提及的代表性工作及其开源实现:
使用异构的 user-item bipartite graph 还是使用两阶(two-hop)邻的同质图?考虑到效率,如何采样邻居?最直接的方法是直接使用原始的用户-项目二分图。如果某些节点在原始图中的邻居很少,则通过添加边或节点来丰富图结构将是有益的。在处理大规模图时,需要对邻域进行采样以提高计算效率。抽样是有效性和效率之间的权衡,更有效的抽样策略值得进一步研究。
如何从邻居汇聚信息?是否区分邻居的重要程度?当邻居更加异质时,采用注意力机制对邻居进行聚合比相等的权重和程度归一化更可取;否则,后两者更易于计算。显式建模邻居之间的影响或中心节点与邻居之间的亲和力可能会带来额外的好处,但需要在更多数据集上进行验证。
为更新节点,如何整合中心节点的当前表征和聚合邻居节点得到的表征?与丢弃原始节点相比,使用其原始表示和聚合的邻居表示更新节点会更可取。最近的工作表明,通过去除变换和非线性操作来简化传统的 GCN,可以获得比原始 GCN 更好的性能。
使用最后一层特征还是合并所有层?为了获得整体的用户/项目表示,利用所有层的表示比直接使用最后一层表示更可取。在整合来自所有层的表示的功能方面,线性加权且权重可学习的方式允许更大的灵活性,而拼接操作则保留了来自所有层的信息。
序列推荐是基于用户的近期活动预测用户下一个偏好,因此需要建模序列特征。下图演示了如何使用 GNN 做序列推荐:
目前工作集中于解决以下三个问题:
为了使用 GNN,序列数据需要转化为图。是否为每一个序列建立子图?是否在多个连续 items 上添加边会比只在连续的两个 items 上加边更好?下图显示了 4 种代表性的构图方式:
最直接的构造是在两个连续项目之间添加边。当序列长度较短时,利用附加序列可以丰富序列图,如果附加序列与原始序列更相似则更好。另一条线是调整行为序列的图结构。关于哪种方法更好,没有公认的说法。此外,序列和序列之间的关系图也被用来获得进一步的改进。
哪一种 propagation 机制更好?是否有必要区分序列的顺序?大多数信息传播方法是传统的GNN方向中传播方式的变体,对于哪种方法更好还没有共识。一些复杂的传播方法,例如 LESSR,以更多的计算为代价实现了性能提升。在实践中是否采用复杂的传播方法取决于计算成本和性能增益之间的权衡。
为了获取用户时间上的偏好,需要集成序列中的每一个项目的表征。是否简单使用 pooling 或者使用 RNN 结构来加强这种时间上连续的特征?为了获得顺序偏好,广泛采用注意力机制来整合序列中项目的表示。除此之外,添加位置嵌入可以增强项目的相对顺序并带来一些改进。利用 RNN 结构是否可以提高所有顺序推荐任务的性能需要进一步研究。
随着在线社交网络的出现,推荐系统开始采用和当前用户存在社交关系的用户来增强用户表征。这些工作基于同一个假设,即具有社交关系的用户,他们的表征符合社会影响理论:相互联系的人会相互影响。一部分工作将此作为正则项来约束最终的用户表征,另一部分工作则用这些关系来丰富单一的用户表征。GNN 的信息传播和更新机制和社交关系中的社会影响关系十分相近,因此最近的研究开始将 GNN 用于基于社交关系的推荐系统中。
目前工作集中于解决以下两个问题。
存在社交关系的朋友有同等的影响力吗?如果不是,如何区分不同朋友的影响?相比对好友赋予同等权重,区分不同好友的影响力更为合适。一个新兴的方向是自动修改社交关系,这可以从社交网络中存在的噪音中受益。
用户涉及两种类型的关系,即与朋友的社会关系和与项目的交互。如何从社会影响角度和交互行为整合用户表征?整合两种信息源的策略取决于是分别考虑这两个图还是将它们统一为一个图。对于单独的图,用户偏好是从这两个图中学习的整体表示的集成。对于统一图,通常采用的策略是分层聚合模式。
相比于社交网络,知识图谱表达的是 items 之间的关系,可以用来增强 item表征。另外它还连接了用户历史喜好 items 和被推荐 items,能有助于提升模型可解释性。同时,知识图谱也存在结构复杂的问题,实例(entities)和关系(relations)都有多个种类。
目前高效的基于知识图谱的推荐系统有两大主要问题。
如何聚合 user-item interactions 和知识图谱中的语义信息?是否显式地将用户节点放入知识图谱或是隐式地使用用户表征来区分不同关系的重要程度?现有工作要么将用户节点视为一种实体,要么隐式使用用户节点来区分关系。第一个方向可以进一步分为整体统一图或用户-项目对的特定子图。与整体统一图相比,user-item子图的优势在于关注更多相关的实体和关系,但需要更多的计算时间,性能取决于子图的构建,这还需要进一步研究。
知识图谱中的关系有很多种,如何设计一个聚合函数聚合这些信息?考虑到关系的多样性及其包含的丰富语义,GAT 的变体被广泛用于聚合来自链接实体的信息。对于没有明确包含用户节点的图,使用用户表示来为关系分配权重。
除了这四类任务之外,研究人员还开始利用 GNN 来提高其他推荐任务的性能,例如 POI 推荐和多媒体推荐。本文分别总结每个任务的最新进展,包含 POI 推荐,群组推荐,组合推荐,CTR 预测,多媒体推荐。详细内容请参见综述。
数据集、评估指标和应用
我们介绍了针对不同推荐任务的常用数据集和评估指标,并总结了基于 GNN 的推荐的实际应用。本节可以帮助研究人员找到合适的数据集和评估指标来测试他们的方法,并概述基于 GNN 的推荐的实际应用。
除了数据类型的异质性(例如,像用户和项目对应不同的节点类型,以及不同行为类型对应不同的边的类型),图中的用户通常还具有多样化和不确定的兴趣。将每个用户表示为一个单一的向量(低维向量空间中的一个点)很难捕捉用户感兴趣的这些特征。因此,如何代表用户的多重不确定兴趣是一个值得探索的方向。
在数据集包含数十亿个节点和边,而每个节点包含数百万个特征的工业推荐场景中,由于内存使用量大、训练时间长,直接应用传统 GNN 具有挑战性。
在实际的推荐系统中,不仅用户和物品等对象,而且它们之间的关系都随着时间而变化。为了保持最新的推荐,系统应该使用新的信息迭代更新。从图的角度来看,不断更新的信息带来的是动态图而不是静态图。
对于推荐中的图数据,节点度呈现长尾分布,即活跃用户与物品的交互较多,冷用户交互较少,类似于热门物品和冷物品。因此,在所有节点上应用相同的传播步骤可能不是最理想的。只有少数新兴工作可以自适应地决定每个节点的传播步骤,以获得合理的接收域。因此,如何在基于 GNN 的推荐中为每个用户或项目自适应地选择合适的接收域仍然是一个值得研究的问题。
自监督学习 (SSL) 是一种用于提高数据利用率的新兴范式,有助于缓解稀疏问题。受 SSL 在其他领域的成功启发,最近的努力将 SSL 用于推荐系统,并取得了显著成就。在基于 GNN 的推荐系统领域,值得进一步探索自监督学习方向。
最近的研究表明,GNN 很容易被输入上的小扰动所欺骗,即如果图结构包含噪声,GNN 的性能将大大降低。在实际推荐场景中,节点之间的关系并不总是可靠的,这是一个普遍的现象。例如,用户可能不小心点击了物品,无法捕捉到部分社交关系。此外,攻击者还可能将虚假数据注入推荐系统。因此,构建一个鲁棒的推荐系统,即使在存在先令攻击的情况下也能产生稳定的推荐,具有重要的现实意义。
由于《通用数据保护条例》第 12 条对隐私的严格保护,推荐系统中的隐私保护引起了学术界和工业界的广泛关注,因为大多数数据可能被视为机密/私人,例如社交网络和历史行为。随着社会对隐私保护的日益重视,基于 GNN 的推荐中的隐私保护由于其实用价值应该是一个有吸引力的方向。
近年来,关于推荐偏差的研究工作激增,以实现公平。例如,对不同群体的用户的推荐性能应该接近,并且每个项目应该具有相同的整体曝光概率。随着 GNN 的广泛普及,社会越来越担心 GNN 可能会做出歧视性决定。目前已经有一些工作对减轻基于 GNN 的推荐系统中的偏差进行了一些探索。由于推荐系统中普遍存在偏见以及社会对公平性的日益关注,在基于 GNN 的推荐系统中确保公平性的同时保持可比性能值得进一步研究。
可解释性对推荐系统是有益的:一方面,向用户提供可解释的推荐让他们知道为什么推荐这些项目并且可能具有说服力;另一方面,从业者可以知道该模型为何有效,这有助于进一步改进。由于可解释性的重要性,许多兴趣都集中在设计可解释的推荐模型或进行事后解释上。到目前为止,可解释的基于 GNN 的推荐系统仍未得到充分探索,这应该是一个有趣且有益的方向。
由于公众号试行乱序推送,您可能不再准时收到机器学习与推荐算法的推送。为了第一时间收到本号的干货内容, 请将本号设为星标,以及常点文末右下角的“在看”。