[论文阅读] KGAT: Knowledge Graph Attention Network for Recommendation

原文:https://arxiv.org/pdf/1905.07854.pdf
代码:https://github.com/xiangwang1223/knowledge_graph_attention_network

What: 为了提供更准确、多样化和可解释的建议,必须超越对用户-物品交互的建模,并考虑到附加信息(比如KG)。在本文中,我们研究了知识图(KG)的效用,它通过将项目与其属性联系起来,打破了独立交互假设。(通过将 KG 和user-item graph结合起来,捕捉高维连接)【高维连接:which connect two items with one or multiple linked attributes】

Why: 传统的方法,如因式分解机器(FM)将其视为监督学习问题,它假设每个交互都是一个独立的实例,并对边信息进行编码。由于忽略了实例或物品之间的关系(例如,一部电影的导演也是另一部电影的演员),这些方法不足以从用户的集体行为中提炼出协作信号。(collaborative signal

How: KGAT递归地从节点的邻居(可以是用户、项目或属性)传播嵌入并聚合,以细化节点的嵌入,并使用注意机制来区分邻居的重要性。

Result
Conclusion

这篇文章强调了协作信号的重要性,并且旨在超越用户-物品交互进行建模,因此考虑加入附加信息;通过将【知识图谱】和【用户-物品交互图】结合起来,得到【协同知识图CKG】,来从中捕捉高维连接、协作信号。具体方法是,通过包含注意力机制的多层嵌入聚合来自一个节点邻居(可以是user、item、attribute),来更新、优化嵌入表示。

Model

[论文阅读] KGAT: Knowledge Graph Attention Network for Recommendation_第1张图片
作者首先通过例子,说明加入KG之后捕捉高维连接、协作信号的重要性。
协同过滤方法,强调寻找相似用户(共同交互某一item),因此通过i1,u1可以找到u4和u5;监督学习方法,强调寻找相似物品(具有相同属性),因此通过e1,i1找到i2。
上述方法无法找到u1和u2、u3有关,无法找到,u1和i3、i4有关。
在这里插入图片描述
[论文阅读] KGAT: Knowledge Graph Attention Network for Recommendation_第2张图片

1. CKG Embedding Layer

三元组的能量分数(TransR):(分数越低说明置信度越高【两个实体之间更有关系】)
在这里插入图片描述其中,在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
通过成对的排序损失进行优化:
在这里插入图片描述
其中,在这里插入图片描述
通过随机替换真实的关系,进行训练。(相当于负采样)

【这一层的目的是学习优化 实体、关系的嵌入表示】相比于直接随机的嵌入表示会更好。

2. Attentive Embedding Propagation Layers

这一层是根据GCN递归的传递嵌入表示;根据GAT得到联级的嵌入表示,强调这种高维连接的重要性。
每一层都包含3个组件:information propagation, knowledge-aware attention, and information aggregation(信息传播、知识感知注意力机制和信息聚合

信息传播

eh的自我聚合(ego-network):
在实体和其邻居之前进行信息传播。
在这里插入图片描述
将实体和其邻居进行聚合,通过线性的衰减系数。

知识感知注意力机制

其中衰减系数为:
在这里插入图片描述
使得在关系r的空间中,得到的衰减系数的分数,来源于实体h和实体t之间的关系,对于越近的实体,获得的衰减系数越大,在【信息传播】中,保留的信息就越多。
为了简单起见,使用内积得到衰减系数的分数。

再通过softmax对所有分数进行归一化:
在这里插入图片描述
由此得到,在捕捉协同信号、聚合实体邻居的时候,哪些实体被分配更大的分数。

上述式子中,不仅仅有实体表示,还有关系表示。是为了传播中得到更多的信息,不仅仅将节点表示作为输入,还得到实体h和实体t之间的关系表示。

信息聚合

这一层就是把【eh】和【eh的自我聚合(ego-network)】聚合,得到一个新的实体h的表示。
有多种方式:
在这里插入图片描述
在这里插入图片描述[论文阅读] KGAT: Knowledge Graph Attention Network for Recommendation_第3张图片

高维传播

上述过程是一层聚合的完整流程,可以将多层的结果进行堆叠,捕捉高维连接以及higher-order邻居:
在这里插入图片描述
每一层的eh表示,通过【上一层的eh表示】和【eh的自我表示】得到。

3. Prediction Layer

通过上面的步骤,可以得到多层的聚合之后的用户表示和物品表示,将多层表示连接起来形成一个用户表示和物品表示:
在这里插入图片描述
由此,丰富了用户表示和物品表示。

参考:

  1. KGAT:Knowledge Graph Attention Network for Recommendation:https://hikg.net/archives/123/

你可能感兴趣的:(论文阅读,知识图谱,人工智能,python)