【Sentiment Analysis – Adversarial Learning/Others】
使用对抗学习的方法来做的文章的思路可以分成两个大类吧,第一种是使用对抗学习的方法学习到一些Domain-Depend的信息,第二种类别是使用对抗学习的方法增强模型的Robust的程度。其实自己看了这些天文章也发现单纯的使用某一些技巧做相关工作的文章也并不多,之前所分得主题之中也有很多应用了Adversarial Learning的方法,在这篇笔记之中也有很多应用了我之前所提到的一些方法。所以见到了一些不单单是Adversarial的方法也不要奇怪啦。还有就是为了增加一下单个文章的长度,就将其他杂七杂八类型的文章都集中到这一篇笔记之中进行描述了。
Adversarial Learning
LexicalAT
对于某一个给定的句子,Generator首先在WordNet之中选取某一些替代单词生成一个新的句子,然后新的句子会被送进Classifier之中以获得一个Reward,如果其可以成功的Confuse这个分类器,我们就认为这个是一个好的Example并且给予一个更高的Reward,因此,Generator可以生成更加具有迷惑性的样本并且提高模型的分类能力。
大致的思路就是这样子的,但是算法的细节也还是值得多说几句的,比如说WordNet,这是一个大规模的英文知识库,在这个知识库之中单词由边连接。在其中有两种基本的关系,第一种关系叫做是Synoymy,即两个单词属于同义词,可以互相替代。还有一种关系叫做是Hyponymy,Hypernymy,表达了统领的概念,比如说树就是松树的一个Hypernymy.
其实生成的过程也可以看成是一个序列标注的任务,将Text Sequence作为输入,然后对其进行一定的变换。变换可以分成四种,第一种是使用Super word进行替换,第二种是使用Sub-Ordinate Word进行替换,第三种是使用Synonymy 进行替换,第四种是使用Neighbor Word进行替换。由于WordNet的存在,所以这个替换的方法可能就是直接Look up然后Sampling吧。接下来的就是分类然后进行强化学习了。
With Noisy Label
模型主要是建立在CNN上面的,思路是训练两个CNN,其中的一个是为了加上Noisy,另一个是为了预测到Clean的Label,可以看成是两个CNN在不断的对抗的过程。
我们需要有一个Noisy Transition Matrix $Q \in R^{C\times C}$对于Label进行转换,在这里的$C = 2$因为只有正向和负向两种,然后训练两个分类器,一个处理的是Label转换之后的样本,另一个是尚未转换的样本。然后同时进行优化。首先是训练一个含有Clean Loss的正常CNN称之为A-Network,然后将参数Transfer到中间的AB-Network,再一起训练,不过在中间的训练的过程之中就没有了Clean Loss而只有Noisy Loss,可以看成是一个两步式的训练过程。Loss就是简单的二分类的BCE Loss了。
Hierarchical Reinforcement Learning
这篇文章的思想取自于人类的行为,对于人类而言,判断对于某一个Domain的情感极性是一个两阶段的事情,首先是要先寻找到一个Clause,然后再寻找到这个Clause之中的可以体现情感极性的词语。大致的流程可以看下图
所以作者也借鉴人类做出Decision的过程,分成两步走。但是作者也意识到了麻烦的地方,主要有两个Challenge,第一个是怎么选定这些含有Aspect的Clause而忽略那些含有Noisy的Clause呢?作者首先想到的方法是使用Soft-Attention的机制来处理,但是其认为由于Softmax的函数特性,往往会对于那些Noisy的Clause赋予极小的但是非零的概率值,虽然是极小的但是依旧对于那些Significant的Clause具有削弱的作用(有点硬杠的感觉了)。第二个Challenge是如何选择那些Sentiment Words而不管那些Noisy Words呢?一个可能的方法当然也是Attention机制,但是作者发现Attention往往会对于Domain-Specific的Words赋予更高的注意力而不是仅仅对于Sentiment Words给更多的注意力。所以在本文之中使用Hierarchical Reinforcement Learning的方法设定两个Level的Policy以解决上面提到的Challenge.结构如下
可以将一篇Document看成是由不同的Clause$\{u_1,\cdots,u_{n}\}$,首先经过High-Level的Policy选择出Clause,然后选择出Clause之后传入下一个Low-Level的Policy选择出相应的Words.具体的使用的Policy以及Reward的选择我也不在本文之中叙述了,大家如果想看细节的话可以在原文寻找,文章我会贴在下面。
Selective Adversarial Learning
这里处理的问题是一个序列标注的问题,比如说输入的句子是,可口可乐比百事可乐更好喝这样的一个句子。做出的标注就是B-Pos ,B-Neg,第一个B-Pos代表的是可口可乐,第二个B-Neg代表的是百事可乐,只不过这里的序列标注任务混合了情感分析而已。
作者也是一种使用Dual Memory的方法结合Adversarial的方法提升模型性能的思路。作者为了自动化的捕获在Aspect以及Opinion Words之间的Latent Relationship,在两个LSTM之间使用了一个Multi-Hop Dual Memory Interaction Mechanism,在每一个Hop之中,每一个Local Memory $h_{i}^{\beta}$都会与Global Aspect 以及Opinion Memories进行交互。模型结构如下:
作者使用了双层的LSTM作为词语的Hidden Representation,其中第一层的LSTM除了作为第二层的输入之外,还被输入完成另外一个稍微简单的一些的任务,即进行普通的BIO序列标注的任务,而第二层的输出则被拿去做本任务所想要完成的更困难的序列标注任务,需要注意在这里的序列标注任务仅仅是通过MLP进行的,而没有再经过一个CRF层。
作者在本文之中也使用了Global-Local Memory Interaction的机制,其描述了在Local Memory与Global Memory之间的交互的过程。这个交互的过程其实也不是很复杂,就是将Local Memory和Global Memory给Concat了然后通过一个单层残差连接神经网络获得混合了Global Memory的Local Memory表示,记作是$\tilde{h}_{i} = h_{i} + ReLU(W[h_{i},m]+b)$,然后计算一个Correlated Vector $r_{i}$表示了Global的Memory $m$与Transformed Local Memory $\tilde{h}_{i}$相关程度。
$$r_{i} = m^{T}G\tilde{h}_{i}^{\beta}$$
然后对于上面的机制拓展就可以引入下面的这个Dual Memory Interaction的机制
其中的$r_{a,i}^{l},r_{o,i}^{l}$分别表示了Aspect Detection与Opinions Detection之中和Global Memory的相关程度(l指的是Hop),有了相关程度之后,可以做什么呢?说到相关程度,有一个与之很类似的东西,称之为是Attention,对的,我们获得这个相关系数就是为了得到Attention,虽然这个过程有些曲折,不过的确是为了计算Attention
$$\alpha_{p,i}^{l} = \frac{\exp (W_{p} r_{p,i}^{l})}{\sum_{j=1}^{T}\exp(W_{p} r_{p,j}^{l}) }$$
而为了获得Domain-Invariant的信息,作者使用了Selective Adversarial Learning的方法的动态选择Aspect的单词,其引入了一个Domain Discriminator分辨每一个单词的Domain Label,即其是来自于Source Domain还是来自于Target Domain.
所以说这整个模型之中其实是有三种任务的,第一个任务是做基础的BIO的序列标注,第二个任务是在做带有情感标注的BIO序列标注,第三个任务是分辨数据来自于Source领域还是Target领域,然后同时优化这三个任务。
Others
Neural Inductive Teaching Framework
在本文之中,作者提出了一种Framework可以将已有的模型之中的知识转移到另外的一个任意的深度神经网络之中,其思想主要是来自于Transfer Learning之中,在NITE之中,现有的NER模型作为老师教导深度神经网络识别命名实体。这些老师可能是ineffective的因为他们并非是百分之百正确的模型,他们也会传导一些错误的知识给Student,所以我们的学生模型的输入由两个部分组成,第一个部分是Ground Truth Data而第二个部分是来自于Teacher的。学生通过结合老师网络的信息以及Ground Truth Data得出自己的最终的输出。整个的流程如下
文章使用的是Inductive Learning的方法,也就是老师带着学生做题的形式,比较老师和学生所得出来的答案的相差程度从而教导学生。而对于所有的Sentence,学生和老师都可以得出一个概率值记作是$f_{t}(y_{i}|x_{i})$以及$f_{s}(y_{i}|x_{i},\theta)$,对于所有的$i$我们就可以得到一个分布,然后比较学生模型和老师模型所得出来的分布的差异,这个差异使用KL散度进行度量,作为一个模型的优化的目标。而学生网络的学习的方法是Bi-LSTM加上CRF层进行NER,具体的方法和之前的类似,也就不赘述了。
GAN Out of Domain Detection
这个是使用GAN来区分不同的Domain,GAN是一个无监督的学习算法,具体的细节可以看GAN 之中的内容,大概的意思就是存在一个Generator生成器G,还有一个Discriminator分辨器 D,分辨器通过分辨真实的数据和生成器获得到锻炼,整个的目标写成是
$$\min_{G} \max_{D}V(D,G) = E_{x\sim p_{data}}[\log D(x)]+E_{z\sim p_{z}(z)}[\log (1-D(g(z)))]$$
而生成的过程之中,作者是采用一个(-1,1)的均匀分布作为Noise,然后G以Noise作为输入得到Fake Data,即$G(z)$.而$f$则从True Data以及Fake Data之中都Extract特征后传进Discriminator进行分类。这都是传统的GAN的方法,但是作者在这里还加入了一个Domain Category Analysis $C$的机制,其实就是对于$f(x)$单层的神经网络以Softmax为激活函数,也算是一个Multi-Task的机制吧。模型的整体流程如下
Comments
其实在自己的阅读的过程之中也还有一些其他的Paper,但是并没有被自己选进来,除了自己偷懒的原因之外,还有一点可能就是和我之前所写的笔记之中的一些方法具有重合,所以自己就没有再重复的写相关的方法了,不过不得不说上面的这些方法都还是蛮有意思的,也的确是给了自己很多的Insights,希望大家阅读完也可以有所收获。由于自己收集、选择的过程之中可能会有一些粗心大意的遗失,会有一些工作的遗漏,所以我这几篇笔记之中的记录的方法可能也不够全面,所以希望大家如果有时间也有兴趣的话可以参照我笔记之中的论文的Reference再寻找自己感兴趣的内容吧。自己也会不断的补充新的文章进这些笔记之中。
Reference
2012_Active learning for imbalanced sentiment classification_Li et al
2015_JEAM A Novel Model for Cross-Domain Sentiment Classification Based on Emotion Analysis_Luo et al
2016_Learning Sentence Embeddings with Auxiliary Tasks for Cross-Domain Sentiment Classification_Yu
2017_NITE A Neural Inductive Teaching Framework for Domain-Specific NER_Tang et al
2017_Sentiment Lexicon Construction with Representation Learning Based on Hierarchical Sentiment Supervision_Wang, Xia
2018_Joint Learning for Targeted Sentiment Analysis_Ma, Li, Wang
2018_Multi-grained Attention Network for Aspect-Level Sentiment Classification_Fan, Feng, Zhao
2018_Out-of-domain Detection based on Generative Adversarial Network_Ryu et al
2018_Syntactical Analysis of the Weaknesses of Sentiment Analyzers_Verma, Kim, Walter
2019_Human-Like Decision Making Document-level Aspect Sentiment Classification via Hierarchical Reinforcement Learning_Wang et al
2019_Learning to Flip the Sentiment of Reviews from Non-Parallel Corpora_Kruengkrai
2019_Learning with Noisy Labels for Sentence-level Sentiment Classification_Wang et al
2019_LexicalAT Lexical-Based Adversarial Reinforcement Training for Robust Sentiment Classification_Xu
2019_Neural Multi-Task Learning for Stance Prediction_Fang et al
2019_Transferable End-to-End Aspect-based Sentiment Analysis with Selective Adversarial Learning_Li et al
Hierarchical Attention Transfer Network for Cross-Domain Sentiment Classification
Comments
Leave a Comment