KGAT 2019(KDD)Knowledge Graph Attention Network for Recommendation

提出背景

  • 基于CF的方法无法利用用户和物品的辅助信息,像用户简介,物品属性,以及上下文环境,在用户和无匹交互较少的情况下表现较差。
  • FM,NFM,Wide&Deep等模型将用户和物品表示为向量,同时将辅助信息表示为特征向量与用户,物品向量相结合,提高推荐的准确性。
  • 上述方法对用户与物品的每一个交互独立处理,并没有考虑他们之间的联系。

从知识图谱中更加充分的可以挖掘用户和用户,物品和物品之间的关系。如图所示,该图由用户物品交互图和异构知识图谱组成,称作协作知识图谱(CKG)。目标用户为 u 1 u_1 u1,传统的user-based CF方法考虑具有相似历史行为的用户为相似用户,比如 u 1 u_1 u1 u 4 u_4 u4h和 u 5 u_5 u5都购买了 i 1 i_1 i1,这三个用户为相似用户,item-based CF考虑物品的相似性,例如 i 1 i_1 i1 i 2 i_2 i2具有相同的属性 e 1 e_1 e1,这两个物品属于相似物品。然而,我们可以探索更高层次的交互,比如,用户 u 2 u_2 u2 u 3 u_3 u3与物品 i 2 i_2 i2交互,而物品 i 2 i_2 i2和物品 i 1 i_1 i1和实体 e 1 e_1 e1具有相同的关系,所以从某种程度上说明 u 1 u_1 u1 u 2 , u 3 u_2,u_3 u2,u3也是相似用户,因此,我们需要充分发掘high-order relation高阶连通性,例如
u 1 ⟶ r 1 i 1 ⟶ − r 2 e 1 ⟶ r 2 i 2 ⟶ − r 1 { u 2 , u 3 } , u 1 ⟶ r 1 i 1 ⟶ − r 2 e 1 ⟶ r 3 { i 3 , i 4 } , \begin{array}{l} u_{1} \stackrel{r_{1}}{\longrightarrow} i_{1} \stackrel{-r_{2}}{\longrightarrow} e_{1} \stackrel{r_{2}}{\longrightarrow} i_{2} \stackrel{-r_{1}}{\longrightarrow}\left\{u_{2}, u_{3}\right\}, \\ u_{1} \stackrel{r_{1}}{\longrightarrow} i_{1} \stackrel{-r_{2}}{\longrightarrow} e_{1} \stackrel{r_{3}}{\longrightarrow}\left\{i_{3}, i_{4}\right\}, \end{array} u1r1i1r2e1r2i2r1{u2,u3},u1r1i1r2e1r3{i3,i4},
什么是高阶连通性?
定义两个节点之间的L-order连通性
e 0 ⟶ r 1 e 1 ⟶ r 2 ⋯ ⟶ r L e L e_{0} \stackrel{r_{1}}{\longrightarrow} e_{1} \stackrel{r_{2}}{\longrightarrow} \cdots \stackrel{r_{L}}{\longrightarrow} e_{L} e0r1e1r2rLeL

  • 发掘高阶关系面临的挑战
    • 随着层次加深,节点数量急剧上涨,计算开销大
    • 高阶关系对预测的贡献不同,需要权衡。

现有的基于知识图谱的推荐方法的缺点

基于路径的方法

两个节点之间拥有大量的可选择路径,需要设计选择算法选择较优的路径,或者定义源路径模式对路径进行约束,这两种方法的缺点是,选择算法的性能影响推荐的性能;源路径的设计需要领域专业知识,需要大量的人工劳动力。

基于正则的方法

基于正则的方法设计了其他的损失函数项,这些方法没有直接将高阶关系嵌入为推荐而优化的模型中,而是仅以隐式方式对它们进行编码。 由于缺少显式建模,因此不能保证可以捕获远程连接性,也不能解释高阶建模的结果。

本文贡献

  • 我们强调了在协作知识图中显式建模高阶关系的重要性,利附加信息提高更好的推荐。
  • 我们开发了一种新的方法KGAT,它在图神经网络框架下以显式且端到端的方式实现了高阶关系建模。
  • 我们在三个公开基准上进行了广泛的实验,证明了KGAT的有效性及其在理解高级关系重要性方面的可解释性。

基本架构

Embedding Layer

