返回介绍

PaperWeekly 第七期 -- 基于 Char-level 的 NMT OOV 解决方案

发布于 2025-01-21 00:48:33 字数 11347 浏览 0 评论 0 收藏 0

引言

神经网络机器翻译(NMT) 是 seq2seq 模型的典型应用,从 2014 年提出开始,其性能就接近于传统的基于词组的机器翻译方法,随后,研究人员不断改进 seq2seq 模型,包括引入注意力模型、使用外部记忆机制、使用半监督学习和修改训练准则等方法,在短短 2 年时间内使得 NMT 的性能超过了传统的基于词组的机器翻译方法。在 27 号谷歌宣布推出谷歌神经网络机器翻译系统,实现了 NMT 的首个商业化部署,使得 NMT 真正从高校实验室走向了实际应用。本期 Paperweekly 的主题是神经网络机器翻译下的字符级方法,主要用来解决 NMT 中的 out-of-vocabulary 词问题,分别是:

  1. A Character-Level Decoder without Explicit Segmentation for Neural Machine Translation,2016
  2. Achieving Open Vocabulary Neural Machine Translation with Hybrid Word-Character Models,2016
  3. Character-based Neural Machine Translation,Costa-Jussa, 2016
  4. Character-based Neural Machine Translation,Ling, 2016
  5. Neural Machine Translation of Rare Words with Subword Units,2016

A Character-Level Decoder without Explicit Segmentation for Neural Machine Translation

作者

Junyoung Chung, Kyunghyun Cho, Yoshua Bengio

单位

Universite de Montreal

关键词

Segmentation, Character-level, Bi-scale recurrent network

文章来源

ACL 2016

问题

能否在不需要分词的前提下直接在字符级进行神经机器翻译。

模型

在讲模型之前,本文花了大量篇幅论证为何需要在不分词的前提下进行字符级翻译,首先作者总结了词级翻译的缺点。

词级翻译的缺点包括:

  1. 任何一个语言都没有完美的分词算法,完美的分词算法应该能够将任意句子划分为 lexemes 和 morphemes 组成的序列
  2. 导致的问题就是在词典中经常充斥着许多共享一个 lexeme 但有着不同 morphology 的词,比如 run,runs,ran,running 可能都存在于词典中,每个词都对应一个词向量,但是它们明显共享相同的 lexeme——run
  3. 存在 unknown word 问题和 rare word 问题,rare word 问题是指某些词典中词在训练集中出现次数过少,导致无法训练得到很好的词向量;unknown word 问题是指不在词典中的词被标记为 UNK(OOV 词)

接着作者指出使用字符集翻译可以解决上述问题:

  1. 使用 LSTM 或 GRU 可以解决长时依赖问题
  2. 使用字符级建模可以避免许多词态变形词出现在词典中

然而上述字符级方法依然需要进行分词,然后对每个词的字符序列进行编码,因此引出了本文的 motivation,即是否能直接在不分词的字符序列上进行翻译。

本文使用的模型同样是经典的 seq2seq 模型,其创新点主要在 decoder 端,引入了一种新的网络结构 biscale RNN,来捕获字符和词两个 timescale 上的信息。具体来说,主要分为 faster 层和 slower 层,faster 层的 gated 激活值取决于上一步的 faster 和 slower 层的激活值,faster 层要想影响 slower 层,则必须要是 faster 层处理完当前数据,并且进行重置。换句话说,slower 层无法接受 faster 层输入,直到 faster 层处理完其数据,因此比 faster 层要慢,而这样的层次结构也对应字符和词在 timescale 上的关系。下图为网络结构示意图。

在 4 种语言翻译任务上的实验显示完全可以在不分词的情况下进行字符级翻译,性能优于 state-of-the-art 的非神经翻译系统

相关工作

