当前位置: 代码迷 >> 综合 >> A Survey on Knowledge Graph-Based Recommender Systems
  详细解决方案

A Survey on Knowledge Graph-Based Recommender Systems

热度:30   发布时间:2023-12-06 04:11:55.0

目录

    • 1 INTRODUCTION
    • 3 METHODS OF RECOMMENDER SYSTEMS WITH KNOWLEDGE GRAPHS
      • 3.1 Embedding-based Method
        • 3.1.1 Two-stage Learning Method
        • 3.1.2 Joint Learning Method
        • 3.1.3 Multi-task Learning Method
        • 3.1.4 Summary for Embedding-based Method
      • 3.2 Connection-based Method
        • 3.2.1 Meta-structure Based Method
        • 3.2.2 Path-embedding Based methods
        • 3.2.3 Summary for Connection-based Method
      • 3.3 Propagation-based Method
        • 3.3.1 Refinement of User Representation
        • 3.3.2 Refinement of Item Representation
        • 3.3.3 Refinement of both User and Item Representation
        • 3.3.4 Summary for Propagation-based Method
      • 3.4 Summary

1 INTRODUCTION

三种推荐方法:CB、CF、混合。CF高效但是数据稀疏性和冷启动问题,因此利用了各种边信息来解决。
将知识图谱作为边信息,好处:

  • 准确性:user和item在不同的隐含关系下连接起来
  • 可解释性:追随user-item图中的关系队列

之前一些KG-RS的综述有或多或少的缺陷,因此本篇文章。

3 METHODS OF RECOMMENDER SYSTEMS WITH KNOWLEDGE GRAPHS

根据这些工作如何利用KG信息,我们将它们分为三类:基于嵌入的方法、基于连接的方法和基于传播的方法。
一般来说,这些方法的第一步是构建一个KG,要么是 item KG,要么是user-item KG。

3.1 Embedding-based Method

两个基本模块:

  • 一个是图嵌入模块,用于学习KG中实体和关系的表示;
  • 另一个是推荐模块,使用学习到的特征,预测用户u对物品i的偏好。

基于这两个模块在框架中是如何关联的,分为以下三类。

3.1.1 Two-stage Learning Method

两阶段学习方法代表对图嵌入模块和推荐模块进行逐一训练。第一步学习到了实体和关系的表示, 然后,将预先训练的图形相关嵌入与其他用户特征和项目特征一起输入到推荐模块中进行预测。(感觉和召回—排序相似、那么KG得到的嵌入应该是固定的还是可更新的呢? 个人认为fix)

  • DKN 新闻推荐。新闻Vj:通过将使用KimCNN[78]学习到的[句子的文本嵌入]与通过TransD学习到的[在新闻内容中实体的知识级嵌入]相结合。 通过聚合历史点击新闻的嵌入来学习用户Ui的表示:
    在这里插入图片描述
    S(vk,vj)度量候选新闻vj和点击新闻vk之间的相似性。第二步,
    在这里插入图片描述在这里插入图片描述
  • 用于序列推荐的KSR框架。 KSR利用GRU网络捕获用户的顺序偏好,KV-MV模块利用知识库信息对用户的属性级偏好进行建模。给出交互队列, GRU网络将用户在时间t上的表示建模为隐藏状态向量Hit:
    在这里插入图片描述
    其中Qit是用BPR模型[80]预先训练的项目嵌入。 对于KV-MN模块,首先学习实体嵌入e和关系嵌入r使用TransE模型[81]。 并利用项目属性向量的注意机制对用户的属性级偏好Mit进行建模。
    在这里插入图片描述在这里插入图片描述
    KSR框架可以通过检查用户对显式属性的注意权重来解释。
  • KTGAN,a GAN-based recommendation model。 在第一阶段,KTGAN通过将Metapath2Vec模型[82]使用在电影的KG上,以及将Vtj与Word2Vec模型[83]使用在电影属性上,学习为电影VJ的知识嵌入Vkj。
    在这里插入图片描述
    在这里插入图片描述
    Uik是Ui最喜欢的电影的知识嵌入的平均值,Uti是Ui的标签嵌入。第二阶段,GAN(看不懂了。。)
    在这里插入图片描述
    在这里插入图片描述
  • BEM, 它使用来自两个项目KGS的信息,一个具有项目属性级别的知识,另一个被命名为行为图,包含与用户相关的关系,例如“共同视图”、“共同购买”。 首先从两个KGs学习到两个初始嵌入,分别使用TransE模型[81]和图形SAGE模型[84]。 接下来,他们设计了一个贝叶斯生成模型来相互细化这两种表示,并在每个图中保留项目的结构信息。 最后,可以通过在“共买”或“共单击”关系下在行为图中找到最接近的交互项来生成推荐。

