基于知识图谱的推荐算法研究综述

2023-01-13 11:57罗承天
计算机工程与应用 2023年1期
关键词:图谱实体算法

罗承天,叶 霞

火箭军工程大学 作战保障学院,西安 710025

当今互联网承载着各种信息资源,其数据量呈指数级增长。面对海量的互联网资源,用户在获取信息便利性的同时,难以快速准确地选择出感兴趣的内容。推荐系统作为解决“信息过载”问题的有效方法[1],已经受到大量研究者的关注和研究,并在各个领域得到广泛应用,形成了众多相关成果。比如电影推荐[2]、新闻推荐[3]和商品推荐[4]等。

推荐算法作为推荐系统的核心,目标是通过学习用户信息和用户行为,建模用户的兴趣偏好。其主要可以被分为三类[1]:基于内容的推荐方法、基于协同过滤的推荐方法和混合推荐方法。其中,基于内容的推荐是选择出与用户偏好项目特征相似的项目[5]。协同过滤利用相似用户之间具有相似兴趣偏好的特点,来发现用户对项目的潜在偏好,优点是不需要对项目进行复杂的特征提取[6-7]。协同过滤仅需要利用用户的历史评分数据,因此简单有效。但是,也存在数据的稀疏问题和冷启动问题[7]。且推荐算法对捕捉用户兴趣变化的需求已经超出了传统推荐算法的能力。为此,研究者提出混合算法,结合如用户社交网络信息[8-9]和项目属性[10-11]等辅助信息来解决以上问题。

近年来,将知识图谱作为辅助信息引入到推荐算法逐渐成为了研究热点。知识图谱中节点表示实体,有向边表示实体之间的关系,包含了用户和项目的信息和关联关系,可以更好地捕获用户偏好。如图1所示的推荐示例中,向用户推荐了电影《尖峰时刻》和《功夫》。这是因为用户喜欢的电影和推荐的电影具有相同的体裁和主演。通过知识图谱,项目和用户以不同的潜在关系关联起来,在有助于提高推荐的准确性的同时,也为推荐结果提供了更多的可解释性[12]。目前,学术界与工业界的研究人员构建了各种结构化的知识图谱,例如DBpedia[13]、YAGO[14]和Google’s KG[15]等。这使推荐算法连接知识图谱中的实体和关系变得更加便利。

图1 基于知识图谱的推荐示例Fig.1 Recommendation example based on knowledge graph

本文旨在对基于知识图谱的推荐算法进行全面的总结。通过查阅分析相关文献,从应用知识图谱的三种方式:基于嵌入的方法、基于路径的方法和基于传播的方法展开介绍。此外,对引入了知识图谱的推荐应用场景,包括电影、音乐、书籍、新闻和商品,进行分析讨论,并收集了常见的数据集。除推荐的精确性外,基于知识图谱的推荐算法还具有良好的可解释性。本文也将讨论不同的算法如何利用知识图谱进行可解释的推荐。

1 研究背景

本章主要介绍知识图谱和推荐算法相关背景知识。

1.1 推荐算法

推荐系统解决在“信息过载”情况下,用户如何高效获得感兴趣项目的信息的问题。如电影[16]、新闻[3]、商品[17]、兴趣点(point of interest,POI)[18]、试题[19]、音乐[20]、应用程序[21]等等。推荐系统主要分为数据部分和模型部分。推荐算法作为推荐系统的核心,主要解决如何学习用户和项目的表示及评分函数的问题,即模型算法如何训练和预测,并达到更好的推荐效果。推荐算法要处理的问题可以形式化地定义为[1]:给定所有用户(user)的集合U,所有项目(item)的集合I,在特定场景C(context)下。构建一个评分函数f(U,I,C),预测用户对特定候选项目的偏好程度,即:

再根据偏好程度对候选项目进行排序,生成推荐列表。根据推荐问题的定义,可以得到抽象的推荐系统逻辑框架,如图2所示,在此基础上,对个模块进行细化和扩展,才产生了推荐系统的整个技术体系。

图2 推荐系统逻辑框架Fig.2 Logic framework of recommended system

1.2 知识图谱

