六、ELMo
ELMo:Embeddings from Language Models
引入了一种新的单词表示方式,该 表示方式的建模目标是:对单词的复杂特征建模(如:语法特征、语义特征),以及能适应不同的上下文(如:多义词)。ELMo
词向量是由双向神经网络语言模型的内部多层向量的线性加权组成。LSTM
高层状态向量捕获了上下文相关的语义信息,可以用于语义消岐等任务。如下图中的左图为语义消岐任务的结果,第一层、第二层分别表示单独使用
biLM
的representation
的效果。结果表明:越高层的状态向量,越能够捕获语义信息。LSTM
底层状态向量捕获了语法信息,可以用于词性标注等任务。如下图中的右图为词性标注任务的结果,第一层、第二层分别表示单独使用
biLM
的representation
的效果。结果表明:越低层的状态向量,越能够捕获语法信息。
ELMo
词向量与传统的词向量(如:word2vec
)不同。在ELMo
中每个单词的词向量不再是固定的,而是单词所在的句子的函数,由单词所在的上下文决定。因此ELMo
词向量可以解决多义词问题。下图中,
GloVe
无法区分play
这个单词的多种含义。而ELMo
由于引入了上下文,因此可以区分其不同含义。实验表明,
ELMo
在多个任务上取得了广泛的提升。
给定一个句子 : ,其中 , 为句子的长度。用 代表该句子, 则生成该句子的概率为:
可以用一个 层的前向
LSTM
模型来实现该概率。其中:表示输入 的
embedding
向量, 表示第 层LSTM
层的第 个单元的输出隐向量。第 层
LSTM
的输出经过softmax
输出层输出对应的条件概率。softmax
输出层由一个全连接函数和一个softmax
函数组成。- 由于
RNN
的性质,所有softmax
输出层的参数都共享。
ELMo
模型采用双向神经网络语言模型,它由一个前向LSTM
网络和一个逆向LSTM
网络组成。ELMo
最大化句子的对数前向生成概率和对数逆向生成概率。其中:
- 前向
LSTM
网络和逆向LSTM
网络共享embedding
层的参数 、共享softmax
输出层的参数 。 - 为前向
LSTM
网络的参数, 为逆向LSTM
网络的参数,二者不同。
ELMo
认为单词 的表达由 个向量组成: ,是这 个向量的函数。最简单的情况下,
ELMo
取出第 层(或者其它单层)的输出作为词的表达: 。其中:
表示向量的拼接。也可以直接采用这 个向量的均值作为单词 的表达。
可以给每层的向量一个权重,而这些权重(一共 个)可以从具体任务中学习到。
此时
ELMo
通用的词表达为:这 个向量的加权:其中 为对应层的权重的
softmax
归一化结果, ;而 是所有层的缩放因子(与层的位置无关,由具体任务决定)。
- 前向
应用
ELMo
时,首先训练无监督的ELMo
模型,获取每个单词的 个中间表示。然后在监督学习任务中,训练这 个向量的线性组合,方法为:- 冻结
ELMo
的模型参数并计算得到 。 - 拼接 和 ,作为监督学习网络的输入,其中 是监督学习网络的单词输入
embedding
。 - 对于
RNN
网络,还可以将 拼接隐层输出 ,其中 是监督学习网络的隐向量。
- 冻结
- 实验表明:在
ELMo
中添加dropout
是有增益的。另外在损失函数中添加 正则化能使得训练到的ELMo
权重倾向于接近所有ELMo
权重的均值。