非死book开源增强版LASER可使用90多种语言
jopen 6年前
<p>为了加速将自然语言处理(NLP)应用到更多的语言,非死book <a href="/misc/goto?guid=5047998018022308599">开源了增强版 LASER 库</a>,成为第一个成功地与 NLP 社区分享的大型多语种句子表示工具。该工具目前可以使用 90 多种语言,涉及 28 种不同的字符表。</p> <p style="text-align:center"><img alt="非死book开源增强版LASER可使用90多种语言" src="https://simg.open-open.com/show/45d65d14841f735d8fa88822aa798700.gif" /></p> <p>LASER 通过将所有语言都嵌入在一个共享空间来实现这点(而不是不同语言使用着不同的模型)。非死book 同时开源的还有<a href="/misc/goto?guid=5047998018168737362">免费提供的多语言编码器和 PyTorch 代码</a>,以及包括 100 多种语言的多语言测试集。</p> <p>LASER 实现了从一种语言(如英语)到其他几种语言(包括训练数据极为有限的语言)进行 NLP 零样本迁移的大门,是第一个使用单个模型处理各种语言的库(其中包括低资源语言,如卡拜尔语、维吾尔语,以及吴语等方言)。有朝一日,这项工作可以帮助 非死book 或其他公司推出些特定的 NLP 功能,例如可以将同一语言的电影评论分正面和负面,然后用其他 100 多种语言进行发布。</p> <p><strong>LASER 功能亮点</strong></p> <p>LASER 为 XNLI 语料库(注:语料库一词在语言学上意指大量的文本)14 种语言中的 13 种带来了更高的零样本跨语言自然语言推理准确率,在跨语言文档分类、并行语料库挖掘、多语言相似性(即使是低资源语言)方面也有很好的表现。</p> <p><strong>LASER 还拥有以下优势:</strong></p> <ul> <li> <p>极快的性能,能在 GPU 上每秒处理多达 2000 个句子。</p> </li> <li> <p>句子编码器是在 PyTorch 中实现的,只需很少的外部依赖。</p> </li> <li> <p>资源有限的语言可以从多种语言的联合训练中受益。</p> </li> <li> <p>该模型支持在一个句子中使用多种语言。</p> </li> <li> <p>随着新语言的加入,系统会学习识别其语系特征,从而使相关性能有所提高。</p> </li> </ul> <p><strong>通用、语言无关的句子嵌入</strong></p> <p>LASER 的句子向量表示对输入语言和 NLP 任务是通用的。该工具将任何语言的句子映射到高维空间中的一个点,为的是任何语言中的相同语句最终会出现在同一邻域中。该表示可以被视为语义向量空间中的一种通用语言。非死book 观察到,该空间中的距离与句子的语义接近度非常相关。(见下图,图左显示的是单语嵌入空间,图右说明了 LASER 的方法——将所有语言嵌入到同一共享空间。)</p> <p style="text-align:center"><img alt="非死book开源增强版LASER可使用90多种语言" src="https://simg.open-open.com/show/8c8985ebaae78e681fd44452cf011765.png" /></p> <p>LASER 的方法建立在与神经机器翻译相同的基础技术之上:编码器/解码器方法,也称为序列到序列处理。非死book 为所有输入语言使用一个共享编码器,并使用共享解码器生成输出语言。编码器是五层双向 LSTM(长短期记忆)网络。与神经机器翻译相比,非死book 不使用注意机制,而是使用 1024 维固定大小的向量来表示输入句子。它是通过对 BiLSTM 的最后状态进行最大池化来获得的。这使得句子表示能够被比较并直接输入到分类器。下图说明的是 LASER 的结构。</p> <p style="text-align:center"><img alt="非死book开源增强版LASER可使用90多种语言" src="https://simg.open-open.com/show/cf8435b10029730fbbdc4951c4256bfa.png" /></p> <p><strong>零样本、跨语言的自然语言推理</strong></p> <p>该模型在跨语言自然语言推理(NLI)中取得好的成绩,而这项任务的表现是一个强有力的指标,代表着模型可以表示句子的意义。关于零样本设置,可以在英语上训练 NLI 分类器,然后在没有微调或目标语言资源的情况下将其应用于所有目标语言。14 种语言中的 8 种,零样本性能在英语表现的5% 以内,其中包括俄语,中文和越南语等。此外,也在斯瓦希里语和乌尔都语等低资源语言上取得好的成绩。在最后,14 种语言中,LASER 有 13 种语言的表现优于所有以前的零样本迁移方法。</p> <p>与之前需要句子为英语的方法相比,该系统是完全可以多语言的,并且支持不同语言的前提和假设的组合。下表显示了 LASER 如何能够确定不同语言的 XNLI 语料库中句子之间的关系,而以前的方法只考虑了同一语言的前提和假设。</p> <p style="text-align:center"><img alt="非死book开源增强版LASER可使用90多种语言" src="https://simg.open-open.com/show/14ca7203977007605c345d1967ffd68b.png" /></p> <p>此外,相同的句子编码器也被用于挖掘大量单语文本中的并行数据,只需要计算出所有句子间的距离,并选择距离最小的一对句子(语言对)。这在共享 BUCC 任务上的表现远远超过了现有水平。(该方法的详细描述可见论文:<a href="/misc/goto?guid=5047998018317248395">https://arxiv.org/abs/1812.10464</a>)</p> <p>一样的方法可以用在使用任何语言对,来挖掘 90 多种语言的并行数据。预计这将改善许多依赖于并行训练数据的 NLP 应用程序,包括低资源语言的神经机器翻译。</p> <p><strong>未来的应用</strong></p> <p>LASER 库也可用于其他相关任务。比如多语言语义空间的属性,就可用于对同种语言或 LASER 现支持的其他 93 种语言做出句子的解释、或是搜索相似含义的句子。非死book 表示将继续改进模型、新增更多的语言。</p> <p>新闻来源:<a href="/misc/goto?guid=5047998018022308599">https://code.fb.com/ai-research/laser-multilingual-sentence-embeddings</a></p>