解决知识库完善问题的端到端结构感知卷积网络

作者提出了端到端的 SACN,其中编码器 WGCN 重点在于聚合知识库中特定关系连接的实体信息,对实体进行标识。将节点嵌入向量作为输入,解码器 Cov-TransE 通过恢复知识库中原始三元组更精确地表示关系。编码器和解码器通过最小化嵌入向量    与  的交叉熵以保证嵌入向量之间具备平移属性  将无向图表示为 G=(V,E),其中 V 表示节点集合 |V|=N,并且 E   V×V 是边的集合 |E|=M。

带有权重的图卷积层

WGCN 是经典 GCN 的延申,WGCN 对不同类型的关系赋予不同的权重。通过这种方式 WGCN 可以控制从邻居节点中传入的信息量。粗略地讲,WGCN 将多关系知识图谱看作是多个单一关系的子图,每个子图中只包含一种特定的关系。在对 GCN 节点嵌入进行组合的过程中,通过 WGCN 决定给每一个子图的权重。

第 l 个 WGCN 层将从前一层获得的长度为   的每一个节点的输出向量作为输入,并得到一个全新的表示,由   个元素构成。令   表示结点    在第 l 层的输入向量,因此    作为这一层的输入矩阵。 初始的嵌入矩阵   由 Gaussian 函数随机获得。

如果在 WGCN 中一共有 L 层,则第 L 层的输出矩阵    是最终的嵌入向量矩阵。令在一个含有 E 条边的多关系知识图谱中,一共含有 T 种不同的边。相邻两个节点间的作用强度由关系类型决定,并且这个强度值可以通过神经网络进行自动学习,并可以根据每一个边的类型被表示为    

图 1 展示了 SACN 的整个过程。在这个例子中神经网络中的 WGCN 层用于计算处于图中间的红色节点的嵌入向量。这些层根据知识库中不同的关系类型聚合了邻居实体节点的嵌入向量。

三种颜色的边表示图中的三种不同关系类型。对应的三种不同类型的实体节点根据这一层不同的权重    进行求和以获得红色节点的嵌入向量。同种颜色的边运用相同的    的值,每一层由他们各自的关系权重集合  此,结点   的第 l 层的输出结果可以表示为:

其中    是节点   的输入向量。 并且结点    是结点   的邻居节点集合   中的一个节点。 函数 g 指定了融合邻居节点信息的方式。 激活函数 σ 运用于输入的每一个部分。 尽管适合于知识库嵌入的任何函数 g 都可以与本文提出的的框架结合使用,但我们使用了以下 g 函数:

其中    是关联系数矩阵,用于将   线性转化为  在等式(1)中,所有邻居节点的输入向量都被加和,但是没有加入节点   自身,因此在网络中要加入自循环。 对于节点  传播过程定义为:

l 层的输出结果是一个特征矩阵  并且   是   的第 i 行,该向量表示了节点   在第 l+1 层的特征。 上述过程可以被归纳为如图二所示的矩阵乘法,通过邻接矩阵同时计算所有实体节点的嵌入向量。 对于每一个边的类型都存在一个二进制邻接矩阵  ,在该邻接矩阵中,第 ij 个元素若为 1 则表示节点   与节点   之间存在该种类型的边,否则为 0。 最终的邻接矩阵可以被写为:

其中 I 是大小为 N×N 的单位阵, 是所有子 图的邻接矩阵与自连接矩阵的加和。 在实现过程中,考虑每个层的线性变换中的所有一 阶邻居,如图 2 所示:

节点属性 在一个知识库图中,节点通常以 (entity,relation,attribute) 的形式与多个属性相连。例如 (s=Tom,r=people.person.gender,a=male) 其中 gender 是 person 的属性,如果单独用一个向量表示节点的属性,则会存在两个潜在的问题。

第一点:每个结点的属性的数量较少,并且每个属性之间都不相同。因此属性向量会十分稀疏。第二点:属性向量中的 0 值的含义会有歧义,节点不具备这个属性或者节点缺失这个属性的值。这些 0 值会影响嵌入向量的准确性。

在本篇文章中,知识图谱中实体的属性值用网络中的另一组节点表示,被称为属性节点。属性节点充当连接具备关系的实体的桥梁。通过这些属性节点,实体嵌入向量可以转化,并将实体属性信息融合进实体的嵌入向量中。因为这些属性是三元组,本文将实体属性表示为与关系实体 o 一致的形式。每一种类型的属性对应一个实体节点。

具体的来说,在例子中,性别被表示为一个实体节点而不是 male 和 female 两个节点。以这种方式,WGCN 不仅仅运用了如图中的连接结构(关系和关系类型),还运用了节点属性(图结构的一种)。这是将本文中的 WGCN 命名为一种支持结构的卷积网络的原因。

Conv-TransE

本文中将模型 Conv-TransE 作为解码器。该模型基于 ConvE,但是也具备 TransE 的平移属性: 。模型 Conv-TransE 与模型 ConvE 的最大区别在于在堆叠   与    后并没有进行重构。 被用于卷积的过滤器(核)的尺寸为 2×k,k×{1,2,3,…}。 图 1 中运用 2×3 的核来计算 2D 卷积。

在我们的实证研究中,我们尝试了几种这样的设置。 在 SACN 的编码器中,将关系嵌入向量的维数设置为与实体嵌入向量的维数相同,为 。 因此,两个嵌入向量可以堆叠。

对于解码器而言,输入是两个嵌入向量矩阵: 其中一个是从 WGCN 中得出的所有实体节点的嵌入向量矩阵  ,和另一个通过训练得到的关系嵌入向量矩阵  因为本文使用了一个小批量随机训练算法,解码器的第一步对嵌入矩阵执行查找操作,以检索小批量三元组的   和   输入。

更精确地解释是,给定 C 个不同的核,第 c 个核以参数   表示,解码器中的卷积可以按照如下方式计算:

其中 K 表示核的宽度,n 是输出向量条目的索引  ,核参数  是可以被训练的。  分别由    和    经过填充后得到。

如果核的维数 s 是奇数,第一个 [K/2] 元素和最后一个 [K/2] 元素填充 0。[K/2] 表示向下取整。若为偶数,则第一个 [K/2]-1 元素和最后一个 [K/2] 元素填充为 0,其余部分直接复制   和    的值。

上述等式中的卷积操作等于一维卷积后  和    的和,因此它保留了嵌入向量    和    的平移属性,输出结果形成向量:

将所有核的输出向量组成一个矩阵 最终,在非线性卷积操作之后,Conv-TransE 方法的得分函数被定义为:

其中    是一个线性转化矩阵,f 表示一个非线性函数。特征映射矩阵会被重构为一个向量    并最终运用矩阵 W 投影到一个   维空间然后通过一个距离计算策略计算得出的向量与   嵌入向量的匹配程度。 在本实验的训练过程中,运用 sigmod 函数来计算得分:

在表 1 中,做这种接了几个表现较好的模型中运用到的得分函数。向量 和 分别是嵌入向量的主体和对象,是关系的嵌入向量,concat 表示将输入进行连接,* 表示卷积操作。

总之,本文提出的 SACN 模型,充分利用了知识图谱的结构信息,节点属性信息,关系的种类信息。在 WGCN 中可学习的权重有助于模型从图谱中邻居节点处收集有用的定量信息。实体的属性作为额外节点被加入到网络中,并且十分容易的整合到了 WGCN 中,Conv-TransE 保留了实体和关系间的平移属性以更好地完成链路预测任务,并获得高质量的节点嵌入向量。同时,无论是否使用属性节点,模型 SACN 的效果都要优于 ConvE。