风格转移是许多人工智能领域的重要问题,例如自然语言处理(NLP)和计算机视觉[1-4]。特别地,自然语言文本的样式转换是自然语言生成的重要组成部分。它方便了许多NLP应用程序,例如将纸质标题自动转换为新闻标题,从而减少了学术新闻报道中的人工工作。对于诸如诗歌生成之类的任务[5-7],可以将样式转换应用于生成诗歌的冷漠风格。但是,语言样式转换的进展落后于其他领域,例如计算机视觉,这主要是因为缺乏并行语料库和可靠的评估指标。
大多数现有的文本处理方法遵循两个步骤:首先将内容与原始样式分离,然后将内容与所需样式融合。例如文献[8-10]通过对抗训练学习与风格无关的内容表示
针对文本情感转换的SMRFGAN模型
李浩,宁浩宇,康雁,梁文韬,霍雯
云南大学软件学院,昆明650500
摘要:文本情感转换的任务需要调整文本的情感并保留与情感无关的内容。但是由于缺乏并行数据,很难提取独立于情感的内容并以无监督学习的方式对情感进行转换,并且由于GAN处理文本类的离散数据效果不如处理连续数据,为此使用了强化学习(Reinforcement Learning)的方法来解决GAN处理离散数据的问题。强化学习的奖励机制来自完整序列上的GAN的判别器,并且用蒙特卡罗搜索方法
对生成器进行优化,从而提高生成文本的准确性。为了将源文本中的情感词的极性进行转换,在长短记忆神经网络(LSTM)中增加了自注意力机制(self-attention),再通过情感记忆模块(sentiment-memory)结合上下文来生成情感词极性反转后的文本作为SMRFGAN(Self-attention Memory Reinforcement learning GAN)预训练的真实数据。实验结果表明,该模型较好地解决了独立于情感内容进行情感转换的问题,BLEU评分有较好的提升。
关键词:文本情感转换;强化学习;蒙特卡洛搜索;SMRFGAN;情感词记忆模块
文献标志码:A中图分类号:TP391.1doi:10.3778/j.issn.1002-8331.1910-0299
SMRFGAN Model for Text Emotion Transfer
LI Hao,NING Haoyu,KANG Yan,LIANG Wentao,HUO Wen
School of Software,Yunnan University,Kunming650500,China
Abstract:The task of text style transfer needs to adjust the emotion of the text and retain content that is not related to emotion.However,due to the lack of parallel data,it is difficult to extract emotion-independent content and transform emotions in an unsupervised learning manner,and because the effect that GAN processing text-based discrete data is not as good as that of processing continuous
data,it is a great challenge to generate emotional transformation text with GAN. To this end,it uses the method of reinforcement learning to solve the problem of GAN processing discrete data.The reward mechanism for reinforcement learning comes from the GAN discriminator of the complete sequence,and the generator is optimized by the Monte Carlo search method to improve the accuracy of the generated text.In order to convert the polarity of the sentiment words in the original text,it adds self-attention to the Long Short Term Memory(LSTM),and then uses the emotional memory module combined with context to generate the text with the polarity reversal of the emotional words as the real data of SMRFGAN pre-training.The experimental results show that the model can better solve the prob-lem of emotional transformation independent of emotional content,and the BLEU score has a better improvement.
Key words:text emotion conversion;reinforcement learning;Monte Carlo search method;Self-attention Memory Rein-forcement learning Generative Adversarial Network(SMRFGAN);emotional word memory module
基金项目:国家自然科学基金(61762092,61762089);云南省软件工程重点实验室开放基金(2017SE204)。
作者简介:李浩(1970—),男,教授,博士生导师;宁浩宇(1994—),男,通信作者,硕士研究生,主要研究方向为自然语言处理,E-mail:*****************;康雁(1972—),女,副教授,硕士生导师,CCF会员;梁文韬(1995—),男,硕士研究生,主要研究方向为自然语言处理;霍雯(1994—),女,硕士研究生,主要研究方向为自然语言处理。
收稿日期:2019-10-22修回日期:2020-03-16文章编号:1002-8331(2021)02-0170-07
向量,然后将其传递给依赖于风格的解码器进行重新编排。另一项研究2018年Xu和Lietal直接删除输入中的特定样式属性词,然后将仅包含内容词的中和序列提供给依赖于样式的生成模型。但是,每一行都有其自身的缺点。
为了能提升生成句子的准确性和生成质量,本文提出基于情感记忆模块和强化学习,利用对抗生成神经网络的文本情感转换方法的自注意力情感记忆模块生成对抗神经网络SMRFGAN(Self-attention Memory Reinforcement learning Generative Adversarial Network)。模型一方面通过文本的Fast text
[11]处理,有效地提高文本分类的准确性,再通过对长短期记忆(Long Short Term Memory,LSTM)[12]网络解决了RNN[13]的“梯度消失”的不足,同时能够有选择地记忆序列中的重要信息,其中利用自注意力机制对情感词的特征进行识别,有针对性地将情感词放入记忆模块来提升算法对情感词把握的准确性;另一方面通过强化学习算法解决生成对抗神经网络[14]在离散数据中无法运算的问题。
1相关工作
对文本风格迁移的研究在近年有了较多的进展,例如Luo等[15]在2019年提出的基于强化学习框架的文本风格迁移。作者提出了双重强化学习的框架,通过映射模型直接传递文本风格,而不分离内容和风格。在2017年Hu等[16]用一组结构化变量来增加非结构化变量,每个结构化变量都针对句子的显著且独立的语义特征,以控制句子情绪。然而,所有这些工作和Luo等的研究相比,都试图隐含地将非情感内容与情感信息与时间表示分开。
随着2006年GAN模型的提出,GAN在计算机视觉相关领域获得很好的效果。相关研究者将GAN的研究领域深入到了NLP中,并取得了一些进展。
Kusner等[17]2016年在论文中提出为了解决离散数据在分布采样不可导的问题,采用Gumbel-Softmax[18]函数对多项式分布连续逼近,分布。Zhang等[19]在2017年提出了Text GAN模型,作者利用LSTM模型作为GAN的生成器,用CNN作为GAN的判别器,并且用光滑近似的思想来逼近生成器LS
TM的输出,从而解决离散数据导致的梯度不可导问题。在判别器的预训练方面,利用原始的句子和该句子中交换两个词的位置后得到的新句子进行判别训练。LSTM虽然解决了RNN梯度消失的问题,但是输入序列和输出序列要求等长,seq2seq突破了这一限制,使得RNN的应用更加广泛,在文本生成中也能生成不定长的文本序列。
本文在不使用平行语料库的基础上,通过对情感词的提取利用强化学习算法对生成的反向情感词文本进行改进,提升准确性和BLEU的评分。
2SMRFGAN模型
在SMRFGAN模型中,使用Fast Text分类模型对文本进行分类后,为了定位情感词,将分类后的文本以句向量的方式作为LSTM的输入向量,并用self-attention[20-21]来预测文本情感词极性,从而区分感情词和非感情词,将情感词向量输入到情感记忆模块经过Generalization 后放入存储模块当中,以此对情感记忆模块进行更新,最后解码器通过情感记忆模块中存储的情感词和句子表示提取情感词汇进行解码重新组成文字序列,将重新生成的文本作为真实文本对生成器进行预训练,Next action定义下一个被选择的词向量。同时判别器通过蒙特卡洛搜索树和policy gradient算法对生成器进行更新。
以正向情感文本为例,即使用self-attention将正向情感词汇存储在情感记忆网络中,并依据原文本进行解码,作为真实文本利用强化学习和生成对抗神经网络生成负向情感的文本。SMRFGAN模型框架
如图1所示。
2.1Data-LSTM
在Data-LSTM模型中,本文首先使用Fast Text对源文本针对情感词的不同分为积极和消极两类,再使用self-attention机制出情感词极性较大的情感词存储到
并结合源文本的句向量生成语义图1SMRFGAN模型图
反转后的文本作为接下来RFGAN (reinforcement learning )模型的“真实”数据对GAN 进行训练。
2.1.1Fast Text
大多数情感分类方法使用的是朴素贝叶斯分类算法、支持向量机、卷积神经网络和递归神经网络来解决分类问题,而这些方法在语料类别较多的情况下会使得计算量增大。本文为了能有效将情感词存入记忆网络并且能减轻计算量,使用Fast Text 快速对源文本进行情感词分类。分类结果处理成句向量作为LSTM 的输入,以此为下一步情感词定位及存储做准备。
本文对源文本进行数据预处理,对每一行的数据进行打标,将正向的情感词标记为正类,将负面情感词标记为负类。在Fast Text 分类时,为了能对文本准确分类以及能更好地区别句子,例如区分“I don ’t like this type of movies ,but I like this one ”和“I like this type of movie ,but I don ’t like this one ”,本文在一个句子的词向量中加入了3-gram 特征。将n -gram 特征以及原文的单词作为词向量作为Softmax 输入以达到分类目的。2.1.2Multi-head attention
本文使用多头注意力机制(Multi-head attention )赋予情感词极性权重从而提取文本中情感词极性较大的词向量并存储到接下来的情感记忆模块中。
本文将分类后的文本处理为句向量,作为注意力机制中Query 、Key 、Value 的输入。经过线性变换后,将经过放缩点积注意力的结果进行拼接来作为多头注意力机制的结果。注意力机制模型图如图2所示。用以下公式表示:
head i =Attention (QW Q
i ,KW K i ,VW V i )
(1)
MH (Q,K,V )=Concat (head_1,head_2,⋯,head_n )(2)
2.1.3记忆网络
传统的RNN/LSTM 等模型的隐藏状态或者Attention 机制的记忆存储能力太弱,无法存储太多的信息,很容易丢
失一部分语义信息,使用记忆网络(memory networks )[22-23]
通过引入外部存储来记忆信息,提高在文本生成后能有较高的文本保存率。Memory network 框架图如图3所示。
使用正向记忆模块和负面记忆模块对相应的情感记忆模块进行更新,最后解码器通过模块中存储的情感词中提取最符合句子表达的情感词汇进行解码,将重新生成的文本作为真实文本利用强化学习和生成对抗神经网络生成另一种极性的文本。具体在2.3节中进行介绍。
2.2定位情感词模型
在一句文本中,情感词有很多,但每个情感词表示
的情感程度不同,首先到对情感极性拥有最大判别力的情感词。这一工作是通过情感文本分类器和自注意力(self-attention )来完成的。
为了能连接上下文,并体现情感词极性在文本中的重要性,将a t 和LSTM 中的隐藏层做积乘得到句向
量,并将句向量c 作为全连接神经网络层的输入从而得出源文本中的情感词极性的预测,其中a t 表示了第t 个单词的注意力(attention )权重。用以下公式表示:
c =∑t T
a t ⋅h t
(3)
将句向量交给文本分类器以便于区分正面情感文本和负面情感文本。分类器使用Fast Text 来处理。在训练中,情感词相较于非情感词会被赋予更高的权重,这样a t 可用来区分情感词和非情感词。传统的self-attention
机制在有多个情感词时,这些情感词的权重由1分配得到,但是,为了能识别最具极性的情感词,需要每个情感词的权重都由1来分配,为了实现这一目的,将传统的self-attention 中分配权重的函数Softmax 改为了sigmoid 函数(attention 公式)。虽然sigmoid 函数将每个情感词的权重分配到了0和1之间,但是并不能通过这些分配的权重在文本中利用情感词的极性区分情感词和非情感词,所以采用了平均值的方法进行情感词的划分,即将大于平均值的权重分配给1,将小于平均值的权重分配给0。在分配权重后,把定义权重的a t 重新定义为a t ,用a t 表示识别的情感词,
1-a t 表示识别的非情感词。2.3情感记忆模块
在对文本分出情感词和非情感词之后,情感记忆
模块将用来保存情感词性较大的情感词。Encoder 和decoder 都使用LSTM 网络。
为了把非情感词文本序列输入LSTM 的encoder 中:如果x i 作为文本单词,当a t 接近0的时候()1-a t x i
图2
多头注意力机制图
Feature
Text
图3记忆网络框架图
近于x i ,那么序列{}()1-a 1x 1,()1-a 2x 2,⋯,()1-a t x i 就可以当作是非情感词向量的encoder 序列,这样就能满足LSTM 的编码器进行编码。将这一情感词向量作为h t 的文本向量输入到LSTM 最后一个模块()h t ,c t ,即作
为输入的内容的表示。
将a t 接近1的情感词向量序列作为记忆网络的输入,并在情感记忆模块中更新情感词记忆,并从记忆里结合输入,把合适的记忆抽取出来返回一个向量{}s 1,s 2,⋯,s n ,将该向量在LSTM 中进行解码,转换为所需的文字序列。
为了能使生成的文本情感符合上下文,来自源文本的情感词向量能够使情感词记忆模块进行更新。因为提取出了两个情感词性即正向的情感词性和负向的情感词性,所以用pos ∈R e ×∂来表示正向情感词的记忆模块,用neg ∈R e ×∂来表示负向情感词的记忆模块,其中e 代表的是词向量的大小,
∂代表记忆模块的大小参数。本文以正向情感词为例,用N pos
来表示存储正向
情感词信息的句向量。将a t 和x i 带入公式(3),得到
N
pos
,公式表示为:N
pos
=∑t =1
T
a t ⋅x t
(4)
随后通过自注意力机制寻在正向词情感记忆模块矩阵中与相关情感词最贴近的列向量。注意力机制的权重向量用N
pos
转置矩阵与pos 相乘,并且利用
Softmax 函数使乘积散布在0和1之间,用w 表示。为了使得正向情感记忆模块pos 进行更新,将存储正向情感词信息的句向量N
pos
和注意力机制的权重向量w 进
行外积得到一个新矩阵,然后和现有的正向情感记忆模块pos 相加,随后得到新的即更新的正向情感记忆模块。公式表示为:
w =softmax éëù
û()N pos T pos (5)pos =pos +N
pos
⊗w
(6)
在情感记忆模块的更新中由于关系到和注意力机制的权重向量w 的外积,所以存储正向情感词信息的句向量N
pos
的更新也显得尤为重要。
2.4RFGAN 模型
为了能有效判断生成数据与真实数据间的损失值,
本文使用policy gradient 强化学习算法对梯度算法进行优化并用蒙特卡洛搜索树指导GAN 生成器每次训练的更新,使GAN 能处理离散型数据以及优化生成器和辨别器。
本文给定一个假定的“真实”数据集,训练一个参数是α的LSTM 作为生成器模型。用{}x 1,⋯,x t -1,x t 表
示为每一个LSTM 长期记忆单元输入的词向量,将这些词向量作为序列输入到LSTM 的隐藏层当中,用一个更新函数g 进行递归,并且使用Softmax 函数来对隐藏层的输出数据进行概率分配。用以下公式表示:
h t =g ()
h t -1,x t (7)p ()h t =softmax ()
c +Vh t (8)
从而生成序列y 1:T =()y 1,y 2,⋯,y t ,⋯,y T ,并且y t ∈Y ,其中Y 表示为存储单词的词典,其中policy 模型参数为
G α()y t |Y t -1。同时也训练一个辨别器(discriminator )用
于对生成器进行指导改进。生成器模型通过Policy Gradient 和经过辨别器得到的期望值进行更新。
根据Policy Gradient 算法,本文生成器的优化目标公式为:
J ()α=E []R t |s 0,α=
∑y 1∈Y
G α()y 1|s 0⋅Q G α
D β
()
s 0,y 1(9)
其中,R T 表示完整序列的期望值,s 0表示初始状态,
Q G
α
D β()s 0,y 1表示动态取值函数,
其函数的定义为:Q G
α
D β()Y 1:t -1,y t =D β()
Y 1:t (10)
即对完整序列()Y 1:t 进行评估从而得到期望值,D β()
Y 1:t 表示生成的向量序列是“真实”数据的概率并作为期望值。但为了能对任意一个状态的值都有定义,本文使用了蒙特卡洛树搜索办法[24]进行改进,如此便得到了每个阶段的期望值,通过Policy Gradient 算法对生成器进行训练。改进后的动态取值函数为:
Q G αD β
()Y 1:t -1,y t =ìíîï
ïD β()Y 1:t ,t =T
1N ∑n =1
N
transform和convert的区别D β()Y n
1:t ,t <T (11)
判别器模型使用的是卷积神经网络(CNN )模型。首先对{x 1,⋯,x t -1,x t }文本的词向量构建矩阵,作为卷积神经网络的最初的输入数据,用公式(12)来表示:
δ1:t =x 1⊕x 2⊕⋯⊕x t
(12)
⊕表示对输入的词向量进行矩阵运算,然后通过卷积
核对以一个单词为单位的卷积核窗口大小进行特征的提取,公式表示如下所示:
f i =ρ()
ω⊗δi :i -1+b (13)
其中,
⊗是元素生成的总和,b 是偏置项,ρ代表非线性函数,最后使用最大池化层提取特征值。
本文使用D β判别器作为期望函数的好处在于能动态改进生成模型,一旦生成器生成的序列经判别器判别为接近真实数据的序列,那么判别器的更新公式如下:
log a D β()Y -log a []
1-D β()
Y (14)
即使用对数损失函数进行判别器的训练。
2.5算法流程
本文算法步骤如下:
步骤1文本分类
对源文本进行停用词和词性标注,并根据停用词表去除无关词汇。将进行过数据处理后的文本作为CNN 的输入层,通过卷积和池化提取文本特征向量,最后通过Softmax函数输出positive和negative两种类别的文本。
步骤2定位情感词
分别将positive文本和negative文本作为LSTM的输入,在LSTM的隐藏层中经过公式(1)、(2)输出情感词极性较大的情感词的权重。
步骤3情感词记忆
通过公式(3)~(6)得到情感词极性权重在平均值以上的句向量并对情感记忆模块进行更新。最后在LSTM的输出层根据上下文解码出极性相反的文本。
步骤4RFGAN生成文本
将步骤3生成的文本作为生成器的原始文本并且对生成器和辨别器进行预训练,通过公式(9)对生成器进行优化生成文本。训练时通过公式(10)、(11)对生成的句向量进行评分并通过公式(14)对判别器进行更新。
3实验
本文使用yelp评论数据集来进行训练。首先对yelp数据集用FastText进行情感词的分类,不同词性的文章用不同的标签来表示。用分类处理后的数据集进行预训练、训练和测试。在用CNN进行情感分类时,准确率达到了93%。
首先定义了预训练过程中生成器的优化器,即通过Adam Optimizer[25]来最小化交叉熵损失,随后通过Data-LSTM网络来产生生成器的训练数据,利用数据读取类来读取每一个batch的数据。同时,每隔一定的步数,会计算生成器与Data-LSTM的相似性。对于判别器的预训练则是通过生成器预训练完成后得到的负样本和Data-LSTM模型生成的正样本进行结合,来对辨别器进行预训练。
在本文中,将生成器生成的样本即负样本标为0,将通过Data-LSTM模型得到的样本标为1。
3.1实验设置
为了能使实验收敛,在预训练时迭代次数为120次,在第65次实验准确度趋于平稳,正式训练迭代150次,在第110次时实验趋于平稳。在模型Data-LSTM 中,bach的大小为64,学习率设置为0.001,记忆模块的参数∂=60。词向量的维度设置为128。对于不同任务,用不同的卷积层来处理数据,卷积核的大小在1到t 之间,每个卷积核的数量在100到200之间。本文使用DropOut和L2正则化来防止过拟合的发生。在测试阶段,用Gα生成了100000个测试数据和预训练时Gα生成的样本进行计算,并取得平均值。3.2目标评价函数
用ACC来表示文本语义转换的准确率,用CON来表示文本情感转换后文本的保存率,用BLEU[26]来计算输出文本和源文本间的文本保存程度,BLEU越高,代表模型转换后的文本质量越高,越接近人工翻译水平。目标公式表示如下:
BLEU=BP×expæ
è
ç
ö
ø
÷
n=1
N
ωn log a P n(15)其中,BP表示惩罚因子,用来解决评分偏向性。BLEU 采用加权平均对句子的生成质量进行评估。
Accuracy=TP+TN
TP+TN+FP+FN×100%(16)其中,TP表示实际为正,预测为正的样本数;FN表示实际为正,预测为负的样本数;TN表示实际为负,预测为负的样本数;FP表示实际为负,预测为正的样本数。
CON=doc1+doc2
length()
doc(17)doc1和doc2分别表示为源文本和生成文本的共有字符数量,length(doc)表示文本的最长字符数。
3.3实验结果及分析
本实验与2019年国际人工智能联合会议以及2018年在AAAI国际人工智能联合会议上发表的文本风格迁移的实验结果进行了对比分析,结果中采用了论文中各个模型的结果与本文结果进行对比。在实验中,SMGAN平均在第15轮的时候准确率开始收敛,而CAE 和MAE模型在第25轮左右开始收敛,Retri、BackTrans、Del模型均在15到25轮之间开始收敛,并且SMGAN和其他5个模型对源文本的文本保存率对比也有1%左右的提升。对比结果如表1~3、图4所示。
本文对各个模型在三维空间中散点分布进行了对比,从图4可以清晰地看出本文模型在拥有较高的准确率上还保持了高BLEU评分以及高文本保存率。
本文在使用SMGAN生成文本之前需要利用Data-LSTM模型生成“真实数据”,所以为了测试Data-LSTM 模型
CAE
MAE
Retri
BackTrans
Del
SMGAN
ACC/%
70.87
74.52
96.00
95.40
85.30
89.64
BLEU
2.67
5.46
2.90
5.00
14.90
16.79
CON
2.79
3.02
3.28
3.49
3.64
4.79
表1模型准确率和BLEU对比
模型
Data-LSTM
Data-LSTM(去除记忆模块)
ACC/%
75.64
13.25
BLEU
15.79
14.06
CON
4.79
4.01
表2对Data-LSTM模型测试

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。