知识图谱(knowledge graph,KG)最初是Google用于增强其搜索引擎功能的知识库[15]。本质上,知识图谱是一种揭示实体之间关系的语义网络,可以对现实世界的事物及其相互关系进行形式化地描述[22]。三元组是知识图谱的一种通用表示方式,可以定义为G=(E,R,S)。其中E={e1,e2,…}表示知识图谱中所有实体的集合;R={r1,r2,…}表示知识图谱中所有关系的集合;S={(h,r,t)}表示三元组的集合,单个三元组由头实体h、关系r和尾实体t构成。例如(Beijing,capital_of,China)表示北京是中国的首都这一事实。知识图谱是一种具有多种类型节点和边的异构图,所以知识图谱中的三元组不仅可以用于理解知识实体之间的关系,也可以存储知识实体的属性。

知识图谱中包含的实体之间丰富的语义关联,可为推荐算法提供了潜在的辅助信息来源。引入知识图谱可以让推荐算法有以下特点:

(1)精确性。知识图谱为实体引入了更多的语义关系,可以深层次地发现用户兴趣。

(2)多样性。知识图谱提供了实体间不同的关系连接模式,有利于挖掘高阶的连接关系。

(3)可解释性。知识图谱可以连接用户的历史行为信息和推荐结果,给出推荐的原因,从而增强用户对推荐结果的接受度。

1.3 推荐算法的可解释性

可解释推荐是指解释推荐理由问题的推荐算法,在向用户提供推荐结果的同时,还提供解释以阐明推荐的原因[23]。这样有助于提高推荐算法的多样性、有效性和准确性,有利于用户理解并采纳推荐结果[24-25]。

早期的推荐多数是基于内容的推荐或基于协同过滤的推荐,基于内容的推荐方法通过对用户或者项目的属性信息进行建模,是基于特征的直观解释。而协同过滤方法得通过用户的显性反馈或隐性反馈体现解释。项目协同过滤的解释更直观,因为用户熟悉他之前喜欢的项目,用户更易于理解。用户协同过滤的解释可能不那么有说服力,因为目标用户可能对其他“相似”的用户一无所知,这可能会降低解释的可信度。

传统的推荐算法所生成的推荐解释往往只局限于以项目为媒介、以用户为媒介或者以特征为媒介中的某一种,而对这三类媒介之间的关联挖掘得还不够。知识图谱作为拥有知识表示能力的结构化知识库,包含了关于用户和项目的丰富信息,有助于提供有关推荐项目的知情解释[26]。通过探索知识图谱内实体的连通性,反映了用户和项目之间的潜在关系。知识图谱上用户到推荐项目的连接路径给予了推荐算法推理和解释的能力。以图1中为例,因为用户喜欢喜剧类体裁的电影,连接到推荐项目的路径如下示例:

(小明,喜欢,大话西游)∧(大话西游,体裁,喜剧片)∧(大话西游,演员,周星驰)⇒(小明,喜欢,功夫)

这种连通性有助于通过综合路径信息捕捉到潜在的用户与项目交互的可能。显然,推理挖掘了路径关系中的用户意图,提供了推荐结果的解释。文献[12]提出一个端到端的框架RippleNet,将知识图谱融入到推荐算法中。RippleNet以用户的历史兴趣项目为种子,然后沿着知识图谱的连接不断地向外扩散到其他的项目,进行偏好传播,最后形成用户对候选项目的偏好分布。该分布可用于预测用户最终的偏好分数,还可以通过在知识图谱上查找来自用户和推荐项目间的路径来提供解释。文献[27]提出了一种新的知识感知路径循环网络模型KPRN,不仅通过组合实体和关系的语义来生成路径表示,而且通过利用路径中的顺序依赖项,对路径进行有效推理,进而推断用户项目的交互。该模型通过权重池操作来区分不同路径的权重,使模型具有一定程度的可解释性。

2 基于知识图谱的推荐算法

引入了知识图谱的辅助信息,推荐算法可以学习用户和项目间的潜在连通关系,从而可以更准确地捕获用户偏好,提高推荐效果。本章介绍了基于知识图谱的推荐算法相关的研究,根据应用知识图谱的不同形式,可分为三类:基于嵌入的方法、基于路径的方法和基于传播的方法。此外,如表1所示[3,12,16,20,27-55],将近年来的相关文献进行了汇总。

表1 文献汇总Table 1 Literature summary

2.1 基于嵌入的推荐方法

基于嵌入的方法使用知识图谱中的信息来丰富用户或项目的表示,通过知识图谱嵌入将知识图谱中的实体和关系表征为低维向量,保留了知识图谱原有的结构。知识图谱嵌入的方法主要是基于平移距离模型进行特征表示的。

