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