基本特点和基本框架还是要再罗嗦几句。 在介绍真正的contrastive learning的工作之前,十分有必要再强调一下其基本特点。怎么样看一篇工作是不是使用了对比学习的方法?是因为论文的题目取了这个名字吗?是因为他也是一种自监督学习方法吗?不是的。通常而言,对比学习包括以下几个明显的步骤:1. data augmentation.2. representation extraction.3. projection.4. similarity based loss with temperature. 其中,最重要的是第一步(数据增强)和第三步(projection)。至于第四步的损失函数,如果你把log公式打开,你会发现他和常见的metric learning是具有很大的共通之处的,和其他的一些triple loss也说不出太大的区别。但是,通过增强的方式去构造不同的变体,之后再使用projection(一般是MLP)对提取得到的表示进行映射,这是典型的contrastive learning的思想。这样说存在一定的片面性,且对不了解之的读者不友好。下面通过几个例子复述上一过程。
对比学习在NLP中的应用主要在NLU上,毕竟NLU的使用思路中存在着“学习表示”这个步骤。| Field | 备注 | Paper Name | | NLP | Hinton组 | DeCLUTR: Deep Contrastive Learning for Unsupervised Textual Representations | | NLP | Liuzhiyuan组 | DeepChannel: Salience Estimation by Contrastive Learning for Extractive Document Summarization | | NLP | | CERT: Contrastive Self-supervised Learning for Language Understanding |上述多篇论文都用到了这种策略。现在简单以CERT为例进行介绍。CERT是在BERT等预训练模型的基础上加入自监督学习任务训练得到的。那么问题来了;什么要加入contrastive self-supervised learning task(CSSL)?bert的预训练任务不香吗?论文中认为,BERT的任务是token-based的,在获取句子的表示上,融合了对比学习任务的模型比单纯CLS的结果要更好。下图是CERT的训练流程:
可以看出,仅仅是多加了一层罢了。现在我们来看一看CERT是如何设计CSSL的。无聊的是,这些任务在较大程度上借鉴了前面提及的Moco。我们知道,对比学习框架下的基本要素有:1. data augmentation.2. representation extraction.3. projection.4. similarity based loss with temperature.在CERT中,数据增强的方式是回译(back translation, 就是翻译成另一张语言,再翻译回来)。