自然语言处理中的自监督学习

2020-05-25 02:48:24

虽然计算机视觉在最近几年才在自我监督学习方面取得了令人惊叹的进展,但自我监督学习在很长一段时间内一直是NLP研究的一等公民。语言模型早在90年代就已经存在了,甚至在“自我监督学习”这个词被定义之前就已经存在了。2013年的word2vec论文普及了这一范式,该领域在许多问题上应用这些自我监督的方法取得了快速进展。

这些自我监督方法的核心是一个称为“借口任务”的框架,它允许我们使用数据本身来生成标签,并使用监督方法来解决非监督问题。这些也称为“辅助任务”或“预训任务”。通过执行此任务了解到的表示可以用作我们下游监督任务的起点。

在这篇文章中,我将概述研究人员设计的各种借口任务,这些任务是为了在没有明确数据标签的情况下从文本语料库中学习表示。本文的重点将放在任务的制定上,而不是它们所实现的体系结构上。

在这个公式中,我们取一定窗口大小的文本的一小块,我们的目标是预测给定周围单词的中心单词。例如,在下图中,我们有一个大小为1的窗口,因此在中心词的两侧各有一个词。使用这些相邻的单词,我们需要预测中心单词。这一提法在word2vec白皮书著名的“连续不断的词袋”方法中得到了应用。

在这个公式中,我们取一定窗口大小的文本的跨度,我们的目标是预测给定中心词的周围词。这一提法在word2vec论文中著名的“跳格”方法中得到了实施。

在这个公式中,我们取三个连续的句子,并设计一个任务,其中给定中心句子,我们需要生成上一句和下一句。它类似于前面的跳过文法,但适用于句子而不是单词。这一提法已被用于“跳过思维向量”的论文中。

在这个公式中,我们取大量未标记文本语料库,并建立一个任务来预测给定先前单词的下一个单词。因为我们已经知道语料库下一个单词应该是什么,所以我们不需要手动注释的标签。例如,我们可以通过预测给定前一个单词的下一个单词,将任务设置为从左到右的语言建模。我们也可以将其表述为在给定未来词的情况下预测之前的词。方向是从右到左。

从n元语法模型到神经网络模型,如神经概率语言模型(Bengio et al.,2003),再到GPT,该公式已经在许多论文中使用。

在这个公式中,文本中的单词被随机掩蔽,任务是预测它们。与自回归公式相比,在预测掩蔽词时,我们可以利用前一个词和下一个词的上下文。这个公式已经在伯特、罗伯塔和阿尔伯特的论文中使用过。与自回归公式相比,在这项任务中,我们只预测了掩蔽词的一小部分,因此从每句话中学到的东西的量要低得多。

在这个公式中,我们取一个文档中存在的两个连续句子和同一文档或不同文档中随机位置的另一个句子。然后,任务是对两个句子是否可以相继进行分类。在BERT的论文中,它被用来提高下游任务的性能,这些任务需要理解句子关系,如自然语言推理(NLI)和问题回答。然而,后来的作品对其有效性提出了质疑。

在这个公式中,我们从文档中提取成对的连续句子。还创建了另一对,其中两个句子的位置互换。我们的目标是对一对句子进行分类,看看它们的顺序是否正确。

在阿尔伯特的论文中,它被用来取代“下一句预测”的任务。

DeepMoji的论文中使用了这个公式,并利用了我们使用表情符号来表达我们在推特上发布的事情的情感的想法。如下所示,我们可以使用推文中出现的表情符号作为标签,并制定一个监督任务来预测给定文本时的表情符号。DeepMoji的作者使用这个概念对12亿条推文进行了模型的预训练,然后在情绪分析、仇恨语音检测和侮辱检测等与情感相关的下游任务上对其进行了微调。

@misc{chaudhary2020sslnlp,Title={NLP中的自我监督表征学习},作者={Amit Chaudhary},年份=2020年,备注={\url{https://amitness.com/2020/05/self-supervised-learning-nlp}}