Linguistic Input Features Improve Neural Machine Translation

输入语言特征改进神经机器翻译1

目录

摘要

神经机器翻译最近取得了令人瞩目的成果,同时对外部语言信息的很少使用。在本文中,我们表明神经MT模型的强大学习能力不会使语言特征冗余; 它们可以很容易地结合起来,以进一步提高性能。 除了基本的字特征之外,我们在基于注意力的encoder-decoder架构中生成了encoder嵌入层,以支持包含任意特征。 我们将词法特征(morphological features),词性标签(part-of speech tags)和句法依赖标签(syntactic dependency labels)作为输入特征添加到English↔German和 English→Romanian 神经机器翻译系统中。 在WMT16训练和测试集的实验中,我们发现语言输入功能根据三个指标提高了模型质量:perplexity,BLEU和CHRF3。


介绍

神经机器翻译最近取得了令人瞩目的成果(Bahdanau et al., 2015; Jean et al., 2015),然而学习原始的,句子对齐的平行文本时,使用很少外部语言学信息2。但是,我们猜想到不同层次的语言标注对神经机器翻译很有价值。 词性还原(Lemmatisation)可以减少数据稀疏性,并允许相同单词的词形(屈折, inflection)变化以明确地共享一个表示模型。其他类型的注释,例如词性标签(POS)或句法依赖标签,可以帮助消除歧义。在本文中,我们研究语言学信息是否有益于神经翻译模型,或者他们强大的学习能力是否使得明确的语言学特征变得多余。让我们使用神经MT系统的实际翻译错误示例来激发语言特征的使用。在英语翻译中,一个问题是相同的表面单词形式
由于同名或单词形成过程(例如转换),可以在几种单词类型之间共享。例如,close可以是动词,形容词或名词,这些不同的含义通常具有不同的翻译成其他语言。

考虑到以下语言特征,我们将研究语言特征的有用性:

•lemmas 词根3
•subword tags 子字标签
•morphological features 词法特征
•POS标签
•dependency labels 依赖标签

包含词性还原的动机是希望对相同单词形式的不同词形变化进行更好的泛化。其他语言特征则用于消除歧义.


神经网络机器翻译

基于注意力带有循环网络的编码-解码网络

编码器是一个带有门循环单元的双向神经网络.(Cho et al., 2014)

  • 读取输入序列 x=(x1,,xm)
  • 产生一个前向序列的隐藏状态(h1,,hm)
  • 一个后向序列的隐藏状态(h1,,hm)
  • 隐藏状态hjhj 连接在一起获得注释向量hj

解码器是一个循环神经网络,来预测目标序列 y=(y1,,yn)

  • 基于循环隐藏状态si,前一个预测词yi1,以及上下文信息向量ci来预测每一个每一个词yi
  • ci是注释hj的权重和
  • 每一个hj的权重是通过对齐模型αij来计算
  • αijyi 对齐到xj的概率,对齐模型是单层前馈神经网络,通过反向传播与网络的其余部分共同学习。 详细描述可以在 (Bahdanau et al., 2015)中找到,尽管我们的实现是基于这种架构的略微修改形式4。 在具有随机梯度下降的平行语料库上执行训练。为了翻译,设置一个最小size的beam search.

增加输入特征

我们将编码器输入表示为特征的组合(Alexandrescu and Kirchhoff, 2006).
我们在这里显示编码器前向状态的等式(对于简单的RNN情况;参考(Bahdanau et al., 2015)GRU):

hj=tanh(WExj+Uhj1)

  • ERm×Kx 字嵌入矩阵
  • WRn×m,URn×n, 权重矩阵
  • m为字嵌入大小, n为隐藏单元数量,同样, Kx是来源语言的词汇大小

我们将其概括为任意数量的特征 |F|

hj=tanh(W(||k=1|F|Ekxjk)+Uhj1)

其中||是向量级联, Ek inRmk×Kk是特征嵌入矩阵,k=1|F|mk=mKk第k个特征的词汇量大小。 换句话说,我们为每个特征查找单独的嵌入向量,然后将它们连接起来。 连接向量的长度与总嵌入大小匹配,并且模型的所有其他部分保持不变。


