聊聊ELMo

ELMo来自论文:Deep contextualized word representations

**
在之前的文章中提到过LSTM模型,ELMO使用双向LSTM预训练语言模型,是一种新型词表征的方式。

1.ELMo模型

**
ELMO采用了典型的两阶段过程,第一个阶段是利用语言模型进行预训练;第二个阶段是在做下游任务时,从预训练网络中提取对应单词的网络各层的Word Embedding作为新特征补充到下游任务中。
**

1.1利用语言模型进行预训练

**
ELMo

上图中左端的前向双层LSTM代表正方向编码器,输入的是从左到右顺序的除了预测单词外W_i的上文Context-before;右端的逆向双层LSTM代表反方向编码器,输入的是从右到左的逆序的句子下文Context-after;每个编码器的深度都是两层LSTM叠加。其目的是获取前向和后向的最大似然。

使用这个网络结构利用大量语料做语言模型任务就能预先训练好这个网络,如果训练好这个网络后,输入一个新句子,句子中每个单词都能得到对应的三个Embedding:

  • 最底层是单词的Word Embedding
  • 往上走是第一层双向LSTM中对应单词位置的Embedding,这层编码单词的句法信息更多一些;
  • 再往上走是第二层LSTM中对应单词位置的Embedding,这层编码单词的语义信息更多一些。
    也就是说,ELMO的预训练过程不仅仅学会单词的Word Embedding,还学会了一个双层双向的LSTM网络结构,而这两者后面都有用。

**

1.2 下游任务利用预训练好的embedding

**
第二阶段
以QA问题为例,展示下游任务如何利用预训练好的embedding。对于问句X,我们可以先将句子X作为预训练好的ELMO网络的输入,这样句子X中每个单词在ELMO网络中都能获得对应的三个Embedding,之后给予这三个Embedding中的每一个Embedding一个权重a,这个权重可以学习得来,根据各自权重累加求和,将三个Embedding整合成一个。然后将整合后的这个Embedding作为X句在自己任务的那个网络结构中对应单词的输入,以此作为补充的新特征给下游任务使用。对于上图所示下游任务QA中的回答句子Y来说也是如此处理。因为ELMO给下游提供的是每个单词的特征形式,所以这一类预训练的方法被称为“Feature-based Pre-Training”。

**

2.ELMo模型的训练过程

**

ELMo的训练过程实际上指的是其第一阶段的预训练过程,第一阶段实际上就是在训练一个双向语言模型,假设给定一个序列,该序列含有N个token,那么:

  • 前向语言模型通过在给定上文Context-before的情况下对token t_k的概率建模来计算序列出现的概率:
    前向
  • 后向语言模型与前向类似,但是它是“从后往前建模的”,通过在给定下文Context-after的情况下对token t_k的概率建模来计算序列出现的概率:
    后向
    因此,由于ELMo结合了前后向语言模型,故其目标是同时最大化前后向语言模型的对数似然:
    最大似然
    **
    ELMo对于每个token , 通过一个L层的bilstm计算出2L+1个表示:
    其中第一项是对token直接编码结果。
    在这里插入图片描述

2.总结

**
2.1 ELMO模型的效果为什么比word2vec好?

  • ELMo的假设前提一个词的词向量不应该是固定的,所以在一词多意方面ELMo的效果一定比word2vec要好。
  • word2vec的学习词向量的过程是通过中心词的上下窗口去学习,学习的范围太小了,而ELMo在学习语言模型的时候是从整个语料库去学习的,而后再通过语言模型生成的词向量就相当于基于整个语料库学习的词向量,更加准确代表一个词的意思。
  • ELMo还有一个优势,就是它建立语言模型的时候,可以运用非任务的超大语料库去学习,一旦学习好了,可以平行的运用到相似问题。

2.2 ELMO有什么缺点?

首先,一个非常明显的缺点在特征抽取器选择方面,ELMO 使用了LSTM而不是新贵 Transformer,Transformer 是谷歌在 17 年做机器翻译任务的“Attention is all you need”的论文中提出的,引起了相当大的反响,很多研究已经证明了 Transformer 提取特征的能力是要远强于LSTM的。如果 ELMO 采取 Transformer 作为特征提取器,那么估计 Bert 的反响远不如现在的这种火爆场面。另外一点,ELMO 采取双向拼接这种融合特征的能力可能比 Bert 一体化的融合特征方式弱,但目前并没有具体实验说明这一点。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章