0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Facebook开源了增强版的NLP工具包LASER

DPVg_AI_era 来源:lq 2019-01-25 08:53 次阅读

Facebook今天开源了增强版的NLP工具包LASER,支持93种语言,用28种不同的字母表编写。这成为第一个成功探索大型多语言句子表示的开源NLP工具。

Facebook今天宣布扩展并增强了NLP工具包LASER(Language-Agnostic SEntence Representations),并将其开源。

LASER成为第一个成功探索大型多语言句子表示的开源NLP工具。该工具包现在支持90多种语言,用28种不同的字母表编写。LASER通过将所有语言联合嵌入到一个共享空间(而不是为每种语言分别建模)来实现这些结果。

Facebook还免费提供多语言编码器和PyTorch代码,以及包含100多种语言的多语言测试集。

开源地址:

https://github.com/facebookresearch/LASER

LASER打开了从一种语言(如英语)到其他语言(包括训练数据极其有限的语言)进行NLP模型零样本迁移(zero-shot transfer)打开了大门。LASER是第一个使用单一模型处理多种语言的库,包括低资源语言(如卡拜尔语和维吾尔语)以及方言(如吴语)。

未来,这项工作可以帮助Facebook和其他公司推出一些特定的NLP功能,比如用一种语言将电影评论分类为正面或负面,然后使用100多种其他语言发表。

性能和特征亮点

LASER将XNLI语料库14种语言中13种的零样本跨语言自然语言推理精度提高到新的最高水平。它还在跨文本文档分类(MLDoc语料库)得到强大的结果。我们的句子嵌入在并行语料库挖掘方面也很强大,在BUCC共享任务中为四个语言对的其中三个提供了新的最优结果(BUCC是2018年的一个关于构建和使用可比较语料库的研讨会)。

除了LASER工具包,我们还在Tatoeba语料库的基础上共享了包含100多种语言的对齐句子测试集。使用这个数据集,我们的句子嵌入在多语言相似度搜索任务中获得了强大的结果,即使是低资源语言也是如此。

LASER还提供了其他一些优势:

它提供非常快的性能,在GPU上每秒能处理多达2000个句子。

句子编码器使用PyTorch实现,只有最小的外部依赖性。

低资源语言可以从多种语言的联合训练中获益。

模型支持在一个句子中使用多种语言。

随着添加更多新语言,系统会学习识别语系的特征,性能也会提高。

通用的语言无关(language-agnostic)句子嵌入

LASER的句子向量表示对于输入语言和NLP任务都是通用的。该工具将任何语言中的一个句子映射到高维空间中的一个点,目标是使任何语言中的相同语句最终位于同一个域。该表示可以看作是语义向量空间中的一种通用语言。我们已经观察到,空间中的距离与句子的语义紧密程度密切相关。

左边的图像显示了单语嵌入空间。右边是LASER方法的图示,它将所有语言嵌入到一个共享空间中。

我们的方法基于与神经机器翻译相同的基础技术:编码器/解码器方法,也称为序列到序列处理(sequence-to-sequence processing)。我们为所有输入语言使用一个共享编码器,并使用一个共享解码器生成输出语言。编码器是一个5层的双向LSTM网络。与神经机器翻译不同的是,我们不使用注意力机制,而是使用1024维固定大小的向量来表示输入的句子。它是通过对BiLSTM的最后状态进行max-pooling得到的。这使我们能够比较句子的表示形式,并将它们直接输入分类器。

我们的方法的架构

这些句子嵌入用于通过线性转换初始化 decoder LSTM,并在每个时间步上将其连接到输入嵌入。编码器和解码器之间没有其他的连接,因为我们希望输入序列的所有相关信息都被句子嵌入所捕获。

解码器必须要知道应该生成哪种语言。它采用一种语言标识嵌入,该标识在每个时间步中连接到输入和句子嵌入。我们使用带有50000个操作的联合字节对编码(byte-pair encoding, BPE)词汇表,在所有训练语料库的连接上进行训练。由于编码器没有指示输入语言的显式信号,因此该方法鼓励编码器学习与语言无关的表示。

