TKDE2020 | 基于知识图谱的推荐系统综述
TKDE 2020
综述:基于知识图谱的推荐系统
A Survey on Knowledge Graph-Based Recommender Systems
本文是中科院计算所、百度、港科大、中科大、微软学者发表于TKDE-2020的工作[1]。这篇工作基于该团队发表于《中国科学:信息科学》的中文综述论文[2],进一步全面地归纳了近年来基于知识图谱的推荐系统方面的相关工作,对里面的核心关键算法进行了展开的介绍和对比分析,汇总了所涉及到的知识图谱数据;我们还总结了现有不同基于知识图谱的推荐系统应用场景和相应可选择的benchmark数据集;最后我们对该领域的未来发展进行了一定的展望讨论,对该领域今后的研究具备一定的指导意义。
1. 引言
随着互联网的快速发展,我们正处在信息爆炸的时代。当我们在享受互联网带来的便利的同时,也面临着信息过载的问题,难以迅速地从海量数据中汲取所需信息。为了解决这一问题,推荐系统应运而生,并在包括音乐、电影、购物等众多场景落地实践,提高了用户的体验。
近段时间,基于知识图谱的推荐系统引起了研究者的广泛关注,其基本思想是将知识图谱作为一种辅助信息引入到推荐系统中。这种方法既可以提高推荐系统的准确性,又能够为推荐结果提供解释。一方面,知识图谱是一种有向信息异构网络,其中节点代表实体,有向边可表示实体间的关系。知识图谱蕴含了推荐系统中物品的大量背景信息,可表示物品间的多种关系。与此同时,还可以结合推荐系统中用户与物品的交互数据,扩展用户和物品间的隐藏连通关系,从而更精准地建模用户偏好,提高推荐效果。下图是一个基于知识图谱的推荐实例,其中既包括了用户、电影、演员、导演、题材这几种实体,又包含了实体间的复杂关系。电影“阿凡达”、“血钻”和用户Bob借助知识图谱中的隐藏关系连接在一起,从而辅助系统做出精准的推荐。另一方面,知识图谱也使得推荐结果有迹可循。例如通过该图中的关系序列,我们可以得知向Bob推荐“阿凡达”的一个原因是,“阿凡达”与Bob曾经看过的星际穿越同属科幻片。
图1 一个基于知识图谱的推荐实例
本综述的目的是总结与阐述利用知识图谱做推荐的研究现状,这一工作与前人的工作有所重叠,例如基于图的推荐系统综述、关于知识图谱应用的综述。和前人的工作相比,我们对于方法的介绍更为深入,并提供了更细致的层次化技术分类。我们首先将该领域的文章分为三大类,分别是基于嵌入的方法(embedding-based methods),基于连接的方法(connection-based methods),和基于传播的方法(propagation-based methods)。同时又按照每一类方法的特点,提供更细致的划分。本文的第二点贡献是我们详细阐述了知识图谱如何给推荐结果提供可解释性,并总结了不同技术手段。同时,我们以推荐系统的应用场景作为划分依据,总结了不同应用下可使用的数据集。最后,我们根据对这一领域的理解,提出了一些未来发展方向的展望。
2. 方法总结
我们按照知识图谱的利用方式将现有工作分为三大类:基于嵌入的方法,基于连接的方法和基于传播的方法。对于每类方法,我们又做了更进一步的划分,并列举了代表性工作加以介绍。我们将所调研的文章汇总在如下的表格中,将每种方法按照我们总结的分类依据归类,并整理了各工作构建知识图谱的方式,图嵌入方法,以及解决的主要问题,以方便读者查阅。
表一、 方法总结
2.1
基于嵌入的方法
基于嵌入的方法主要利用知识图谱中丰富的语义关系,来丰富物品、用户的表征。这类方法主要包含两部分:图嵌入模块,主要利用图嵌入的方法学习知识图谱中实体和关系的表征;和推荐模块,以建模用户对物品的偏好。按照这两个模块的结合方式,可将这一方向的工作划分为三类。第一类是依次学习,首先利用图嵌入算法单独训练图嵌入模块,随后将预先训练好的知识图谱表征向量引入到推荐系统中,扩充用户、物品的语言表征,随后训练推荐模块,一些代表性的工作包括DKN、KSR、KTGAN等;第二种思路是联合学习,将图嵌入模块和推荐模块的目标函数相结合,从而实现端到端的训练,代表性工作包括CKE、CFKG等;第三种思路是引入多任务学习框架,通过将图嵌入模块设计成与推荐模块相关而又分离的任务,例如知识图谱补全,边预测任务,从而利用图嵌入模块监督推荐模块的训练过程,相关工作包括MKR、KTUP、RCF。
2.2
基于连接的方法
基于连接的方法主要利用图谱中实体间的连接方式做推荐,这类方法大多是将包含物品属性的知识图谱与用户-物品的交互矩阵相结合,构建用户-属性-物品图,挖掘用户和物品间的多种连接关系。这一方向有两种基本思路,第一种是利用实体间的连接相似性做推荐,通过定义图谱中的基本结构特征,例如元路径,计算不同路径下实体间的相关性,作为用户及物品表征的约束条件,代表性工作包括Hete-CF、FMG等;第二种思路是挖掘用户与物品之间存在的语义路径,学习实体间连接路径的显式表征,将其引入到推荐框架中,以直接建模用户与物品间的连接关系,代表性工作包括MCRec、RKGE等。
2.3
基于传播的方法
尽管上述两类方法都提升了推荐的精准性,但都没有利用图中所包含的全部信息,比如基于嵌入的方法侧重于学习知识图谱中的语义表示,而基于连接的方法关注知识图谱中实体的连接信息。基于传播的方法结合了上述两大思路,其基本思想是借助知识图谱中实体间的连接路径,将实体语义表征在图中传播,直接建模实体间的高阶关系,从而更合理地挖掘了知识图谱所包含的信息。基于传播的方法包含三种实现途径,具体而言,第一种方式基于用户的历史行为,通过聚合用户历史交互物品的多跳邻居来丰富用户表征,从而将用户的历史兴趣在知识图谱中沿着向外传播,这方向的代表性工作包括RippleNet,AKUPM等。第二类方式是将目标物品与其多跳邻居聚合,更新物品的表征。在聚合过程中,实体表征的聚合权重由用户和目标实体共同决定,从而将用户的偏好引入到实体表征的更新过程中,代表工作包括KGCN等。第三种思路是将用户物品交互矩阵与包含属性信息的知识图谱相结合,从而将用户和物品统一表示在一张图,并与图中各自的多跳邻居表征聚合,丰富用户与物品的表征,代表工作包括KGAT等。
2.4
本章小结
基于嵌入的方法使用图嵌入算法学习知识图谱中实体和关系的表征,将其整合到推荐系统框架中。其优势是较为灵活,易于实践,但这种方法忽略了实体间的高阶关系,且往往不具有可解释性。基于连接的方法侧重于挖掘用户与物品在知识图谱中的多种连接关系,其优势是连接模式往往可以带来可解释性,但往往不适用于用户与物品交互数据稀疏的场景,且将用户与物品间复杂的关系分解为若干连接单元会损失部分信息。基于传播的方法基于图上传播机制,结合了基于嵌入的方法和基于连接的方法的特点,充分挖掘知识图谱中的信息。但一个显著的缺点是训练过程需要消耗较多计算资源,在大规模数据的业务场景下需要考虑可扩展性。
我们也简要总结了利用知识图谱为推荐结果带来可解释性的主要技术手段,包括:1)对知识图谱的关系嵌入运用注意力机制2)定义元路径等基本结构单元3)对连接路径表征运用注意力机制4)在结合了用户与物品交互信息的知识图谱中运用强化学习5)提取基于传播的方法中实体聚合的权重。
3. 数据集
基于知识图谱的推荐系统不仅可以提高推荐效果,带来可解释性,还易于与多种推荐框架相结合,运用于众多实际场景。我们将所调研的工作按照应用场景分为七类,包括电影推荐、图书推荐、音乐推荐、新闻推荐、商品推荐、POI推荐以及社交推荐,总结了每种场景下所使用的的数据集与采用的外部知识图谱,并按照构建知识图谱的方法总结各个工作。同时,我们也阐述了每种应用场景的特点,并介绍了每种场景下对应数据集的基本信息。为方便读者查阅本节内容,我们将其总结于下表。
表二、数据集总结
4. 未来展望
除此之外我们也对这一方向的工作做了展望,包括:
1)动态推荐:当前基于知识图谱的推荐算法往往训练时间较长,成本过高,适用于静态的推荐场景,用户的兴趣在很长一段时间内保持稳定。然而在实际的业务场景中,用户的兴趣往往变化迅速。如何基于实时的反馈数据,动态迭代推荐策略,保证推荐的时效性,是未来的研究趋势之一
2)多任务学习:知识图谱本身存在的一些问题也会成为推荐系统的瓶颈,例如知识图谱中事实信息并不完整,导致实体间部分关系缺失,从而可能忽略了用户的部分偏好。因此可以设计与知识图谱相关的任务,例如知识图谱补全,将其与推荐系统联合训练,以便提高推荐效果。
3)跨领域推荐:在实际业务场景中,用户往往会选购不同领域的商品,例如图书和电影。不同领域的交互数据可以与知识图谱自然地结合在一起,且推荐系统在多种场景下往往具有相似的规律。因此可以通过迁移学习等技术,通过共享交互数据相对丰富的源领域的交互特征,缓解目标领域数据稀疏的问题,从而在多个领域都做出更好的推荐结果。
4)结合知识的文本表示:在以新闻推荐为代表的推荐场景下,理解文本信息至关重要。通过将外部知识图谱中的丰富信息引入语言模型训练中,可以获得更好的文本表示,比如结合知识的文本表示方法ERNIE和STCKA,可以用在新闻推荐这样的文本为主的应用里,从而做出更准确的推荐。
5. 总结
本文调研了基于知识图谱的推荐系统的相关工作,系统总结了这一领域的最新进展。我们着重阐述了不同研究方法的技术特点并提出了分类方式,同时阐述了如何运用知识图谱为推荐结果带来可解释性。与此同时,我们也介绍了不同应用场景下可供选择的数据集,为入门这一方向提供了可行的建议。最后,我们提出了这个研究方向存在的发展趋势,希望能促进这一领域的进步与发展。基于知识图谱的推荐系统方兴未艾,知识图谱中蕴含的丰富信息,可以有效提升推荐系统的效果,并带来可解释性。我们希望本文能够帮助读者理解这一领域的工作。
论文下载链接
[1] https://ieeexplore.ieee.org/document/9216015
[2] http://scis.scichina.com/cn/2020/SSI-2019-0274.pdf
[3] https://github.com/hongleizhang/RSPapers#knowledge-graph-for-rs