宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对-编程部落

  作者:camel

  雷锋网 AI 科技评论按:当前自然语言处理中的大多数方法都是数据驱动的,大多数多语言模型(特别是神经机器翻译系统)都需要并行语料库进行训练。大多数的并行文本都只是适用于几个主要语言(例如英语、汉语),且限制于特定的领域。

  为了解决这一问题,在去年七月份,Facebook 曾发布了第一个系统处理 Wikipedia 上所有语言(包括资源贫乏的语言和方言)的数据集 WikiMatrix,大约包含了亿级的并行语料,覆盖 1620 种语言对。

  据雷锋网 AI 科技评论了解,最近 Facebook 基于新的方法和数据源,开发并开源了一个目前为止最大的并行语料数据集 CCMatrix。这个数据集包含 45 亿并行语料(是 WikiMatrix 的近 50 倍),覆盖 576 种语言对。

Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对-编程部落

  论文:https://arxiv.org/abs/1911.04944

  数据集开源地址:https://github.com/facebookresearch/LASER/tree/master/tasks/CCMatrix

  语料库构建

  首先,从语料来源上讲。目前有几个公共的多语言并行语料库,主要来自一些国际会议(如 European Parliament 、the United Nations)的语料,这些都是专业的人工翻译语料,使用语言较为正式,且仅限于政治主题。此外也有几个依靠志愿者翻译而形成的语料库,例如 news commentary 、Opensub- Titles 、the TED corpus 等。2019 年 Facebook 的 Schwenk 等人曾利用 Wikipedia 中的语料进行挖掘,从而开发了 WikiMatrix 数据集。

  以上这些,从数据来源上讲都有局限。为了使并行语料库量大、覆盖主题广泛,Facebook 在 CCMatrix 这项工作中,选择使用了随机抓取 web 中的数据作为并行语料的来源,他们每个月随机发送 url,从而获得包含各种语言的网页快照(TB 级)。  

Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对-编程部落
十次快照语料中,不同语言的单句数量(其中一次快照只包含英语)

  然后通过预处理去除高达 70% 的重复数据(例如模板文件、导航菜单、cookie 等),并使用 fastText(语言识别器,可以识别 176 种语言)来识别文档中的语言,最后使用一个在 Wikipedia 上训练的模型来过滤掉低质量的内容,只保留较低困惑度的文档。如此处理获得一个包含有 327 亿个句子的 CCNet 数据集。 

  在这项工作中,使用的挖掘方法的底层思想是,首先学习一种多语言的语义嵌入,即在一个嵌入空间中语义上相似的句子会有较近的距离,而与它们所使用的语言无关。这意味着空间中的距离可以作为两个句子是否是相互翻译的指标。 

Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对-编程部落
用于大规模训练多语言句嵌入的框架 

  不过由于余弦距离的绝对阈值在全局上并不一致,所以 Schwenk 在这里所采用的是 Margin criterion: 

Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对-编程部落
  

  语料库分析

  在超过 320 亿个句子中挖掘平行语料,计算上是非常昂贵的。在当前版本的 CCMatrix 语料库中,作者限制为 38 种语言。 

Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对-编程部落

  CCMatrix:这里给出了单语文本的数量和提取的平行句子的数量(单位:百万),margin 阈值为 1.06,以及在 TED 测试中的 BLEU 分数。(编者注:这是 11 月份数据,当时数据集规模为 35 亿并行语料,下同) 

Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对-编程部落

  CCMatrix:每种语言对的并行语料数量(单位:百万),Margin 阈值为 1.06。举例来说,希腊语/汉语对的语料数量为 470 万。 

  定性评估  

  为了评估这个数据集的质量,Schwenk 等人还利用这个数据集进行了神经机器翻译系统的测试,并与几个公共测试集进行了对比。 

  1、在 TED 数据集上进行测试 

  Schwenk 等人首先用 CCMatrix 对神经翻译系统(NMT)进行训练,然后在 TED 数据集上进行测试,结果如下:

Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对-编程部落

  这里只选择了其中的 27 种语言。以上所有 BLEU 值的平均值为 14.3,英语对的平均 BLEU 值为 26.7,最高的 BLEU 值为 42.9。 

  当然,在 TED 上的 SOTA 远比这些高;但需要注意,这里测试所用的 NMT 系统没有使用 Transformer 框架等最新技术。

  2、在 WMT’19 上评估 

Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对-编程部落

  上图是在 Newstest’18(NT’18)和 Newtest’19(NT‘19)测试集上的 BLEU 分数。可以看到,使用 CCMatrix,可以提供非常有竞争力的 BLEU 分数。 

  3、在 WAT’19 上评估

Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对-编程部落

  利用 CCMatrix 在亚洲翻译研讨会的俄语/日语翻译任务上进行的测试如上图所示。这里所使用的模型与前面一样,没有 Transformer,没有 layer dropout。尽管相比 SOTA 略差,但仍然在同一层次。 

  总结

  CCMatrix 使 NMT 研究社区能够利用比以前仅几十种语言对更大的双语料数据集。这可以加速创建更有效的 NMT 模型,这些模型可以使用更多的语言,尤其是语料库相对有限的资源较少的模型。 

  由于规模庞大且使用了大量公共文本,或许 CCMatrix 将成为 NMT 领域中用于构建和评估系统的最常用资源之一。 

  当然,Facebook 在构建 CCMatrix 过程中所提出的数据集构建方法更值得推广,或许能够帮助更多人来创建大规模数据集。

  参考资料:

  facebook 开源官宣:https://ai.facebook.com/blog/ccmatrix-a-billion-scale-bitext-data-set-for-training-translation-models/CCMatrix

  论文:https://arxiv.org/abs/1911.04944CCMatrix

  开源链接:https://github.com/facebookresearch/LASER/tree/master/tasks/CCMatrix