NLP基础笔记——ELMo

1 、模型原理与架构

原文链接:Deep contextualized word representations

ELMo是从双向语言模型(BiLM)中提取出的Embedding。训练时使用BiLSTM,给定N个tokens (t1, t2,...,tN), 目标为最大化:

ELMo对于每个token , 通过一个L层的biLM计算出2L+1个表示:

其中 是对token进行直接编码的结果(这里是字符通过CNN编码), 是每个biLSTM层输出的结果。

应用中将ELMo中所有层的输出R压缩为单个向量, , 最简单的压缩方法是取最上层的结果做为token的表示: , 更通用的做法是通过一些参数来联合所有层的信息:

其中 是softmax出来的权重, 是一个任务相关的scale参数,在优化过程中很重要,同时因为每层BiLM的输出分布不同, 可以对层起到normalisation的作用。

论文中使用的预训练BiLM在Jozefowicz et al.中的CNN-BIG-LSTM基础上做了修改,最终模型为2层biLSTM(4096 units, 512 dimension projections),并在第一层和第二层之间增加了残差连接。同时使用CNN和两层Highway对token进行字符级的上下文无关编码。使得模型最终对每个token输出三层向量表示。

2、 模型的优缺点

优点

  1. 效果好,在大部分任务上都较传统模型有提升。实验证实ELMo相比于词向量,可以更好地捕捉到语法和语义层面的信息。
  2. 传统的预训练词向量只能提供一层表征,而且词汇量受到限制。ELMo所提供的是character-level的表征,对词汇量没有限制。

缺点

速度较慢,对每个token编码都要通过language model计算得出。

3、 适用任务

  • Question Answering
  • Textual entailment
  • Semantic role labeling
  • Coreference resolution
  • Named entity extraction
  • Sentiment analysis



参考博客:
https://zhuanlan.zhihu.com/p/42618178
 

你可能感兴趣的:(NLP)