【知识图谱】知识图谱嵌入

知识图谱嵌入(KME)

  • KG嵌入技术
  • 算法
    • TransE:
    • Relation-Specific Entity Embeddings(关系特定实体嵌入)
    • TransH
    • TransR
    • CTransR(Cluster-based TransR)
    • TransD
    • nsR, TransH, TransR的关联:

KG嵌入技术

参考资料:
Knowledge Graph Embedding: A Survey of Approaches and Applications

https://blog.csdn.net/junruitian/article/details/87006668

https://blog.csdn.net/hy_jz/article/details/78944717

典型的KG嵌入技术通常包括三个步骤:

  1. 表示实体和关系
    第一步指定实体和关系以连续向量表示的形式空间。实体通常表示为向量,即向量空间中的确定点。最新工作进一步考虑了实体的不确定性,并通过多元高斯分布对其建模。关系通常被视为向量空间,可以表示为向量]、矩阵、张量、多元高斯分布,甚至高斯分布的混合。
  2. 定义评分函数
    在第二步中,在每个事实(h,r,t)/(head,relationship,tail)上定义评分函数fr(h,t),以测量其合理性。观察到的事实在公斤级中,得分往往高于未观察到的分数。
  3. 学习实体和关系表示
    最后,为了学习这些实体和关系表示(即嵌入),第三步解决了一个优化问题,该问题最大化了观察到的事实(即,包含在D+中的事实)的总体似然性。

我们将这种嵌入技术大致分为两类
1. 平移距离模型:基于距离的评分函数
2. 语义匹配模型:基于相似度的评分函数

算法

TransE:

【Translating Embeddings for Modeling Multi-relational Data】

  • 贡献:建立简单且易拓展的模型把知识库中的实体和关系映射到低维向量空间中,从而计算出隐含的关系。
    以较低的错误把实体的向量h ,t h,t连接起来,即:h + r ≈ t 。
    打分函数定义为:h + r与 t 之间的距离:
    在这里插入图片描述

如果(h,r,t)存在,那么 分数frh,t就比较高。示意图如下:
【知识图谱】知识图谱嵌入_第1张图片

  • 优点:易拓展
  • 缺点:不适合处理1-N、N To-1和N-N-N关系;
    任何relation下实体的向量表示都是相同的。

Relation-Specific Entity Embeddings(关系特定实体嵌入)

允许实体在涉及不同关系时具有不同的表示
eg:

TransH

TransH再次将实体建模为向量,但在以wr为法向量的超平面上,每个关系r都是向量r。给定一个事实(h,r,t),首先将实体表示h和t投影到超平面上,从而得到
TransH 依然把实体 h,t 表示为向量,但是把关系r表示成两个向量:超平面的法向量 Wr和关系r在超平面内的向量表示 dr。如下图所示:
【知识图谱】知识图谱嵌入_第2张图片
头结点h和尾节点t映射到超平面的表示为:
在这里插入图片描述
这样对于不同的关系r节点有不同的表示,可以解决1-N,N-1,N-N的问题:节点在关系riri中相似,但可能在关系rjrj中不相似。
约束||Wr||2=1打分函数为:
在这里插入图片描述
如果(h,r,t)是fact那么这个分数是比较低的(距离比较小),否则分数比较高(距离比较大)。
此外,在采负样本(h′,r,t)(h′,r,t)或(h,r,t′)(h,r,t′)的时候,TransH 为了降低错误,对于1-N 做了如下处理,以更大的概率替换头节点;同样的,对于N-1以更大的概率替换尾节点。

TransR

  • 在TransE和TransH中,实体和关系向量被映射到同一个向量空间。
  • TansR把关系向量映射到不同的空间。与TransH相比,TransR把关系r映射到与它相关的空间而不是超平面。框架图如下所示:
    【知识图谱】知识图谱嵌入_第3张图片
    TransR对每个关系r都分配了一个空间Mr∈R。头结点和尾结点可以表示为 h,t∈Rk,关系可以表示为r∈Rd。首先把头结点和尾结点映射到relation空间,映射向量定义为:
    在这里插入图片描述
  • 对应的打分函数:
    在这里插入图片描述

CTransR(Cluster-based TransR)

在TransR的基础上,作者提出了CTransR模型,借鉴与分段线性回归(piecewise linear regression)。

  1. 首先,对每个特定的关系r,把训练数据中所有的实体对(h,t)聚类成多个组。每个实体的向量用TransE模型进行预训练,在聚类的时候每个实体对表示为(h−t)。
  2. 然后,对于每个cluster学习单独的关系向量r,对于每种关系学习关系矩阵Mr。那么,映射后的实体是: hr,c=h⃗ Mrt⃗ r,c=t⃗ Mrh→r,c=h→Mrt→r,c=t→Mr。
  3. 打分函数表示为:
    在这里插入图片描述
    * 第二项的目的是确保特定类的关系向量距离原始的向量不会太远。
  • 优点:TransR /CTransR模型效果比现有的模型好
  • 缺点:模型参数较多,相比TransE、TransH模型而言,不简洁高效。

TransD

  • TransD可以说是TransR/CTransR的简化版本
  • 它用两个向量来动态重构mapping矩阵。给定一个triplet(h,r,t),一共有两种向量 : 1. 代表 实体/关系 意义的向量: h,r,t; 2. 动态重构映射矩阵的向量: hp,rp,tp;其中,r,rp∈Rm,h,hp,t,tp∈Rn。
  • 映射矩阵通过映射向量动态重建。再将头结点和尾结点映射到关系r的空间,进行打分。
  • TransD中没有很复杂的矩阵运算,取而代之的是向量运算,因而比TransR的复杂度要低。示意图如下:
    【知识图谱】知识图谱嵌入_第4张图片

在TransD中,映射矩阵是由关系和实体共同决定的:
在这里插入图片描述
其中Im×nIm×n是单位矩阵。那么映射向量为:
在这里插入图片描述

  • 打分函数是:
    在这里插入图片描述

nsR, TransH, TransR的关联:

  • TransE
    当m=n(即:实体向量和关系向量的维度相等),并且映射向量(hp,rp,tp)设为0的时候,TransD就退化成TransE。

  • TransH
    如果m=n(即:实体向量和关系向量的维度相等),那么实体的映射向量可以表示为:
    在这里插入图片描述

从这里来看,TransD和TransH的不同是,TransH的映射向量只跟关系向量有关,TransD的映射向量与关系向量和实体向量都有关。

  • TransR/CTransR

相对于TransR,TransD的区别是:通过为每个实体和关系设置映射向量hp,对每个triplet动态重构两个映射矩阵。一般设置m≥n,映射向量可表示为:
在这里插入图片描述
不同的是,TransD计算量小,可以应用到大规模网络。

你可能感兴趣的:(知识图谱,neo4j)