Sennrich ACL2016 提出使用 BPE 算法对 subword 建模。Kim AAAI2016 中提出直接对字符进行 encode,Costa-jussa ICLR2016 中将该模型用在了 NMT 任务中。Ling ICLR2016 的工作中使用 Bi-RNN 来编码字符序列。以上工作基于字符级展开,但它们都依赖于知道如何将字符分为词,即分词。本文研究能否在不分词的情况下进行字符级翻译。

简评

本文是 Bengio 组工作,Bi-scale RNN 受启发于该组之前提出的 GF-RNN,本文创新点主要是提出了一种新的 RNN 结构,可以在字符和词两个 timescales 上进行处理,输出字符序列不需要进行分词。不足是未考虑 encoder 端是否也可以直接使用未分词的字符序列,而是仅仅使用了分词后的 BPE 序列。

Achieving Open Vocabulary Neural Machine Translation with Hybrid Word-Character Models

作者

Minh-Thang Luong and Christopher D. Manning

单位

Stanford University

关键词

OOV, hybrid word-character models, NMT

文章来源

ACL 2016

问题

机器翻译里面的 OOV 问题,如何处理 UNK

模型

提出了一种混合 word-character 的 NMT 模型.在训练难度和复杂度不是很高的情况下,同时解决源语言和目标语言的 OOV 问题。

这个图表达了模型的整体思路. 大多数情况下,模型在 word-level 进行 translation. 当出现 unk 的时候,则会启用 character-level 的模型. 对 source unk, 由 character-level 模型来得到它的 representation; 对 target unk, 用 character-level 模型来产生 word.

  1. 整体上采用他们组以前提出的基于 global attention 的 encoder-decoder 模型. RNN 采用的是 deep LSTM.
  2. 源语言端和目标语言端的 character-level 模型都是基于 character 的 deep LSTM. 对源语言端来说,它的 character-level 模型是 context independent 的. 隐层状态全部初始化为 0, 因此在训练时可以预先计算 mini-batch 里的每一个 rare word 的 representation. 而对于目标语言端来说,它的 character-level 模型是 context dependent 的.它的第一层的 hidden state 要根据当前 context 来初始化,其它部分都初始化为 0.训练时,在目标语言的 decoder 阶段,首先用 word-level 的 decoder 产生句子,这时句子里包含了一些 unk. 接着对这些 unk, 用 character-level 模型以 batch mode 来产生 rare word.
  3. 对于目标语言端 character-level 模型的初始化问题,作者提出了两种方法来表示当前的 context. 一种叫做 same-path, 用预测的 softmax 层之前的 ht 来表达. 但是因为 ht 是用来预测的,所以所有 ht 的值都会比较相似,这样很难用来产生不同的目标 rare word. 因此作者提出了第二种表达叫做 separate-path, 用 ht’来表达 context. ht’不用预测 unk, 是专门作为 context 在 character-level 的输入的. 它的计算方法和 ht’相同,只是用了一个不一样的矩阵。
  4. 模型训练的目标函数是 cross-entropy loss, 同时考虑了 word level 和 character level 的 loss.

相关工作

NMT 的模型分为 word-level 和 character-level 的. 对于 word-level 模型,要解决 OOV 问题,之前的工作提出了 unk replacement (Luong et al. 2015b), 使用大字典并在 softmax 时进行采样(Jean et al. 2015), 对 unk 进行 Huffman 编码(Chitnis et al. 2015) 等方法. 而对于 character-level 的模型,本身可以处理 OOV 词,但是训练难度和复杂度会增加。

简评

本文的创新之处在于提出了混合 word-character model 的 NMT 模型. 这个混合模型结合了二者的优点,在保证模型复杂度较低的同时,实现了很好的效果.因为加入了 character, 特别适合单词有丰富变形的语言。

Character-based Neural Machine Translation

作者

Marta R. Costa-jussa and Jose A. R. Fonollosa

单位

TALP Research Center
Universitat Politecnica de Catalunya, Barcelona

关键词

NMT,character-based word embeddings,CNN

文章来源

ICLR2016

问题

