ICLR 2020|NLP预训练模型的全新范式:对比学习

生成式模型有着其天生的优势,即学习到丰富的特征,但它也有广受诟病的确定。判别式目标函数——长期以来被认为是无用的。这是因为,判别式模型通常不是直接拟合原有的分布流形,学习到的特征较为单一。但是,最近一些工作的基于对比学习的自监督学习框架,表现十分出色。

生成式模型有着其天生的优势,即学习到丰富的特征,但它也有广受诟病的确定。判别式目标函数——长期以来被认为是无用的。这是因为,判别式模型通常不是直接拟合原有的分布流形,学习到的特征较为单一。但是,最近一些工作的基于对比学习的自监督学习框架,表现十分出色。

更多ICLR 2020 论文

长期以来,预训练语言模型(PTM)专注于基于最大似然估计(MLE)的目标任务,也就是采用的“生成式模型(Generative Model)”。例如BERT的目标任务就是一个典型的MLE:

 

language1.jpg

 

生成式模型有着其天生的优势,即学习到丰富的特征。但是,它也有两个广受诟病的缺点:

1. 学习到过于敏感而保守的分布:我们注意到,当p(x|m)趋近于零的时候,损失函数会趋近无穷大。这使得生成式模型对于稀有的样本极度敏感,并且因此使其学习到的分布变得保守

2. 目标的抽象层次低:注意到,目前的Masked Language Model的损失计算都是token-level的。然而,许多任务要求高层次的抽象理解,例如一个句子层面的语境理解。这是生成式的目标函数无法学习的

 

相比之下,另一个选择——判别式目标函数——长期以来被认为是无用的。这是因为,判别式模型通常不是直接拟合原有的分布流形,学习到的特征较为单一。但是,最近一些工作的基于对比学习的自监督学习框架,表现十分出色。在计算机视觉中,最出色的是He Kaiming组的MoCo和Hinton组的SimCLR,取得了逼近监督学习的特征提取效果。在本届ICLR 2020中,也有两篇工作尝试将判别式的对比学习目标函数作为NLP预训练的目标,并取得了出色的成绩。

 

ELECTRA: Pre-training Text Encoders as Discriminators rather than Generators

ELECTRA在2019年就已经挂上了arxiv,并且收获了大量的关注。这里我们围绕着其关键的、如何利用判别式目标的思想(正如其标题所说)来介绍它。

language2.png

相比起传统的MLM(Masked Language Model)专注于训练一个生成器,ELECTRA大胆地将目标转移到判别器的训练上。总的想法是:通过随机替换原句中的token,然后用一个MLM来生成假的结果后,再让判别器来判断哪些结果MLM的生成是不符合原句的。

举一个例子:the chef cooked the meal(主厨烹饪了一餐饭)这个原句,经过mask和generate后,cooked被替换为ate,即“主厨吃了一餐饭”。虽然这个替换本身没有语法错误,但是从语境上判断,cooked显然要和chef这个词关系更紧密,更符合语境。我们的目标,就是希望判别器也能学习到这些句子、乃至段落层面的语境理解,从而判断出ate是不恰当的替换。

值得注意的是,此处的生成器generator的MLM是一个小型的模型,而不能是BERT这样大参数的模型。这是因为,如果generator过于厉害,判别式模型就很难学好。

看到这里,我们肯定还有一个问题:从generator到discriminator,这个过程是一个离散的过程,backpropagation会被阻断!我们该怎么解决这个问题?一个常见的方法,是利用策略梯度(policy gradient),正如强化学习是如何应对反向传播阻断的。但是,策略梯度实际应用中很不稳定。ELECTRA原文中的实验也表明,策略梯度效果不佳。

为了解决这个问题,作者提出了一个两阶段的训练方案:

1. 预热生成器(generator)模型:在generator上采用传统的MLM目标训练一定的步数

2. 训练判别器(discriminator)模型:采用生成器模型的参数对判别器进行初始化,并冻结生成器模型的参数,使用判别式目标函数训练判别器模型。

最终的目标函数可以写成:

language3.png

即第一阶段的MLM目标,和第二阶段的判别式目标。

实验结果表明,ELECTRA能够在更少参数的情况下,取得和BERT匹敌的效果。这也充分证明了,判别式目标函数能够学习到高抽象层次的特征的同时,使用更少的参数。

 

language4.png

 

 


 

Pretrained Encyclopedia: Weakly Supervised Knowledge-pretrained Language Model

本文的目标和ELECTRA是类似的:我们希望语言模型能学习到更多高层次的抽象特征,而不仅仅是token-level的特征!如果我们将ELECTRA归纳为Replaced Token Detection(RTD)的话,这一工作(简写为WKLM),则是采用的Replaced Entity Detection,即利用维基百科,对entity进行替换,并设法让模型能够理解entity-level的特征。这对于许多下游任务,尤其是知识要求高的任务,如语言问答,实体提取等等是有极大的帮助的。

language5.png

具体的训练方式,和ELECTRA极为类似。不过由于WKLM更像是对BERT进行一个增强的fine-tune,所以此处的MLM和判别式目标是同时一起训练的,而非采用两阶段训练的方法。

实验结果表明,WKLM在诸多需要大量高层次知识的任务上,都取得了比传统方法高许多的表现。这也再次证明:判别式目标是值得众多自监督学习和无监督学习研究者们关注的方法,其对高层次抽象特征的学习能力值得我们关注。

language6.png

 

language7.png

 

更多ICLR论文话题,可通过微信“Moonnn01”加入ICLR 2020 交流群讨论。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章