语言学特征

我们上一节的通用模型支持任意数量的输入特征要素。 在本文中,我们将重点介绍一些众所周知的语言特征。 我们的主要实验问题是,是否为编码器提供语言特征可以提高神经机器翻译系统的翻译质量,或者是否信息来自原始文本的训练产生的编码器 - 解码器模型,而通过显式特征冗余来表明已包含它们了 所有语言特征都是自动预测的; 我们使用Stanford CoreNLP(Toutanova et al。,2003; Minnen et al。,2001; Chen and Manning,2014)来注释英语输入的英语 -> 德语和ParZu(Sennrich et al,2013)来注释德语输入,对于德语 -> 英语。 我们在这里更详细地讨论各个功能。

词性还原

使用lemmas作为输入功能可确保在共享相同基本形式的单词形式之间共享信息。原则上,神经模型可以知道词形变体在语义上是相关的,并将它们表示为连续向量空间中的相似点(Mikolov et al,2013)。然而,虽然已经针对高频词进行了演示,但我们期望词形表示可以提高数据效率,字级模型甚至可能不知道低频变体。对于字符或子字级模型,尚不清楚它们在何种程度上可以学习共享词根的低频词形式之间的相似性,特别是如果词形式表面上不相似。考虑以下两个德语单词形式,它们共享一个词根 liegen ‘lie’:

  • liegt ‘lie’(3.p.sg. present)
  • läge ‘lay’(3.p.sg. subjunctive II)

我们使用的词还原基于有限状态方法,即使对于不常见的单词形式也能确保大范围的覆盖。我们使用Zmorge analyzer for German(Schmid等,2004; Sennrich and Kunz,2014),以及斯坦福CoreNLP英语工具包中的lemmatiser(Minnen et al,2001)。

子标签

在我们的实验中,我们使用基于字节对编码(BPE)的分段(Sennrich et al,2016c),在子词级别上操作以使用固定符号词汇表实现开放式词汇表转换。我们注意到在BPE分词中,一些符号可能是不明确的,并且可以是单独的单词,也可以是一个大的词中的子字段。此外,文本表示为一系列子字单元,没有明确的单词边界,但字边界可能是有助于了解要处理的符号,以及何时忘记循环图层中的信息。我们提出了一种类似于流行的IOB格式的子字结构的注释,用于分块和命名实体识别,标记文本中的符号是否形成单词的开头(B),内部(I)或结尾(E)。如果符号对应于完整单词,则使用单独的标记(O)。

词法特征

对于德语->英语,解析器使用词法特征注释德语输入。不同的单词类型具有不同的特征集, 例如:

  • 名词具有案例,数字和性别
  • 动词具有人,数字,时态和层面
  • 特征可能未被详细指定。

我们将一个单词的所有词法特征的连接处理,使用特定符号作为字符串,并将每个此类字符串视为单独的特征值。

POS标签和依赖标签

在我们的介绍性示例中,我们提出POS标签和依赖标签可以消除可能的歧义。每个单词与一个POS标签和一个依赖标签相关联。后者是将单词连接到其句法头部的边缘标签,如果单词没有句法头部,则为“ROOT”。

关于在子字模型中使用字符级功能

我们使用BPE将稀有单词分割为子单元。子词标签将单词的分段编码为子单元,不需要进一步修改。所有其他特征都是分词前相应的字级特征。要使用要素注释分段的源文本,我们将单词的要素值复制到其所有子字单位。一个例子如图1所示。

Linguistic Input Features Improve Neural Machine Translation


  1. http://www.statmt.org/wmt16/pdf/W16-2209.pdf
  2. 语言学工具多用于预处理过程,例如;Turkish segmentation (Gülçehre et al., 2015).
  3. having stem:hav lemma :have
    was 和 been stem: 不同, 但是lemma 相同:be
    Lemmatization 要比 stemming 复杂,但是它们都是为了寻找 单词的“根。但是Lemmatization 更复杂,它用到了一些词义分析(finding the morphological or vocabulary meaning of a token)
  4. https://github.com/nyu-dl/dl4mt-tutorial