平移距离模型利用基于距离的评分函数,通过两个实体之间的距离对事实的合理性进行度量。主要包括TransE[56]、TransH[57]、TransR[58]、TransD[59]和TranSparse[60]等。其基本原理是将每个三元组的头实体、尾实体和关系嵌入到向量h、t和r中,使之满足h+r≈t。可以用一个评估函数计算三元组的真实性,这个函数被定义为在L1范数或L2范数约束下h+r和t之间的距离。其数学表达式如下:

目标是要使得有关系的实体之间的距离尽可能小,而不相关的实体之间的距离尽可能大。

通过Trans系列的嵌入方法学习得到知识图谱中实体和关系的表示,可以用来补充用户和项目的表示。Zhang等[28]提出CKE模型,在协同过滤框架中聚合了各种类型的辅助信息。通过TransR算法提取结构化项目知识(由项目、关系及项目属性组成的知识图谱)的特征向量xj,自动编码器提取文本知识的特征向量zt,j和视觉知识的特征向量zv,j,聚合从用户项目交互矩阵中提取的偏移向量ηj得到项目向量vj的最终表示:

最后偏好分数通过用户向量ui和项目向量vj内积就可获得,并根据以下排名标准给出用户ui的最终项目推荐:

实验表明,加入结构化的知识是可以提高推荐性能的。

Wang等[3]提出了一种将知识图谱表示引入到新闻推荐中的深度知识感知网络DKN。该模型利用Kim CNN[61]从新闻标题中提取实体,并进行实体链接,通过TransD将从原始知识图谱中提取的实体的关系链接子图构建特征向量,还使用实体的近邻实体提取实体的上下文信息。最后使用多通道和单词实体对齐的知识感知卷积神经网络KCNN,将单词语义和实体信息结合起来,生成知识感知的嵌入向量。此外,该模型设计了一个注意力模块捕捉用户对新闻的动态偏好,得到历史记录对用户的影响权重。最后,通过全连接层得到用户点击候选新闻的概率。Huang等[16]提出了一个带有键值对记忆网络(KV-MN)的循环神经网络模型KSR,其中GRU网络用于捕获序列化的用户偏好,而键值对记忆网络利用TransE学习知识库信息捕获属性级的偏好,通过这种方式可以捕获细粒度的用户偏好。该模型解决了循环神经网络捕获属性级或特征级用户偏好能力有限和可解释性差的问题。

以上方法仅使用项目及其属性信息构成的项目图集成到推荐方法中,当将用户和项目的交互数据与知识图谱一起构建用户项目图时,需进一步考虑用户项目图中边的关系来计算偏好分数。Zhang等[28]提出了CFKG模型,构建了一个包括用户行为和项目信息的用户项目知识图谱。在这个用户项目图中用户行为(如购买、收藏)被视为实体之间的关系,为了学习实体和关系在图中的嵌入向量,该模型定义了一个距离函数d(·),根据给定的关系度量两个实体之间的距离。最后通过计算用户节点ui和项目节点vj在关系“购买”rbuy上的距离,即d(ui+rbuy,vj),对项目排序,从而生成推荐列表。

除此之外,另一种趋势是联合一些知识图谱相关基本任务进行多任务学习和联合推荐。Cao等[30]提出的KTUP模型在将知识图谱用于推荐算法时,考虑到知识图谱的不完整性,联合学习推荐和知识图谱补全。该方法提出TUP(translation-based user preference)模型联合知识图谱学习,并利用用户和项目之间的多重隐性关系,揭示用户的偏好。提出KTUP(knowledgeenhanced TUP)将TUP和TransH进行联合学习,通过转移实体知识和关系来增强项目和偏好建模。该模型的总体目标函数如下:

其中Lp是推荐的损失函数;LKG是知识图谱相关任务的损失函数;λ是平衡两个任务的超参数。Wang等[20]提出的MKR模型,将推荐和知识图谱特征学习视为两个分离但是相关的任务,进行交替式的学习。推荐部分的输入是用户和项目的特征表示,输出为预估点击率。知识图谱特征学习部分的输入为三元组的头节点和关系,输出为预测的尾节点。同时这两个部分通过交叉压缩单元共享信息,弥补自身的信息稀疏性的不足。该模型完整的损失函数如下:

其中LRS是推荐的损失函数;LKG是知识图谱相关任务的损失函数;LREG是正则项,防止过拟合。

