【论文笔记】AKGE:基于注意力知识图谱嵌入的个性化推荐系统

Sha, X. , Sun, Z. , & Zhang, J. . (2019). Attentive knowledge graph embedding for personalized recommendation.


原文:https://arxiv.org/pdf/1910.08288.pdf




1 introduction

知识图谱(KG)已经被广泛用于推荐系统中,但是主要思路仍集中于以下两个方向:

  • 基于路径提取的思路(path-based methods):有的是要求人手动设计 meta-path / meta-graph,有的集中于寻找 user 和 item 之间的线性的路径联系。缺点在于只是利用异构信息网路将 side information 引入了推荐系统,但是本质上 linear path 的信息十分有限,特别是和本文提出的包含高阶关系的子图相比,其不能够较好地挖掘整个 KG 的语义信息和拓扑结构信息。
  • 基于传播的思路(propagation-based methods):在整个 KG 上通过传播的方式(propagate)传递用户的偏好,再得到用户的表示 embedding。较为经典的就是 RippleNet(RippleNet 论文笔记)和 KGAT(KGAT 论文笔记),KGCN 类似(KGCN论文笔记)。虽然一定程度上可以捕捉到语义信息和拓扑结构信息,传播的时候往往出现重合的问题,也就是若将过多跳的信息加入当前 item 的模型计算,反而容易向模型中引入噪音,故其在类似于 yelp 的较为 dense 的数据集上表现不佳(详见 RippleNet 原文作者的解释)。

而原文所提出的 基于注意力知识图谱嵌入的推荐系统(AKGE) 可以同时关注知识图谱对应的语义信息和拓扑信息:作为端到端训练的神经网络,首先提取包含语义信息的,连接 item 和 user 的高阶关系的子图,再利用注意力机制,基于子图学习用户偏好。

利用高阶子图的好处主要有:

  • 涉及了高阶关系的子图本质上可以看作是非线性路径(nonlinear path )的一个组合(combination),也就是说相较于普通的路径提取,此时可以更好地挖掘整个 KG 的语义信息与拓扑结构信息
  • 本身一个特定高阶子图对应一个(用户 - 物品 pair),也就是说此时可以一定程度上避免直接在整个 KG 上进行传播的算法造成的引入噪音的问题,不同的 use-item interaction 对应的是不同的高阶子图。

但是这里同样为整个模型提出了挑战:如何去提取挖掘这样的高阶子图,特别是在 KG 本身的 entity 较多,本身就给整个模型计算带来巨大计算开销的情况下。本文提出 距离感知抽样策略(distance-aware sampling strategy) 来帮助构造 item 和 user 之间关系的高阶子图。

另一个问题就是如何利用提取出的高阶子图来进行 encode,这里采用 图神经网络( graph neural networks / GNNs) 来对子图进行 embedding。子图的非欧几里德结构适合应用 GNN。但是注意到,在 GNN 中所有的邻居都会被平等对待,为了强调不同的权重,在这里同时加入 注意力机制 。(这里的思路类似 KGAT (KGAT 论文笔记),在 KGAT 中,考察某一个结点的邻域表示时,利用注意力机制赋予不同的邻居不同的权重。)主要包括两个部分:关系感知的传播(relation-aware propagation)注意力聚合(attentive aggregation)




2 模型解释


整体模型结构如下:
在这里插入图片描述

注意此时本质上是输入一个 user 和一个 item( 比如这里就是给定了 mike 和 k记),首先提取它俩之间的一个子图(不是单纯的 线性path,而是一个子图),再通过这个子图计算 mike 和 k记 的 embedding,再通过正常的 MLP 预测 mike 点击 k 记的概率。



2.1 构建子图

这里不再使用传统的 BFS / DFS 在整个 KG 上进行搜索,采用效率更高的 距离感知抽样策略(distance-aware sampling strategy)

对于传统的基于 meta-path 和 meta-graph 的方法,此时需要人工设计路径来使用,本身不全面且有效性有待商榷。

首先得到 KG 中所有实体的一个 embedding (像预训练一样,这里可以用 Trans 系列的方法,原论文用的是 TransR,并且在实验部分证明了 TransR 预训练的效果比较好),则此时可以通过欧几里得距离来衡量两个 entity 之间的距离。同理,对于任意两个 entity 之间的任意一条的 path,可以将 path 上每一步的两个 entity 的距离算出来,再求和作为这个 path 的距离。

对于给定的两个 entity ,仅保留最后的 K 条最短的路径构成二者之间的子图(subgraph)。注意这里和 DFS / BFS 之间的区别在于本身通过距离进行了筛选,而不是单纯地保留了所有的邻居。


得到 K 条最短的 path 后,需要进行 路径装配(Path Assembling)
在这里插入图片描述
也就是将得到的 K 条路径装配起来,得到一个子图。同理可以得到其对应的邻接矩阵(adjacency matrix),注意这里得到的子图是一个无向图,也就是说不再确定 relationship 所指向的方向。



2.2 结合注意力机制的图神经网络 AGNN

这里的 AGNN 本质上是对 GGNN 的一个改进(gated graph neural network),AGNN 可以用于异构图上,而 GGNN 需要各个结点的类型相同(也就是同质图)

AGNN 分为以下四个步骤:

  • 实体映射(entity projection):将实体的 embedding 和实体类型的 embedding 进行结合,得到融合了类型信息的实体的 embedding,即 h l 0 h_l^0 hl0
  • 关系感知传播(relation-aware propagation):对于第 t 轮迭代,通过实体 l 和它的邻居 e 之间的关系 r,计算 l 的邻居实体 e 的临时隐藏状态 h ^ k t \hat{h}_k^t h^kt
  • 注意力聚合(attentive aggregation):通过注意力机制分配权重,将实体 l 邻居 e 的临时隐藏状态 h ^ k t \hat{h}_k^t h^kt 通过某种方式进行聚合。
  • 门控更新(gated update):用注意力聚合的结果,经过门控机制来更新实体 l 的 embedding 表示。

2.2.1 实体映射(entity projection)

此时输入的是构造好的子图 G \mathcal{G} G 和对应的邻接矩阵 A A A,将图中的各个实体和其对应的类型进行拼接。

这里的 embedding 预训练由 TransR 完成。记实体 entity 的 embedding 是 e l e_l el,记实体类型 entity type 的 embedding 为 e l ′ e'_l el,则此时直接进行拼接: h l 0 = e ^ l = f ( e l   ⊕   e l ′ ) ;    f ( x ) = σ ( W x + b ) h_l^0 = \hat{e}_l = f(e_l \text{ }\oplus\text{ }e_l'); \text{ }\text{ } f(x) = \sigma(Wx+b) hl0

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值