让AI触类旁通93种语言:Facebook推出跨语言句嵌入,搞定小语种

夏乙 发自 凹非寺

量子位 出品 | 公众号 QbitAI

让AI触类旁通93种语言:Facebook推出跨语言句嵌入,搞定小语种

搞定一种语言之后,是不是很希望算法能在近百种语言上无缝迁移?

AI真能无师自通,对于我们这些“因为语言不通而分散在各处”的人们来说,简直是天大的福音。

新鲜出炉的Facebook“多语种句嵌入”,就是这样一种“神器”。他们提出了一种新架构,为横跨34个语族、28种不同文字写成的的93种语言,学习了统一的联合多语种句嵌入。

举个例子,只要用标注好的英语数据训练一个分类器算法,教会它判断一个英语句子是不是少儿不宜,就可以无缝迁移到其他语言上,不管你是豪萨语、鞑靼语还是汉语粤方言,它都能判断有没有少儿不宜。

能一下子准备好接受这么多种语言,是怎么做到的呢?

我们来看一下这个系统的架构

让AI触类旁通93种语言:Facebook推出跨语言句嵌入,搞定小语种

它由编码器(encoder)、解码器(decoder)两大部分组成。其中,编码器是个无关语种的BiLSTM,负责构建句嵌入,这些句嵌入接下来会通过线性变来换初始化LSTM解码器。

为了让这样一对编码器、解码器能处理所有语言,还有个小条件:编码器最好不知道输入的究竟是什么语言,这样才能学会独立于语种的表示。所以,还要从所有输入语料中学习出一个“比特对嵌入词库”(BPE)。

不过,解码器又有着完全相反的需求:它得知道输入的究竟是什么语言,才能得出相应的输出。于是,Facebook就为解码器附加了一项输入:语言ID,也就是上图的Lid

训练这样一个系统,Facebook用了16个英伟达V100 GPU,将batch size设置为12.8万个token,花5天时间训练了17个周期。

架构说起来不算复杂,效果怎么样呢?

让AI触类旁通93种语言:Facebook推出跨语言句嵌入,搞定小语种

用包含14种语言的跨语种自然语言推断数据集(cross-lingual natural language inference,简称XNLI)来测试,这种多语种句嵌入(上图的Proposed method)零数据(Zero-Shot) 迁移成绩,在其中13种语言上都创造了新纪录,只有西班牙语例外。

另外,Facebook用其他任务测试了这个系统,包括ML-Doc数据集上的分类任务、BUCC双语文本数据挖掘。他们还在收集了众多外语学习者翻译例句的Tatoeba数据集基础上,制造了一个122种语言对齐句子的测试集,来证明自家算法在多语言相似度搜索任务上的能力。

最后,附上传送门~

论文:

让AI触类旁通93种语言:Facebook推出跨语言句嵌入,搞定小语种

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

Mikel Artetxe, Holger Schwenk

https://arxiv.org/pdf/1812.10464.pdf

代码也即将开源,会直接更新到Facebook之前放出的无关语种句嵌入库LASER中:

让AI触类旁通93种语言:Facebook推出跨语言句嵌入,搞定小语种

https://github.com/facebookresearch/LASER

版权所有,未经授权不得以任何形式转载及使用,违者必究。