基于嵌入的推荐方法通过构建具有多种类型的用户和项目辅助信息的知识图谱,丰富项目的表示和对用户的偏好建模,在知识图谱中的实体和关系学习低维特征向量的同时保留了知识图谱中原有的结构和语义信息,获得了更好的推荐。缺点是忽略了由路径连接的实体之间的语义关联。

2.2 基于路径的推荐方法

基于路径的方法通过构建用户项目图并利用图中实体的连接关系,学习用户到项目的路径之间的连接相似性进行推荐。这种方法主要的挑战是如何设计合理的路径以及如何为实体间的连接关系建模。

一些推荐方法将知识图谱视为一个异构信息网络,然后利用图中的元结构,直接计算路径的连接相似性来进行推荐。基于元结构的相似性可以作为用户和项目表示的约束,也可以用于预测用户对交互历史中相似用户或相似项目的兴趣。为了测量图中实体之间的连接相似性,通常使用PathSim[62]方法表示:

其中,p(x,y)是一条实体x到实体y的路径。Yu等[63]提出的Hete-MF方法提取不同的元路径并计算每个路径中的项目相似度,将正则化与矩阵分解方法相结合,获得更好的推荐。Luo等[64]提出的Hete-CF同时将用户间相似度、实体间相似度和用户与实体间的相似度一起正则化,提高了推荐效果。为了克服元路径表示能力有限的问题,Zhao等[36]用元图替换元路径提出了FMG方法捕获图中更丰富的语义,然后使用矩阵分解为每个元图中用户和项目学习隐向量。

上述基于元结构的方法存在依赖手动构造元结构的问题,元路径或元图的选择需要领域知识,并且对于不同的知识图谱,元结构的构造可能不同。因此,一些方法直接对知识图谱中的用户与项目之间的语义路径进行挖掘,学习路径的显式嵌入来生成推荐。

Sun等[37]提出了一种循环知识图谱嵌入方法RKGE,该方法通过循环神经网络自动挖掘用户和项目之间的路径关系,而无需手动定义元结构。循环神经网络能够对不同长度的序列进行建模,不仅可以对实体语义进行学习,还能对整个路径序列进行学习,从而为实体和实体关系的表示提供统一的学习方法。具体来说,RKGE首先枚举用户ui到项目vj的所有路径P(ui,vj),记作:

其中,s表示的不同实体对之间的路径数。这些路径在序列长度约束下以不同的语义关系连接ui和vj,以避免引入较远邻居,失去语义意义。然后将路径输入到一批循环网络对其进行编码,得到每条路径的嵌入表示hp,每条路径由一个循环网络建模,且每个神经网络共享参数以避免过拟合。最后通过池化操作区分不同路径对于描述用户对项目偏好的重要性,得到ui和vj之间关联的最终表示:

经过池化层之后采用全连接层生成推荐。RKGE首次采用循环网络来学习知识图谱中实体和路径的语义,可以从不同角度对推荐进行解释。

类似地,Wang等[27]提出了知识感知路径循环网络模型KPRN。该模型通过实体嵌入和关系嵌入来构造合格的路径序列,使用LSTM网络对路径进行编码。此外,还根据每条路径计算的预测分数使用平均方式聚合进行池化操作,区分不同路径对预测的贡献,起到注意机制的作用。因此,该模型可以为每个项目提供精确的关系路径级解释。RKGE模型和KPRN模型在前期路径的提取工作中通过限制路径的长度来限制路径的数量,这有助于减少计算量和忽略过长路径的噪声。

Xian等[38]提出的PGPR模型,是一种策略引导路径推理的方式,并首次在知识图谱中运用强化学习的方法来完成推荐任务。该模型将推荐问题描述为一个马尔可夫决策过程,用以找到连接用户项目对之间的合理路径,利用强化学习方法,训练一个智能体(agent)在图中进行多步路径推理以发现用户感兴趣的项目。PGPR模型还设计了软奖励策略、用户条件行为修剪策略和策略引导图搜索算法保证模型的高效性和多样性,以及对推荐的推理路径进行有效采样。Wang等[41]提出的基于知识图谱的意图网络KGIN,为每个意图建模为知识图谱中关系的组合,以获得更好的建模能力和可解释性。此外,该方法设计了一种新的信息聚合方案,递归地集成远程连接的关系路径。KGIN通过识别有影响的意图和关系路径,为预测提供了可解释性。