将CKG中的每一个节点,关系表示为一个向量,以此保留知识图谱的结构信息。本文采用transR进行Knowledge graph embedding,对于给定的三元组,得分函数为
g ( h , r , t ) = ∥ W r e h + e r − W r e t ∥ 2 2 g(h, r, t)=\left\|\mathbf{W}_{r} \mathbf{e}_{h}+\mathbf{e}_{r}-\mathbf{W}_{r} \mathbf{e}_{t}\right\|_{2}^{2} g(h,r,t)=Wreh+erWret22
损失函数为
L K G = ∑ ( h , r , t , t ′ ) ∈ T − ln ⁡ σ ( g ( h , r , t ′ ) − g ( h , r , t ) ) \mathcal{L}_{\mathrm{KG}}=\sum_{\left(h, \boldsymbol{r}, t, t^{\prime}\right) \in \mathcal{T}}-\ln \sigma\left(g\left(h, r, t^{\prime}\right)-g(h, r, t)\right) LKG=(h,r,t,t)Tlnσ(g(h,r,t)g(h,r,t))

Attentive Embedding Propagation Layers

我们在图卷积网络GCN的架构基础上,沿着高阶连通性递归传播嵌入;此外,通过利用图注意力网络的思想,我们生成级联传播的注意力权重,以揭示这种连通性的重要性。
在这里,我们首先描述一个单层,它由信息传播、知识感知注意力和信息聚合三个部分组成,然后讨论如何将其推广到多层。

Information Propagation

如图所示,一个实体可以被包含在多个三元组中,充当多个三元组链接和传播信息的桥梁,例如实体 i 2 i_2 i2 e 1 ⟶ r 2 i 2 ⟶ − r 1 u 2 e_{1} \stackrel{r_{2}}{\longrightarrow} i_{2} \stackrel{-r_{1}}{\longrightarrow} u_{2} e1r2i2r1u2 e 2 ⟶ r 3 i 2 ⟶ − r 1 u 2 e_{2} \stackrel{r_{3}}{\longrightarrow} i_{2} \stackrel{-r_{1}}{\longrightarrow} u_{2} e2r3i2r1u2 i 2 i_2 i2具有属性 e 1 e_1 e1 e 2 e_2 e2,因为 u 2 u_2 u2 i 2 i_2 i2有交互,所以 e 1 e_1 e1 e 2 e_2 e2体现了 u 2 u_2 u2的偏好,即 e 1 e_1 e1 e 2 e_2 e2的信息可以传播到 u 2 u_2 u2

定义
给定一个实体 h h h,以 h h h为头实体的三元组的集合定义为
N h = { ( h , r , t ) ∣ ( h , r , t ) ∈ G } \mathcal{N}_{h}=\{(h, r, t) \mid(h, r, t) \in \mathcal{G}\} Nh={(h,r,t)(h,r,t)G}
实体 h h h的一阶连通性定义为
e N h = ∑ ( h , r , t ) ∈ N h π ( h , r , t ) e t \mathbf{e}_{\mathcal{N}_{h}}=\sum_{(h, r, t) \in \mathcal{N}_{h}} \pi(h, r, t) \mathbf{e}_{t} eNh=(h,r,t)Nhπ(h,r,t)et
其中, π ( h , r , t ) \pi(h, r, t) π(h,r,t)控制着边(h,r,t)上每次传播的衰减因子,表示在关系r的条件下,从t传播到h的信息量。

Knowledge-aware Attention

通过注意力机制实现,我们将 t t t h h h的注意力得分取决于在关系 r r r空间下 e t e_t et e h e_h eh的距离,越近的实体传播越多的信息,在关系r空间中,采用内积衡量两个实体的距离。最后通过softmax函数标准化注意力得分。公式如下
π ( h , r , t ) = ( W r e t ) ⊤ tanh ⁡ ( ( W r e h + e r ) ) \pi(h, r, t)=\left(\mathbf{W}_{r} \mathbf{e}_{t}\right)^{\top} \tanh \left(\left(\mathbf{W}_{r} \mathbf{e}_{h}+\mathbf{e}_{r}\right)\right) π(h,r,t)=(Wret)tanh((Wreh+er))
π ( h , r , t ) = exp ⁡ ( π ( h , r , t ) ) ∑ ( h , r ′ , t ′ ) ∈ N h exp ⁡ ( π ( h , r ′ , t ′ ) ) \pi(h, r, t)=\frac{\exp (\pi(h, r, t))}{\sum_{\left(h, r^{\prime}, t^{\prime}\right) \in \mathcal{N}_{h}} \exp \left(\pi\left(h, r^{\prime}, t^{\prime}\right)\right)} π(h,r,t)=(h,r,t)Nhexp(π(h,r,t))exp(π(h,r,t))

Information Aggregation

