内容简介:尽管深度学习的最新进展已经推动自然语言处理取得了令人印象深刻的进步,但众所周知,这些技术需要非常多的数据,限制了其在许多实用场景下的应用。一种日益流行的解决方法是先在无标注数据上学习通用语言表征,然后将其整合到特定任务的下游系统中。这种方法最初是通过词嵌入流行起来的,但最近已经被句子级别的表征所取代。但是,所有这些研究都是为每种语言学习一个单独的模型,因此无法利用不同语言之间的信息,这大大限制了它们在低资源语言上的性能。本研究对通用的语言无关句子嵌入——即对两个维度(输入语言和 NLP 任务)通用的句子向量
尽管深度学习的最新进展已经推动自然语言处理取得了令人印象深刻的进步,但众所周知,这些技术需要非常多的数据,限制了其在许多实用场景下的应用。一种日益流行的解决方法是先在无标注数据上学习通用语言表征,然后将其整合到特定任务的下游系统中。这种方法最初是通过词嵌入流行起来的,但最近已经被句子级别的表征所取代。但是,所有这些研究都是为每种语言学习一个单独的模型,因此无法利用不同语言之间的信息,这大大限制了它们在低资源语言上的性能。
本研究对通用的语言无关句子嵌入——即对两个维度(输入语言和 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 种评估语言上的训练结果对比。
以上所述就是小编给大家介绍的《Facebook新研究:一个编码器hold住93种语言!跨语言迁移无需修改》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Ruby on Rails电子商务实战
Christian Hellsten、Jarkko Laine / 曹维远 / 人民邮电出版社 / 2008-4 / 49.00元
《Ruby on Rails电子商务实战》全面讲解了使用Ruby on Rails创建产品级应用程序的过程。书中通过演示构建网上书店的全过程,先后介绍如何使用如TDD的敏捷实践,启动一个项目并建立良好稳定的基础,如何深入Ruby on Rails,实现诸如将应用程序翻译成各种语言对产品进行调试等的普遍需求。其中用到的主要技术包括Ajax、聚合、设置标签和国际化等,还介绍了如何使用ActiveRec......一起来看看 《Ruby on Rails电子商务实战》 这本书的介绍吧!