面向复杂文本结构的实体关系联合抽取研究
摘要:
- 信息抽取技术作为自然语言处理领域最重要的底层任务,旨在从非结构化的文本中抽取出高密度的知识元,其最重要的两个子任务是实体识别和关系抽取。知识图谱具有强大的语义推理能力,构建高质量的产业知识图谱能够推动行业信息化转型。然而,互联网上的非结构化数据通常蕴含着复杂的文本结构,传统的信息抽取算法无法应对这种复杂的语义信息。本文通过改进现有的算法,围绕如何有效处理重叠三元组这一问题展开研究,主要研究内容如下:
- (1)针对复杂文本结构中的单实体重叠三元组抽取问题,本文提出了一种具有节点感知注意力机制的图卷积神经网络联合抽取模型(Joint-GNAA)。该模型通过上下文特征提取层来捕获每个单词的多粒度词语表示,包括上下文嵌入、字符以及词性嵌入。为了提取单词的区域特征表示,使用句法工具生成的依赖树作为第一阶段GCN的邻接矩阵输入,并在图结构上执行卷积操作。通过关系感知注意力机制提取不同关系空间下的单词关联信息,并为每种关系生成单词关联矩阵。通过第二阶段的GCN汇聚所有单词的依赖信息,从而建立三元组之间的交互。最后,将两个阶段的GCN输出拼接在一起进行关系和实体的预测。
- (2)针对复杂文本结构中的双实体重叠三元组抽取问题,本文提出了一种具有关系导向注意力机制的联合抽取模型(Joint-RGA)。该模型首先通过上下文特征提取层捕获句子的序列特征和区域特征。然后通过关系导向注意力机制和关系门控机制将原有的句子根据不同关系构造新的句子表示。其中,关系导向注意力机制用来计算关系空间下每个单词的权重系数。关系门控机制用来过滤无用的信息,并保留当前关系下对实体标注具有帮助的信息。最后通过特征分类层的多头注意力机制和BiGRU网络来捕获每个关系空间下单词之间的隐藏状态信息,并使用CRF和归一化处理将模型的输出映射到实体标签,对句子中每个单词进行实体标注。本文在开源英文数据集上进行了联合抽取实验,以验证所提模型在复杂文本结构下的三元组抽取效果,实验结果表明Joint-GNAA和Joint-RGA相比于对比模型均取得了较好的效果。此外,本文在海洋文本数据集上验证了Joint-GNAA和Joint-RGA的应用效果,并在大规模非结构化语料库的基础上构建了海洋产业知识图谱。
- 关键词:知识图谱;实体关系联合抽取;注意力机制;图卷积神经网络
1绪论
- 文本作为互联网数据的主要内容形式,在信息时代扮演着重要的角色。互联网上的文本大多以非结构化的形式出现,包含大量的实体、关系和事件等知识单元。知识图谱(KnowledgeGraph)通过数据挖掘、信息处理和可视化处理等操作整合不同领域的知识,形成高密度知识网络。知识图谱中每个节点对应着现实世界的一个实体单元,边代表实体之间的语义关联。在工业领域,知识图谱极大的推动了信息自动化转型。在一些开放领域中,通常使用Wikipedia或者百度文库中的数据自顶向下的方式构建知识图谱,比如Freebase[1]和DBpedia[2]。在一些特定的垂直领域,则是在有限的知识文档基础之上进行半自动的构建,如医药领域[3]和航空领域[4]。海洋产业目前缺乏较为系统的知识图谱,但是各大海洋、财经、新闻、百科等网站存在着大量的非结构化以及半结构化的海洋产业文本可以作为原始数据,因此,构建高质量的海洋产业知识图谱具备一定的基础。
- 构建大规模知识图谱的核心步骤是从非结构化文本中抽取出关系三元组,关系三元组由两个实体以及实体之间的语义关系组成。传统的信息抽取任务包含两个步骤:命名实体识别和关系抽取。命名实体识别任务主要聚焦于文本中的实体单元,比如通用领域的时间、地点、任务、组织、人名等。在一些特殊垂直领域,实体通常为在该领域较具有特殊意义的词语,如医药领域的原材料和航空领域的设备型号。关系抽取任务则是为了抽取出两个实体之间的语义关联信息,即在预定义的关系集合中选择一种合适的关系作为语义连接。开放领域拥有大量的非结构化文本,这些文本的内容往往具有复杂的语义结构,对信息抽取任务产生巨大的干扰。复杂文本结构中存在重叠三元组的问题,即文本中出现了错综复杂的实体关联。重叠三元组包括单实体重叠(SingleEntityOverlap,SEO)和双实体重叠(Entity-PairOverlap,EPO)两种类型。其中单实体重叠是指两个三元组共用同一个实体单元,双实体重叠是指两个三元组共用一个实体对。流水线式的信息抽取方式由于缺乏实体和关系之间的交互信息,因此该类模型很难处理重叠三元组的问题。实体关系联合抽取将实体识别和关系抽取任务集成到同一个框架中,通过两个子任务之间的信息交互捕捉更多特征信息。因此,实体关系联合抽取具有更大的优势来抽取复杂文本结构中的重叠三元组。
1.3国内外研究现状
1.3.1命名实体识别技术发展
- 命名实体识别(NamedEntityRecognition,NER)旨在从非结构化文本中识别出具有特殊意义的实体单词,比如人名、地名、组织名等。实体识别不是一个独立的任务,作为自然语言处理应用中的底层任务,支撑着文本理解[5]、信息检索[6]、问答[7]、翻译[8]等领域。第六届信息理解会议(MUC-6)第一次提出实体识别任务,经过多年的发展,主要有基于规则的方法、基于传统机器学习的方法和基于深度学习的方法。
- 1.基于规则的命名实体识别
- 基于规则的命名实体识别方法需要领域专家手工制定规则,然后在大规模的语料库中不断完善对应的规则,最终得到符合预期的命名实体识别效果。这种方法的优点是不需要对数据集进行标注,只需要引入外部词汇库即可。缺点是对规则制定者的水平要求较高,并且不具备迁移性。KashifRiaz等人[9]提出了一种基于规则的UrduNER方法,该方法的识别效果相较于统计学方法有了很大的提升。Demiros等人[10]提出了一种结合希腊地名词典的规则式NER系统,在特定语言领域取得了很好的效果。TomoyaIwakura等人[11]提出了一种针对日语的规则式NER方法,该方法可以从未标记的数据中自动获规则。
- 2.基于传统机器学习的命名实体识别
- 基于传统机器学习的命名实体识别方法主要使用大规模标注语料库进行训练,从而使模型更加拟合真实的数据分布,包括监督学习、半监督学习和无监督学习的方法。很多现有的机器学习算法在NER领域取得了很好的效果,如条件随机场(ConditionalRandomField,CRF)[12]、决策树[13]、支持向量机(SupportVectorMachine,SVM)[14]和隐马尔可夫模型(HiddenMarkovModel,HMM)[15]等。监督学习的方法通过已标记的数据进行训练,将NER转换为分类任务。Szarvas等人[16]使用决策树搭建了多语言NER系统,通过不同的特征子集训练对应的决策树分类器,然后使用投票的方案组合决策。McCallum等人[12]提出了一种基于CRF的特征归纳方法,在CoNLL03数据集上取得了不错的效果。
- 基于无监督的NER方法主要使用聚类算法实现,根据上下文相似性从聚类组中提取实体。Collins等人[17]使用未标记的数据进行种子规则训练,实现无监督的实体分类。Zhang等人[18]使用无监督的方法在生物医学文本中提取实体,利用术语、语料库信息(上下文频率和向量)和句法信息进行辅助,在两个主流的生物医学数据集上证明了无监督算法的有效性和普遍性。基于半监督的NER方法从未标记的数据中自动生成标准数据,然后利用未标记的数据来缓和数据不足对系统准确性产生的影响,以此提升模型的性能。Althobaiti等人[19]训练了两个NER分类器,分别使用半监督和远程监督的方法,最后将两个分类器与贝叶斯分类器进行结合,取得了良好的效果。
- 3.基于深度学习的命名实体识别
- 近年来,随着人工智能的发展,深度学习算法在各个领域逐渐取代了传统的机器学习算法。因为深度学习的优势在于信息的表示学习能力和神经网络赋予的语义组合能力,这对于提取文本中蕴含的潜在信息具有重要作用。由于实体单词在序列文本中具有特殊的含义,需要捕获句子中每个单词的语义信息并加以过滤才能准确识别这些实体。基于深度学习的命名实体识别方法需要大量的标注数据集,通过不断的训练使得神经网络模型的各层的矩阵参数和真实的数据分布更加拟合。
- 卷积神经网络(ConvolutionalNeuralNetwork,CNN)通过滑动窗口不断扩大感受野,进而提取句子的特征信息,但是CNN无法解决长序列依赖的问题。循环神经网络(RecurrentNeuralNetwork,RNN)的提出有效的解决了这个问题,RNN从非结构化的序列文本中发现潜在的时序信息和语义信息,并把他们组合起来。
- 但是,随着文本长度的增加,序列之间的链状结构会产生嘈杂的信息。因此,有学者提出了长短时记忆网络(LongShort-TermMemory,LSTM)解决信息冗余的问题,LSTM通过门控机制对特征信息选择性的保留和遗忘。由于文本中当前位置单词会同时受到前序和后续单词的影响,因此,学者们提出了双向循环神经网络(Bi-directionalRecurrentNeuralNetwork,BiRNN)和双向长短时记忆网络(Bi-directionalLongShort-TermMemory,BiLSTM)同时捕获前向和后向的特征信息。
- 基于神经网络的NER模型逐渐取代了基于规则和传统机器学习的NER模型。在英文NER领域,Huang等人[20]第一次将BiLSTM-CRF架构引入到NER领域,并取得很好的效果,之后的很多NER模型都是基于此架构进行的改进。Yang等人[21]使用了GRU(GateRecurrentUnit)同时提取字符和单词特征来共同编码上下文信息,通过共享模型架构和参数实现跨语言和多任务的联合训练。Gregoric等人[22]使用多个独立的BiLSTM单元提取文本的不同维度特征信息,通过模型之间的正则化来约束不同BiLSTM单元的信息组合。Rei等人[23]引入了注意力机制捕获每个单词的语义信息,最终拼接词向量和字符向量对输入序列进行序列标注。Chen等人[24]针对NER提出了一种基于CNN的模型门控关系网络GRN,该模型引入了门控机制层建立文本中任意两个词语之间的连接,然后合并所有单词的全局特征,虽然基于CNN的方法可以在训练的时候并行的处理数据,但是仍然无法有效解决长文本依赖的问题。
- 不同于英文,中文具有偏旁部首、拼音和多音字等信息。为了避免工具产生的分词错误,Zhang等人[25]提出了晶格网络结构Lattice-LSTM系统,通过晶格LSTM来提取每个字符的特征信息。Zhu等人[26]结合CNN和GRU组成了CAN系统,通过具有局部注意力机制的CNN和具有全局注意力机制的GRU来共同捕获相邻字符和上下文信息。图神经网络(GraphNeuralNetworks,GNN)将文本中的每个字符看做一个节点,通过依赖树构建邻接矩阵捕获字符之间的依赖关系。Ding等人[27]针对中文地名词典NER提出了一种多向图神经网络结构,将多个地名词典信息整合到网络中。Li等人[28]基于Lattice模型提出了FLAT模型,该模型基于Transformer对每个字符和词汇构建头标记和尾标记,此外,该方法还引入了相对位置编码来提升Transformer的全局感知能力。Zhao等人[29]提出了一在种动态交叉自注意力-晶格网络,通过提高中文词语和字符的密集交互捕获单词和字符之间的相关性。陈淳[80]等人引入两段高速网络挖掘字和词之间的潜在联系,从而高效抽取出文本中的实体。
1.3.2关系抽取技术发展
- 关系抽取旨在从非结构化的文本中抽取出实体之间的语义关系,是信息抽取领域重要的分支之一。关系抽取任务自提出以来从传统的方法逐渐演变为基于深度学习的方法。
- 1.基于传统方法的关系抽取
- 关系抽取任务最初使用基于规则的方法来实现,Humphreys等人[30]使用句法依存工具生成依赖树作为模型的输入,通过领域专家预先制定好的句法规则对文本中的实体对进行分类。Fukumoto等人[31]提出了OKI系统,通过谓词信息来对两个实体的语义关系进行分类。基于规则的方法需要耗费巨大的人力资源,且无法完成迁移。因此,Kambhatla等人[32]使用基于特征的方法进行关系抽取,结合依赖树、全局上下文和局部上下文等多种特征,充分提取句子中每个单词的语义信息,进而抽取所有的关系。Riedel等人[33]提出了多实例学习的关系抽取模型来降低远程监督生成的数据嘈杂问题,通过因子图来确定两个实体之间关系的决策问题,该方法还使用了基于约束驱动的半监督进行辅助训练。在此基础之上,Hoffemann等人[34]和Surdeanu等人[35]提出了多实例标签(MIML)的思想来解决重叠关系的问题,通过概率图模型把包含两个实体的句子袋作为输入,尽可能的抽取出实体对的所有关系。
- 2.基于深度学习的关系抽取
- 基于深度学习的关系抽取方法可以自动的从海量数据集中提取特征来训练模型,因此,主流的关系抽取大多使用基于深度学习的方法。Zeng等人[36]首次使用CNN进行关系抽取,并使用两个距离嵌入向量来表示文本中每个单词到头尾实体的距离,该方法首先通过卷积神经网络和最大池化来提取句子级别的特征向量,然后将句子表示传递到softmax激活层对关系进行分类。2015年,Zeng等人[37]在自己模型的基础上进行了改进,引入了分段卷积神经网络(PCNN)来改进关系提取任务,将最大池化的粒度从整个句子变成句子的三个小段,每个小段分别得到一段特征表示,最后通过连接所有的特征表示进行关系分类。基于CNN的方法无法处理长序列依赖的问题,然而,RNN在处理长文本时有着更好的表现。Socher等人[38]第一次在关系抽取任务中引入RNN,通过不断的训练句子的表示来进行实体关系的分类。LSTM是RNN的改进模型,Xu等人[39]将LSTM应用到了关系抽取任务中,利用句法工具获得文本依赖树,结合词性信息提取句子特征输送到softmax层进行关系分类。由于单向的LSTM无法捕获后置位单词对于当前单词产生的影响,Zhang等人[40]提出了BiLSTM关系抽取模型,该模型同时考虑了前后位置单词对于当前位置单词产生的影响,能够获得更好的句子表示。
- 近年来,注意力机制在NLP领域取得了广泛的应用,基于注意力机制的关系抽模型可以针对性的关注文本中语义密度较高的词语。Shen等人[41]将注意力机制与CNN融合实现关系分类,首先通过卷积操作提取句子的全局特征,然后使用注意力机制捕获每个单词的特性信息,最后求出注意力特征向量进行关系分类。Wang等人[42]使用双层注意力机制的CNN架构,依靠双层注意力来更好的识别特征,这种架构可以从在没有外部知识的情况下进行端到端的学习。Zhang等人[43]将LSTM和位置感知注意力相结合进行关系分类。Nayak等人[44]使用基于依赖距离的多头注意力模型进行关系抽取,该模型将连续的单词片段作为输入,从而提取每个单词的边缘分布作为关系表达式的一部分。
- Zhang等人[45]将注意力机制与胶囊网络相结合,设计了一个基于注意力的路由算法并嵌入到胶囊网络中,该模型可以解决重叠三元组的问题。句子的依赖结构具备丰富的语义信息,Liu等人[46]利用两个实体之间的最短依赖路径(SDP)和到该路径的子树来进行关系抽取,其中SDP中的每个标记使用预训练的词嵌入和其子树来表示。Miwa等人[47]使用树形LSTM沿着两个实体之间的最短依赖路径来发掘它们之间的关系,该模型同时使用自下而上和自上而下的树形LSTM,最终将两个树形LSTM的表示拼接起来传递给分类器进行关系分类。Veyseh等人[48]将ON-LSTM结构应用于关系抽取任务中,该模型融合了依赖信息和句法信息。
- 由于非结构化文本中存在图结构的依赖信息,因此,图神经网络能够将文本建模为结构图以提取输入序列的区域依赖信息。Quirk等人[49]提出了一种基于图的跨句关系提取模型。该模型将输入的句子构建为一个图,每个单词都被视为图中的一个节点,节点之间的连接通过依存关系和词汇关系来确定,最终通过实体之间的关系路径的特征表示来进行关系分类。Peng等人[50]提出用两个有向无环图(DAG)来进行关系抽取,两个DAG分别包含单词之间的前向边和后向边,每个节点对于邻居节点设有单独的遗忘门控机制,从而接收或者遗忘信息。Kipf等人[51]将图卷积神经网络应用到关系分类任务,该方法通过学习文本的局部特征信息和节点之间的关联信息进行关系分类。Vashishth等人[52]利用图卷积神经网络(GraphConvolutionalNetwork,GCN)实现多实例学习,该方法在句子的依赖树上使用双向GRU和GCN进行编码,最终将多个实例的句子表示聚合传递给分类器。Guo等人[53]提出了动态剪枝的GCN模型用于关系分类,该模型使用多头注意力机制学习剪枝策略。Mandya等人[54]在多个子图上进行GCN操作,并将所有的子图进行全连接得到最终的句子表示。Sahu等人[55]使用GCN进行文档级关系抽取,使用句法依赖树和实体共指关系创建节点之间的连接。预训练的上下文词嵌入拥有更加丰富的语义信息,可以使得模型快速拟合真实数据分布。Baldini等人[56]提出了一个基于BERT的模型,该模型在句子中使用了两个实体的标记,然后利用两个实体的特征表示进行关系分类。Tang等人[57]提出了一种层级推理网络以解决文档级别的关系抽取,该方法证明了使用预训练的BERT词向量取得更好的效果。黄梅根[81]等人在BERT的基础上提出了多关系抽取模型BCMRE,该模型将预测关系编码融合进每一个词向量中,从而识别出关系。
1.3.3联合抽取技术
- 发展基于流水线式的关系抽取将信息抽取任务划分为两个子任务,即命名实体识别和关系抽取。流水线式的信息抽取首先从非结构化的文本中得到实体对,然后根据句子的语义信息提取实体对的关系。流水线式的关系抽取存在两个问题。首先,分层次的抽取会产生错误信息累积的问题,因为关系的抽取结果会受到实体抽取质量的影响。其次,两个子任务分开训练会导致实体和关系缺乏交互,因为实体和关系的确定需要双方提供至关重要的特征信息。为了解决流水线式信息抽取存在的问题,学者们将实体识别和关系抽取集成到同一个框架中,现有的联合抽取主要有基于参数共享的方法、基于联合解码的方法和基于图结构的方法。
- 1.基于参数共享的方法
- 为了解决流水线式的信息抽取产生的依赖问题,基于参数共享的联合抽取方案在同一个框架内共享实体识别和关系抽取两个子任务的参数。Miwa等人[58]提出了一种新颖的实体关系联合抽取框架,使用端到端的方式来训练BiLSTM双向树结构,从而捕获文本序列之间的隐藏信息和依赖树结构信息。为了充分利用标签之间依赖关系,Zheng等人[59]设计了一个编码器和解码器架构(BiLSTM-ED)对文本中的实体进行标注,通过BiLSTM-ED架构提取的上下文信息传递到CNN层进行关系分类。Yu等人[60]将联合抽取定义为两个子任务,即HE抽取和TER抽取,其中HE抽取旨在识别出序列中所有的头实体,TER抽取则是根据识别出的头实体来抽取对应的尾实体和关系。王勇超[82]等人针对依赖建模不足的问题,通过训练数据得到三元组之间的语义关联,然后使用标注机制识别实体和关系。
- 2.基于联合解码的方法
- Zheng等人[61]将联合抽取任务转化为序列标注的问题,通过端到端的训练标注文本中的三元组,由于一个单词在预测的过程中只能被分配一个标签,因此该方法无法识别文本中的重叠三元组。为了解决重叠三元组的问题,Zeng等人[62]提出了一个具有复制机制的解码器模型(CopyR),每次复制实体的最后一个标记,使得实体可以被不同的三元组考虑到。由于文本中的三元组之间存在着顺序依赖问题,先抽出的三元组可以为后续的三元组组提供丰富的语义知识,因此Zeng等人[63]在自己提出的模型基础之上引入了强化学习策略来学习不同的三元组抽取顺序对最终结果产生的影响,通过不断奖励正样本来提升模型的效果。Zeng等人[64]为了解决CopyR模型只能复制实体最后一个单词的问题,提出了CopyMTL模型,该模型使用序列标记的方法提取完整的实体。Nayak等人[65]提出了两种不同的模型来解决重叠三元组的问题,第一种类似于机器翻译模型生成单词,从而找到完整的实体和三元组。第二种是基于指针网络的方法在每个时间步直接生成整个三元组。Yuan等人[66]根据关系将句子构造成不同的表示,然后对应的关系表示下执行实体的序列标注任务。
- 3.基于图结构的方法
- 文本中的单词存在着互相依赖的特点,这些依赖信息蕴含着丰富的语义知识,图神经网络可以有效的捕捉这些信息。Wang等人[67]首次使用图神经网络来构建实体关系联合抽取框架以解决重叠三元组的问题,通过生成有向图实现联合解码,最终提取文本中的三元组。Fu等人[68]将文本建模成图结构,使用图卷积神经网络学习节点之间的依赖关系,通过引入关系加权图捕获特定关系下节点之间的关联权重实现三元组的交互,进一步提升了重叠三元组的抽取效果。Sun等人[69]首先使用序列标注的方式检测出所有的实体范围,然后利用GCN训练模型的二元分类器,从而实现三元组的抽取。Hong等人[70]将文本中所有的实体构建成一张图,其中节点是实体,边是实体之间的关系表示。该模型通过BiLSTM识别句子中的实体,然后使用GCN和注意力机制来捕获实体之间的关系。Wang等人[71]提出了一种基于跨度的关系抽取模型Span-RG,该模型设计了一个边界预测任务来判断完整的实体边界,然后通过改进GCN进而构建出一个基于跨度的实体关系图。
1.4研究内容
- 围绕如何有效应对复杂文本结构中的重叠三元组问题,本文主要研究如下:
- (1)针对重叠三元组中的单实体重叠问题,本文提出了一种具有节点感知注意力机制的图卷积神经网络联合抽取模型(Joint-GNAA)。该模型首先通过上下文特征提取层得到每个单词的多粒度特征表示。然后使用句法依赖树作为第一阶段GCN的邻接矩阵输入,从而提取句子的区域依赖信息。为了动态的获取单词之间的依赖信息以强化实体和关系的交互,使用节点感知注意力机制为每种关系构建单词关联矩阵,并将其作为第二阶段GCN的邻接矩阵输入,从而捕获特定关系下单词之间的潜在语义关联。最终,对序列中的实体和关系进行预测。
- (2)为了进一步解决复杂文本结构中的双实体重叠的问题,本文提出了一种具有关系导向注意力机制的联合抽取模型(Joint-RGA)。该模型首先通过上下文提取层捕获句子的序列特征以及区域特征。然后通过关系导向层重新构建关系𝑟𝑘下的句子表示,它更倾向于保留对于当前关系下对实体标注具有帮助的信息。最后通过特征分类层的多头注意力机制和BiGRU网络来动态捕获关系𝑟𝑘下每个单词的隐藏特征信息,进而对该关系下的单词执行序列标注操作。
2、知识图谱相关技术
3具有节点感知注意力机制的GCN联合抽取模型
- 本章介绍实体关系联合抽取模型:具有节点感知注意力机制的GCN联合抽取模型(GCNModelwithNode-AwareAttentionMechanisminJointExtractionofEntitiesandRelations,Joint-GNAA)。Joint-GNAA首先通过上下文特征提取层得到每个单词的多粒度特征表示。然后使用句法依赖树作为第一阶段GCN的邻接矩阵输入,从而提取句子的区域依赖信息。为了动态的获取单词之间的依赖信息以强化实体和关系的交互,使用节点感知注意力机制为每种关系构建单词关联矩阵,并将其作为第二阶段GCN的邻接矩阵输入,以捕获特定关系下单词之间的潜在语义关联。最后拼接两个阶段GCN输出作为最终的节点状态表示,并对句子中的实体和关系进行预测。
3.1问题描述
-
关系抽取目前有两种可行的方案,即流水线式的关系抽取和实体关系联合抽取。流水线式的关系抽取需要识别出实体对之后,才能进行关系抽取,因此通常由两个不同的抽取框架组成。由于两个模型彼此相互独立,因此,在训练时会出现以下问题:
-
(1)误差传递:关系抽取任务是建立在实体对已知的情况下才能进行,因此实体抽取的效果将直接影响到关系抽取任务。虽然目前NER任务引入了各种先进的设计思想,但是仍然会出现将非实体单词标记为实体单词、实体单词标注不完整和遗漏标注等问题。错误的实体识别结果对于后续的关系分类任务影响巨大,甚至会影响领域知识库的整体质量。
-
(2)参数无法共享:实体和关系在文本中具有很强的语义关系,流水线式的方法在训练的过程中只关注其中一项任务,无法将两个任务训练的参数进行融合,因此会损失大量有用的信息。联合抽取框架可以将两个子任务相结合组成一个框架,训练的时候只需要输入一个序列文本,就可以同时预测出所有的实体和关系。理想情况下,一个句子中只包含了两个实体和一条关系,但是现实生活中的文本结构通常较为复杂,句子中可能包含多个三元组,并且这些三元组之间会形成重叠关系。三元组重叠问题是联合抽取模型需要面临的最大问题,复杂文本结构如图3-1所示。
-
文本中的三元组具有三种不同的类型,即正常三元组(Normal)、单实体重叠(SEO)和双实体重叠(EPO)。Normal类型三元组的元素之间彼此互斥,SEO类型的三元组占用同一个实体,EPO类型的三元组占用同一实体对。
重叠关系的存在导致现有的很多模型直接失效,例如传统序列标注的联合抽取方案每次只会为每个单词打上一个标签,这导致其无法处理重叠三元组的问题。重叠三元组的出现使得联合抽取任务出现以下问题:
(1)偏差分布:虽然联合抽取任务能够同时抽取实体和关系,但是大部分的模型都是基于序列到序列的机制。该类方法仍然是先识别实体然后再进行关系分类。在训练的时候需要使用绝对标准的数据进行训练,因此会产生预测和训练之间的特征偏差分布。
(2)三元组交互问题:文本中的三元组存在不同形式的交互,即三元组内部交互和外部交互。内部交互主要是一个三元组内实体和关系之间的交互,形成相互依赖的语义关系,外部交互是不同三元组之间产生的交互。充分利用这些交互信息可以提升模型的性能,因此,如何在模型中增强三元组的交互一直以来都是研究热点。
(3)嵌套实体问题:嵌套实体是命名实体识别任务中最难解决的问题,同一个单词会被不同的实体包含,例如“南京市”和“南京长江大桥”中的“南京”一词具有两种截然不同的语义表达,如何准确的识别嵌套实体以及相关的关系仍是一大挑战。
(4)语义推理问题:不同的抽取顺序将会对抽取结果产生影响,现有的几种抽取方案包括实体对优先、头实体优先、关系优先和尾实体优先四种策略,可以通过融入已知三元组成分的特征信息来对其余部分进行推理,进而提升模型的性能。因此,许多研究围绕不同抽取策略展开研究。
(5)图结构构建问题:将序列文本建模为图结构可以增加三元组之间的交互信息。高质量的文本图不能仅仅依赖于工具生成的句法依赖信息,在真实的语境下,随着文本复杂性的增加,单词之间的依赖链会更长。因此,如何构建语义信息丰富的图结构也是本章重点研究内容之一。
基于以上问题,本文设计了一种联合抽取方案。该模型的核心在于三元组交互图的构建,在预定义的关系空间下将输入的文本映射为二维的矩阵图,进而解决重叠三元组中单实体重叠的问题。
3.2注意力机制
- 1、通用注意力机制
-
2、自注意力机制
-
3、多头注意力机制
3.2.2图卷积神经网络
-
图卷积神经网络(GCN)是图神经网络的改进模型,GCN的计算方式类似于CNN。不同的是,GCN运行在构建好的图结构之上,通过图中节点信息的传播和汇聚来提取特征,GCN的特征传递方式如图3-5所示。
-
GCN同其他神经网络模型一样具备层级特征、非线性变换和端到端的训练的能力。可以通过叠加GCN来进行层次化的抽取,越深的层所表达的特征也越抽象。此外,GCN在训练时不需要定义网络的规则,只需将节点进行标记。GCN就能够自动的融合结构化的信息。GCN旨在将图结构中的节点信息进行传播和汇聚,从而捕获节点之间的依赖信息。堆叠GCN的层数可以改变节点域的传播范围,最终聚合图中每个节点的信息。使用一个n×n的矩阵A来表示具有𝑛个节点的图,如果节点i和节点j之间存在连接,那么Aij=1。在GCN中,当前层的节点特征信息受到上一层的影响,节点在不同层之间的信息传递方式如下:
3.3所提模型与理论
- 本文提出的具有节点感知注意力机制的GCN联合抽取模型架构如图3-6所示,它由以下几个部分组成:
- (1)上下文特征提取层:首先使用BERT和BiLSTM编码器提取单词的多粒度特征表示,包括词嵌入、词性嵌入和字符嵌入。然后将三种不同的特征信息进行拼接,最后使用BiLSTM融合三种特征信息。
- (2)第一阶段GCN特征编码层:使用句法工具生成的依赖树作为第一阶段的邻接矩阵输入,提取句子的结构化依赖信息。
- (3)节点感知注意力层:使用节点感知注意力机制提取不同关系空间下的单词依赖信息,并为每种关系建立动态的单词关联矩阵。
- (4)第二阶段GCN特征编码层:将单词关联矩阵作为第二阶段GCN的邻接矩阵输入,它通过汇聚所有单词的依赖信息,从而建立三元组之间的交互。
- (5)实体和关系预测:将最终的节点表示进行线性变化,并使用softmax进行概率映射,抽取文本中的实体和关系。
3.3.1上下文特征提取层
-
输入一个文本序列{x1,x2,x3,x4…xn},上下文特征提取层的任务是提取句子的语义特征信息。本章使用预训练的BERT语言模型作为词嵌入,并通过关系抽取数据集对词向量进行微调。BERT编码器通过堆叠Transformer框架动态的捕获每个单词的上下文信息,并在训练时随机掩盖一部分词语,通过句子中其他的单词来对被掩盖的单词进行预测,使每个单词都能得到对应的上下文信息。BERT编码器拥有多个双向Transformer编码器,每一个Transformer编码器被表示为Trans(X),BERT编码器使用如下方式提取上下文特征Hs:
-
通常情况下,一个单词由多个字符组合而成,引入字符嵌入能够很大程度的提升单词的语义特征。首先,遍历所有的数据集生成字符集合。然后,随机初始化每个字符的嵌入矩阵,并使用CNN提取每个单词的字符特征信息。CNN具有较强的局部特征提取能力,通过CNN来提取每个单词的字符特征表示xc,具体公式如下:
-
BiLSTM可以在当前时间步上汇聚来自前后时间步的特征信息,将CNN的输出作为BiLSTM的输入,进一步提取字符的嵌入信息𝐻𝑐:句子根据不同的词性呈现有规律的排列方式,因此引入单词的词性特征能够为单词提额外的特征信息。使用Spacy句法工具对输入语句进行预处理,遍历全部的数据建立词性表,并随机初始化字符嵌入P={P1,p2,p3,p4…}。使用BiLSTM对词性嵌入Hc进行提取:
-
将词嵌入、字符嵌入和词性嵌入信息进行拼接,然后使用BiLSTM将三种特征信息进行融合以生成多粒度的词语表示H,具体方式如下:
3.3.2第一阶段GCN特征编码层
- 上下文特征提取层可以捕获输入语句的序列特征,为了增强句子表示,本节使用GCN来捕获句子的区域依赖特征。句子中不同单词之间存在句法依赖关系,首先通过句法依存工具spacy创建单词依赖树。然后遍历所有的数据得到依赖词集合,并根据对应的索引值生成依赖矩阵。将单词依赖矩阵作为GCN的初始邻接矩阵输入以提取句子的区域依赖信息。最初的GCN是为无向图而设计的,为了同时考虑节点的汇聚和传播特征信息,本文使用BiGCN作为区域特征提取器。BiGCN的特征提取方式如下:
3.3.3节点感知注意力层
-
输入语句中的每个单词在不同关系空间下所产生的依赖程度有所不同。静态的依赖树无法根据关系提取单词的依赖信息,这会导致遗漏很多有用的特征信息。为了捕获特定关系下单词之间的依赖交互信息,本文使用节点感知注意力机制为每种关系构建动态的单词关联矩阵,并以端到端的方式更新和调整矩阵参数。其中,每一个单词关联矩阵代表着该关系空间下所产生的单词交互图。将第一阶段产生的节点特征输出进行全连接线性变换,从而得到初始的节点感知注意力隐藏状态表示s,具体方式如下:
-
其中,wa和ba是可训练的模型参数。通过共享句子的特征表示信息,节点感知注意机制可以捕获不同关系类型中单词之间的交互信息。
-
由于不同关系类型下单词之间的交互有所不同,因此,为每种关系设计独立的子空间进行语义关联度计算。将初始节点感知注意力隐藏状态表示s映射到不同的关系空间,并计算对应的键值对向量矩阵Q和K,具体方式如下:
3.3.4第二阶段GCN特征编码层
- 第一阶段GCN编码器使用初始的依赖树作为邻接矩阵输入,以提取句子的区域依赖特征。但是,这会导致节点之间的依赖程度只能是1和0,其中1代表两个节点具有语义连接,0代表两个节点没有产生连接。节点感知注意力机制为所有的关系生成单词关联矩阵,且在训练时不断更新,矩阵的数值代表着该关系类型下两个节点之间的连接强度。将第一阶段GCN所产生的节点特征输出作为第二阶段GCN的初始节点输入,并通过节点感知注意力机制所生成的单词关联矩阵进行图卷积操作。第二阶段的GCN通过自适应关系感知矩阵建立实体和关系之间的交互,从而尽可能的捕捉关系三元组的交互信息。第二阶段GCN特征提取方式如下:
3.3.5 实体和关系预测
- 输入序列经过上下文特征提取层以及两个阶段GCN 编码器得到每个单词的隐藏特征表示Qi,通过Qi可以同时预测文本中出现的实体和关系。对于实体识别,将单词隐藏特征Qi进行全连接线性变换,并使用激活函数Relu进行关系标签归一化操,得到序列中每个单词对应的实体标签,具体方式如下:
3.3.6损失函数
- 两个阶段GCN编码器产生的节点输出均可以通过3.3.5章节的公式进行实体和关系的预测,因此,Joint-GNAA同时将两个阶段的损失作为计算依据。损失函数的计算方式如下:
- 其中,le和lr分别是实体和关系的损失,a是第一阶段和第二阶段的loss权重比例,实体和关系的损失值均使用交叉熵损失函数进行计算,训练过程中通过端到端的方式将损失值降到最低。