参与路雪 张倩

Facebook新研究:一个编码器hold住93种语言!跨语言迁移无需修改

近日,Facebook 研究人员发布了一篇论文,提出了一种可学习 93 种语言的联合多语言句子表征的架构。该架构仅使用一个编码器,且可在不做任何修改的情况下实现跨语言迁移。

尽管深度学习的最新进展已经推动自然语言处理取得了令人印象深刻的进步,但众所周知,这些技术需要非常多的数据,限制了其在许多实用场景下的应用。一种日益流行的解决方法是先在无标注数据上学习通用语言表征,然后将其整合到特定任务的下游系统中。这种方法最初是通过词嵌入流行起来的,但最近已经被句子级别的表征所取代。但是,所有这些研究都是为每种语言学习一个单独的模型,因此无法利用不同语言之间的信息,这大大限制了它们在低资源语言上的性能。

本研究对通用的语言无关句子嵌入——即对两个维度(输入语言和 NLP 任务)通用的句子向量表征——感兴趣。该研究的动机是多方面的:(1)希望资源有限的语言可以从多种语言联合训练中受益;(2)渴望实现 NLP 模型从一种语言到另一种语言的 zero-shot 迁移;(3)实现语码转换。为此,研究者使用了可以处理多种语言的单个编码器,这样不同语言中语义相似的句子在最终嵌入空间中会很相近。

关于多语言 NLP 的研究主要聚焦于资源丰富的语言,如汉语、阿拉伯语及主流的欧洲语言,通常只局限于几种(大多是两种)语言。相比之下,本研究学习了 93 种不同语言的联合句子表征,包括资源不足和少数民族的语言(见表 1 和表 2)。且本研究提出的系统仅在公开可用的平行文本上进行训练。本研究的贡献如下:

  • 大幅度改进了学习联合多语言句子表征的研究。本研究学习了一个可以处理 93 种不同语言的共享编码器。所有语言被一起嵌入到一个共享空间中,而其他研究大多仅考虑英语/其他语言对齐。本研究覆盖 34 个语族(language family)、28 个不同的文字系统。

  • 该方法在几乎所有相关语言的 zero-shot 跨语言自然语言推断(XNLI 数据集)、分类(MLDoc 数据集)、bitext 挖掘(BUCC 数据集)和多语言相似性搜索(Tatoeba 数据集)任务上达到了当前最佳水平。这些结果通过单个预训练 BiLSTM 编码器在 93 种语言和任务上取得,而且没有进行任何微调。

  • 研究者定义了一个基于免费可用 Tatoeba 语料库的新数据集,为 122 种语言提供了基线结果。他们给出了在这一测试集上的多语言相似性搜索结果的准确率,该语料库也可用于 MT 评估。

论文:Massively Multilingual Sentence Embeddings for Zero-Shot Cross-Lingual Transfer and Beyond

论文链接:https://arxiv.org/pdf/1812.10464.pdf

摘要:本文介绍了一种架构,可学习 93 种语言的联合多语言句子表征(这些语言属于 30 多个不同语族,用 28 种不同的文字书写)。该系统使用单个 BiLSTM 编码器和所有语言共享的 BPE 词汇,该编码器与一个辅助解码器相结合,并在公开的平行语料库上进行训练。这使得研究者能够仅使用英文标注数据基于最终句子嵌入学习分类器,并在不做任何修改的情况下将英文分类器迁移到 93 种语言中的任何一种。在 XNLI 数据集上的 14 种语言(一种语言除外)中,该方法在 zero-shot 跨语言自然语言推断上取得了当前最佳水平,在跨语言文本分类上也取得了颇具竞争力的结果(MLDoc 数据集)。该研究中的句子嵌入在平行语料库挖掘上也非常强大,在 BUCC 共享任务的 3 个语言对(总共 4 个)中都获得了当前最佳水平。最后,研究者引入了一个基于 Tatoeba 语料库创建的包含 122 种语言的成对句子测试集,并且证明此项研究中的句子嵌入在多语言相似性搜索中取得很棒的结果,即使是在资源较少的语言中也是如此。研究中的 PyTorch 实现、预训练编码器和多语言测试集将免费开放。

