目录
一.模型提出的原因
现有方法要么只关注实体特征,要么以不相交的方式考虑实体和关系的特征来学习KG嵌入。相反,我们提出的图注意模型全面地捕捉了KG中任何给定实体的n-hop邻域中的多跳和语义相似关系。
二.文章大体思路
①捕捉给定节点周围的多跳关系relation。
②通过捕捉的多种relation来概括这个实体在这些relation中扮演的角色(类别)。
③整和在具有相似语义的关系簇的知识呈现。
三.模型贡献
①第一个基于图注意力机制的嵌入,针对知识图谱的关闭预测。
②推广扩展了图注意力机制来捕获一个给定实体的多跳邻域中的实体和关系的特征。
③实验证明该模型在关系预测上Hits@1占比高。
四.详细工作流程
1.图注意力机制(GATs)相关知识
GATS弥补了GCN的缺点,在GATS中节点的每个邻域节点的重要性不同。
输入:节点的特征集合
输出:变换后节点的特征向量作为节点的输出embedding。
求边的注意力值的公式如下:
其中α可以是选择的任何注意力函数。是将特征映射为embedding的参数化的线性变换矩阵。
GATS将边的注意力值对应这条边的特征对于头实体的重要性。但是头实体有许多的邻域节点。因此求得实体对应的embedding 的公式如下:
其中是对所有邻域节点的注意力值的一个softmax函数,是一个任意的非线性函数。
对于多头attention ,embedding的计算公式如下:
其中表示串联,其中表示边通过第k层注意机制计算出的归一化的参数。表示第k层注意机制(权重矩阵)对应的线性变换矩阵。但是嵌入到最后一层的embedding是取平均而不是继续串联。因此最终的对应的公式为:
2.本文工作流程公式解读
①输入输出的定义
首先提出了一个新的嵌入方法,将关系和相邻节点的特征结合到注意力机制中,每层都以两个嵌入矩阵作为输入。
输入:
实体的嵌入由一个矩阵表示,其中第i行表示实体i的嵌入,表示所有实体的个数,是每一个实体嵌入的特征维数。
关系的嵌入也由一个矩阵表示,其中第i行表示关系i的嵌入,表示关系的个数,是每一个关系的嵌入的特征维数。
输出:
该层对于实体矩阵和关系矩阵的输出为两个对应的矩阵和。
②实体的Embedding
那么如何结合关系嵌入更新实体的嵌入呢?本文通过学习与实体的所有有关三元组,将实体和关系的特征向量串联后通过线性变换矩阵来学习新的嵌入。对于一个三元组(,,),
其中表示三元组的向量,其他的表示实体和关系的嵌入。
本文将三元组 (,,)的重要性记为,通过对三元组的向量 表示使用一个权重矩阵线性变换后使用LeakyReLU非线性来获得三元组的绝对注意力值。公式如下:
对于获得相对注意力值则对使用softmax函数,那么单个三元组的相对注意力值由如下公式的出:
其中表示实体的所有邻域节点,表示实体和他的邻域节点之间的关系的集合。那么这个实体的初步embedding的求法则如下:
那么初始embedding通过采取平均法获得
但是在学习新的embedding时,实体会丢失他初始的嵌入信息。因此通过一个加权矩阵对输入的实体嵌入进行线性变换的到转换后的实体嵌入,本文将初始的embedding加入到最终注意层获得的嵌入中来实现最后实体embedding的更新。
文章中给的公式如下:
(个人认为与文章给出的描述不同,应该为)
③关系的Embedding
本文对输入的关系嵌入矩阵进行线性变换,该矩阵被一个权重矩阵()参数化,表示输出的关系embedding的维数。