本文提出使用 character-based word embeddings 的 NMT,可以在一定程度上克服机器翻译中 OOV 问题。

模型

如上图所示,这篇论文使用的基本模型架构是一个带 attention 机制的 seq2seq 的 encoder-decoder 的架构,使用的神经网络单元是 GRU。encoder 把源句子转化成一个向量(双向),使用 attention 的机制来捕获 context 信息,decoder 把 context 解码成目标句子。网络的输入仍然使用 word embedding,但是作者在获取 word embedding 的时候使用的方法不同。本文是基于词中的 character 来生成 word embedding 的,具体方法如下图所示。

上图中,最底层是一个 character-based embedding 组成的序列,对应的是每个词中的字母。然后这个序列被送入一个由不同长度的一维卷积过滤器组成的集合中进行处理,不同的长度对应单词中不同数量的字母(从 1 到 7)。对于每个卷积过滤器,只取最大的值作为输出。然后把每个卷积过滤器输出的最大值连接起来组成一个向量。最后这个向量再通过两层 Highway layer 的处理作为最终的 word embeddings。这个方法的详细信息可以参考 Kim 的论文 Character-Aware Neural Language Models (2016)。

资源

  1. 本文数据集[German-English WMT data] ( Translation Task )
  2. 建立对比模型使用的软件包 DL4MT

相关工作

(1)2003 年,基于短语的统计机器翻译模型。Statistical Phrase-Based Translation

(2)2013 年,基于神经网络的机器翻译模型。Recurrent continuous translation models

(3)2014 年,seq2seq 的神经网络模型用于机器翻译。Sequence to sequence learning with neural networks

简评

本文作者将基于 character 来产生 word embedding 的方法应用于机器翻译,可以在一定程度上克服 OOV 的问题。同时,由于利用了单词内部的信息,这篇论文提出的方法对于词形变化丰富的语言的翻译也产生了更好的效果。但是,作者只是在 source side 使用了上述方法,对于 target side,仍然面临词典大小的限制。

CHARACTER-BASED NEURAL MACHINE TRANSLATION

作者

Wang Ling, Isabel Trancoso, Chris Dyer, Alan W Black

单位

  1. LF Spoken Systems Lab,Instituto Superior Tecnico Lisbon, Portugal
  2. Language Technologies Institute, Carnegie Mellon University Pittsburga, PA 15213, USA

关键词

NMT, Character-Based

文章来源

ICLR 2016

问题

尝试在字符级别上应用神经机器学习方法

模型

在带注意力机制的神经机器学习模型的前后端增加字符到词(C2W) 和词向量到字符(V2C)的模块。

图中,小矩形是一个双向 LSTM,双向 LSTM 的前向和后向的最终状态以及 bias 之和为词的向量表示。

这个模块主要由三个步骤组成:

  1. 将字符转换为向量表示。
  2. 将字符向量和之前模型产生注意力向量的 a 和目标词在前向 LSTM 中产生的向量表示做拼接并输入到 LSTM。
  3. 将得到的向量输入到 softmax 层得到结果。

相关工作

  1. Neural machine translation by jointly learning to align and translate.

简评

这篇文章在基于注意力机制的机器翻译模型上增加了两个模块。由于是基于字符集别的模型,该模型自然可以学得一些语言中的前后缀在翻译中的关系。此外,基于字符级别的模型在翻译未知词时有灵活性。可是,文中也提到,该模型为能够准确的翻译未知词。并且该文也没有明确表明该模型和其他模型相比具有哪些明显的优势。从实际上来说,该模型在 V2C 部分的训练速度慢是一个很大的弱点,因此若仅根据文章的表述,该模型的实际应用价值应该有限。

Neural Machine Translation of Rare Words with Subword Units

作者

Rico Sennrich and Barry Haddow and Alexandra Birch

单位

School of Informatics, University of Edinburgh

关键词

NMT;Rare Words;Subword Units;BPE

文章来源

ACL 2016

