【BERT,GPT+KG调研】Pretrain model融合knowledge的论文集锦

总述: 本文调研近年来bert与knowledge的融合的工作, 对于每一篇工作, 大概的介绍他们融合knowledge的方式, 并且进行自己的点评。

文章列表:

 

1. Align, Mask and Select: A Simple Method for Incorporating Commonsense Knowledge into Language Representation Models   arxiv 2019

motivation: 把struct knowledge融合到bert的参数当中, 利用conceptNet(大型常识知识图谱)的知识来训练bert的参数, 使得融合知识的bert在推理型数据集上具有较好的表现。

model:  构造一个蕴含常识的QA数据集,并且利用bert在这个数据集上进行pretrain,得到蕴含knowledge的QA的参数。

如上图, 首先从ConceptNet中选取一个三元组T, 然后根据该三元组在wikipedia中选取包含T中两个实体的句子, 然后随机mask掉其中一个实体。 接着将含有mask的这句话作为一个问题, 通过随机选取一些实体(当然要包括原实体)来作为答案候选, 就这样构造了一个QA的数据样例(即,一个问题, 多个候选答案)

为了增加数据集的难度, 他在构造错误答案的时候有一个trick,就是根据T中未被mask掉的那个实体节点选取其相邻节点作为错误候选。 就这样, 根据整个conceptNet, 它创建了一个大型的QA数据集(包含约60w条数据), 然后用原来bert的参数在该QA数据集上进行QA任务的pretrain, 就这样完成了对bert参数进行知识的灌入, 因为在训练的过程中, bert必须学习到两个实体之间的关系,才有可能选出正确的答案。

experiment:分为推理性的数据集(需要knowledge)以及一般的数据集(不需要太多knowledge)

推理性数据集: CommonsenseQA(CSQA), WinogradSchemaChallenge(WSC)

一般数据集: GLUE(通用的英文文本理解任务)

可以看到, 经过常识QA pretrain的bert参数, 在推理任务中远远超过了bert, 在也保持了一般的语言规律。 BERT_CS是本文的模型。

然而, 到目前为止, 其实都还是不公平的对比, 因为原生的bert并没有在利用conceptNet以及wiki sentence的信息。 本文还有一个分离实验:

可以看到, bert+MLM(即原来bert的参数, 在这个新建的QA数据集上用bert的预训练范式(masked language model), 也就是直接把一句话中的对应实体mask掉,表现也有58.8, 所以感觉其实知识的融入的效果也没有很高)

点评

通过改变bert的输入来引入外部知识,并没有改变bert的结构, 并且效果也有一定的提升。 全文基于一个很简单的idea,就是改变mask的方式,改变输入,或许从输入的角度来讲,可以构造更精巧的输入结构, 让bert学到相关的knowledge。

目前这种方式只考虑了实体建两两的关系,并没有考虑到整个知识图谱的结构, 有一定局限性,属于较为早期的工作。

2.   Common Sense or World Knowledge? Investigating Adapter-Based Knowledge Injection into Pretrained Transformers. emnlp2020 workshop

motivation:

1. 往bert里面融入知识的工作还比较少

2. 现有的融合方式有两种, 一种是在含有knowledge的语句中pretrain,一种是结合一个kg的loss然后和lm model重新pretrain。 前者会使得bert在fintuning的时候忘记之前学到的语法信息, 后者所需的计算时间复杂度太高(因为要重新pretrain整个模型)

model:

通过在bert的模型基础上加一个Adapter, 然后在含领域知识的语料上训练的时候, 只pretrain Adapter的参数,然后保持bert的参数不变, 这样就可以在不同的语料上pretrain adapter从而使得bert具有较强的迁移能力,也保存了bert原本学到了词汇分布。

本文的adapter比较简单, 就是两个线性层, 一个加到transformer的multi-head attention的后面, 一个加到transformer的FF层后面。

然后在领域知识语料训练的时候保持bert的参数不变,在下游任务fintuning的时候, bert和adapter一起更新。

experiment:

在GLUE上做了实验, 在大部分不需要常识的数据集上表现一般, 但是在两个需要尝试推理的数据集上(NLI dataset)表现非常好, 作者还分析了原因。

OM-Adapt是在OMCS.语料上pretrain的模型, CN-Adapt是在conceptNet上pretrain的模型, 可以看到,两者在NLI数据上表现的非常优秀,因为这两个数据集需要专门的knowledge才能做。

然后作者观察到Table3中, 在CS(commonse knowledge)领域的表现有所下降, 作者分析是说:在常识推理中, 推理的过程并不仅仅需要常识,还需要用到高纬度的推理,包含习语的了解等。(但是并没有解释为什么原来bert还做的好一些)

点评

Adapter较为早期的作品了, 出发点非常好, 可惜实现的有点简单, 然后并没有利用kg的网络结构, 他把conceptNet作为语言去pretrain的。

3. QA-GNN: Reasoning with Language Models and Knowledge Graphs for Question Answering.  arxiv 2021

motivation

现在的LM+kg的模型在QA方面有几个挑战: 1. 如何根据文本内容检索到一张子图, 并且对子图进行裁剪使得子图的节点数目保持适当的数量。

