【NLP】哪些现成的“已预先训练的语言模型”可以使用

 一、说明

        预先训练的通用语言表示模型有着如此悠久的历史,具有巨大的影响,我们理所当然地认为它们是所有NLP任务的完全100%必要基础。有两个独立的步进函数创新推动了所有NLP任务的准确性:(1)统计语言模型,如Word2Vec和GloVe,以及最近的(2)神经语言模型,如BERT,ELMo和最近的BLOOM。在建模工作流开始时插入预先训练的神经语言模型几乎可以保证提高性能,这种结果在大部分情况成立,但至少有一种情况不同。

【NLP】哪些现成的“已预先训练的语言模型”可以使用_第1张图片

 

二、命名实体识别 (NER)

        只需看看标题为“BERT:用于语言理解的深度双向转换器的预训练”的原始BERT论文,就可以在第5节中查看有关预训练BERT嵌入如何提高NER性能的详细分析。下面的BERT图显示了利用任何语言模型执行常规NLP任务的典型机器学习工作流程。

【NLP】哪些现成的“已预先训练的语言模型”可以使用_第2张图片

        资料来源:https://arxiv.org/pdf/1810.04805.pdf — BERT的整体预培训和微调程序

        这些论文还显示了针对SQUAD评估的问答(QA)和称为GLUE的自然语言理解(NLU)任务的大杂烩的显着改进。

三、实体消除歧义 (ED)

        全球ED任务还使用BERT在多个数据集上获得了新的最先进的结果。请参阅此“使用BERT消除全局实体歧义”的相关工作部分,了解将BERT应用为ED预处理步骤的各种工作流程的概要。

四、抽取摘要 (ES)

BERT在多个ES数据集上再次实现最新性能的简单变体可以在“微调BERT以进行抽取摘要”中找到。

五、情绪分析 (SA)

        再一次,情感分析同样受到最近论文“BERT用于情感分析:预训练和微调替代方案”中BERT语言模型的存在。

        我可以继续前进...但我不会。预训练语言模型的荣耀是显而易见的。我们只需要站在巨人的肩膀上,他们花费了无数个小时准备大量数据语料库,部署昂贵的GPU为我们预先训练这些模型。不过,这些模型并不是灵丹妙药。

芝麻街和朋友未能显示一致的性能改进的主要自然语言任务是神经机器翻译(NMT)。

六、NMT 通常不会从预训练语言模型中受益

        很难找到讨论为什么它不起作用的论文,也很容易想象为什么。写关于什么不起作用的论文不是很受欢迎......并且不太可能获得认可或经常被引用。啊,那我为什么又要写这篇文章了?

        我找到了一篇关于这个主题的论文:“预训练的单词嵌入何时以及为什么对神经机器翻译有用?,这是一本有趣的读物。他们将 NMT 分解为两类任务:

  1. 适用于低资源语言的 NMT
  2. 用于高资源语言的 NMT

        他们所说的低/高资源语言是指可以获得的并行语料库的大小。对于世界上最受欢迎的语言,很容易在网上找到开源的大型并行语料库。最大的此类存储库是OPUS,即开放并行语料库,对于任何希望训练NMT模型的机器学习工程师来说,这是一个了不起的资源。

【NLP】哪些现成的“已预先训练的语言模型”可以使用_第3张图片

来源:OPUS - 英语(en)和中文(zh)之间的高资源并行语料库

        上图显示,中英文之间的开放平行语料库有 103.172 亿个平行句子或 6K 个平行文档。但是,如果您想训练一个 NMT 模型将波斯语翻译成中文怎么办?在这种情况下,您只有来自 517 个文档的 <> 万个平行句子可供处理。

【NLP】哪些现成的“已预先训练的语言模型”可以使用_第4张图片

        资料来源:OPUS - 波斯语(fa)和中文(zh)之间的低资源平行语料库

        正如您所料,低资源语言受益于预先训练的语言模型,并且在微调嵌入时能够获得更好的性能,同时通过 NMT 网络反向传播错误。然而,令人惊讶的是,对于高资源语言,在 NMT 模型训练之前使用预训练语言模型作为预处理步骤的效果并不会导致性能提升。

        需要指出的是,语言模型只有在同时接受源语言和目标语言(例如,第一个示例中的中文和英文)的训练时,才有意义用于机器翻译。这些通常称为多语言嵌入模型或与语言无关的嵌入。他们能够实现有趣的结果,即多种语言的单词在嵌入空间中实现相似的向量表示。

【NLP】哪些现成的“已预先训练的语言模型”可以使用_第5张图片

来源:AI 谷歌博客

        但是多语言语言模型是如何训练的呢?事实证明,他们使用与NMT完全相同的数据进行训练:源语言和目标语言之间的大规模并行语料库。那么,语言模型是否存在根本缺陷,阻止它们有效地完成这项NLP任务?不,语言模型使用与 NMT 模型相同的数据,并且它们都是从同一个强大的构建块构建的:转换器。

        回顾一下,语言模型和 NMT 使用非常相似的基本架构在相同的数据上进行训练。当你考虑到这些相似之处时,语言模型并没有带来任何新的东西,所以你不应该感到惊讶,BERT,ELMo,ERNIE和我们的其他芝麻街朋友没有出现在NMT论文中吹捧模型性能的巨大突破。

        持怀疑态度的读者可能会在这个解释中找出漏洞。当然有一些可设计的用例是在大型并行语料库上训练LM,然后在更小的语料库上训练BERT + NMT工作流程将直观地导致性能提升。但我认为,一个严肃的深度学习工程师不太可能在没有所有可用数据的情况下尝试构建 NMT 模型......在纯粹的学术好奇心之外。

        所以如果你有兴趣,我建议阅读原文!

        我希望你喜欢这个简短的探索,了解NLP算法成功背后的直觉。请点赞、分享、关注更多深度学习知识。

你可能感兴趣的:(机器学习和深度学习,自然语言处理,语言模型,人工智能)