【NLP】ELMo vs GPT vs BERT

765 阅读2分钟

最近看了一篇论文叫《Linguistic Knowledge and Transferability of Contextual Representations》,NAACL 2019,感觉长了很多姿势,和大家分享一下。

目前词向量的做法有两大类,一类是类似word2vec、glove这样给每个单词一个固定的向量,另一类是像ELMo、GPT、BERT这种通过全局信息去给单词计算出一个向量,作者称为CWRs (contextual word representations)。第一类的缺点就很明显,比如“苹果”一词在不同的上下文中的含义是不同的。从18年开始,CWRs这种编码方式就不断刷新sota的分数,不仅是从道理上还是实践上都远优于之前的编码方式,从论文结果来看有20-30%的差距。

关于上述三个网红模型的具体细节请参考以前的文章:

【NLP】语言模型和迁移学习

【NLP】Google BERT详解


下面主要讲一下论文的一些结论。论文总共探讨了三个问题:

1. CWRs(上下文词表征)编码了语言的哪些feature?

  • 在各类任务中,BERT>ELMo>GPT,发现“bidirectional”是这类上下文编码器的必备要素
  • 相比于其他任务,编码器们在NER和纠错任务表现较差 => 没有捕获到这方面信息
  • 在获得CWRs编码后,再针对任务增加MLP(relu)或者LSTM会提升效果
  • 引出了问题:什么时候直接fine-tune编码器?什么时候freeze编码器,增加task-specific layer?

2. 编码器中不同层的transferability是怎样变化的?

  • 对于ELMo(LSTM)来说,靠前的层更transferable,靠后的层更task-specific
  • 对于transformer来说,靠中间的层更transferable,但是把各个层加权起来的效果会更好
  • 模型是有trade off的,在任务上表现越好,迁移性越差

3. 预训练任务会对任务和transferability有怎样的影响?

  • 双向语言模型预训练出来平均效果越好
  • 预训练任务越接近特定任务,在特定任务的表现越好
  • 预训练数据越多,表现越好



不知道这样简要写同学们能不能看懂。。不懂的可以留言,看到就回复~