2. 如何结合query的文本与检索得到的子图进行联合推理

本文就这两点进行了摸索,并且提出1. 根据相关性分数对子图进行修剪  2. 联合GNN结合query context的embedding来进行推理。

model

相关性分数:(relevance score)

其实就是将检索得到的子图(用之前的方法), 然后将子图中的每一个实体节点与context拼接起来,然后过一个lm最后分类得到一个概率, 意思是通过lm来判别这个实体节点和当前的context的表达在语义空间上有没有一致性。

最后如果这个概率比较大的话, 就保留这个节点,否则从子图中删除这个节点。

 

 

联合推理 (joint reasoning):

如上图, 作者首先把QA的context过了一个lm得到一个embedding, 然后将这个embedding作为kg中的一个实体节点z。 然后通过z与context中包含的实体连边, 就形成了一个包含context节点与kg的异构图。  然后大体就是跑几轮gnn,最后结合gnn的信息以及lm的context embedding的信息最后过一个mlp进行分类。

其gnn的架构: 在本文中, 作者用的是GAT, 但是由于在kg中,实体与实体之间还存在有关系, 所以作者在这里用一个线性层将关系与实体同时编码到一个向量中, 然后再跑gat, gat中的节点与节点之间的attention weight作者用的是类似于self-attention的那种Q,K的方法来计算:

总的来说模型非常简单, 但是作者的实验分析做的很完善

experiment

实验在commonsense QA与openBOOKQA的数据上进行实验,然后对比之前的模型(MHGRN)确实有一定效果, 但是不知道是不是作者自己实现的baseline。

然后作者还分析了

a. 模型的可解释性, 即根据gat中attention的attention weight, 在graph上面进行bfs,从context的节点出发搜索到最终的节点, 最终能找到答案的路径就是模型推理的过程。(可以有多条) 这种方式只适用于做选择题,也就是答案节点在一个已知的集合内。

b. 模型对于扰动的鲁棒性, 即改变not, 或者某一个实体名称,观察attention的weight, 发现比原生的bert确实要具有更强的鲁棒性:

c. 用相关性分数来进行剪枝的有效性, 结果发现, 如果query context中包含的实体越多, 检索得到的子图越大, 结果会越有帮助

点评: 本文结合context和kg的方法较为新颖, 但是模型为什么要这样构造并没有很make sense, 感觉和其他套用GNN的模型没什么很大的区别, 但是本文很大的一个优势在于实验非常详细, 做了可解释性分析(这种用bfs的方式还是比较新颖的),也做了鲁棒性分析, 证明效果确实还可以。估计要投21年的emnlp。

此外, 检索一个子图,并且对他进行剪枝的方式也是一个创新点。

 

4. Semantics-aware BERT for Language Understanding.  AAAI2020

motivation

现在bert对文本的编码并没有考虑到多种语义关系, 所以作者单独用一个工具将文本中的语义信息(动词,名词之类的)抽取出来作为额外的输入, 最后结合bert的输出然后进行分类

model

这个模型其实很好看, 左边是bert, 不过由于抽取的语义信息是word级别的, 所以要把bert抽取的bpe格式的词汇还原成word级别的, 所以作者过了一个cnn。

右边就是把句子过了一个sematic role抽取器(之前的工作)然后把抽取出来的这种语义序列过GRU(有点离谱哦)得到语义序列的表达, 最后将语义序列的表达和bert抽取出来的文本的表达结合在一起进行分类。模型还算比较通俗易懂的。

experiment

在GULE上进行评测, 这个模型只需要fintuning就好, 不需要重新pretrian, 因为相当于额外加了一些文本信息。 然后在各项任务上比原生的bert效果要好。

不过比较离谱的是: 作者后面将semantic role抽取的语义信息给随机加了0.2, 0.4的噪声, 发现结果变化不大, ummm这居然也能解释。

点评:

模型motivation非常清晰, 也针对motivation明确的做了改进, 其实就是bert+其他文本信息,最后两条通道拼接了一下, 实验表示在BERT的基础上有一定效果。 这种paper还是比较好看(看得快)呀

 

5. Knowledge Enhanced ContextualWord Representations. EMNLP2019

motivation:

没有kg和bert一起训练的模型, 然后本文通过KAR的技术,实现了bert在pretrain的过程中融合KG的信息。

model:

模型比较复杂。

首先有一个span的概念,其实就是句子中的实体, 这些实体在检索的时候会对应多个候选entity。 

和一般的pretrain model一样, 过一层transformer得到一个向量H, 因为实体节点的embedding维度可能和H不一致,所以将H投影到Hproj。

然后对于这句话,使用已有的entity selector选择句子中对应的实体位置, 并且将这些实体位置的embedding过一层pooling之后得到一个向量, 所有的实体向量拼起来得到一个矩阵,矩阵大小为(span个数, embedding维度)

用这个矩阵做self-attention得到attention weight, 然后用这个weight与kg中对应的entity相乘,得到某一个span的entity的distribution。

