原文: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

作者首先通过例子,说明加入KG之后捕捉高维连接、协作信号的重要性。 协同过滤方法,强调寻找相似用户(共同交互某一item),因此通过i1,u1可以找到u4和u5;监督学习方法,强调寻找相似物品(具有相同属性),因此通过e1,i1找到i2。 上述方法无法找到u1和u2、u3有关,无法找到,u1和i3、i4有关。

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的表示。 有多种方式:

高维传播

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

3. Prediction Layer

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

参考:

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

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: