《Deep contextualized word representations》论文研读

本文作者推出了一种新的基于深度学习框架的词向量表征模型:ELMo(Embeddings from Language Models)模型,从缩写就可以看出模型本质是从语言模型而来的。

一、常见词向量比较

1、ELMo 相对于 word2vec 、 glove 的优点?
      Word2vec和glove都属于静态的词向量(知识点1:了解这两个的原理),无法解决一词多义的问题。
      ELMo、GPT、bert词向量,它们都是基于语言模型的动态词向量。

2、ELMo  vs  GPT & BERT

1)特征提取器:
      ELMo采用LSTM,GPT和BERT用Transformer。
2)单、双向语言模型:
      BERT和ELMo采用双向语言模型, GPT采用单向语言模型。但是ELMo实际上是两个单向语言模型(方向相反)的拼接,这种融合特征的能力比bert一体化融合特征方式弱。

 

二、ELMO的原理:

整体图:
《Deep contextualized word representations》论文研读_第1张图片

1、双向LSTM语言模型:

有两特点:1.用了多层LSTM,2.结合了forward和backward LM。
elmo使用的双向lstm语言模型,论文中简称biLM,由一个forward LM和一个backward LM构成。所要优化的目标:最大化对数前向和后向的似然概率,公式如下:
前向语言模型:

后向语言模型:

合起来就是双向语言模型:
《Deep contextualized word representations》论文研读_第2张图片

解析:Θx和Θs表示两个网络共享的参数。其中Θx表示映射层的共享,将单词映射为word embedding的共享,就是说同一个单词,映射为同一个word embedding。Θs表示上下文矩阵的参数,这个参数在前向和后向lstm中是相同的。

2、ELMo: Embeddings from Language Models

预训练好上面的biLM模型之后,ELMo就是根据下面公式来作词表示,

解析:对于每个token tk 一个L层的biLM会得到2L+1个表示。(其中 h (LM  k,0)表示的是token embedding layer,而其余Bi-LSTM层中表示为)

使用方法:
     最简单的方法就是使用最顶层的lstm输出h (LM  k,0);
     一般的方法是:
ELMo把所有层的R压缩在一起形成一个单独的vector:

      解析:stasksoftmax-normalized的权重,而ytask则允许任务模型对ELMo向量进行缩放。

     大部分的NLP的模型都会有一层词向量层,而我们要做的无非就是用ELMo与词向量层结合,让模型去训练学习ELMo的内部状态的线性组合,然后,生成一个共同的词向量

 

参考:
https://zhuanlan.zhihu.com/p/51679783

你可能感兴趣的:(NLP论文研读)