基于路径的方法利用知识图谱的网络结构,利用路径连接来丰富实体的表示,依赖实体连接关系进行推荐。使用元结构的推荐方法连接模式没有显式建模,这使得很难了解用户项目对和连接模式之间的相互影响。因此,直接学习连接用户和项目间的显著路径的嵌入向量对用户和项目的关系建模,可以解决依赖元结构构造的问题。基于路径的方法在提高推荐效果的同时具有良好的可解释性。

2.3 基于传播的推荐方法

为了充分利用知识图谱中的信息进行更好地推荐,基于传播的推荐方法整合了实体和关系的语义表示以及连接信息。基于传播的推荐方法是基于嵌入传播的思想,聚合知识图谱中多跳邻居节点的嵌入来深化实体表示。然后,获得用户和项目的丰富表示,并预测用户的偏好。

2.3.1 用户或项目表示的细化

Wang等[12]提出的RippleNet模型引入偏好传播的概念,不断自动地发现用户的潜在的层级兴趣。该模型抽取用户节点相连的N-hop实体节点,并利用这些邻居实体节点的嵌入表示更新用户的嵌入表示,最后通过用户向量和项目向量的内积去预测推荐结果。在给定知识图谱G和交互矩阵Y的情况下,用户u的k-hop相关实体集定义如下:

其中ε0u=Vu={v|yuv=1}为用户历史点击记录,也即是种子集合。用户u的k-hop波纹集定义为以εk-1u中节点为头节点的三元组:

在RippleNet中,项目的表示可以通过嵌入层直接得到,并计算给定用户u的1-hop波纹集S1u中的每个三元组与项目嵌入向量的归一化相关性,相关性计算公式如下:

然后加权聚合所有尾节点的嵌入向量,得到用户u的历史偏好关于v的一阶响应,表示用户偏好经过第一轮传播后的结果:

重复上述过程,就是不断向外层传播用户偏好的过程。最终融合它的所有阶数的响应计算用户u关于项目v的特征:

最后的偏好预测计算如下:

其中,σ(·)是一个sigmoid函数。通过这种方式,Ripple-Net模型沿着知识图谱中的路径传播用户对历史兴趣的偏好。

类似于RippleNet模型的偏好传播机制,Tang等[46]提出AKUPM模型,它根据用户的点击历史来建模用户。AKUPM首先通过TransR得到用户历史行为信息中关联实体的嵌入表示,在每个传播过程中,该模型通过自注意力层学习实体之间的关系,并学习实体在涉及不同的关系时表现出不同的特征。最后,再通过注意力机制聚合不同阶数的邻域嵌入以获得最终的用户表示。Li等[65]提出的RCoLM模型以AKUPM为主干,联合训练知识图谱补全任务和推荐任务,捕捉到两项任务的互补信息,以促进两项任务的相互增强。

该类模型虽然通过偏好传播的方式提高了推荐效果,但是存在忽视关系重要性、带来计算负担和冗余的问题。Wang等[44]提出的KGCN模型结合知识图谱和图卷积神经网络,能很好地捕捉局部邻域信息和考虑邻居节点权重以实现推荐。该模型通过对知识图谱中候选项目的邻居节点进行采样,然后对每个实体迭代地采样邻居节点,利用邻居节点信息的线性组合来刻画结点v的邻域信息:

其中,N(v)表示和v直接相连的实体集合;πur表示用户u与某个关系r的关系分数,可通过归一化用户关系分数计算得到。为了防止不同实体N(v)大小产生的差异和提高计算效率,该模型为每个实体均匀地采样固定大小的邻居节点作为实体v的邻域表示,且满足:

S(v)就是实体v的感受野,即对每一个结点v,只选取K个邻居进行计算。最后,将实体表示v与邻域表示聚合得到最终的嵌入向量表示。

然而,KGCN容易过度拟合,因为用户交互数据是整个模型的唯一数据来源。因此,在KGCN的基础上,Wang等[66]又提出KGCN-LS模型,增加了标签平滑度正则项,来对损失函数进行约束。标签平滑度机制在计算用户关系分数时构造交互标签。标签传播模块和偏好传播模块联合训练,进一步提高了推荐结果。

这些方法以用户或项目的知识图谱为基础,同时利用实体嵌入和高阶连接信息,但在传播过程中只有用户或项目的表示得到了更新优化。

2.3.2 协同用户项目表示