我们基于公共并行数据的2.23亿个句子(这些句子与英语或西班牙语对齐)对系统进行训练。对于每一个mini-batch,我们随机选择一种输入语言,并训练系统将句子翻译成英语或西班牙语。大多数语言都与这两种目标语言对齐,但这不是必需的。

这项工作的开始阶段,我们训练了不到10种欧洲语言,这些语言都使用同一个拉丁字母系统。后来,我们逐渐增加到Europarl语料库中提供的21种语言,结果表明,随着语言的增加,多语言迁移的性能也得到了提高。该系统学习了语言系属(language families)的一般特征。通过这种方式,低资源语言可以从同语系高资源语言的资源中获益。

这可以通过使用在所有语言的连接上进行训练的共享BPE词汇表来实现。我们对每种语言的BPE词汇表分布之间的Kullback-Leiber距离进行了对称聚类分析,结果表明,Kullback-Leiber距离与语言学上定义的语系几乎完全相关。

上图显示了LASER自动发现的各种语言之间的关系。它们非常符合语言学家人工定义的语系。

然后,我们意识到,一个共享的BiLSTM编码器可以处理多个脚本,我们逐渐扩展到所有可用并行文本的语言。纳入LASER的93种语言包括主语-谓语-宾语(SVO)顺序的语言(如英语)、主语-宾语-谓语(SOV)顺序的语言(如孟加拉语和突厥语)、谓语-主语-宾语(VSO)顺序的语言(如他加禄语和柏柏尔语),甚至谓语-主语-宾语(VOS)顺序的语言(如马达加斯加语)。

我们的编码器能够推广到训练期间没有使用的语言(甚至是单语文本)。我们发现,它在一些区域语言上表现很好,如阿斯图里亚语、法罗语、弗里斯兰语、卡舒比语、北摩鹿加语、皮埃蒙特语、斯瓦比亚语和索布语。所有这些语言都在不同程度上与其他主要语言有一些相似之处,但它们的语法或特定词汇有所不同。

这张表显示了LASER在XNLI语料库上的zero-shot迁移性能 (Conneau et al., Evaluating Cross-lingual Sentence Representations, EMNLP’18)。BERT的结果来自它的GitHub README。(注:这些结果是用PyTorch 1.0实现得到的,与本文使用PyTorch 0.4得到的结果略有不同。)

零样本、跨语言的自然语言推理

我们的模型在跨语言自然语言推理(cross-lingual natural language inference, NLI)中取得了良好的效果。在这个任务上的表现是一个强有力的指标,它能很好地说明这个模型是如何表达一个句子的意思的。我们考虑了zero-shot设置,换句话说,是针对英语训练NLI分类器,然后将其应用到所有目标语言,而不需要进行微调或使用目标语言资源。

在14种语言中,有8种语言的zero-shot 性能与英语的性能相比差距不超过5%,包括俄语、汉语和越南语等较远的语言。我们在斯瓦希里语和乌尔都语这样的低资源语言上也取得了不错的成绩。最后,LASER在14种语言中的测试中,有13种语言的表现优于之前所有的zero-shot transfer方法。

我们的系统是完全多语言的,支持不同语言的任意前提和假设组合,这与以前的方法不同,以前的方法需要一个英语句子。

上表显示了LASER如何在不同语言的XNLI语料库中确定句子之间的关系。以前的方法只考虑相同语言的前提和假设。

同样的句子编码器也被用于在大量单语文本中挖掘并行数据。我们只需要计算所有句子对之间的距离并选择最接近的句子对。通过考虑最近的句子和其他最近句子之间的距离,这种方法得到了进一步的改进。这个搜索是使用Facebook的FAISS library高效执行的。

我们在共享BUCC任务上的表现远远超过了当前最高的技术水平。最优的系统是为这项任务专门开发的。我们将德语/英语的 F1得分从 85.5 提高到 96.2,法语/英语的得分从 81.5 提高到 93.9,俄语/英语从 81.3 提高到 93.3,汉语/英语从 77.5 提高到 92.3。所有这些示例都表明,我们的结果在所有语言中都是高度同质的。

该方法的详细描述可以阅读与Mikel Artetxe合著的研究论文Massively Multilingual Sentence Embeddings for Zero-Shot Cross-Lingual Transfer and Beyond

