1 BERT、GPT、ELMo的不同点
-
关于特征提取器:
- ELMo采用两部分双层双向LSTM进行特征提取, 然后再进行特征拼接来融合语义信息.
- GPT和BERT采用Transformer进行特征提取.
- 很多NLP任务表明Transformer的特征提取能力强于LSTM, 对于ELMo而言, 采用1层静态token embedding + 2层LSTM, 提取特征的能力有限.
-
单/双向语言模型:
- 三者之中, 只有GPT采用单向语言模型, 而ELMo和BERT都采用双向语言模型.
- ELMo虽然被认为采用了双向语言模型, 但实际上是左右两个单向语言模型分别提取特征, 然后进行特征拼接, 这种融合特征的能力比BERT一体化的融合特征方式弱.
- 三者之中, 只有ELMo没有采用Transformer. GPT和BERT都源于Transformer架构, GPT的单向语言模型采用了经过修改后的Decoder模块, Decoder采用了look-ahead mask, 只能看到context before上文信息, 未来的信息都被mask掉了. 而BERT的双向语言模型采用了Encoder模块, Encoder只采用了padding mask, 可以同时看到context before上文信息, 以及context after下文信息.
2 BERT、GPT、ELMo的优缺点
ELMo
GPT
BERT:
3 小结
学习了BERT, GPT, ELMo之间的区别:
- 三者所采用的语言模型单/双向不同.
- BERT采用的是最彻底的双向语言模型, 可以同时关注context before和context after.
- GPT采用的是单向语言模型, 即Transformer中的Decoder, 由于采用了mask机制, 所以未来信息context after都不可见.
- ELMo表面上被认为是双向语言模型, 但实际上是左右两个单向LSTM模型分别提取特征, 在进行简单的拼接融合.