每天给你送来NLP技术干货!
来自:复旦DISC
作者:石霭青
引言
随着预训练技术与硬件的不断发展,预训练语言模型已经成为自然语言处理领域较为成熟且不可或缺的一环,但由于预训练模型架构本身往往不具备获取常识、实体知识的能力,在一些基于知识的任务(例如涉及逻辑推理或认知)上力有不逮。而知识图谱提供了对知识的显式建模,因此可以提供丰富的结构化知识和常识来帮助语言理解、强化语言模型的表示能力,同时,基于大规模语料训练的语言模型也能够帮助强化知识图谱的表示。因此近年来,将知识图谱与预训练语言模型相结合已经成为一个非常活跃的研究领域。
本次分享将介绍三篇相关论文,分别关于基于知识图谱的语言模型训练、基于预训练语言模型的知识图谱构建、预训练语言模型与知识图谱表示的联合训练。
文章概览
知识增强的上下文单词表示 (Knowledge Enhanced Contextual Word Representations)
论文地址:https://aclanthology.org/D19-1005/
这篇文章提出了一种高效且通用的方法(KnowBERT),采用知识注意和语境重构(KAR)机制,将多个知识库(KBs)嵌入到大规模的语言模型中,从而用结构化的、由人类产生的先验知识来增强其表示。
语言模型是开放的知识图谱(Language Models are Open Knowledge Graphs)
论文地址:https://arxiv.org/abs/2010.11967
这篇文章提出了一种使用预训练的语言模型(如BERT,GPT-2)自动生成知识图谱的方法,通过一种两阶段无监督的方法从预训练语言模型中自动生成知识图谱,只需要一次前向过程,并且不需要微调语言模型。
CoLAKE: 语境化的语言和知识嵌入 (CoLAKE: Contextualized Language and Knowledge Embedding)
论文地址:https://arxiv.org/abs/2010.00309
这篇文章提出了语境化语言和知识嵌入(CoLAKE),通过扩展的MLM目标共同学习语言和知识的语境化表示。CoLAKE作为一种新的方法,不是只注入实体嵌入,而是从大规模知识库中提取实体的知识背景;文章还设计了一种新的数据结构word-knowledge图,来处理知识背景和语言背景的异质性,将它们整合到统一的空间中。CoLAKE通过改进的Transformer Encoder对大规模WK图进行预训练,从而得到语言模型与知识图谱实体嵌入。
论文细节
1
预训练语言模型通常在非结构化、无标签的文本上训练上下文词表征,不包含任何对常识、现实世界实体的明确认知,而且往往不能记住关于这些实体的一些事实。因此这篇文章提出了一种高效且通用的方法(KnowBert)将多个知识库(KBs)嵌入到大规模的语言模型中,从而用结构化的、由人类产生的先验知识来增强其表示。
对于每个知识库,KnowBert首先使用实体链接器来检索相关的实体嵌入,然后通过词到实体的注意力来更新上下文中词的表示。与以前的方法相比,实体链接器和自监督语言模型是在多任务设置下联合进行端到端的训练的,使用的输入是少量的实体链接监督与大量的原始文本。
这篇文章的贡献主要是:
1. 提出了一种通用的方法,采用知识注意和重构语境(KAR)机制,将多个知识库插入到一个大型的预训练模型中,从而得到KnowBERT,并且可以扩展到大的知识库;
2. 在将WordNet和维基百科的知识子集整合到BERT中之后,基于较小的bertbase模型的knowbert相对于bertlarge产生了更好的困惑性,以及在probing任务中更好的利用事实的能力,此外也提升了在关系提取、实体分类和词义消歧等方面的下游性能。
KnowBert使用知识注意和重构语境(KAR)机制将知识库纳入BERT中。采用的训练方式是多任务联合的端到端训练。
论文中使用的语言模型是Bert,但方法是通用的,可以应用于任何深度预训练语言模型,包括从左到右或从右到左的语言模型,如ELMo和GPT。对于知识库,KnowBERT采用的是一个很宽泛的定义,也就是一组固定的K个实体节点的集合,并且从中可以计算出每个实体的嵌入。这个定义里包含了典型的关系三元组图结构的知识图谱、只包含实体元数据而没有图的知识库、以及结合了两者的知识库。
此外,KnowBERT假设知识库都伴随有一个实体候选选择器,将文本作为输入,可以返回一个由C个潜在的实体链接组成的列表,每个链接由潜在的mention span和知识库中M个对应候选实体的起始和结束索引组成。在这项工作中,实体候选选择器是固定的,但是它们的输出被传递给一个可依赖上下文进行学习的实体链接器,以消除候选mentions的歧义。
1. 知识注意力与语境重构机制(KAR机制)
KAR机制(The Knowledge Attention and Recontextualization component)是KnowBert的核心。这个组件可以被插入到预训练语言模型的任意两层之间,比如接受Ber t某一层输出的表示作为输入,KAR组件的输出可以作为Bert下一层的输入。然后Bert的剩余部分都照常运行。
KAR的关键组成部分有四个:mention-span表示、实体链接器、知识增强的entity-span表示、语境重构。
(1) Mention-span表示
知识库的实体候选选择器提供了一个候选mentions的列表,列表大小为C,用来计算mention-span的表示。
语言模型的某一层输出首先被线性投射到实体嵌入的维度。
然后使用self-attentive span pooling的方式对一个mention-span里的所有token进行pooling,计算出C个mention-span的表示,并堆叠成一个矩阵。
(2) 实体链接器
实体链接器负责为前面的每个mention从它的候选entity中进行实体消歧。它首先对mention-span表示计算自注意力,这使得KnowBert能够将全局信息纳入每个链接决策中,从而能够利用例如实体共现之类的信息,解决重叠mention中到底哪一个应该被链接的问题。
每个候选span都有一个相关的mention-span向量,且其每个候选实体会有一个来自知识库的实体嵌入,此外还有先验概率。使用mention-span向量与实体嵌入的点乘与先验拼接,根据两层MLP来计算对于span而言每个候选实体的分数。
如果实体链接是有监督的,还可以用golden实体来计算链接损失,损失的确切形式取决于知识库,在文章中同时使用了这两种损失函数。
(3) 知识增强的entity-span表示
知识增强的entity-span表示负责将知识库的实体信息注入到前面由Bert向量计算的mention-span表示中,形成entity-span表示。
对于一个给定的span,首先过滤所有得分低于固定阈值的候选实体,并对剩余的得分进行softmax标准化。
用这些实体的得分以及它们在知识库中计算的实体嵌入计算加权的实体嵌入,最后,用加权的实体嵌入来更新entity-span表示。
(4) 语境重构
用加权实体嵌入更新entity-span表征后,KnowBert用它们来重构单词表示。基于一个修改的Transformer层,用上一层输出的词表示投影和知识增强的entity-span嵌入之间的多头注意力取代了多头自注意力,具体来说就是将词表示的投影作为query,知识增强的entity-span嵌入作为key和value。从而使得每个词都能注意到上下文中的所有entity-spans,进而在文本中传播实体信息。
最后将这个重建后的表示矩阵线性投射回Bert的维度,并添加一个残差连接。
对于可用的预训练Bert和知识库及其实体候选选择器,加入知识库时,先对实体嵌入进行预训练,然后在所有后续训练以及微调中冻结它们,如果实体链接是有监督的,再用链接损失对链接器进行训练。最后通过BERT和EL的多任务设置进行训练。当有多个知识库可用时,它们在网络中是从下往上添加的,从而试图最大限度地减少对网络的干扰。训练伪代码如下。
实验
文章用不同知识库训练了三个模型,KnowBert-Wiki, KnowBert-WordNet, 以及同时用到wiki和wordnet的模型KnowBert-W+W,并对他们与原始Bertbase、Bertlarge进行了评估对比。
可以看到,所有的KnowBert模型的困惑度都优于Bertlarge,尽管它们是基于Bertbase进行训练的。用MRR评估Factual recall的能力,可见它们都优于原始的bert模型。并且KnowBert几乎和Bertbase一样快。
对于下游任务,在关系抽取中,KnowBert-W+W明显优于包括ERNIE在内的同类Bertbase系统,比Bertlarge也提高了1.4%。在word in context任务中,KnowBert-W+W比Bertlarge提高了1.4%。在entity typing中,KnowBert-W+W的F1比ERNIE提高0.6%,比Bertbase提高2.5%。
2
这篇文章动机主要来源于目前的知识图谱的构建对人力要求很高,成本昂贵;而最近的深度语言模型通过预训练从大规模语料库中自动获取知识,储存的知识使语言模型能够改善下游的NLP任务。因此文章认为可以利用预训练语言模型来自动生成知识图谱。
文章提出了一种两阶段无监督的方法从预训练语言模型中自动生成知识图谱,只需要一次前向过程,并且不需要微调语言模型。这个方法包含match和map两个阶段,简称为MAMA。并最终生成了一个新型的开放式知识图谱。
文章的MAMA方法包括match和map两个阶段。
Match从语料库中生成一组候选事实。预训练模型包含从大规模语料库中学习到的全局知识,这些知识通常与目标语料库中的知识不完全匹配。这一阶段的目标是将存储在预训练语言模型中的知识与语料库中的事实相匹配。每个事实都被表示为一个三元组(head, relation, tail),并将这些事实传递给Map阶段。
Map使用Match阶段匹配的候选事实产生一个开放的KG。构建的开放的KG有两部分,一是在固定的KG模式中的映射候选事实,二是在开放模式中的非映射候选事实。
Match阶段本质上是一个搜索问题,搜索文本中具有最高匹配度的候选事实。匹配度是从预训练语言模型的注意力权重矩阵中搜索得到的,注意力权重矩阵是预训练语言模型中知识的容器。
论文设计了一个简单的beam search来寻找最佳匹配的候选事实。beam search搜索的是一个头尾对的相应关系。给定一个头尾对(Dylan, songwriter),beam search从head词汇开始,不断添加与当前词汇具有最大注意力分数的词,直到到达tail词汇。而头尾对是通过识别输入文本中的所有名词组合形成的。因为有些事实的head和tail位置在句子中反序,所以beam search会双向运行两次。
而通过搜索获得的三元组可能不是合适的关系三元组,因此作者设置了一些过滤三元组的条件,包括:只保留注意力权重之和超过阈值的三元组,保证提取的三元组对实体有特殊意义;提取出来的关系必须在整个语料库中出现足够多的次数,防止出现过于细节和冷门的关系;关系序列必须是句子中出现的连续token,防止提取出没有意义的关系。
2. Map
Map阶段的目标是生成一个开放的KG。开放的KG包含现有KG中的映射事实以及开放模式中的非映射事实。
模型首先试图将一个候选事实三元组映射到现有KG模式中的一个事实。对于head tail实体,利用一个基于mention-to-entity字典的无监督实体链接器来将实体链接到知识图谱,使用上下文的词嵌入来消除实体的歧义。对于关系,利用关系映射的方法,在候选事实和知识图谱事实之间,链接的头尾对越频繁地共同出现,相应的关系就越可能被映射。
对于上一步未被映射到现有知识图谱形式的事实,分为部分未映射的事实和完全未映射的事实,也将它们保存在知识图谱中,作为半开放或开放形式的知识事实。这样的操作提高了知识图谱的覆盖率,最后产生了一个开放的知识图谱。
下图是MAMA使用BERTLARGE从与 “Bob Dylan ”相关的维基百科页面中生成的开放式KG的快照子图。蓝色节点和箭头代表维基数据模式中的映射事实,而黄色节点和箭头则表示开放模式中未映射的事实。
为了衡量语言模型在生成知识图谱方面的能力,文章直接测量所产生的开放式知识图谱的质量。
对于映射到现有知识图谱模式的事实,将它们与相应知识图谱中的事实直接进行比较。使用的知识图谱有TAC KBP和wikidata两种。
可见在这两个知识图谱上,文章提出的方法在利用Bert或GPT时全都明显超越了baseline方法,且较深的LM产生质量较高的KG。
对于未映射的事实,从Wikidata和TAC KBP的100个抽样文件中分别对生成的未映射事实进行人工判断,发现维基数据中35.3%的未映射事实是真实的,其中83.2%的真实事实是部分未映射事实,且维基数据中45.5%的不真实的未映射事实是由于spaCy检测到的不正确的实体造成的。在TAC KBP上也有类似趋势。
3
这篇文章提出了语境化语言和知识嵌入(CoLAKE),它通过扩展的MLM目标同时学习语言和知识的语境化表示。
其动机主要来自以下几点:预训练语言模型难以捕捉事实性知识、之前的结合知识图谱的语言模型使用的实体嵌入是单独用一些知识嵌入模型(如TransE)预先训练的,并在训练语言模型时固定下来,不是真正的联合模型,不能同时学习知识嵌入和语言嵌入;而且,只采取实体嵌入来增强预训练语言模型导致很难完全捕捉到知识图谱中实体丰富的上下文信息;此外,预训练的实体嵌入是静态的,当知识图谱发生轻微变化时,例如增加了一个新的实体,就需要重新训练,拓展性很差。这些因素限制了以往的结合知识图谱的语言模型表现。
因此,CoLAKE作为一种新的方法,不是只注入实体嵌入,而是从大规模知识库中提取实体的知识背景;文章还设计了一种新的数据结构word-knowledge图,来处理知识背景和语言背景的异质性,将它们整合到统一的空间中。CoLAKE通过改进的Transformer Encoder对大规模WK图进行预训练,从而得到语言模型与知识图谱实体嵌入。
对于每个实体,CoLAKE将其在知识图谱周围的子图视为其知识背景,知识背景中包含关于该实体的事实(也就是关系三元组)。通过这种方式,CoLAKE可以动态地访问不同的事实作为背景知识来帮助理解当前的文本。
如上图(a)部分所示,为了理解不同的句子,CoLAKE可以利用关于链接实体Harry Potter的不同事实。哈利-波特的知识背景是一个包含了与它有关的三元组的子图。通过实体的上下文,CoLAKE能够直接访问(Harry Potter, enemy of, Lord Voldemort)以帮助理解这里的句子(1),并访问(Harry Potter, mother, Lily Poter)以帮助理解句子(2)。
而为了处理语言和知识的异质结构,文章建立了一个图,将它们整合到一个统一的数据结构中,称为词-知识图(wk图)。受到Transformer自注意力机制的启发,wk图也将文本中所有单词视为全连接的词图,但是wk是知识增强的词图,利用句子中提到的实体,从知识图谱中提取以这些提到的实体为中心的子图,然后将这些子图和词图放在一个统一的异质图中,就得到WK图。一个wk图的示例如图(b)部分所示,内部虚线圈表示全连接的词图,外部虚线圈表示从大型知识图谱中提取的知识子图。
模型架构采用的是稍作修改的Transformer encoder,训练目标是扩展的MLM目标。
1. 建立WK图
构建WK图的核心是将词图和知识子图整合到统一的WK图中。首先将一个句子标记为一连串的tokens,并将它们全连接为一个词图。然后识别句子中的mention,并使用一个实体链接器来找到mention在某个KG中的相应实体。然后,mention节点被其链接的实体取代,这些节点被称为anchor nodes。通过这种替换,试图鼓励模型在向量空间中把注入的实体和mention的表示相互靠近。以anchor节点为中心,可以从知识图谱提取它们的知识背景,也就是与他们有关的关系三元组,来形成子图,其中的关系也被转化为图节点。然后将提取的知识子图和词图用anchor节点串联起来,就得到WK图。
2. 模型架构
构建的WK图被送入Transformer encoder,文章中修改了Transformer的嵌入层和编码层,以适应WK图的形式的输入。
对于嵌入层,输入的嵌入是token嵌入、type嵌入和位置嵌入的总和。对于单词,token嵌入来自RoBERTa,对于实体和关系,token嵌入是学习得来的。使用type嵌入来表示节点类型,即词、实体和关系。对于位置嵌入,给每个注入的实体和关系分配一个软位置索引,允许重复的位置索引,并保持同一三元组中的token连续。
上图中是一个CoLAKE架构及其输入的示例,在这种情况下,三个三元组,(哈利-波特,母亲,莉莉-波特),(哈利-波特,配偶,金妮-韦斯莱),和(哈利-波特,敌人,伏地魔)被注入到原始序列。该模型被要求预测被mask的单词魔杖、被mask的实体莉莉-波特和被mask的关系敌人。
此外使用masked多头自注意力来控制信息流,以反映WK图的结构。具体而言,就是在wk图中没有1跳关联的两个节点之间的注意力分数应当被mask。
3. 预训练目标
文章将MLM目标从单词序列扩展到WK图,对wk图中的所有节点进行随机mask并预测。通过使得不同类型的节点被屏蔽,鼓励CoLAKE学习不同方面的能力:
屏蔽单词节点时,有助于CoLAKE学习语言学知识;
屏蔽实体节点有助于CoLAKE将单词和实体映射到一个共同的表示空间,以及为实体学习上下文表示;
屏蔽关系节点有助于CoLAKE学习做关系提取,和学习关系的上下文表示。
在模型训练方面,由于将Softmax函数应用于数量庞大的实体是非常耗时的,采用了负采样对每个实体进行预测,而不是对知识图谱中的所有n个实体进行预测。
文章对两个知识驱动的任务进行了实验:实体分类和关系抽取。实体分类的任务是根据实体和上下文,对给定实体的语义类型进行分类。关系抽取是对给定句子中提到的两个实体之间的关系进行分类。
可以看到CoLAKE在大部分指标上都报告了最先进的结果。
在Knowledge Probing任务中,CoLAKE在Lama上进行了评估,可见CoLAKE比它的基线RoBERTaBASE要好得多。
CoLAKE还在一系列NLU任务上进行了实验,因为NLU任务几乎不需要事实知识,所以这么做的目的是探索CoLAKE是否会降低这些NLU任务的性能。实验结果显示。CoLAKE与RoBERTa相比略有下降,但比KEPLER平均提高了1.4%。
实验表明,CoLAKE极大地提高了知识需求任务的性能,同时在语言理解任务上也取得了相当的结果。
此外,文章也构建了一个新任务,WK图补全任务,将几个经典的KE模型作为基线,CoLAKE的效果明显好于其他模型。文章认为是因为CoLAKE能够同时利用结构知识和丰富的文本语义,而传统的KE模型只能处理结构知识。
总结
本次分享我们介绍了三篇将知识图谱与预训练语言模型相结合的论文,分别从三个角度展示了知识图谱与预训练语言模型之间相辅相成的关系:基于知识图谱增强预训练语言模型的表示、基于预训练语言模型增强知识图谱、将知识图谱与语言模型联合训练。
[1] Peters M E, Neumann M, Logan IV R L, et al. Knowledge enhanced contextual word representations[J]. arXiv preprint arXiv:1909.04164, 2019.
[2] Wang C, Liu X, Song D. Language models are open knowledge graphs[J]. arXiv preprint arXiv:2010.11967, 2020.
[3] Sun T, Shao Y, Qiu X, et al. Colake: Contextualized language and knowledge embedding[J]. arXiv preprint arXiv:2010.00309, 2020.
最近文章
EMNLP 2022 和 COLING 2022,投哪个会议比较好?
一种全新易用的基于Word-Word关系的NER统一模型,刷新了14种数据集并达到新SoTA
阿里+北大 | 在梯度上做简单mask竟有如此的神奇效果
下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套! 后台回复【五件套】
下载二:南大模式识别PPT 后台回复【南大模式识别】
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
整理不易,还望给个在看!