最后一个阶段是将实体表示 e h e_h eh及其ego-network表示 e N h e_{N_h} eNh聚合为实体 h h h的新表示,即 e h ( 1 ) = f ( e h , e N h ) 。 e^{(1)}_h = f (e_h,e_{N_h} )。 eh(1)=f(eh,eNh)我们使用三种类型的聚合器来实现 f ( ) f() f()

  • GCN聚合函数将两个表征相加,并进行非线性变换,如下所示
    f G C N =  LeakyReLU  ( W ( e h + e N h ) ) f_{\mathrm{GCN}}=\text { LeakyReLU }\left(\mathbf{W}\left(\mathbf{e}_{h}+\mathbf{e}_{\mathcal{N}_{h}}\right)\right) fGCN= LeakyReLU (W(eh+eNh))
  • GraphSage聚集函数将链接两个表示,然后通过一个非线性转换
    f GraphSage  =  LeakyReLU  ( W ( e h ∥ e N h ) ) f_{\text {GraphSage }}=\text { LeakyReLU }\left(\mathbf{W}\left(\mathbf{e}_{h} \| \mathbf{e}_{\mathcal{N}_{h}}\right)\right) fGraphSage = LeakyReLU (W(eheNh))
  • Bi-Interaction聚集函数考虑 e h e_h eh N h {\mathcal{N}_{h}} Nh两种不同的特征交互方法 f Bi-Interaction  =  LeakyReLU  ( W 1 ( e h + e N h ) ) + LeakyReLU ⁡ ( W 2 ( e h ⊙ e N h ) ) \begin{aligned} f_{\text {Bi-Interaction }} &=\text { LeakyReLU }\left(\mathbf{W}_{1}\left(\mathbf{e}_{h}+\mathbf{e}_{\mathcal{N}_{h}}\right)\right)+\\ & \operatorname{LeakyReLU}\left(\mathbf{W}_{2}\left(\mathbf{e}_{h} \odot \mathbf{e}_{\mathcal{N}_{h}}\right)\right) \end{aligned} fBi-Interaction = LeakyReLU (W1(eh+eNh))+LeakyReLU(W2(eheNh))

高阶传播

通过高阶传播获取更多的高阶连接性信息,因此递归定义实体表示

e h ( l ) = f ( e h ( l − 1 ) , e N h ( l − 1 ) ) \mathbf{e}_{h}^{(l)}=f\left(\mathbf{e}_{h}^{(l-1)}, \mathbf{e}_{\mathcal{N}_{h}}^{(l-1)}\right) eh(l)=f(eh(l1),eNh(l1))
其中,实体 h h h在l-ego网络中信息传播定义如下:
e N h ( l − 1 ) = ∑ ( h , r , t ) ∈ N h π ( h , r , t ) e t ( l − 1 ) \mathbf{e}_{\mathcal{N}_{h}}^{(l-1)}=\sum_{(h, r, t) \in \mathcal{N}_{h}} \pi(h, r, t) \mathbf{e}_{t}^{(l-1)} eNh(l1)=(h,r,t)Nhπ(h,r,t)et(l1)

模型预测

用户表示和物品表示
e u ∗ = e u ( 0 ) ∥ ⋯ ∥ e u ( L ) , e i ∗ = e i ( 0 ) ∥ ⋯ ∥ e i ( L ) \mathbf{e}_{u}^{*}=\mathbf{e}_{u}^{(0)}\|\cdots\| \mathbf{e}_{u}^{(L)}, \quad \mathbf{e}_{i}^{*}=\mathbf{e}_{i}^{(0)}\|\cdots\| \mathbf{e}_{i}^{(L)} eu=eu(0)eu(L),ei=ei(0)ei(L)
采用内积实现用户对物品的预测
y ^ ( u , i ) = e u ∗ ⊤ e i ∗ \hat{y}(u, i)=\mathbf{e}_{u}^{* \top} \mathbf{e}_{i}^{*} y^(u,i)=euei

模型优化

采用BPR损失函数
L C F = ∑ ( u , i , j ) ∈ O − ln ⁡ σ ( y ^ ( u , i ) − y ^ ( u , j ) ) \mathcal{L}_{\mathrm{CF}}=\sum_{(u, i, j) \in O}-\ln \sigma(\hat{y}(u, i)-\hat{y}(u, j)) LCF=(u,i,j)Olnσ(y^(u,i)y^(u,j))
最终端到端的训练损失函数为
L K G A T = L K G + L C F + λ ∥ Θ ∥ 2 2 \mathcal{L}_{\mathrm{KGAT}}=\mathcal{L}_{\mathrm{KG}}+\mathcal{L}_{\mathrm{CF}}+\lambda\|\Theta\|_{2}^{2} LKGAT=LKG+LCF+λΘ22

数据集

开源代码地址

论文开源

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值