发布时间:2022-12-23 18:00
前段时间,谷歌发布了基于双向 Transformer 的大规模预训练语言模型 BERT,该预训练模型能高效抽取文本信息并应用于各种 NLP 任务,该研究凭借预训练模型刷新了 11 项 NLP 任务的当前最优性能记录。技术博主 Jay Alammar 近日发文通过图解方式生动地讲解了 BERT 的架构和方法基础。
2018 年是机器学习模型处理文本(更准确地说是自然语言处理,简称 NLP)的一个转折点。如何最好地表征词和句子以便最好地理解其潜在含义和关系?我们对此的概念理解正在快速演进。此外,NLP 社区也一直都在提出强大的新组件——你可以免费下载它们并将其用在你自己的模型和流程中(这被称为 NLP 的 ImageNet 时刻,是指这类似于多年前用于计算机视觉任务的机器学习的加速发展)。
ULM-FiT 和 Cookie Monster 没任何直接联系,但我想不到其它东西……
这一领域最近的里程碑是 BERT 的发布,人们将这一事件誉为 NLP 新时代的开端。BERT 这种模型打破了多项模型处理基于语言的任务的纪录。在描述该模型的论文发布之后不久,其研究团队还开源了该模型的代码,并发布了可供下载的模型版本——已经在大规模数据集上经过预训练。这是一个重大的进展,因为它让任何人都可以构建涉及语言处理的机器学习模型,并将这种强大工具用作其中的组件——这能节省从头开始训练语言处理模型所需的时间、精力、知识和资源。
BERT 的开发分为两个步骤。你可以下载在步骤 1 中预训练过的模型(在无标注数据上训练过);只需考虑针对步骤 2 进行调整。
BERT 的开发基础包含很多 NLP 社区内近期涌现出的聪明思路,其中包括但不限于半监督序列学习(来自 Andrew Dai and Quoc Le)、ELMo(来自 Matthew Peters 以及 AI2 和华盛顿大学计算机科学与工程系的研究者)、ULMFiT(来自 fast.ai 创始人 Jeremy Howard 和 Sebastian Ruder)、OpenAI transformer(来自 OpenAI 的研究者 Radford、Narasimhan、Salimans 和 Sutskever)、Transformer(Vaswani et al)。
要恰当地了解 BERT 究竟是什么,你需要了解很多概念。所以我们先来看看可以如何使用 BERT,之后再介绍涉及该模型的概念。
示例:句子分类
使用 BERT 最直接的方式是将其用于分类单个文本。该模型看起来会是这样的:
为了训练这样一个模型,你主要必须训练分类器(Classifier),而让 BERT 模型在训练过程中有尽可能小的变化。这个训练阶段被称为微调(Fine-Tuning),而且源自半监督序列学习和 ULMFiT。
为不熟悉这一主题的人解释一下:因为我们正在谈论分类器,那么我们就处于机器学习的监督学习领域。也就是说我们需要一个有标注的数据集来训练模型。对于这个垃圾邮件分类器示例,有标注的数据集即为邮件信息和对应标签构成的列表(每条邮件信息被标注为「垃圾邮件」或「非垃圾邮件」)。
这种用例的其它示例包括:
情感分析
输入:电影/产品评论。输出:这个评论是正面的还是负面的?
示例数据集:SST:https://nlp.stanford.edu/sentiment/