RippleNet模型及其扩展侧重于在项目知识图谱上使用嵌入传播机制,在基于用户项目知识图谱中嵌入传播机制的探索中,Wang等[45]提出KGAT模型,引入协同知识图谱的方法,将用户和项目知识编码为一个统一的关系图G,通过嵌入传播直接对用户和项目之间的高阶关系建模。该模型首先应用TransR获得实体的嵌入表示,递归地传播来自实体邻居节点的嵌入,增强当前节点的嵌入。在信息传播中,使用Nh={(h,r,t)|(h,r,t)∈G}表示以实体h为头节点的三元组集合,则实体h邻域的一阶线性组合计算如下:

其中π(h,r,t)控制三元组每次传播的衰减因子,表示有多少信息从t经过r传向h。将实体和邻域表示聚合就得到了实体的一阶表示:

进一步聚合高阶的邻居传播,在第l步中,实体h的l阶表示为:

经过L层后,采用层聚合机制将每一阶的表示连接成一个向量作为实体的最终表示:

其中e(0)h表示实体初始表示;“||”表示连接操作。该模型不仅可以通过嵌入传播来丰富初始嵌入,还可以通过调整L来增强传播和控制规模。

为了进一步考虑项目侧邻居和用户侧邻居之间的交互作用,Qu等[47]提出KNI模型,因为用户和项目共享交互模式,使得用户嵌入和项目嵌入的细化过程不分离。Zhao等[48]提出的IntentGC模型利用图中丰富的用户相关行为获得更好的推荐。为了提高效率,该模型将用户项目图拆分为用户图和项目图,还设计了一个更快的图卷积网络来更新实体的高阶表示。为了解决在传播过程中引入不相关邻居的问题,Sha等[51]提出的HAKG模型通过在用户项目对的子图中传播信息来学习用户和候选项目的增强表示。该模式首先使用TransR对图中的实体嵌入进行预训练,然后使用距离感知抽样策略保留最短K条路径构建用户项目对的高阶子图,接下来,该模型在子图中通过基于注意的图神经网络使用关系感知传播来自邻居的信息,以最终表示该用户项目对。HAKG在子图的构造中过滤掉了图中相关性较低的实体,便于挖掘高阶用户项关系进行推荐,同时减少了计算开销。

上述方法主要关注于如何有效地编码知识图谱中知识的关联关系,Wang等[50]提出的CKAN协同知识感知注意网络模型通过协同信息与知识关联组合一起细化用户和项目的表示,突出了用户项目交互中潜在的重要的协同信号。CKAN由异构传播层、知识感知注意嵌入层和预测层组成,在知识图谱中嵌入传播前先使用协同传播策略显式编码两种信息,即用户由交互过的项目表示,项目由交互过的用户表示,项目和用户的表示分别如下:

接下来在知识图谱中沿链路传播,可以得到初始实体集扩展的三元组表示:

然后使用知识感知的注意力嵌入方法进行多跳传播得到多层的用户和项目表示。

CKAN使用协同传播丰富了用户和项目的0-hop的嵌入表示,然而忽略多跳的波纹集中实体的关系和没有区分不同波纹集的重要性。因此,Xu等[55]提出了协同知识感知图注意网络模型,使用知识感知图注意网络提取多跳波纹集中实体的拓扑邻近结构,然后学习高阶实体表示,从而生成精细的ripple集嵌入。

此外,为了在提供精确推荐的同时生成类人语义的解释,Lyu等[54]提出的KEGNN模型将外部知识库中的语义知识用于用户、项目和用户项目交互三方的表示学习,并利用知识增强的语义嵌入来初始化所构建用户行为图中的实体和关系。KEGNN设计了一个用户行为学习和推理模块,并利用GRU生成器和复制模式生成文本解释,生成的解释说明了用户对评级商品的选择和购买原因。

通过协同表示用户和项目能在更大程度上探索高阶连接模式,但缺点是会带来不相关的实体,这可能会误导用户在聚合过程中的兴趣。

基于传播的推荐方法受益于知识图谱的语义表示和路径关联,利用嵌入传播的思想来增强知识图谱中具有多跳邻居节点的用户或项目的表示。基于传播的推荐方法的传播过程可以被视为在知识图谱中发现用户的偏好模式,这些方法结合了基于嵌入的方法和基于路径的方法的优势,兼具准确性和可解释性。

2.4 小结

