作者:刘佳玮,北京邮电大学博士生
知乎专栏:https://zhuanlan.zhihu.com/p/137223381
前言
近几年有很多工作将图模型应用于推荐系统,并为推荐系统带来了更好的实体表示和更强的解释能力。本文将介绍2020年放在arXiv上的两篇图推荐综述,不会涉及太多细节,旨在为大家展示将图与推荐系统结合的基本范式和常规思路。
A Survey on Knowledge Graph-Based Recommender Systems
第一篇是《A Survey on Knowledge Graph-Based Recommender Systems》,介绍了如何将知识图谱作为辅助信息,提升推荐效果。
arXiv链接:https://arxiv.org/abs/2003.00911
Abstract & Introduction:
推荐系统有两大基本范式:基于协同过滤(交互)的推荐和基于内容(特征)的推荐,而混合推荐旨在结合二者,并引入了多种辅助信息(用户社交网络、商品评论、知识图谱等)。
知识图谱作为辅助信息有两大优势:一是关系丰富,可以整合user、item、feature等多级异构关系于一体,尤其对于交互数据稀疏的场景,为提升推荐准确性带来了很多可能;二是关系明确,由于知识图谱里的关系已经显式构建好了,通过关系序列可以为推荐结果提供可解释性。
本文调研了知识图谱(KG)+推荐(RS)的工作,并探讨了下列三个方面:
知识图+推荐,有哪些方法(如何利用知识图进行准确和可解释的推荐)?
知识图+推荐,有哪些数据集?
知识图+推荐,有哪些未来研究方向?
注:为了方便起见,结合知识图谱的推荐系统简称为KGRS。
Concepts & Notations:
知识图谱(事实图谱)是表示大规模信息的实用方法,遵循资源描述框架(RDF)标准,用节点代表实体,用边代表实体间的关系,由边形成的三元组(即,头部实体-关系-尾部实体)代表一条事实,实体的K-1阶邻居为头实体的三元组称为该实体的波纹集(ripple set)。由于节点和边类型多样,知识图谱是异质图,并可以用元路径/元图抽象出由多跳邻居构成的事实序列/子图的一般范式。知识图谱中的节点和边常在低维向量空间得到嵌入表示(KGE),以便运算和存储。根据覆盖的知识范围不同,知识图谱可以分成跨领域的(如YAGO、Satori等)和特定领域的(如Bio2RDF等),列表如下:
推荐系统旨在为user匹配一个(或一系列)未观测的item,基本步骤如下:
Step 1:生成user和item的表示。
Step 2:根据user和item表示,计算得分函数(如,内积、DNN等),表示user对item的偏好。
Step 3:基于得分对item排序,将排名靠前的item推荐给用户。推荐系统依赖用户的显式/隐式反馈,并可以通过知识图谱获得user的K阶相关实体(0阶表示有交互历史的item),K-1阶相关实体为头实体的三元组称为该user的ripple set。
Methods:
KGRS的方法分成三类:
基于embedding的方法,
基于path的方法,
联合方法。
基于embedding的方法:基本思想是借助KGE算法,直接利用KG的信息丰富item/user的表示。KGE算法主要包括翻译距离模型(如,TransE、TransH、TransR、TransD)和语义匹配模型(如,DistMult)等。
根据KG中是否包含user,基于embedding的方法可以分为两类:
使用item graph(即KG仅由item和相关feature构成)生成item embedding,然后结合item的文本/视觉特征、user-item交互矩阵等信息,构成完整的item表示,然后再单独计算user表示和得分函数,代表方法有CKE、DKN、KSR等;
使用user-item graph(即KG由user-item交互历史,以及item和相关feature构成),既可以使用第一类的方法,也可以用KGE方法将user和item嵌入到同一向量空间,并通过计算user和item的距离直接得到得分函数的值,代表方法有CFKG、SHINE、DKFM等。
最近的一些工作(如KTGAN、BEM)将KGE算法与GAN、贝叶斯框架结合,旨在提升user和item的表示效果;或使用多任务学习策略来联合训练推荐模块以及与知识图相关的任务,以提高推荐质量,如KTUP、MKR、RCF等。然而,基于embedding的方法忽略了图中的信息连通模式,通常无法为推荐结果提供解释。
基于path的方法:基本思想是考虑到user和/或item的连通相似性(语义相似性/结构对等性),进而提升推荐效果。连通相似性的定义依赖metapath/metagraph等结构(规则,或称为广义的path)。根据对path的不同利用方式,基于path的方法可以分为两类:
基于path计算连通相似度,并作为正则项优化user和/或item的表示。path既可以预先指定(如Hete-MF、Hete-CF、HeteRec、HeteRec-p、FMG、SemRec等),也可以借助外部知识库学习得到(如,RuleRec)。
将所有/部分可能的path嵌入到低维空间,与user、item的表示共同训练,并发现对推荐影响最显著的path(连接模式)。代表性方法有MCRec、RKGE、KPRN、PGPR等。
基于path的方法有天生的可解释性,但早期的方法没有结合embedding的思想,对user/item的表示较为简单,准确性仍有提升空间。
联合方法:基本思想是利用嵌入传播(常使用GNN)完善user/item在KG中有多跳邻居的表示,传播过程可以看作是在KG中发现user的偏好模式,这类似于在基于path的方法中发现连接模式。
根据KG中是否包含user,联合方法可以分成两类:
使用item graph:基于user波纹集传播user偏好,模拟用户兴趣在知识图谱上的传播过程,提升user表示能力(代表方法有RippleNet、AKUPM等);或基于K阶邻居(实体波纹集)传播item属性,丰富item表示(代表方法有KGCN等)。
使用user-item graph:考虑user和item的高阶交互,并同时增强user和item的表示。代表方法有KGAT、KNI、IntentGC等。
联合方法结合了基于embedding和基于path的方法,兼具准确性和可解释性,逐渐成为KGRS的主流方法。
Datasets:
如下图所示,推荐场景可以大致分为七类。对数据集来说,结合知识图谱的方法可以分为两类:一类是构建item图,并引入Satori等外部知识库丰富item的属性;另一类是直接利用数据集里的交互历史和item属性,构建user-item图。
Future Works:
动态推荐。在商品/新闻/社交平台等推荐中都有需要,主要包括两个方面:item的动态更新,user兴趣的动态建模。多任务学习。将知识图谱中的任务与推荐任务结合,如关系补全(链接预测)、实体分类(节点分类)等,旨在对知识图谱的信息进一步挖掘。跨域推荐。不同领域的交互数据可以互为补充,或利用信息丰富的源域数据辅助对信息缺乏的目标域的推荐。知识增强的语言表示。将外部知识库与富文本推荐任务(如,新闻推荐)进一步融合,提升item的表示效果。知识图嵌入方法。为不同推荐场景找到合适的特定KGE方法。考虑用户侧信息。现有工作大多基于user-item交互图或item图,加强user端建模(如,用户属性和社交网络等)可能提升推荐效果。
Graph Learning Approaches to Recommender Systems: A Review
第二篇是《Graph Learning Approaches to Recommender Systems: A Review》,与第一篇中关注如何将知识图作为辅助信息提升推荐效果不同,这篇文章关注如何将推荐系统应用于各种图,简要介绍了不同类型的图学习算法。
arXiv链接:https://arxiv.org/abs/2004.11718
Abstract & Introduction:
推荐系统中的涉及到的对象(user、item、feature等)大多数显式或隐式连接,构成天然的图并互相影响。基于图的推荐系统(GLRS)考虑到对象间的复杂关系,不仅可以丰富对象表示,还可以借助图推理提升推荐系统的可解释性。
Data Characteristics & Challenges:
如何考虑不同的图结构的信息,为推荐系统带来了不同的挑战:
树状图(item层次图):item间具有层次关系。同层不同类的相邻item可能具有互补性(配套使用),同类item可能具有替代性(应避免重复推荐)。如何学习item间的层次关系存在挑战。
不可分割图:指user社交图和item共现图(如,同一购物篮),前者反映user间的社交影响,后者反映item间的某种潜在关系(替代/互补/用户的购物模式等)。如何学习user-user间、item-item间的相互影响存在挑战。
二分图(user-item图):是推荐系统的核心(基本组件)。交互类型可能单一或多种,推荐可以看作user-item图上的链接预测。如何考虑图上不同类型的user-item交互之间的影响及其综合影响,存在挑战。
属性图:这里强调user/item在属性图/特征图(如kNN图,而非社交/共现图)上的相似性。如何在推荐系统中建模属性图,以及item-attribute构成的异质图,存在挑战。
复杂异构图:二分图和不可分割图同时出现,形成异构图。如何结合二分图与不可分割图上的信息,使来自两个图的异构信息能够适当地相互通信存在挑战。
多源异构图:多个不同来源的图,信息可能互相补充,有助于解决数据稀疏性和冷启动问题,但也可能存在噪声和矛盾之处。如何结合多源异构图存在挑战。
Graph Learning Approaches to RS
不同的图学习方法,可以解决上面的挑战:
随机游走:可以捕获图上各类实体的高阶关系、交互传播、隐式偏好等建模,缺点是效率低,且缺乏由于优化推荐目标的模型参数。
图表示学习:学习user/item的低维表示。根据算法原理不同,可分为三类:基于矩阵分解的模型(优点:快、简单、适用于数据稀疏场景)、基于skip-gram的模型(优点:简单、高效)和基于GNN的模型(优点:容易和其他下游推荐模型集成,端到端训练,方便优化)。
图神经网络:这里列举了三类,分别是图注意力网络、门控图神经网络和图卷积网络。(除了视为图表示学习方法,GNN在建模复杂关系、提升可解释性等方面也有帮助。)
知识图谱:通常作为外部知识库出现,这里主要关注KG的构建,而不是如何从已构建的KG中提取信息(第一篇重点讨论的)。KG构建可以分为三类:基于本体的KGRS(树状图,表示归属关系),基于辅助信息的KGRS(属性图,表示特征级隐式连接)和基于常识的KGRS(如,领域知识外的一般语义,解决多源异构问题)。
Open Research Directions
本文提出了三个研究方向:对动态图做推荐。基于因果推理的图学习。大规模实时推荐。小结:图推荐既需要关注如何挖掘和扩展数据中的图模式(从核心的user-item图,到外部的知识库等),又需要关注图学习和推理算法的设计(效率、准确度、可解释性等)。两篇综述的出发点不同,都具有一定的启发意义。希望大家有所收获~