六、ELMo

  1. ELMo:Embeddings from Language Models 引入了一种新的单词表示方式,该 表示方式的建模目标是:对单词的复杂特征建模(如:语法特征、语义特征),以及能适应不同的上下文(如:多义词)。

    • ELMo 词向量是由双向神经网络语言模型的内部多层向量的线性加权组成。

      • LSTM 高层状态向量捕获了上下文相关的语义信息,可以用于语义消岐等任务。

        如下图中的左图为语义消岐任务的结果,第一层、第二层分别表示单独使用 biLMrepresentation 的效果。结果表明:越高层的状态向量,越能够捕获语义信息。

      • LSTM 底层状态向量捕获了语法信息,可以用于词性标注等任务。

        如下图中的右图为词性标注任务的结果,第一层、第二层分别表示单独使用 biLMrepresentation 的效果。结果表明:越低层的状态向量,越能够捕获语法信息。

      六、ELMo - 图1

    • ELMo 词向量与传统的词向量(如:word2vec )不同。在ELMo 中每个单词的词向量不再是固定的,而是单词所在的句子的函数,由单词所在的上下文决定。因此ELMo 词向量可以解决多义词问题。

      下图中,GloVe 无法区分 play 这个单词的多种含义。而 ELMo 由于引入了上下文,因此可以区分其不同含义。

      六、ELMo - 图2

    • 实验表明,ELMo 在多个任务上取得了广泛的提升。

      六、ELMo - 图3

  2. 给定一个句子 : 六、ELMo - 图4,其中 六、ELMo - 图5六、ELMo - 图6 为句子的长度。用 六、ELMo - 图7 代表该句子, 则生成该句子的概率为:

    六、ELMo - 图8

    可以用一个 六、ELMo - 图9 层的前向 LSTM 模型来实现该概率。其中:

    • 六、ELMo - 图10 表示输入 六、ELMo - 图11embedding 向量, 六、ELMo - 图12 表示第 六、ELMo - 图13LSTM 层的第 六、ELMo - 图14 个单元的输出隐向量。

    • 六、ELMo - 图15LSTM 的输出经过 softmax 输出层输出对应的条件概率。

      • softmax 输出层由一个全连接函数和一个softmax 函数组成。
      • 由于 RNN 的性质,所有softmax 输出层的参数都共享。

    六、ELMo - 图16

  3. ELMo 模型采用双向神经网络语言模型,它由一个前向LSTM 网络和一个逆向 LSTM 网络组成。ELMo 最大化句子的对数前向生成概率和对数逆向生成概率。

    六、ELMo - 图17

    其中:

    • 前向 LSTM 网络和逆向 LSTM 网络共享embedding 层的参数 六、ELMo - 图18、共享softmax 输出层的参数 六、ELMo - 图19
    • 六、ELMo - 图20 为前向 LSTM 网络的参数, 六、ELMo - 图21 为逆向 LSTM 网络的参数,二者不同。

    ELMo 认为单词 六、ELMo - 图22 的表达由 六、ELMo - 图23 个向量组成:六、ELMo - 图24 ,是这 六、ELMo - 图25 个向量的函数。

    • 最简单的情况下,ELMo 取出第 六、ELMo - 图26 层(或者其它单层)的输出作为词的表达:六、ELMo - 图27 。其中 : 表示向量的拼接。

    • 也可以直接采用这 六、ELMo - 图28 个向量的均值作为单词 六、ELMo - 图29 的表达。

    • 可以给每层的向量一个权重,而这些权重(一共 六、ELMo - 图30 个)可以从具体任务中学习到。

      此时ELMo 通用的词表达为:这 六、ELMo - 图31 个向量的加权:

      六、ELMo - 图32

      其中 六、ELMo - 图33 为对应层的权重的 softmax 归一化结果, 六、ELMo - 图34;而 六、ELMo - 图35 是所有层的缩放因子(与层的位置无关,由具体任务决定)。

    六、ELMo - 图36

  4. 应用 ELMo 时,首先训练无监督的 ELMo 模型,获取每个单词的 六、ELMo - 图37 个中间表示。然后在监督学习任务中,训练这 六、ELMo - 图38 个向量的线性组合,方法为:

    • 冻结 ELMo 的模型参数并计算得到 六、ELMo - 图39
    • 拼接 六、ELMo - 图40六、ELMo - 图41,作为监督学习网络的输入,其中 六、ELMo - 图42 是监督学习网络的单词输入 embedding
    • 对于 RNN 网络,还可以将 六、ELMo - 图43 拼接隐层输出 六、ELMo - 图44 ,其中 六、ELMo - 图45 是监督学习网络的隐向量。
  5. 实验表明:在 ELMo 中添加 dropout 是有增益的。另外在损失函数中添加 六、ELMo - 图46 正则化能使得训练到的ELMo权重倾向于接近所有ELMo权重的均值。