End-to-End Structure-Aware Convolutional Networks for Knowledge Base Completion--阅读笔记
0. 总览
0.1 要解决什么问题?(what?)
知识图谱补全中:
- 以前的方法只建模关系三元组,忽略了大量图节点相关属性;
- 以前的方法并没有增强在嵌入空间中大规模连接结构,完全忽略了图结构。
0.2 用什么方法解决?(how?)
用GCN和ConvErt相结合的方法组成一个端到端的学习方法。
- encoder部分利用一个带权重的GCN的方法(利用图的结构并保留节点的属性)。
- decoder部分利用Conv-TransE,利用啊convE的方法,但是去掉了实体和关系的矩阵重组部分。(为了保留TransE的
h+r=t
的特性)。
0.3文章有什么创新?
见上述方法
0.4 效果如何?
FB15k-237 and WN18RR数据机上,较ConvE提升了10%。
0.5 还存在什么问题?
1 背景知识
2 模型
end-to-end SACN
2.1 权重图卷积层(WGCN)
节点的第层输出为:
- 其中是节点的输入,是节点的邻居节点(一共个)。$\alpha_{t}^{l} lt$种边(关系)类型的权重参数。
函数是整合邻居信息函数,在这里坐着采用以下函数:
- 其中
作者再加入的自连接,则节点的传播过程可以被定义为:
- 节点是节点第层输出的节点特征矩阵的第行,代表节点在第层的特征。
以上的为不同类型的边加权重的过程可以看做一个矩阵乘法:通过一个邻接矩阵同时为所有节点计算embeddings,见上图:
邻接矩阵可以被写作:
- 其中是一个单位矩阵。是一个二进制矩阵,当和节点间有边连接则其中第项值为1,否则为0。
故,由此可以等到每一层线性变换的所有一节邻居:
2.2 属性节点
在知识图谱中,属性节点的形式为(entity, relation, attribute),例如:(s = Tom, r = people.person.gender, a = male)。但是如果用向量表达节点属性会出现两个问题:
- 由于每个节点的属性数量少,会产生属性向量稀疏的问题;
- 属性向量的0值会产生歧义:该节点没有该属性或者该属性缺失值。
本文还使用了节点的属性作为图的节点,如属性(Tom,gender,male)。这样做的目的是将属性也作为节点,起到“桥”的作用,相同属性的节点可以共享信息。还有作者为了减少过多的属性节点,对节点进行了合并, 将gender也作为了图中的节点,而不是建立male和female两个属性,理由是gender已经能够确定实体的person,而不必过多区分性别。(即作者把属性三元组变为了两元组(实体,属性名)
2.3 Conv-TransE
作者仅将节点向量和关系向量进行堆叠,然后进行卷积操作:
- 其中是卷积核的宽度,索引输出向量中的条目,是卷积核参数。
分数函数被定义为:
- 是一个线性变换,reshape成一个向量.
然后应用了一个逻辑sigmod函数:
3 实验
数据集:FB15k-237, WN18RR and FB15k-237-Attr
baseline:DistMult,ComplEx,R-GCN,ConvE
评价准则:MRR(mean reciprocal rank)(Raw,Filtered),Hits @(1,3,10)
3.1 链接预测实验结果:
3.2 卷积核大小分析
内核“ 2×1”表示在实体向量的一个属性和关系向量的对应属性之间转换的知识或信息。 如果将内核大小增加到“ 2×k”,其中k = {3,5},则会在实体向量的s属性组合和关系向量的k属性组合之间转换信息。
3.3 节点度分析
知识图中节点的度数是连接到该节点的边数。
参考链接
- https://www.cnblogs.com/jws-2018/p/11519383.html