文章名称
【EMNLP-2021】【Nanjing Universit】Reinforced Counterfactual Data Augmentation for Dual Sentiment Classification
核心要点
文章旨在解决现有数据增广方法(包括随机扰动和对抗样本)只能生成“同义”增广样本(这里的同义是指NLP的语义),因而不能够解决文本分类任务中,由于数据偏差存在的“spurious association“或者称之为”Selection Bias“。作者提出一个强化学习框架(个人感觉是一个更偏对抗的框架,当然本来两者差别就不大),同时训练能够产生”反义“(语义相反的)且多样样本的生成器(generator)和文本分类器(discriminator)。并利用在原始数据上和增广数据上训练的两个分类器,给新生成的反事实样本进行打分,确保反事实的质量和”非同义“性。
上节介绍了作者研究问题的背景,以及现有方法的缺陷,并介绍其提出的RCDA框架及反义样本生成的方法。本节继续介绍,分类模块和训练方法。
研究背景
如前所述,现有反事实方法,仍然存在如下3方面问题,
- 大多数方法依靠人工标注,或基于规则进行反义样本生成,耗时耗力,并且生成样本的多样性有限。
- 大多数方法将样本生成和下游的分类任务看作两个独立的任务。
- 大多数方法将生成的反义样本合并到原训练集中,忽略了反义样本与原样本的一一对应关系。
作者采用wordnet生成同义词和反义词列表,并利用MLM模型,模拟多元分布进行替换词的选择。那么如何进行模型训练和分类预测呢?
方法细节
RCDA的整体框架如下图所示。大致可以分类2个模块,4个步骤(笔者对文章中的结构又做了拆分)。如前所述,两个模块包括Generator和discriminator。3个步骤如下,

生成同义词和反义词列表。这一步可以理解为生成反事实(或者叫反义样本,为了适合语境,下文统一用反义样本作为代称)的准备工作。具体是指,生成器使用从 WordNet 中获得的一对多反义词和同义词列表。也就是说,作者的生成方法仍然是利用了一些领域或场景知识的,并且也仍然可以被归类为词法增广。** 并且,不同于一些用词向量寻找同义词的方法,作者还是采用了wordnet这种人工只是的方法,在原始输入空间构造同义词和反义词。
生成多样的反义样本。这一步是利用上述同义词和反义词列表进行反义样本生成的过程。 基于多标签学习生成海量反义词候选,并基于强化学习自动选择最佳反义词。值得注意的是,作者并不是采用一个固定的概率随机替换句子中的每一个词,而是利用了语言学的一些知识。 具体来说,
- 作者认为 形容词,动词和副词 跟情感分类任务直接相关,且作用较大。因此,作者会把句子中,拥有反义词的这三类词,都用其反义词替换。
- 这三类词中,也有一些不包含反义词,作者采用其同义词进行替换。并且,对 名词 也利用其 同义词 进行替换。
- 对于 停词 等,则不采取任何动作。
当然,作者也不是穷尽所有可替换的内容来生成反义样本。而是利用多标签序列标注任务训练一个模型来得到可以替换词的概率分布,并重复抽样得到多个最终的反义样本。具体地说,给定输入句子
,作者把上述规则生成的替换词
当做当前词
的训练标签,得到一个多标签模型。这个多标签模型的标签空间是模型词典。有了该模型,可以得到如下图所示的替换概率,该概率表示把
替换为
的概率。
probability to replace w_t with y^j
值得注意的是,这个概率现在在每个词之间是独立的。 为了可以抽样,作者把TOP-K个词抽出来,进行归一化(但是不在wordnet中的词的概率始终为0),其具体操作可以形式化为如下图所示(这个
只有
个元素)。
multinomial word distribution
有了这个分布,就可以从中抽词进行替换了。对于给定的样本
,经过
次生成过程,得到
个反义样本
。其中
分别表示原始标签和反义标签。
进行句子情感分类。这一步是训练针对下游任务(情感分类)的判别器,同时这个判别器也是用于筛选反义样本。并且该判别器包含一个针对原始(观测)输入的情感分类模型
和一个反义样本情感的分类模型
。
分别在原始样本和反事实样本
训练得到。并且
的参数在强化学习的训练过程中(也就是训练反事实生成器的过程中)是不会被更新的,而
的参数是随着反事实样本生成器的参数一起更新的。
强化学习训练。基于上述两个判别器,可以对给定的反义样本
进行打分,具体打分公式如下图所示。其中,
分别表示原始标签和反义标签。
分别表示,
的预测结果,可以看出,
分别只用于预测正、负标签的概率(不过由于是二分类,其实是一回事儿)。值得注意的是,**作者采用类似退火策略调整
,在刚开始的时候,反事实样本没有那么高的质量,则
。随后,
逐渐扩近到1。
score of antonymous sample
作者采用这个分数作为强化学习框架中的reward。通过这个reward,我们可利用Policy Gradient类的方法,调整该(或者此类)反义样本的被选取概率。在Policy Gradient方法中,常用的稳定方差的策略是,从reward
中减去一个baseline
。不同于之前Xu et al. (2019)的做法,作者利用上述生成的
个反义样本的得分均值作为reward baseline,即
,由此得到去除baseline后的reward
。基于得到的reward可以利用如下图所示的公式进行Policy Gradient的优化。值得注意的是,作者表示这样设计baseline可以保证至少有一个反义样本可以帮助更新生成器的参数,体现了反义样本作为监督信号的作用。** 具体的算法伪代码参见
伪代码
部分。policy gradient loss
经过上述训练阶段后,可以E2E的得到文本分类器,基于这两个分类器可以进行dual sentiment prediction(Xia et al., 2015b),具体的计算公式如下图所示。其中
为置信度,也就是说,只有当原始模型的预测达到一定置信度的时候或大于反义样本模型的时候,才会采用原始模型的结果,否则,会采用经过反义样本训练的模型(值得注意的是,反义模型做预测的时候,用的也是反义样本,这里其实有一点疑惑)。

代码实现
RCDA的伪代码如下图所示。

心得体会
<-- ## 与下游任务衔接紧密
虽然作者在introduction中说现有方法主要采用了规则等方法。但作者采用wordnet和有规则的同义词和反义词替换,其实还是引入了很强的业务知识,并也基于和下游任务强相关的同义词、反义词替换规则。不过。该规则在比较宽泛的文本任务都可以适用。
个人认为,作者提出的框架和思路都是可迁移的,并且有比较大的借鉴价值,只是一些生成细节需要做调整才能迁移和普适。
多标签分类器?
个人感觉作者把事情搞复杂了。如果只是为了构造采样分布,真的需要训练一个多标签分类模型么?况且,这个模型还根据出现频次筛选出来的TOP-K个同义词和反义词得到的label训练的。
和GAN类似
个人理解,其实就是Actor-Critic模型,所谓的反义词生成模型是actor而句子分类模型就是critic。
预测的时候用的是
为什么最终预测时,用的是
,文章中没有给出,个人理解,应该都可以。
网友评论