基于嵌入的方法使用知识图谱嵌入对知识图谱进行学习,以获得实体和关系的嵌入,并进一步将其集成到推荐模型中。然而,在这种方法中实体间的语义关联被忽略。基于路径的方法利用用户项目图挖掘路径连接相似性,通过预定义元结构或自动挖掘路径连接关系。基于路径的方法还可以为用户提供对结果的解释。此外,稀疏数据集场景可能无法提供足够的路径来挖掘连接关系。基于传播的方法既实现了对于知识图谱结构中路径的连接关系的利用,又通过嵌入的思想学习实体和关系的特征表示,以充分利用双方的信息。此外,基于传播的推荐方法还具有解释推荐过程的能力。表2简要说明了三种类型方法的优缺点。

表2 三种类型方法的比较Table 2 Comparison of three types of methods

3 实验数据集以及性能评价

3.1 常用数据集

知识图谱所为提供给知识图谱的额外信息,在提高推荐算法的同时,可以自然地合并到不同应用的推荐算法中。不同的场景下应用数据集展示了知识图谱作为辅助信息的有效性。本节简要介绍不同数据集,并根据数据集对这些方法进行分类,这有助于帮助研究人员寻找合适的数据集来测试他们的推荐方法。根据表3中总结的数据集对基于知识图谱的推荐方法进行分组。通常,这些数据集可以分为以下应用场景:

表3 应用不同数据集的文献Table 3 Literature using different datasets

(1)电影。电影领域知识通过提取电影类型、演员和导演等很容易映射到外部知识库。最常用的数据集是从MovieLens网站收集的MovieLens数据集,包括MovieLens-100K、MovieLens-1M和MovieLens-20这三个不同评级数量的数据集,其中包含了包括电影属性、用户信息、用户打分数据和标签数据等内容。通常在MovieLens上通过DBpedia知识图谱进行匹配以丰富实体表示。除了MovieLens数据集,还有从中国豆瓣电影网上收集的DoubanMovie,通过与中文百科知识图谱匹配维护电影标签。在电影数据中,知识图谱上关于电影的特征信息能有效地提升推荐效果。

(2)书籍。类似于电影场景,书籍的外部知识也非常丰富。通常使用的公共可用数据集是Book-Crossing和Amazon-Book,它们都包含用户信息、书籍属性和用户评分信息。Amazon-Book还多了与用户购买行为相关的信息。此外,一些方法还采用Intent Book和DBbook2014等数据集。

(3)音乐。音乐推荐也是场景的推荐任务。Last.FM是最流行的音乐推荐数据集,该数据集包含来自于Last.FM在线音乐网站的用户信息、音乐属性和用户收听记录。另一个流行的数据集KKBox发布于WSDM挑战赛,该数据集包含音乐描述和收听记录,规模相对较为稀疏。

(4)商品。电商网站的内容展示高度依赖商品的推荐结果。但与其他场景相比,商品推荐领域的数据集非常大且稀疏。其主要的研究数据是从电商网站Amazon和Taobao上收集的,包含了用户和商品的各类属性信息以及用户交互、评论和购买等各种行为信息。

(5)新闻。新闻推荐具有时效性和内容高度浓缩,且依赖于文本信息,因此具有一定的挑战性。在应用知识图谱到新闻的推荐场景中时,需要先提取内容中的实体,并映射到知识图谱。最受欢迎的数据集是Bing-News,其中包含用户点击信息和新闻内容特征等,通常使用一些通用型知识图谱如Wikidata和Microsoft Satori进行实体关联。

3.2 性能对比

通过在三个公开数据集MovieLens-20M、Book-Crossing和Last.FM上进行的模拟实验,选取了部分源码公开的推荐方法并对其模型的预测性进行评价。采用AUC和F1作为模型的性能评价指标,AUC的定义为ROC曲线下的面积,AUC越大,表明方法效果越好。F1分数是精准率(precision)与召回率(recall)的调和均值,取值范围是从0到1,值越大表明方法越理想。如表4展示了不同算法在三个公开数据集上的性能表现。

表4 不同算法的性能对比Table 4 Performance comparison of different methods

在实验中,对于测试集中的每个用户,将没有与之交互的项目视为负项目,然后计算出用户对除了在训练集中的正项目外的所有项目的偏好得分。此外,将数据集按照6∶2∶2的比例划分为训练集、验证集和测试集。模拟了原模型的具体实验环境,如深度学习框架等。具体的实验超参数设置如下:

