Learned in Translation: Contextualized Word Vectors
Bryan McCann, James Bradbury, Caiming Xiong, Richard Socher
(Submitted on 1 Aug 2017 (v1), last revised 20 Jun 2018 (this version, v2))
Computer vision has benefited from initializing multiple deep layers with weights pretrained on large supervised training sets like ImageNet. Natural language processing (NLP) typically sees initialization of only the lowest layer of deep models with pretrained word vectors. In this paper, we use a deep LSTM encoder from an attentional sequence-to-sequence model trained for machine translation (MT) to contextualize word vectors. We show that adding these context vectors (CoVe) improves performance over using only unsupervised word and character vectors on a wide variety of common NLP tasks: sentiment analysis (SST, IMDb), question classification (TREC), entailment (SNLI), and question answering (SQuAD). For fine-grained sentiment analysis and entailment, CoVe improves performance of our baseline models to the state of the art.
计算机视觉从初始化多个深度层中受益,这些深度层的权重是在像ImageNet这样的大型监督训练集上预先训练的。自然语言处理(NLP)通常只使用经过预处理的词向量初始化深层模型的最低层。在本文中,我们使用一个深度LSTM编码器从一个注意序列到序列模型训练机器翻译(MT)上下文化词向量。我们证明,在各种常见的NLP任务中,添加这些上下文向量(CoVe)比仅使用无监督的单词和字符向量提高了性能。
Subjects: Computation and Language (cs.CL); Artificial Intelligence (cs.AI); Machine Learning (cs.LG)
Cite as: arXiv:1708.00107 [cs.CL]
(or arXiv:1708.00107v2 [cs.CL] for this version)
Learned in Translation: Contextualized Word Vectors 翻译
以下为翻译的部分内容
对于自然语言处理中的大多数问题而言,理解语境是很有必要的。为了生成一句英文的德语翻译,翻译模型需要理解英文句子中的单词是如何组织在一起的。为了知道哪些单词是最重要的,文本摘要模型也需要语境。执行语意情感分析的模型需要理解如何挑选出能够改变一句话的情感的关键词。问答模型依赖于对「问题中的词汇分布如何改变答案中的词汇分布」的理解。因为这些模型都需要理解语境是如何影响一个单词的意思的,所以,只要能够与一个学会了如何将单词语境化的模型相结合,上述每个模型都能够从中获益。
在自然语言处理(NLP)中模仿 IMAGENET-CNN 模式
机器视觉在寻求可重用的表征方面比自然语言处理更加成功。在大型图像分类数据集 ImageNet 上训练的深度卷积神经网络(CNN)经常被用作其他模型的组成部分。为了将图像分类做得更好,卷积神经网络通过逐渐构建一个更加复杂模型,而去理解像素是如何与其他像素关联的。模型可以在这些表征的基础上去解决看图说话问题、人脸识别问题以及目标检测问题,而不是一切都从零开始。自然语言处理也应该做一些类似的表征去解决单词和语境之间的关联。
为了教会神经网络理解单词在语境中的含义,我们首先教它如何将英文翻译成德语。然后,我们展示了可以重用该翻译任务的神经网络就像模仿机器视觉中在 ImageNet 上训练卷积神经网络的方式那样。我们是这样来做的:通过将神经网络的输出(也就是我们所说的语境向量(CoVe))作为其它自然语言处理任务的神经网络的新输入。在我们的实验中,给这些网络提供 CoVe 的情况总会改善模型的性能,这十分令我们振奋,所以所以我们公布了这个能够生成 CoVe 的可训练神经网络,以进一步探索自然语言处理中的可重用表征。
机器翻译中的隐向量
因为结果证明预训练的词向量对于很多自然语言处理任务来说都是很有用的表征,所以我们要预训练我们的编码器,这样的话,它就能够输出普遍有用的隐向量。为了预训练,我们选择机器翻译作为我们的第一个任务。较之于其他的自然语言处理任务,机器翻译拥有更大的数据集。并且,对于训练通用的语境向量而言,翻译任务的本质看上去更加吸引人。例如,与其他的类似于文本分类的任务相比,翻译貌似更需要那种能够理解语言的语感。
解码器
我们通过教编码器如何将英文翻译成德文来教它生成有用的隐向量。解码器生成了针对英文句子的隐向量,另一个叫做解码器的神经网络就会在生成德语句子的时候参考这些隐向量。
正因为 LSTM 是我们编码器的基础,所以 LSTM 也在解码器中起着非常重要的作用。与编码器一样,我们在解码器中也使用两层的 LSTM。用编码器的最终状态来初始化解码器,读入一个德语词向量来启动解码器,然后就会生成解码状态向量。
解码器使用一个单向的 LSTM 来从输入词向量创建解码器状态。
注意力机制
为了决定下一步翻译英语句子中的哪一部分,注意力机制需要从隐向量向前回溯。它使用状态向量来判别每一个隐向量的重要性,为了记录它的观察值,注意力机制会生成一个新的向量,我们可以称之为语境调整状态(context-sdjusted state)。
注意力机制使用隐状态和解码状态来生成语境调整状态。
生成模型
然后,生成器会根据语境调整状态来决定要生成哪个德语单词,接下来语境调整状态会回传到解码器中,让解码器对其翻译的结果有一个准确的感知。解码器一直重复这个过程,直至它完成所有翻译。这就是一个标准的基于注意力机制的编码器-解码器结构,它被用来学习像机器翻译一样的序列到序列任务。
预训练的机器翻译—长短期记忆网络(MT-LSTM)中的语境向量
当训练过程结束之后,我们可以将我们训练好的 LSTM 提取出来作为编码器用于机器翻译。我们将这个预训练的 LSTM 称作机器翻译 LSTM(MT-LSTM),并使用它生成新句子的隐向量。当我们把这些机器翻译隐向量用于其它的自然语言处理模型时,我们就把它们称作语境向量(CoVe)。