然后将小于某个阈值的entity weight消去, 对剩下的entity通过求得的distribution进行加权得到一个新的span的表达

用这个span的表达和原来span的表达相加得到最终span的表达。

最后用Hproj与这些span做一次self-attention得到最终的表达H'.

experiment: 在很多数据集上表现都还行, 比bert要好一些。

点评: 模型过于复杂, 而且并没有认真解释每一处设计的用意,就是整个模型并不make sense。 

只是不停的attention, 搞来搞去搞这么复杂, 最后结果也感觉一般。不是我喜欢的风格。 不过他这种融合kg的方式也可以参考一下。 其实不算是kg,只能说是加强了bert中实体的表达。

 

6. Towards Medical Machine Reading Comprehension with Structural Knowledge and Plain Text. EMNLP20

motivation:

1. 现在medical MRC的数据集太少, 所以本文提出了一个新的数据集

2. bert在特定领域的mrc还做的不太好, 尤其是医疗领域, 因为医疗的这种问答并没有指定某一个段落中存在答案。

model:

模型整体上来说较为简单: 首先左边是检索对应的evidence(包含了query中实体的一个句子), 然后结合evidence得到一个特征。(用BM25算法来进行检索)

右边是融合KG的部分,从query句子中获取entity, 然后根据这个entity在kg中检索得到对应的三元组, 根据三元组改成句子, 然后把这些句子拼在作为第二个特征, 然后用结合这两者最终得到分类的特征。

当然以上只是从大体上来出发介绍这个模型, 实际上论文在抽取特征的时候也是用了很多attention的。

experiment:

可以看到,在bertbase和bert-large的基础上有一定的进步。

点评:有一个很好的benchmark, 中文的医疗文本数据很少, 本文的数据集看上去质量很高。 模型算比较传统的模型了, 没有太多亮点, 也是靠attention来讲故事。

 

7. Exploiting Structured Knowledge in Text via Graph-Guided Representation Learning   EMNLP2020

motivation

bert融合知识的模型有两类, 第一类是检索类的, 不改bert模型,直接检索子图然后获取knowledge, 这种在测试的过程中需要检索子图, 且依赖检索过程中的对齐精度。并且对子图的表达也是浅层模型(TransE),表达能力有限。

第二类模型是将kg的三元组联合成一个句子,然后mask这种句子中的entity用来训练, 这样会使得模型过拟合这种完成kg的任务, 且这种联合的句子并不具备语法的多样性。

model

模型主要有两点改进:

a. kg-guided entity masking

和第一篇文章一样, 也是通过kg的三元组,然后检索相关的句子,然后mask句子中kg entity的对应的部分来训练模型, 不过本文对mask的部位做了一点要求, 要求mask的entity是低频的, 并且mask的实体之间需要具备一定的推理能力(在kg中的推理路径不能太长,也不能太短)

2.  distractor-suppressed ranking:

对于一个句子,以及其被kg entity匹配的部分, 首先获取到模型中这一字段的表达, 然后这一段对应一个kg entity E, 把E的表达与这一字段的表达看成一个正样本, 从kg中负采样一些兄弟节点出来作为负样本, 然后用contrasting learning的方式来学习这三个表达。

experiment

数据集:

在普通的QA任务上主要和预训练语言模型比较(bert,robert)加了这个范式之后有一定提点。

在kg completion的任务中主要和bert-kg进行比较, 其实提升也不大.jpg

点评: 很精细化的模型, 主要改进点在mask entity的细节, 然后distractor-suppressed ranking的方式其实也不是新套路, 就是利用lm中的表达与kg entity的表达做对比学习, 好在实验比较充分, 但是模型整体提点也不高。

 

8. K-BERT: Enabling Language Representation with Knowledge Graph  AAAI20

motivation

通过修改pretrain 范式来结合knowledge太耗时间, 一般来说bert相当于一个普通人, 可以执行各项语言学上任务(GLEU)。

但是如果这个普通人要做专业领域的事情,就应该只需要学习专业领域的知识,而非把这个人回炉重造, 即bert不需要重新pretrain,而是只需要结合kg来做就好了。

model

整个模型的创意非常简单, 但是又非常新颖。 就是对于一句话, 把话语中出现的kg entity在kg中的所有关系全部列举在这一句话中, 如上图所示,tim cook is visiting beijing now, 变成了tim cook ceo apple is visiting beijing capital china is_a city now.

这样变化一下之后,就把knowledge融合进了这句话里面。 但是这样融合一般人就读不懂了, 这对模型的精度也是有损失的。 为了防止这种情况, 作者使用了两个措施分别为:soft-position index以及visible matrix

soft-position是指对于句子中同一个entity的不同kg联系, 其position位置保持一致。 visible matrix是指对entity的形容中, 只能看到同一个branch的内容。

experiment

用了12个中文数据集,还自创了一个医疗知识图谱(可以follow)

baseline就和bert比较了, 在bert的基础上有一定提升。

 

点评:很巧妙的一个思路, 不过整体来看,对kg的利用还略显粗糙, 但是相对于其他paper而言, 这已经是一篇极好的工作了。

 

9.

 

 

 

10.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值