ACL 2018|北京大学:用循环强化学习实现无平行语料的情感转换
作者:许晶晶,孙栩,曾琪,任宣丞,张晓东,王厚峰,李文婕
ACL 2018
用循环强化学习实现无平行语料的情感转换
Unparied Sentiment-to-Sentiment Translation: A Cycled Reinforcement Learning Approach
北京大学
Peking University
1 引言
本文提出了一种新的方法用于无平行语料的情感转换问题。现有的情感转换的模型存在的问题是,在情感转换的同时不能保证内容不变。例如,主语从food变成movie。其原因是内容和情感在同一个隐向量中,所有信息混在一起难以解释。因为没有平行语料,非情感的语义信息难以不受影响。
本文提出了循环强化学习模型。包括模块和情感化模块。去情感模块作用是去除情感词,以提取非情感的语义信息。情感化模块作用是添加情感词,让中性句子情感化。其核心思想是:第一步,去情感模块先去除情感,然后情感化模块根据原始情感和语义内容重构原句,让情感化模块在有监督的情况下学习增加情感。第二步,将情感词取反,这样就可以实现添加相反的情感词。
2 模型
1)去情感模块,用于去除情感词,视为抽取问题。用LSTM来产生每个词是中性词或极性词的概率。循环强化学习要求模型有初始学习能力,因此提出一个预训练方法来让去情感模块学会判断非情感词。预训练使用了基于自注意力机制的情感分类器,将注意力权重作为指导。这么做的原因是,在训练好的情感分类器模型中,注意力权重在一定程度上反映了每个词对情感的贡献。通常情感词的权重大,中性词的权重小。试验结果表明情感分类准确率达到89%-90%,可以认为分类器充分捕捉了每个词的情感信息。根据连续的权重提取非情感词,将权重离散化为0和1。如果某个词的权重小于这句话的权重的平均值,则其离散值为1,否则为0。情感词权重为1,非情感词为0。将这个结果可以帮助去掉情感。
2)情感化模块
情感化模块负责添加情感词。使用了seq2seq模型,编码和解码都是LSTM。有两个解码器,分别用于添加正情感词和负情感词。
3)循环强化学习
因为loss对去情感模块不再可导,所以建模为强化学习问题,并且用策略梯度来训练去情感模块。首先计算相同情感、相反情感的输出的奖赏R1和R2,其次用策略梯度优化参数,通过最大化奖赏来训练去情感模块。这使去情感模块更好地识别非情感词。进一步加强情感化模块。具体训练过程如下:
1:初始值;
2-3:用极大似然估计分别预训练去情感模块和情感化模块,其中去情感模块的交叉熵损失为:
情感化模块的交叉熵损失为:
4:对于每次循环:
5-6:去情感模块生成中性句子;
7:情感化模块用中性句子和原始情感词生成原句;
8:计算情感化模块的梯度:
9:计算奖励R1;
10-11:情感化模块用中性句子和反向情感生成结果;
12:计算奖励R2;
13:计算整体奖励Rc:Rc=R1+R2;
14:根据策略梯度,计算去情感模块的梯度:
15:更新参数;
16:重复,直到收敛。
奖励有两个指标,分别考查情感和内容。Sentiment confidence:评价生成的文本是否符合目标情感,用预训练中的自注意力机制情感分类器做来评价。BLEU:评价内容的保持程度。奖励表示为二者的加权调和平均数:
3 实验
3.1 数据集
Yelp Review Dataset,400k训练,10k验证,3k测试。
Amazon Food Review Dataset,230k训练,10k验证,3k测试。
基线:Cross-AlignmentAuto-Encoder(CAAE),Multi-Decoder with Adversarial Learning(MDAL)
3.2 结果
自动评价:
ACC:评价情感转换。BLEU:评价内容保持。G-score:二者的几何平均。
人工评价:
Sentiment:评价情感转换。Semantic:评价内容保持。All:总体表现。
4 总结
1. 对情感转换问题,提出循环强化学习的办法,可以使用无平行语料的数据。
2. 通过将情感和语义明确区分开来保持语义。
3. 在保持语义内容上效果尤其好。