两阶段学习方法易于实现,其中KG嵌入通常被视为额外的特征。 无需交互数据就可以学习KG嵌入,因此,大规模交互数据集不会增加计算复杂度。 一旦学习了嵌入,就没有必要频繁地更新嵌入。 由于KGE模块和推荐模块是松散耦合的,因此学习的嵌入可能不适合于推荐任务。

3.1.2 Joint Learning Method

这样,推荐模块可以指导图形嵌入模块中的特征学习过程。

  • CKE统一了CF框架中各种类型的侧信息,包括项目的属性级特征、文本特征和视觉特征。属性特征是从KG中用TransR编码学习得到的, 文本特征和视觉特征用自动编码器提取。在这里插入图片描述
    The final representation of item vj:
    在这里插入图片描述

  • SHINE,它将用户推荐任务作为图中实体之间的情感链接预测任务。SHINE利用多个来源的信息,包括代表用户态度的情感网络Gs、包含用户关系的社交网络Gr、以及具有用户属性级知识的特性网络Gp。 用户特性usi、uri、upi分别从Gs、Gr、GP中学习,并使用自动编码器模型,然后聚合最终用户表示Ui。
    在这里插入图片描述
    where AGG(·) is the aggregation operator

  • CFKG CFKG采用Trans E模型[81]对图进行编码, 学习图中实体和关系的嵌入,用以下的loss
    在这里插入图片描述
    用“购买”关系测量Ui与Vj之间的欧几里德距离
    在这里插入图片描述
    其中rbuy是关系类型“购买”的学习嵌入

联合学习方法可以进行端到端的训练,可以使用KG结构对推荐系统进行规范化。 然而,不同目标函数的组合需要是更好的调整。

3.1.3 Multi-task Learning Method

其动机是用户-项目交互二分图中的项目及其在KG中的关联实体很可能有类似的结构。

  • MKR 由推荐模块和KGE模块组成。 这两个模块是独立的,并与一个交叉和压缩单元连接,以共享知识。 KGE模块,用于给定头部实体的表示和三重态(eh,r,et)中的关系,估计尾部实体的表示。用户u表示使用L层MLP得到,v使用关联实体和 L层交叉和压缩单元。
    在这里插入图片描述
    KGE模块使用L层MLP学习到最终的关系表示。 该模型通过连接这两个嵌入[关系嵌入]和[头部实体表示:头部实体关联的项目来表示头部实体]来预测尾部实体嵌入e?t。 通过评分函数测量e?t与真实尾部实体嵌入之间的相似性。
    在这里插入图片描述
    这两个模块在每个部分共享低级特性,并被交替训练。 最终目标函数为, 其中J是交叉熵函数。在这里插入图片描述

  • KTUP 他们进一步认为用户的偏好可以通过KG中项目之间的关系来反映。 通过从推荐任务中转移项目和关系的低级特征。 KTUP采用TransH[86]学习实体和关系嵌入:
    在这里插入图片描述
    这两个模块是联合训练的,目标函数是
    在这里插入图片描述
    项目和偏好的表示可以通过在KTUP框架下传递每个模块中的实体、关系和偏好的知识来丰富。 通过提取显式建模的用户偏好的注意权重,系统中可以获得用户最关心的关系,从而形成偏好级的解释。 此外,该模型可以检测交互历史中的项目和KG中满足这些显著关系的实体,以提供更坚实的解释。

通过应用多任务学习策略,有利于防止推荐系统过度拟合,提高模型的泛化能力。 然而,类似于联合学习方法,它需要致力于在一个框架下集成不同的任务。

3.1.4 Summary for Embedding-based Method

在这里插入图片描述

3.2 Connection-based Method

该方法中的大多数工作都使用user-item KG来挖掘图中实体之间的关系。两种主要方法:

  • 利用图中的元结构(元路径、元图),计算实体间的相似性。 基于元结构的相似性可以作为约束。
  • 将user-item对或item-item对之间的连接模式编码为向量, 我们称之为基于路径嵌入的方法。

3.2.1 Meta-structure Based Method

一种方法:利用不同元路径中实体的连接相似性作为图正则化来约束用户和项的表示。
具有高元路径相似性的实体 应该 在潜在的空间里靠近:
在这里插入图片描述
相似度约束LSim引导用户嵌入和项嵌入的学习。经常使用PathSim来衡量 图中实体之间的连通性相似性。
在这里插入图片描述
三种实体相似性:

  • 用户-用户相似性, 如果用户共享高元路径相似性,则强制用户的嵌入在潜在空间中接近。
  • 物品-物品相似性
  • 用户-物品相似性
    HeteRec首先定义了L种不同类型的元路径。 在这L个用户偏好矩阵上采用非负矩阵分解:

