知识图谱Knowledge Graph Embeddings
- 到目前为止图机器学习研究的对象的都还是只有一种类型边的图,而对于边的类型有很多种的图(也叫做异构图,Heterogeneous Graph,边代表了关系,多种边就代表了多种更复杂的关系),常见的异构图有:
- 关系型GCNs(RGCN)
- 知识图谱,用于知识图谱补全的嵌入
- 一个异构图可以定义为
,其中V和E分别代表节点和边的集合,T和R分别代表节点和关系的类型
关系型图卷积网络RGCN
图卷积网络GCN可以在进行一定的扩展之后可以用来处理异构图,这样的网络叫做关系型图卷积网络RGCN,可以先回忆一下对于一个单层的GNN,有message和aggregation两个步骤来进行节点的表示,而当图中存在多种关系,变成异构图之后,RGCN仍然可以进行图节点嵌入的学习,处理的方式是:
- 对不同的关系类型使用不同的权重矩阵
,分成多种关系来收集message - GCN中的更新公式是:
- 上面的这个表达式也可以拆分成message和aggregation两个部分,还是比较容易看出来的,每个关系都有L个对应的权重矩阵W,因此参数数量随着关系的变多增长的很快,经常会出现过拟合的现象,可以采取对权重矩阵W进行正则化的方式来避免过拟合
- 方法1:使用块对角矩阵block diagonal matrices来降低参数的维数
- 方法2:基学习,在不同的关系之间共享权重,将W矩阵表示称一系列基础的transformations的组合,这样一来所有的关系
- 可以完成一系列实体识别,连接预测等任务
知识图谱
- 知识图谱是用图的形式来保存一些知识,用节点来表示实体,并且用实体的种类作为标签,用边来表示实体之间的关系。现实生活中有不少知识图谱的具体案例,知识图谱也是异构图的一种。
- 知识图谱中比较重要的一个任务是做图谱的补全,也就是找到知识图谱中缺失的连接关系。
- 我们要注意到知识图谱中的关系也是有很多种类的,主要有对称的关系和可你关系
- 知识图谱的关键idea在于知识图谱的表示,知识图谱中的一条边可以表示为一个三元组
,分别表示头节点,关系和尾节点 - 实体和关系可以建模成一个d维空间中的嵌入向量
- 对于一个给定的三元组,我们的目标是
的嵌入向量必须要和 的嵌入向量尽可能接近,因此问题也就变成了如何对 进行嵌入与如何定义“接近”
TransE
- 一种最简单的评估接近程度的方式,评估函数是
- TransE的学习方式为:
关系模式
知识图谱中有一系列各式各样的关系,比如:
- 对称关系:
,同样的还有反对称关系 - 可逆关系:
- 组合关系(可传递关系):
- 一对多关系,一个实体对应多个实体
TransR
- TransE模型可以将任意的关系转换到相同的嵌入空间,而TransR可以将节点转换成d维的嵌入向量,必将每个关系转换成k维的关系空间向量,并给出一个从实体空间到关系空间的投影空间M
- 同样地也可以对对称关系,反对称关系,1对多关系,可逆关系进行建模
- 但是TransR不能对组合关系(可传递关系)进行建模
Bilinear Modeling
- TransE和TransR的知识图谱建模方式都是用距离作为scoring function的,而Bilinear建模中,将实体和关系都表示称k维的向量,称为DistMult,并采用向量乘积来作为scoring function
- 事实上这个score function类似于hr和t的cosine相似度
- 这种建模方式支持:
- 一对多模型的建模:向量的投影相等即可
- 对称关系:向量的内积可以换
- 问题是不能表示反对称关系、逆关系和组合关系
DisMult
- 一种使用语义匹配度作为打分函数的KGE方法,其打分函数为:
- 这种打分函数可以理解为cosine相似度,并且可以很好地刻画一对多的关系,但是不能刻画可逆的关系
ComplEx
- 基于DisMult方法,将嵌入向量表示在复数空间中,其打分函数为:
- 这种方法可以很好地描述对称关系,反对称关系,可逆关系和一对多关系