地址:https://arxiv.org/abs/1812.10464

使用任意语言对,同样的方法也可以用来挖掘90多种语言的并行数据。这将显著改善许多依赖于并行训练数据的NLP应用,包括低资源语言的神经机器翻译。

未来的应用

LASER库还可以用于其他相关任务。例如,多语言语义空间的属性可以用于解释句子或搜索具有相似含义的句子——可以使用同一种语言,也可以使用LASER目前支持的93种语言中的任何一种。我们将继续改进模型,在现有的93种语言基础上增加更多的语言。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Laser
    +关注

    关注

    0

    文章

    22

    浏览量

    9243
  • 机器翻译
    +关注

    关注

    0

    文章

    138

    浏览量

    14794
  • 数据集
    +关注

    关注

    4

    文章

    1178

    浏览量

    24351

原文标题:Facebook开源NLP迁移学习工具包,支持93种语言,性能最优

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何激活labview的工具包

    我新下载一个labview2010的 Real_time 工具包,但不知道怎么激活,求助一下。
    发表于 12-25 13:04

    工具包卸载

    之前下载一个生成报表的工具包,结果安装之后不能用,现在下载一个新的,请问需不需要把原来的卸载掉再安装?如果要卸载的话,要怎么卸载,请各位大侠指教~
    发表于 03-22 10:09

    PID工具包

    新手求助:PID工具包怎么用?
    发表于 05-06 09:57

    小弟求助labview8.5报表生成工具包!!!

    小弟求助labview8.5报表生成工具包!!!小弟求助labview8.5报表生成工具包!!!小弟求助labview8.5报表生成工具包!!!小弟求助labview8.5报表生成工具包
    发表于 05-28 14:44

    Labview2010如何加载工具包

    本帖最后由 eehome 于 2013-1-5 09:41 编辑 Labview2010如何加载工具包?安装了2010以后没看到工具包的激活选项或者安装选项请教前辈下如何选择加载工具包
    发表于 12-31 15:36

    PIC 语言工具包问题

    大家好,PIC 我是新手,有个简单的问题请教一下,就是我导入一个mcp的,mplab会报语言工具包不对,这个要如何处理,因我导的是网上下下来的,所以不知道之前用的是什么语言工具包
    发表于 04-19 14:00

    fastrbf工具包

    求matlab中fastrbf的工具包 ,有谁有这个工具包呢?求分享?急需
    发表于 03-05 20:05

    工具包

    谁有 Excel和MS Office Report专用工具包
    发表于 04-08 19:55

    labvIEW8.6 PID工具包

    跪求一份labvIEW8.6 PID工具包,谢谢各位大神
    发表于 05-12 19:32

    关于labview工具包

    请问各位大神一个问题,LabVIEW的工具包如何下载,比如声音和振动工具包,官网上只有下载界面。
    发表于 09-04 19:27

    工具包

    谁有labview视觉工具包2013适用的??分享一下,不胜感激
    发表于 04-27 23:28

    PID工具包的使用

    我安装完PID工具包怎么使用不了里面的VI,而且设计不了模糊系统
    发表于 05-10 10:52

    java开源工具包-Jodd框架

    Jodd是一个Java工具包和微型框架,Jodd 工具包含一些实用的工具类和小型框架,增强了 JDK 提供很多强大的功能,可以帮助实现日常的开发任务,让代码更可靠;而Jodd 框架是一
    发表于 03-19 16:13

    DCT工具包

    2017版32位的LABVIEW数据库DCT工具包请教大神们发一下 多谢
    发表于 09-28 08:41

    Facebook研究者扩展并增强LASER工具包,并在近期开源这个项目

    LASER 中的句子向量表征对于输入语言和 NLP 任务都是通用的。该工具将任何语种的句子映射到高维空间中的一个点,目的是将各语种的语句最终聚合在同一邻域附近,而这种句子表征可被视为是语义向量空间中的通用语言。如下图所示,可以看
    的头像 发表于 01-28 09:40 3131次阅读
    <b class='flag-5'>Facebook</b>研究者扩展并<b class='flag-5'>增强</b><b class='flag-5'>LASER</b><b class='flag-5'>工具包</b>,并在近期<b class='flag-5'>开源</b>这个项目