跳转到主要内容
Chinese, Simplified

语言,它是我们生活中最复杂的方面之一。 我们用它来相互交流,与世界交流,与我们的过去和未来交流。 但语言不仅仅是一种交流方式; 这是我们了解发生在我们时代之前的故事并使我们的故事能够传达给后继者的唯一途径。
因为语言几乎是我们的生活所围绕的,我们一直渴望计算机能够理解我们的语言并以我们完全理解的形式与我们交流。 这种愿望与计算机本身的倒置一样古老。
这就是为什么研究人员不知疲倦地工作来驱动算法、构建模型和开发软件,以使计算机更容易理解我们并与我们交流。 然而,在过去的几十年里,技术爆炸式增长,使得新算法比以往任何时候都更复杂、更准确、更简单、更好、更快。

作为一名数据科学家,工作的一个重要部分是跟上技术的最新进展,我们可以使用这些技术更好、更有效地完成工作。 我们需要收集、分析和处理的数据量越来越大,但我们需要更快更好地完成所有这些工作。
实现这一目标的唯一方法是改变我们做事的方式; 我们需要找到更好的方法、更复杂的方法和更高级的方法。 那是研究人员的工作; 作为数据科学家,我们的工作理念是了解最新进展并了解使用它们的最佳方式。
本文将向您展示 5 种自然语言处理模型,如果您想了解该领域的最新情况并希望您的模型更准确地执行,您需要熟悉这些模型。

№1:BERT


BERT 代表来自 Transformers 的双向编码器表示。 BERT 是一种预训练模型,旨在从单词的左右两侧驱动单词的上下文。 BERT 代表了 NLP 的新时代,因为虽然非常准确,但它基本上基于两个简单的想法。
BERT 的核心是两个主要步骤,预训练和微调。在模型的第一步中,BERT 通过各种训练任务针对未标记的数据进行训练。这是通过执行两个无监督任务来完成的:

  • Masked ML:在这里,通过覆盖(屏蔽)一些输入标记来随机训练深度双向模型,以避免被分析的单词可以看到自己的循环。
  • 下一句预测:在这个任务中,每个预训练设置每个 50% 的时间。如果句子 S1 后跟 S2,则 S2 将被标记为 IsNext。但是如果 S2 是一个随机句子,那么它就会被标记为 NotNext。

完成后,就是微调的时候了。在这个阶段,模型的所有参数都使用标记数据变得更好。这个标记数据是从“下游任务”中获得的。每个下游任务都是具有微调参数的不同模型。
BERT 可以用在很多应用中,例如命名实体识别和问答。如果你想使用 BERT 模型,你可以使用 TensorFlow 或 PyTorch。

№2:XLNet


XLNet 是由来自谷歌和卡内基梅隆大学的一组研究人员开发的。它被开发用于处理常见的自然语言处理应用程序,例如情感分析和文本分类。
XLNet 是一种经过预训练的广义自回归模型,以充分利用 Transformer-XL 和 BERT 的优势。 XLNet 利用 Transformer-XL 的自回归语言模型和自动编码或 BERT。 XLNet 的主要优势在于它的设计具有 Transformer-XL 和 BERT 的优势,而没有它们的局限性。
XLNet 包含与 BERT 相同的基本思想,即双向上下文分析。这意味着它会同时查看被分析令牌之前和之后的单词,以预测它可能是什么。 XLNet 超越了这一点,并计算了一系列单词关于其可能排列的对数似然。
XLNet 避免了 BERT 的限制。它不依赖于数据损坏,因为它是一个自回归模型。实验证明,XLNet 的表现优于 BERT 和 Transformer-XL。
如果你想在你的下一个项目中使用 XLNet,开发它的研究人员在 Tensorflow 中发布了 XLNet 的官方实现。此外,XLNet 的实现可用于翼 PyTorch。

№3:罗伯塔 (RoBERTa)


RoBERTa 是一种自然语言处理模型,它建立在 BERT 之上,专门用于克服其一些弱点并提高其性能。 RoBERTa 是 Facebook AI 和华盛顿大学的研究人员进行的研究的结果。
该研究小组致力于分析双向上下文分析的性能,并确定了一些可以通过使用更大的新数据集来训练模型并删除下一句预测来提高 BERT 性能的更改。
这些修改的结果是 RoBERTa,它代表 Robustly Optimized BERT Approach。 BERT 和 RoBERTa 的区别包括:

  • 更大的训练数据集,大小为 160GB。
  • 更大的数据集和迭代次数增加到 500K 导致训练时间更长。
  • 删除模型的下一句预测部分。
  • 更改应用于训练数据的掩蔽 LM 算法。

RoBERTa 的实现作为 PyTorch 包的一部分在 Github 上作为开源提供。


№4:阿尔伯特(ALBERT)


ALBERT 是另一个 BERT 修改模型。在使用 BERT 时,谷歌的研究人员注意到预训练数据集的大小不断增加,这影响了运行模型所需的内存和时间。
为了克服这些缺点,谷歌的研究人员推出了一个更轻的 BERT 版本,或者他们将其命名为 ALBERT。 ALBERT 包括两种方法来克服 BERT 的内存和时间问题。这是通过分解嵌入的参数化并以跨层方式共享参数来完成的。

此外,ALBERT 包括一个自我监督的损失来执行下一句预测,而不是在预训练阶段建立。 这一步是为了克服 BERT 在句子间连贯性方面的局限性。
如果您想体验 ALBERT,可以在 Github 上的 Google 研究存储库中找到由 Google 开发的原始代码库。 您还可以通过 TensorFlow 和 PyTorch 使用实现 ALBERT。

№5:StructBERT


也许到目前为止最新的扩展或 BERT 是 StructBERT。 StructBERT是阿里巴巴研究团队开发构建的BERT全新增强模型。到目前为止,BERT 只考虑了文本的句子级排序,而 ALBERT 则通过使用单词级和句子级排序来克服这一点。
这些技术包括在我们执行预训练过程时捕获句子的语言结构。他们对BERT的主要扩展可以概括为两个主要部分:词结构和句子结构目标。
ALBERT 通过在掩码 LM 阶段混合特定数量的标记来提高 BERT 预测正确句子和单词结构的能力。
使用 ALBERT 进行的实验表明,它在不同的自然语言处理任务(例如为 BERT 开发的原始任务(包括问答和情感分析))中的表现要好于 BERT。
BERT 的源代码尚未作为开源提供,研究团队未来将其放在 Github 上的意图尚不清楚。


关键点


总的来说,数据科学领域,特别是自然语言处理,发展非常迅速。有时,对于在该领域工作了一段时间的经验丰富的数据科学家和旨在从事数据科学职业的初学者来说,这种快速的步伐可能会让人不知所措。
老实说,阅读研究论文从来都不是一项有趣的任务。它们很长,故意以复杂的格式编写,而且通常不容易浏览。这就是为什么我总是欣赏一篇总结算法主要思想以及何时可以使用它们的直截了当的文章。

在本文中,我介绍了 5 种自然语言处理模型,这些模型比之前的模型更先进、更复杂、更准确,并且很快就会向更好的模型迈进。
我希望这篇文章能让您了解外面有什么,不同模型是如何工作的,也许,只是也许,激发了一个新的项目想法,您可以在阅读完本文后立即开始。

原文:https://towardsdatascience.com/5-nlp-models-that-you-need-to-know-about…

本文:

Tags

Article
知识星球
 
微信公众号
 
视频号