↑↑↑关注后"星标"Datawhale
每日干货 & 每月组队学习,不错过
Datawhale干货
作者:张贤,哈尔滨工程大学,Datawhale原创作者
本文约7000字,NLP专栏文章,建议收藏阅读
审稿人:Jepson,Datawhale成员,毕业于中国科学院,目前在腾讯从事推荐算法工作。
一、前言
2018 年是机器学习模型处理文本(或者更准确地说,自然语言处理或 NLP)的转折点。我们对这些方面的理解正在迅速发展:如何最好地表示单词和句子,从而最好地捕捉基本语义和关系?此外,NLP 社区已经发布了非常强大的组件,你可以免费下载,并在自己的模型和 pipeline 中使用(今年可以说是 NLP 的 ImageNet 时刻,这句话指的是多年前类似的发展也加速了 机器学习在计算机视觉任务中的应用)。

ULM-FiT 与 Cookie Monster(饼干怪兽)无关。但我想不出别的了...
BERT的发布是这个领域发展的最新的里程碑之一,这个事件标志着NLP 新时代的开始。BERT模型打破了基于语言处理的任务的几个记录。在 BERT 的论文发布后不久,这个团队还公开了模型的代码,并提供了模型的下载版本,这些模型已经在大规模数据集上进行了预训练。这是一个重大的发展,因为它使得任何一个构建构建机器学习模型来处理语言的人,都可以将这个强大的功能作为一个现成的组件来使用,从而节省了从零开始训练语言处理模型所需要的时间、精力、知识和资源。

BERT 开发的两个步骤:第 1 步,你可以下载预训练好的模型(这个模型是在无标注的数据上训练的)。然后在第 2 步只需要关心模型微调即可。
你需要注意一些事情,才能理解 BERT 是什么。因此,在介绍模型本身涉及的概念之前,让我们先看看如何使用 BERT。
二、示例:句子分类
使用 BERT 最直接的方法就是对一个句子进行分类。这个模型如下所示:

为了训练这样一个模型,你主要需要训练分类器(上图中的 Classifier),在训练过程中 几乎不用改动BERT模型。这个训练过程称为微调,它起源于Semi-supervised Sequence Learning 和 ULMFiT。
由于我们在讨论分类器,这属于机器学习的监督学习领域。这意味着我们需要一个带有标签的数据集来训练这样一个模型。例如,在下面这个垃圾邮件分类器的例子中,带有标签的数据集包括一个邮件内容列表和对应的标签(每个邮件是“垃圾邮件”或者“非垃圾邮件”)。

其他一些例子包括:
1) 语义分析
输入:电影或者产品的评价。输出:判断这个评价是正面的还是负面的。
数据集示例:SST (https://nlp.stanford.edu/sentiment)
2)Fact-checking
输入:一个句子。输出:这个句子是不是一个断言
参考视频:https://www.youtube.com/watch?v=ddf0lgPCoS