问题

NMT 中的 OOV(集外词)和罕见词(Rare Words)问题通常用 back-off 词典的方式来解决,本文尝试用一种更简单有效的方式(Subword Units)来表示开放词表。

模型

本文从命名实体、同根词、外来语、组合词(罕见词有相当大比例是上述几种)的翻译策略中得到启发,认为把这些罕见词拆分为“子词单元”(subword units) 的组合,可以有效的缓解 NMT 的 OOV 和罕见词翻译的问题。
子词单元的拆分策略,则是借鉴了一种数据压缩算法:Byte Pair Encoding(BPE)(Gage,1994) 算法。该算法的操作过程和示例如 Figure1 所示。

不同于(Chitnis and DeNero,2015) 提出的霍夫曼编码,这里的压缩算法不是针对于词做变长编码,而是对于子词来操作。这样,即使是训练语料里未见过的新词,也可以通过子词的拼接来生成翻译。
本文还探讨了 BPE 的两种编码方式:一种是源语言词汇和目标语言词汇分别编码,另一种是双语词汇联合编码。前者的优势是让词表和文本的表示更紧凑,后者则可以尽可能保证原文和译文的子词切分方式统一。从实验结果来看,在音译或简单复制较多的情形下(比如英德)翻译,联合编码的效果更佳。
实验结果分别在 WMT15 英德和英俄的任务上得到 1.1 和 1.3 个 BLEU 值的提升。

资源

本文提出的子词拆分算法代码在 GitHub - rsennrich/subword-nmt: Subword Neural Machine Translation
实验所用的 NMT 系统为 Groundhog: http://github.com/sebastien-j/LV_groundhog
实验数据来自 WMT 2015

相关工作

OOV 的处理一直是机器翻译研究的重点。
基于字符的翻译在短语 SMT 模型中就已被提出,并在紧密相关的语种对上验证是成功的(Vilar et al., 2007; Tiedemann,2009; Neubig et al., 2012)。 此外还有各种形态素切分方法应用于短语模型,(Nießen and Ney,2000; Koehn and Knight, 2003; Virpioja et al.,2007; Stallard et al., 2012)。
对于 NMT,也有很多基于字符或形态素的方法用于生成定长连续词向量(Luong et al., 2013; Botha and Blunsom, 2014; Ling et al., 2015a; Kim et al., 2015)。与本文类似的一项工作 (Ling et al., 2015b) 发现在基于词的方法上没有明显提升。其与本文的一个区别在于,attention 机制仍然在词层级进行操作,而本文在子词层级上。

简评

这篇文章的创新点在于提出了一种介乎字符和单词之间,也不同于字符 n-gram 的文本表示单元,并借鉴 BPE 压缩算法,在词表大小和文本长度两个方面取得一个较为平衡的状态。应用在非同源/近源的语言对(如英汉)是否可以有类似的效果,尚待研究。在 NMT 模型的优化上,也还有探讨的空间。
本文的实验评价方法值得学习,单看 BLEU 值并不觉得有惊艳之处,但加上 CHR F3 和(对所有词、罕见词和集外词分别统计的)unigram F1 这两个评价指标,尤其是 Figure2 和 3 画出来的效果,还是让人比较信服的。

总结

OOV 词对于翻译性能和实用性的影响非常巨大,如何处理 OOV 词并达到 open vocabulary 一直是 NMT 的主要研究方向。传统方法基于单词级别来处理该问题,比如使用 UNK 替换、扩大词典规模等方法,往往治标不治本。因此最近一些研究者提出基于字符的 NMT 模型,取得了不错的成绩,字符级方法的主要优势包括不受语言的形态变化、能预测出词典中未出现的单词并降低词典大小等。值得一提的是,基于字符的模型不仅局限于 NMT 上,任何生成模型都面临 OOV 词问题,因此是否能够将字符级方法用在其他 NLP 任务,比如阅读理解或文本摘要上,让我们拭目以待。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文