知识图谱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的学习方式为:

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方法,将嵌入向量表示在复数空间中,其打分函数为:

  • 这种方法可以很好地描述对称关系,反对称关系,可逆关系和一对多关系

KGE的总结

不同类型的知识图谱嵌入算法比较