架构

图 1:本研究提出的系统架构,用于学习多语言句子嵌入。

图 1 展示了本研究提出的系统架构,该架构基于 Schwenk (2018a)。从上图可以看到,对 BiLSTM 编码器的输出应用最大池化操作来得到句子嵌入,然后对这些句子嵌入进行线性变换,以初始化解码器 LSTM,同时这些句子嵌入还在每个时间步与其输入嵌入连接起来。注意,编码器和解码器之间没有其他连接,因为本研究想得到被句子嵌入捕获的输入序列的所有相关信息。

该系统中只有一个编码器和解码器,所有语言共享它们。研究者构建了一个联合 byte-pair encoding (BPE) 词汇表,它基于所有训练语料库学得。这样,编码器没有给出明确信号指出输入语言的类型,促使编码器学习与语种无关的表征。解码器则相反,它使用指定语种的语言 ID 嵌入来生成,且在每个时间步级联输入嵌入和句子嵌入。

扩展到大约 100 种语言(这些语言的句法、书写系统和语言概念迥异)自然需要具备足够容量的编码器。本研究将堆叠 BiLSTM 限制在 1-5 层,每层的维度限制在 512 维。(双向级联后)得到的句子表征是 1024 维的。解码器有一个 2048 维的层。输入嵌入的大小被设置为 320,语言 ID 嵌入是 32 维的。

训练数据和预处理

表 1:93 种语言中 75 种具备超过 10000 训练样本的语种,及其语族、书写系统、在 Tatoeba 测试集上的 similarity error rate 和 Tatoeba 测试集句子数量。横杠表示测试句子少于 100 个。

表 2:模型训练期间使用的 18 种资源匮乏的语言,及其语族、书写系统、在 Tatoeba 测试集上的 similarity error rate 和 Tatoeba 测试集句子数量。横杠表示测试句子少于 100 个。

所有预处理使用 Moses 工具完成:统一标点符号、删除非打印字符、分词。中文和日文文本是例外,它们分别使用 Jieba 和 Mecab 进行分割。所有语言保持原始脚本,希腊语除外(研究者将希腊语转换为拉丁字母)。

实验评估

表 3:在 XNLI 跨语言自然语言推断任务测试集上的准确率。Conneau et al. (2018c) 的所有结果均对应 BiLSTM-max(最大池化),其在所有任务中的表现均优于 BiLSTM-last。整体最好的结果用黑体字表示,每一组最好的结果加下划线。BERT ∗ 结果来自其 GitHub README。泰语 BERT 模型来自 https://github.com/ThAIKeras/bert。

表 4:在 MLDoc zero-shot 跨语言文档分类任务(测试集)上的准确率

表 5:在 BUCC 挖掘任务上的 F1 分数。

对照实验

表 6:BiLSTM 编码器深度对模型性能的影响。

表 7:使用 NLI objective 和其他权重进行多任务训练的结果对比。

表 8:在 93 种语言上的训练结果与仅在 18 种评估语言上的训练结果对比。

理论机器翻译NLPFacebook
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

基于Transformer 的双向编码器表征技术

BERT是谷歌发布的基于双向 Transformer的大规模预训练语言模型,该预训练模型能高效抽取文本信息并应用于各种NLP任务,并刷新了 11 项 NLP 任务的当前最优性能记录。BERT的全称是基于Transformer的双向编码器表征,其中“双向”表示模型在处理某一个词时,它能同时利用前面的词和后面的词两部分信息。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

词嵌入技术

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

文本分类技术

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

最大池化技术

最大池化(max-pooling)即取局部接受域中值最大的点。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

推荐文章
暂无评论
暂无评论~