在CKE中,三个数据集的嵌入维度分别设置为64、64和128。在KSR中,项目嵌入大小设置为256,网络隐藏层大小设置为256,键向量和值向均设为50。在KGIN中,将嵌入维度固定为64,用户的意图数量固定为4,将聚合层的数量固定为3。在RippleNet中,嵌入维度d和传播跳数H,对于MovieLens-20M,设置d=16和H=2;对于Last.FM和Book-Crossing,设置d=8和H=3。在KGCN中,对于MovieLens-20M,嵌入维度d为62,感受野深度H为2,邻居采样大小为4,而对于Last.FM和Book-Crossing,分别设置为d=16,H=1和K=8以及d=64,H=1和K=8。在KGAT中,将嵌入维度固定为64,模型的嵌入传播层数设置为4。在CKAN中,对于MovieLens-20M嵌入维度设置为64,Last.FM和Book-Crossing中嵌入维度设置为128。对于知识传播层数的深度L分别设置为1、3和2。在CKGAT中,嵌入维度设置为64,波纹集最大跳数L和相邻实体数量K在MovieLens-20M中分别为2和4,在Last.FM设置L=3和K=3,对Book-Crossing设置L=2和K=4。其他参数与原始论文中报告的相同,或与代码中的默认值相同。

4 研究展望

在以上的讨论中,基于知识图谱的推荐算法展示了在精确性、多样性和可解释性方面的优势,且应用场景广阔。本章将讨论一些具有挑战性的未来研究的问题:

(1)动态推荐

知识图谱包含着丰富的用户行为信息和项目特征信息,但在用户长期历史行为中普遍存在隐式和嘈杂的偏好信号,这无疑会降低用户真实兴趣的建模效果。且在类似新闻要求时效性的场景中,用户的兴趣偏好很容易转移。因此与传统的静态推荐相比,捕获用户在发展过程中的动态偏好并预测用户的行为意图,能更好地提高用户体验。Zhang等[67]提出了一种用于基于会话的推荐的动态和静态偏好的图神经网络模型DSGNN,综合考虑了有向图和无向图捕获的用户意图并通过门控网络组合。联合建模长短期兴趣的解决方案能捕获短期兴趣的转移和避免长期兴趣的遗忘,但长期和短期兴趣的划分与整合仍然具有挑战性。

(2)跨领域推荐

知识图谱作为一种有效的辅助数据能解决冷启动问题,但这也仅适用于在单一领域已经稳定积累数据信息的推荐场景。跨领域推荐旨在从一个信息丰富的源领域向目标领域迁移知识来缓解目标领域的冷启动问题,能更好地使用数据充足的领域数据帮助数据不足的领域进行更好的推荐。Liu等[68]提出的跨领域知识图交叉嵌入方法通过分析同一领域项目之间的关联以及不同领域项目之间的相互作用,研究了基于跨领域知识图谱嵌入的多领域项目推荐。该方法借助包含丰富信息的知识图谱,能有效地推荐多个领域的项目。但由于商业隐私政策,不同的领域不能完全共享数据,跨域推荐在工业上的应用还不成熟。

(3)多模态知识图谱推荐

多模态知识图谱在传统知识图谱的基础上,引入不同模态的实体或实体属性,同时也带来了不同模态间的语义关联。引入文本或视觉数据的多模态知识图谱可以提供更多的辅助信息,从而解决数据稀疏和冷启动问题。Tao等[69]提出的多模态知识感知强化学习网络MKRLN通过在多模态知识图谱中提供实际路径来关联推荐和解释性。该方法通过组合实体的结构和视觉信息来生成路径表示,但现有方法多将文本模态和视觉模态分别建模学习,将多模态信息和实体信息直接拼接到一起作为新实体集成到推荐还存在一定的挑战。

5 结束语

引入知识图谱的推荐算法提高了推荐算法的精确性、多样性和可解释性,拥有传统推荐算法所不具备的优势。本文调研了应用知识图谱的推荐算法的相关研究,回顾了知识图谱和推荐算法的基本知识,并简要说明了推荐算法的可解释性之后,总结了近年来基于知识图谱的推荐算法的不同应用方式。最后展望了该领域的潜在研究方向,希望能促进该领域的发展。

猜你喜欢
图谱实体算法
绘一张成长图谱
前海自贸区:金融服务实体
Travellng thg World Full—time for Rree
进位加法的两种算法
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
补肾强身片UPLC指纹图谱
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
主动对接你思维的知识图谱
一种改进的整周模糊度去相关算法