知识图谱学习(一)

1,238 阅读10分钟

参考论文:A Survey on Knowledge Graphs: Representation, Acquisition and Applications

链接:原文链接

简介

该论文首先对知识图谱进行了全面的综述,包括四个方面:

  • 知识图谱表示学习
  • 知识获取和补全
  • 时序知识图谱(temporal knowledge graph)
  • 知识感知应用(knowledge-aware applications)

其次针对这些主题提出了一个全视图分类和新的分类标准。

知识图谱嵌入由4个方面组织:1、表示空间;2、得分函数;3、编码模型;4、辅助信息。

对于知识获取和补全由3个方面组织:1、嵌入方法;2、路径推理;3、逻辑规则推理。

此外还进一步探讨了一些新兴主题如元关系学习(meta relational learning)、常识推理和时序知识图谱。

最后分享了精选的数据集和用于不同任务的开源库,并展望了未来的研究。

知识库(knowledge base)和知识图谱(knowledge graph)

知识库和知识图谱实际上是同义词,二者只有细微的差别。对于一个知识图谱,当考虑它的图结构时可以将它看做一张图,当考虑它的形式语义时,它就可以当成是一个对事实进行解释和推理的知识库。图1是一个知识库和知识图谱的例子,可以看出二者可以相互转换。

知识图谱的定义 很多研究尝试过定义知识图谱,但目前还没有一个被广泛认同的正式定义。该论文引用了之前文献给出的定义,将一个知识图谱表示为G={E,R,F}\mathcal{G}=\{\mathcal{E} ,\mathcal{R}, \mathcal{F}\}, 分别为实体,关系和事实的集合。每一个事实都被定义为一个三元组(h,r,t)(h,r,t),分别为head, relation, tail。

定义1\quad一个知识图谱会获取并合并信息到一个本体中,并使用推理机来导出新的知识。

定义2\quad知识图谱是由实体和关系组成的多关系图谱,实体和关系可以认为是节点集和不同类型的边。

知识表示学习

知识表示学习(KRL)在各类文献中也被称之为知识图谱嵌入(knowledge graph embedding,KGE),多关系学习和统计关系学习。

表示空间

表示学习即如何关联实体和关系,其关键在于学习实体和关系的低维分布式嵌入。现有文献主要使用实数点式空间(real-valued point-wise space)包括向量、矩阵和张量空间,如图4a所示。其他的空间如复向量空间(complex vector space,图4b)、高斯空间(Gaussian space,图4c)和流形空间(manifold,图4c)也会被使用。

点式空间(point-wise space),点式欧几里得空间广泛地用于:表示实体和关系,映射关系嵌入到矩阵或向量空间中,捕获关系交互。TransE在一个d维向量空间中表示实体和关系,例如,h,t,rRd(R表示实数集)r\in\mathbb{R}^d(\mathbb{R}表示实数集),并使嵌入遵照翻译(translating)原则 h+rth+r≈t。但TransE无法解决一对多和多对多问题,因此TransR进一步针对实体和关系引入了分割空间,作者将实体(h, tRkt\in\mathbb{R}^k)投影到关系(rRdr\in\mathbb{R}^d)通过一个投影矩阵MrRk×dM_r\in\mathbb{R}^{k×d}。NTN通过一个双线性张量神经层(bilinear tensor neural layer)跨多维建模实体,h和t间的相互关系 hTMt^h^T \widehat{Mt}被捕获为一个张量,用 M^Rd×d×k\widehat{M}\in\mathbb{R}^{d×d×k}表示。

复向量空间,实体和关系在一个复数空间而不是实数空间中表示,htrCd(C为复数集)h,t,r\in\mathbb{C}^d(\mathbb{C}为复数集)。以head实体为例,h\boldsymbol{h}有一个实部Re(h)Re(\boldsymbol{h})和一个虚部Im(h)Im(\boldsymbol{h}),即h=Re(h)+iIm(h)\boldsymbol{h}=Re(\boldsymbol{h})+iIm(\boldsymbol{h}),如图4b所示,它能同时捕获对称和反对称关系。

