ERNIE: Enhanced Language Representation with Informative Entities论文笔记

一、写在前面的话

这篇论文发表于2019ACL,其主要思路是在BERT的基础上引入了知识(具体来说是实体向量),并且在预训练任务方面提出了Pre-training for Injecting Knowledge。在实验结果方面,ERNIE较bert在部分测评中有所提升,另外ERNIE还加入了Entity Typing和Relation Classification上的fine-tune,取得了不错的效果。

二、论文笔记

1. 论文整体架构

下图是论文网络的整体架构,可以看出在模型上主要的改进是在bert的后段加入了实体向量和经过bert编码后的向量拼接,另外在输出时多加了实体自编码的任务,从而帮助模型注入实体知识信息。

10798244-5dd153200d09abd9.png

2. T-Encoder

这部分就是纯粹的bert结构,在该部分模型中主要负责对输入句子(token embedding, segment embedding和positional embedding)进行编码,整个的过程直接参考bert即可。

2. K-Encoder

这部分是该论文创新的重头戏。

先是实体信息的引入,该论文使用了TransE训练实体向量,再通过多头Attention进行编码(其实可以用更负责一点的训练方法,应该还有一定的提升空间),然后通过实体对齐技术,将实体向量加入到对应实体的第一个token编码后的向量上。(例如姚明是一个实体,在输入时会被分割成姚、明,最后在这部分引入的姚明这个实体的向量会被加入到要这个字经过bert之后的向量上去)

10798244-96e0eb24a1d5d99b.png

由于直接拼接后向量维度会与其他未拼接的向量维度不同,所以作者在这里加入information fusion layer,另外考虑到后面的实体自编码任务,所以这里在融合信息之后,有实体向量加入的部分需要另外多输出一个实体向量:

加入实体信息之后的融合输出过程:

10798244-7f51e094e4b0bdb2.png

未加入实体信息之后的融合输出过程:

10798244-777fe48976235b9f.png

3. 实体自编码

为了更好地使用实体信息,作者在这里多加入了一个预训练任务 entity auto-encoder(dEA)。

10798244-0d75e4604357ceb1.png

该预训练任务和bert相似,按以下方式进行训练:

  1. 15% 的情况下:用 [MASK] 替换被选择的单词,例如,my dog is hairy → my dog is [MASK]
  2. 5% 的情况下:用一个随机单词替换被选择的单词,例如,my dog is hairy → my dog is apple
  3. 80% 的情况下:保持被选择的单词不变,例如,my dog is hairy → my dog is hairy

4. Fine-tuning

除了正常的任务之外,ERNIE引入了两个新任务Entity Typing和Relation Classification:

10798244-11f03c410cbc7a66.png

三、结果

10798244-ff85f7c7120fadff.png

上表可以看出,ERNIE在通用任务其实相比bert而已优势不大,尽管文章提到了ERNIE更鲁棒以及GLUE的评估对ERNIE不是很友好,但是不可否认的是,在增加复杂度的同时,并没有取得期待的效果。

10798244-dcb0577c99c505a4.png
10798244-7f1fc747e1898f3f.png

另外该论文还给出了在Entity Typing和Relation Classification两类任务上的测评,可以看出ERNIE取得了非常不错的效果,但至于bert本身是否仅能取得这样的效果,其实值得商榷。

总体来说,ERNIE是一篇思路非常好的论文,提供了一种很好的实体信息引入思路,并且其新提出的预训练方法也给希望将bert这一模型引入关系抽取领域提供了很好的例子。

转载于:https://www.jianshu.com/p/5e12e6edbd59

猜你喜欢

转载自blog.csdn.net/weixin_34320724/article/details/91052219