欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Knowledge Graph Embedding: A Survey of Approaches and Applications[论文笔记]

程序员文章站 2022-03-30 13:44:49
...
  • KG embedding研究的出发点:KG的表示一般基于三元组(head entity, relation, tail entity),尽管能够有效的表示结构化数据,但是底层的本质上是符号表示,使得KG很难操作; KG embedding将KG中的成分映射到一个连续的矢量空间中,不仅保留KG中的固有结构,同时简化了处理

  • KG embedding研究主要分为两个阶段:

    • 阶段1:仅利用KG中的fact构建embedding, embedding只需要和每个单独fact匹配,对下游的一些任务not predictive enough

    • 阶段2:在阶段1的基础上,利用更多的信息形式,e.g.实体类型(entity type)、关系路径(relation path)、文本描述(textual description)、逻辑规则(logical rules),得到more predictive embeddings

  • 只基于facts的KG embedding 构建由3步组成:

    • step1: 表示entities和relations:

      • entity表示形式:

         *   矢量
        
         *   考虑entity的不确定性,利用多元高斯分布对entity进行建模
        
      • relation常被看成在矢量空间中的操作,表示形式:

         *   矢量
        
         *   矩阵
        
         *   张量
        
         *   多元高斯分布
        
         *   混合高斯(mixtures of Gaussians)
        
    • step2: 定义第一个打分函数

      • 每个fact(h,r,t)均对应一个score func f_r(h, t),在KG中观察到的facts得分高于未观察到的,根据score function定义方式不同,这种只基于facts的KG embedding技术可被分为以下两类:

        • translational distance models:使用基于距离的score func【目标优化函数】,这些模型均包含约束(e.g.强制vector embedding至少L2范数),这些约束在优化问题中被转化为正则项【正则项】

          • TransE及其扩展,实体/关系都是矢量空间中确定的点

            *   TransE:
            
                *   简单高效,通过学习分布式的词表示来捕捉语言规律,e.g.JamesCameron + DirectorOf ≈ Avatar
            
                *   处理一对多,多对一,多对多关系时有问题,e.g.一对多为例,AlfredHitchcock + DirectorOf ≈Psycho,Rebecca,RearWindow,一个导演对应多部电影,虽然这些电影属于不同实体,但是学到的矢量表示都是非常相似的,这是有问题的
            
            *   TransE改进策略:
            
                *   引入 Relation-Specific Entity Embeddings:
            
                    *   TransH:
            
                        *   改进TransE:引入 Relation-Specific Entity Embeddings,允许实体在不同的关系中有明显不同的表示。e.g.即使Psycho,Rebecca,RearWindow在给定DirectorOf 关系时,表示很相似,但给定其他关系时,表示可能相差很大
            
                        *   引入relation-specific超平面,每个关系r用矢量r表示,在一个以w_r为法向量的超平面上,实体h,t投射到该超平面上
            
                    *   TransR:
            
                        *   引入relation-specific 空间,而不是超平面;实体表示为实体空间的向量,每个关系关联到另外的关系空间,定义投影矩阵M_r(实体空间到关系空间)
            
                        *   每个关系都需要引入投影矩阵,不如TransE,TransH简单高效
            
                    *   TransD:
            
                        *   简化TransR,比TransR更高效。将投影矩阵分解为两个矢量乘积,引入额外的映射向量w_h,w_t, w_r
            
                    *   TranSparse:
            
                        *   简化TransR,强制投影矩阵的稀疏性
            
                *   relaxing translational requirement:放松h+r≈t的限制
            
                    *   TransM: 每个事实(三元组)关联一个权重,通过降低一对多,多对一,多对多关系的权重,TransM允许t在这些关系中远离h+r
            
                    *   ManifoldE: 放松约束关系,t约束在以h+r为质心,权重值为半径的超球体中
            
                    *   TransF: 放松约束关系,t约束在与h+r为同向即可
            
                    *   TransA: 为每个关系r引入对称非负矩阵,使用自适应Mahalanobis距离定义score
            
          • Gaussian Embeddings,实体/关系被看做随机变量

            *   KG2E:将实体和关系表示成从多元高斯分布中提取的随机向量
            
                *   使用 Kull-back-Leibler散度计算得分
            
                *   使用概率内积计算得分
            
            *   TransG: 实体h,t利用高斯分布建模,关系r认为可能有多重语义信息,被表示为混合高斯分布
            
          • 其他距离模型:

            *   UM(unstructured model)
            
                *   TransE的简化版本,令r = 0
            
                *   不能区分不同的关系
            
            *   SE(structured embedding):
            
                *   对每个关系r,使用两个不同的投影矩阵,分别用于head entity, tail entity
            
        • semantic matching models: 使用基于相似度的score func,通过匹配实体、关系见的潜在语义来衡量事实的合理性

          • RESCAL及其扩展

            *   RESCAL:
            
                *   也叫双线性模型,将实体h,t与一个vector关联来捕捉潜在语义,关系r与一个matrix关联来建模latent factors间的两两交互
            
                *   其score func捕捉到了所有h,t所有成分间的两两交互
            
            *   TATEC:
            
                *   不仅建模了h,r,t间3者交互,还定义了h,r/t,r间2者交互
            
            *   DisMult
            
                *   简化了RESCAL,将矩阵Mr限制为对角阵
            
                *   其score func捕捉到了h,t中相同维度上成分间的两两交互,减少了每个关系r所有的参数数量
            
                *   模型过于简单【对角矩阵使得实体可交换】,只能处理对称关系,对于一般的KG功能不够强大
            
            *   HolE(Holographic Embeddings)全息嵌入:
            
                *   将RESCAL的表现力与DisMult的简洁高效结合
            
                *   将实体、关系均表示为vector,进行Circular correlation,对pairwise interactions进行压缩,减少了每个关系r所有的参数数量,比RESCAL高效;且Circular correlation不能交换,可以像RESCAL一样,对非对称关系进行建模
            
            *   ComplEx(Complex Embeddings)复数嵌入:
            
                *   对DisMult的扩展,引入复数嵌入,可以更好建模非对称关系
            
                *   h,r,t不再依赖实数空间,而是依赖复数空间,非对称关系最终得到的事实会得到不同的score,这依赖相关实体对应的orders、
            
                *   共轭对称施加在embeddings时,HolE被视为ComplEx的一种特殊情况
            
            *   ANALOGY:
            
                *   扩展RESCAL,进一步对实体、关系中相似的属性建模
            
                *   已被证明DisMult、HolE、ComplEx均属于ANALOGY的一种特殊情况
            
          • 利用神经网络进行匹配

            *   SME: Semantic Matching Energy,
            
                *   在Input layer: 将fact三要素h,r,t映射为vector embeddings
            
                *   在Hidden layer:将关系r与head entity h结合得到g_u(h,r);将关系r与tail entity h结合得到g_v(r, t)
            
                *   score定义为g_u,g_v的点积
            
                *   根据g_u,g_v的形式不同,SME有两个版本:
            
                    *   SME(linear):
            
                    *   SME(bilinear)
            
            *   NTN: neural tensor network:
            
                *   在Input layer: 将fact三要素h,r,t映射为vector embeddings
            
                *   在Hidden layer:将h,t,和二者与特定关系张量Mr结合三者映射到一个非线性hidden layer
            
            *   SLM:single layer model:
            
                *   NTN的简化形式,将h,t对应的权重矩阵,bias置零,只保留NTN中的最后一个要素
            
            *   MLP: multi-lalyer perceptron:
            
                *   h,r,t均映射为单vector
            
                *   在Input layer上将三者拼接,映射到非线性hidden layers
            
            *   NAM:neural association model:(多隐层,其他都是单隐层)
            
                *   在Input layer: 将fact中h,r映射为vector embeddings后进行拼接,经过多隐层(**函数:Relu)和t生成的embeddings乘积得到score
            
        • 模型的训练:

          • 一些先验知识:http://www.sohu.com/a/144575100_464088

            *   封闭世界假设(Closed World Assumption, CWA)
            
                  *   即如果我们在知识库中推不出来P或P的否定,就把P的否定加入知识库。有两种情况, CWA很有用. 一是可以当假设知识库中的知识是完全的时候. 例如, 在数据库中, 如果学生表中没有Peter, 则认为Peter不是学生. 二是当知道知识库的知识是不完全的, 如不足于回答一些问题, 但我们必须在不完全知识的情况下做出决定, 这时候CWA就有用了
            
            *   开放世界假设(Open World Assumption, OWA)
            
                  *   对推不出来的命题就很诚实地当作不知道这个命题的正确与否, 这样的后果就是知识库中能推导出来的结论大大减少
            
            *   在语义Web环境下, 因为Web的开放性, 相关的知识很可能分布在Web上不同的场所, 因此在语义Web上推理, 用CWA是很不恰当的. 例如, 如果在一个知识库中只说了hasFriend(Peter, Tom), 如果采用CWA, 就会得到结论: Peter只有一个朋友. 这当然是不合理的, 因为很可能在别的地方说了Peter还有其他的朋友. 所以, 如果要在语义Web中聚集不同来源的知识, 应该采用OWA. (有一种中庸之道: 局部封闭世界(Local Closed World), 这里不多说). 描述逻辑中的推理刚好是采用OWA的, 所以它的确适合作为语义Web的逻辑基础
            
          • 目标函数:

            *   logistic loss最小化
            
                    *   优势:对一些复杂的关系模式(如transitive relations)得到一些紧凑的表达方式
            
            *   pairwise ranking loss最小化
            
                    *   优势:不假设负样本一定是(命题)错误的,只是和正样本相比可能性小,使得positive facts得分要尽可能高于negative ones
            
            *   以上的目标函数中均包含约束项/正则项【不同的embedding模型不同】,已证明:logistic loss+semantic matching models(DisMult、ComplEx等)性能更好;pairwise ranking loss+translational distance models(TransE)性能更好
            
            *   优化方法:SGD+minibatch
            
    • step3: 学习entities和relations的表示

      • 解决对所有观测facts的合理性最大化(maximize plausibility)的最优化问题

【未完待续...】