高斯分布,受高斯词嵌入的启发,基于密度的嵌入模型KG2E引入了高斯分布来解决实体和关系的确定性(不确定性)问题,作者将实体和关系嵌入到一个多维高斯分布中。

流形和群(Manifold and Group),首先介绍流形空间,李群(Lie group)和二面体群(dihedral group)的基本概念。

一个流形(Manifold)是一个拓扑空间,用集合论可以将其定义为具有领域的点集。群(Group)是抽象代数中定义的代数结构。之前提到的点式空间是一个病态的代数系统,因为它的得分方程数量远多于实体和关系,此外在一些使用子空间投影的方法中,嵌入也被严格地限制为几何形式。为解决这类问题,ManifoldE将点式嵌入扩展为基于流形的嵌入,作者解释了两种设置:球面和超平面,图4d是一个球面设置的例子。

得分函数

得分函数用于衡量事实的合理性,在基于能量的学习框架中也被称之为能量函数。得分函数分为两类,基于距离和基于相似度。

基于距离的函数通过计算实体间的距离来度量事实的可信度,其中翻译式 h+rth+r≈t被广泛使用,基于相似度的函数使用语义匹配来度量可信度,它常用乘法公式如hTMrtTh^TM_r≈t^T,如图5所示。

  • 基于距离的得分函数

最直观的方法是计算实体关系投影间的欧几里得距离,Structural Embedding(SE)使用两个投影矩阵和L1L_1来学习结构嵌入: fr(h,t)=Mr,1hMr,2tL1f_r(h,t)=||\boldsymbol{M}_{r,1}\boldsymbol{h}-\boldsymbol{M}_{r,2}\boldsymbol{t}||_{L_1}

另一个更常用的方法是基于翻译的得分函数,通过将关系表示为从h到t实体的翻译来学习嵌入:

fr(h,t)=h+rtL1/L2f_r(h,t)=||\boldsymbol{h}+\boldsymbol{r}-\boldsymbol{t}||_{L_1/L_2}

此外还有ITransF,KG2E和ManifoldE都是使用基于距离的得分函数

  • 基于相似度的得分函数

SME提出从语义上匹配实体关系对(h,r)(h,r)(r,t)(r,t)的不同组合,它的得分函数定义为线性和双线性两种匹配块:

fr(h,t)=gleft(h,r)Tgright(r,t)f_r(h,t)=g_{left}(\boldsymbol{h},\boldsymbol{r})^Tg_{right}(\boldsymbol{r},\boldsymbol{t})

编码模型

编码模型即通过特殊的架构编码实体和关系间交互,包括了线性\双线性模型,因式分解模型,和神经网络。

  • 线性\双线性模型

线性模型通过将head实体投射到靠近tail的空间中来讲关系表示为线性\双线性映射,它使用线性运算来编码实体间的交互和关系(或双线性模型,参考公式10):

gr(h,t)=MrT(ht)g_r(\boldsymbol{h},\boldsymbol{t})=M_r^T\dbinom{\boldsymbol{h}}{\boldsymbol{t}}

  • 因式分解模型

因式分解模型将关系数据分解为低秩矩阵用于表示学习。

  • 神经网络

用于编码语义匹配的神经网络在最近的研究中取得了显著的预测效果,线性\双线性模型同样可以使用神经网络建模,代表性的神经网络模型包括multi-layer perceptron (MLP),neural tensor network (NTN),和neural association model (NAM),它们通常将实体或关系或两者都输入神经网络来计算出一个语义匹配分数。MLP将实体和关系一起编码为一个全连接层,并在第二层使用sigmoid激活函数来计分一个三元组:

fr(h,t)=σ(WT,σ(W[h,r,t]))f_r(h,t)=\sigma(W^T,\sigma(W[\boldsymbol{h},\boldsymbol{r},\boldsymbol{t}]))

此时,WRn×3dW\in\mathbb{R}^{n×3d}为权值矩阵,[h,r,t][\boldsymbol{h},\boldsymbol{r},\boldsymbol{t}]为三个向量的concatenation操作,即将后面的向量拼接到前面的向量之后。