在这里插入图片描述推荐可以通过用户在每条路径上的偏好的线性组合来生成:
在这里插入图片描述
HeteRec的一个限制是,每条路径的学习权重θl对于所有用户都是相同的,这阻碍了个性化推荐的程度。 HeteRec-p考虑到这个问题,根据用户过去的行为将用户聚类为c组。
在这里插入图片描述
另一种方法是直接用相似用户评级的加权集合来预测对未评级项目的偏好。SemRec
基于元结构的方法是可以解释的,因为这些手动设计的元结构为推荐提供了参考。

  • 好处和局限: 基于元结构的方法易于实现,大多数工作都是基于模型复杂度相对较低的MF技术。 然而,元路径或元图的选择需要领域知识,对于不同的数据集,这些元结构可能会有很大的不同。 此外,在某些特定场景下应用基于元结构的方法可能不合适。

3.2.2 Path-embedding Based methods

基于元结构的方法中的一个问题是连接模式没有显式建模,这使得很难学习用户项对和连接模式之间的相互影响。基于路径嵌入的方法显式学习连接模式的嵌入。假设KG中有连接uiu_iui?vjv_jvj?的K条路径,则路径p的嵌入表示为hp:
在这里插入图片描述
g(·)是从每个路径嵌入中总结信息的函数,通常选择最大池化或加权求和。
在这里插入图片描述

  • MCRec。 仍然需要手动定义元路径的类型和数量,这是繁琐的,需要领域知识。
  • RKGE。 自动挖掘用户UI与项目VJ之间的路径关系,而不需要预处理元路径。

优点: 基于路径嵌入的方法将用户项对或项目项对的连接模式编码为潜在向量,从而可以考虑目标用户、 输入项和连接模式的相互影响。大多数模型能够通过计算合格路径和选择突出路径自动挖掘连接模式。
局限: 复杂情况下,图中可能的路径数可以增长到大量级, 在大规模KG中不可能利用每个实体对的所有路径。

3.2.3 Summary for Connection-based Method

3.3 Propagation-based Method

基于传播的方法是基于嵌入传播的思想,其中常见的实现是基于GNN技术。这些方法通过聚合KG中多跳邻居的嵌入来完善实体表示。挑战:如何为不同的邻居节点分配合适的权重;如何在不同的关系边上传递信息;如何提升模型的可拓展性。

3.3.1 Refinement of User Representation

使用itemKG,其动机是用户可以表示为他们的【交互物品以及这些物品的多跳邻居】的结合。
在得到多阶邻居之后,每个邻居是(头实体、关系、尾实体),邻居是此节点作为尾实体,所有指向此节点的实体。

  • 计算用户每一阶的表示
  • 结合每一阶的表示 形成最终的用户表示

就这样逐层传播用户的兴趣(从历史兴趣沿着KG中的路径来传播)

  • RippleNet
    关系矩阵R,d×d;头实体i,尾实体j,用头实体更新尾实体
    在这里插入图片描述
    多次更新;最终u的表示为:
    在这里插入图片描述
    在这里插入图片描述
  • AKUPM
    使用TransR构造实体,使得实体在不同关系有不同的表示。在聚合过程中使用自注意力机制,concat每一层的嵌入。每一层最多聚合N个实体
    在这里插入图片描述
    在这里插入图片描述

在这些方法中,边缘权重在项目KG中是显式的。 因此,可以选择连接候选项和交互项的显著路径,并作为推荐结果的解释。

3.3.2 Refinement of Item Representation

改善用户表示是使用交互图,用户的交互item(在itemKG上传播)来加强用户的表示。
改善物品表示是使用KG图,ItemKG上使用item的多阶邻居来更新item的表示。同时使用注意力机制,不同邻居的权重是基于用户和基于关系的,动机是用户对于不同的关系有不同的偏好。每次更新:①先聚合l-1层邻居信息;②以 l-1层邻居聚合 和 l-1自身 为输入,输出l层自身嵌入

  • KGCN
    邻居的权重用用户和关系来计算:
    在这里插入图片描述
    在这里插入图片描述
  • KGCN-LS,加了标签平滑正则项

3.3.3 Refinement of both User and Item Representation

user-item KG图,交互作为一种关系。

  • KGAT,先使用transR获取实体的初始表示,再进行传播
    在这里插入图片描述
  • KNI
    考虑item侧邻居和user侧邻居的交互,(是不是相当于用交互记录表示用户/物品呢??)
    在这里插入图片描述
  • IntentGC
    分成user-user多关系图和item-item多关系图,在两个图上分别更新用户表示和物品表示。
    在这里插入图片描述
  • AKGE

这些方法 边的权重都是 user-specific,所以也可以提供解释性。

3.3.4 Summary for Propagation-based Method

基于传播的算法 比较耗时;为了改善,快速图卷积操作,邻居采样(随机采样必然会丢失信息)

3.4 Summary

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  相关解决方案