目前常用的各种神经网络模型如图6所示。

辅助信息嵌入

多模式嵌入结合了外部信息,如文本描述、类型约束、关系路径和可视化信息,以及知识图谱本身,以促进更有效的知识表示。

  • 文本描述

知识图谱中的实体具有文本描述,用符号 D=<w1,w2,...wn>D=<w_1,w_2,...w_n>表示,它可以提供补充语义信息。KRL中文本描述的挑战在于如何将结构化知识和非结构化文本嵌入到同一空间中。

  • 类型信息

实体用层次类或类型表示,以及因此与语义类型的关系。

  • 可视化信息

可视化信息可以用来丰富KRL。

知识获取

知识获取的目标在于从非结构化文本或半结构化源构建知识图谱,补全现有的知识图谱,发现和识别实体和关系。知识获取的主要任务包括:关系抽取,知识图谱补全(KGC),和其他面向实体好获取任务,如实体识别和实体对齐。

知识图谱补全(Knowledge Graph Completion, KGC)

因为知识图谱天然存在不完整性,人们开发了KGC来为知识图谱添加新的三元组。典型的子任务包括:连接预测,实体预测和关系预测。

  • 基于嵌入的模型

早期的KGC研究致力于学习三元组预测的低维嵌入,在该论文中这类方法被称之为基于嵌入的模型。以实体预测为例,基于嵌入的排序方法如图7a所示。首先学习基于现有三元组的嵌入向量,通过实体 eEe \in \mathcal{E}来替换head实体或tail实体。这些方法计算每个实体的得分,并对前kk个实体进行排序。

  • 关系路径推理

实体和关系的嵌入学习在一些基准中获得了显著的成效,但它不能模拟复杂的关系路径。关系路径推理主要使用图结构上的路径信息。Neelakantan等人开发了一种RNN模型,递归地运用语义合成性来构建关系路径的含义,如图7b所示。

  • 基于深度强化学习(RL)的路径发现

深度强化学习通过将实体对间的寻路公式化为顺序决策来引入多跳推理(multi-hop reasoning),特别是一个马尔科夫决策过程(Markov Decision Process,MDP)。基于策略(Policy-based)的RL agent 通过知识图谱环境间的交互来学习寻找能扩展推理路径的一步关系,而策略梯度则用于训练RL agent。

深度强化学习基础概念:

深度强化学习是深度学习(神经网络)和强化学习(学习激励函数值最大的模型)的结合,深度学习负责马尔科夫决策过程的状态(state),强化学习负责把控学习的方向。深度强化学习一般分为三类:基于价值(value-based)、基于策略(policy-based)和基于模型(model-based)。

基于价值的深度强化学习使用价值函数(value function)选择高价值的行为,代表算法:Q-learning,Deep Q Network(DQN)。

Q-learning使用Q-table来计算得到Q-value,下图是一个Q-table的例子,每一行代表一个状态,每一列代表一个动作,每一格的数值代表在该状态采取该动作所能获得的最大未来期望奖励。

Q-table中所有值都会初始化为0,使用ϵ−贪婪法来选择新的动作,并根据新动作得到的新状态和新奖励更新价值函数,多次迭代直到价值函数收敛。

Q-learning的缺陷在于当状态和动作非常复杂时所需要维护的Q-table会非常大,可能会超出内存,限制了应用的场景。

DQN为了解决这个问题使用神经网络替代了Q-table的功能,将当前状态输入神经网络,神经网络输出动作和对应的Q-value,DQN算法选择最大的Q-value和对应的动作执行出下一个状态。DQN的损失函数使用的是mean squared error(MSE) 平方均值法,目标是最小化预测Q-value和目标Q-value间的error。

基于策略的深度强化学习不需要价值函数,直接对策略进行近似,设置策略函数为π\pi,有参数θ\theta,则有:

πθ(s,a)=P(as,θ)π(as)\pi_\theta(s,a)=P(a|s,\theta)≈\pi(a|s)