基于情感复写的中文文本情感迁移方法

2021-02-27 08:53曾泽宇程芃森杨频
现代计算机 2021年35期
关键词:损失样本函数

曾泽宇,程芃森,杨频

(四川大学网络空间安全学院,成都 610065)

0 引言

文本情感迁移是自然语言处理领域中的一项新兴技术,其目的是将文本中的情感属性迁移到指定情感,并将文本的非情感内容予以保留。但由于语言表达的多样性以及文本的离散性,文本情感迁移技术成为了一项具有挑战性的任务[1]。

目前多数方法采用基于分离情感和内容的方法,主要包含两个步骤:首先分离文本中情感和非情感内容,再将分离后的非情感内容与目标情感融合。在本文中,我们采用CycleGAN[2]结构来训练基于Transformer[3]模型的生成器,实现了一步策略,即在无需分离内容和情感的条件下实现情感迁移任务,一定程度上改善了文本纠缠和隐式表达语句无法进行迁移的问题。我们的方法做出了以下贡献:

(1)与多数传统方法不同,我们的方法实现了一步策略,无需将情感和非情感内容分离,有效降低了迁移过程中的信息损失并达到较高的迁移准确率。实验结果显示,在迁移准确率和内容不变性上均有良好的效果。

(2)目前大多数情感迁移任务都是针对英文进行研究,但由于中文文本语义信息更加丰富,情感迁移任务更难实现,少有针对中文的研究。在本文中,我们在中文下进行实验,并取得了较好的效果。

1 相关工作

在近些年,风格迁移任务在计算机视觉领域中得到广泛研究,Gatys等[4]通过实验证明CNN网络能够分别提取出图像的内容特征和风格特征,从而提出了将任意原始图像和目标风格相结合的方法。随后,Zhu等[2]针对缺少平行数据的问题,基于生成对抗网络从两个具有不同风格且非平行的数据域中提取出风格特征,实现了在没有平行数据条件下的风格迁移。受图像领域风格迁移任务的启发,近年自然语言处理领域诞生了针对文本的情感迁移任务,得到广泛关注,并不断有新方法提出,其中主流方法包括情感分离和情感复写。

基于情感分离的方法是在文本情感迁移任务中广泛使用的方法,Shen、Fu、Hu等人[5-7]均采取了该方法,通过对抗训练的方式将文本内容从原句中分离,再将分离后的文本输入到指定的情感解码器中。此方法能够达到一定的情感迁移准确性,但是在内容不变性上效果不理想。其主要原因在于缺乏平行语料,导致模型难以准确区分情感信息和非情感信息,从而造成了比较严重的文本属性纠缠[8]问题。Xu等[9]假定文本情感属性是通过特定的词汇表达出来的,只要改变这些特定词汇,就能够直接改变整句文本的情感属性,通过使用自注意力机制(self-attention)得到的注意力权重作为分类器特征,从而找出情感属性词并删除,将其替换为期望的目标情感词汇。Hu等人[8]提出的MaskAE模型,在上述删除情感词方法的基础上,采用大型情感词典来匹配原句中的情感词,将匹配到的情感词遮蔽后进行替换,但该方法不可避免的需要维护一个大型词典,但通常构建和维护能够全面覆盖各种词汇的词典是一个比较困难的任务。

在基于情感复写的方法中,Lample等[10]指出分离情感方法并非完善的解决方法,同时证明了分离情感的操作在文本情感迁移任务中并非必须。Luo等[11]基于强化学习的框架实现了无需内容和情感分离的迁移方法,需要训练两个序列模型来迁移情感,其中一个模型将原始文本作为迁移成目标情感文本,另一个模型则将目标情感文本迁移回原始文本,同时通过两个奖励函数来保证内容保留和情感迁移成功率。Dai等[12]提出Style Transformer模型,首次将Transformer模型应用到文本情感迁移任务上,避免了先前研究广泛使用的RNN模型造成的长期依赖问题。

我们的方法采用了情感复写的方法,基于CycleGAN网络结构通过对抗来训练来生成器和鉴别器,并通过Transformer模型的注意力机制来自动捕获句子中的情感特征。

2 模型

在本文中,我们基于CycleGAN网络结构来训练生成器G,通过两个鉴别器D1和D2来判断两种不同情感的文本,模型训练过程如图1所示。

图1 模型训练过程

2.1 CycleGAN

CycleGAN[6]中构建了两个对称的GAN,能够实现两个迁移方向的任务,解决了在缺少平行数据集的情况下,模型无法学习到从X(Y)属性数据到目标Y(X)属性数据的问题。CycleGAN通过对抗损失函数来训练生成器G1学习映射X→Y,并使得鉴别器D1难以区分生成样本ŷ∈G(X),生成器G2学习映射Y→X,同时G1和G2构成了一个循环结构,网络通过循环一致性损失函数以确保内容不变性,即G2(G1()x)≈x。对于y∈Y的数据做同样的处理。

在网络中,通过构建多个损失函数来保证跨域迁移成功率和内容不变性,其中每个方向的情感迁移任务主要包含两个损失函数,分别为对抗损失函数LGAN和循环一致性损失函数Lcycle。以属性X→Y数据的情感迁移为例,LGAN的公式如下:

其中G1(x)表示属性x∈X数据通过生成器G1迁移为具有Y属性数据,鉴别器D1用于鉴别迁移样本G1(x)和真实样本y∈Y。

循环一致性损失函数计算数据x和x̂的分布差异。为通过生成器G1进行情感迁移后再通过生成器G2迁移回原始情感的数据,即因此损失函数计算公式如下:

那么总的损失函数包括两个对抗损失函数LGAN和循环一致性损失函数Lcycle,公式如下:

2.2 生成器

在我们的方法中,为了让生成器更容易捕获文本情感特征,生成器采用了Style Transformer[12]模型。Style Transformer模型上为了实现更好的实现情感迁移任务,相较传统Transformer模型在嵌入层对输入语句x=(x1,…,xn)进行嵌入的同时,还对输入语句的情感s进行嵌入,即编码器的输入为(s,x),Style Transformer的公式如下:

2.3 鉴别器

在本文中,由于是两个数据域之间的情感迁移任务,即X→Y(Y→X),我们在每个情感迁移方向都设置了一个情感分类器,包含嵌入层和线性层。鉴别器D1输入数据为生成数据̂=G(s2,y),鉴别器D2输入数据为生成数据̂=G(s1,y),并分别对两个方向的生成序列作出真假判断,公式如下:

2.4 训练方法

模型训练过程包含两个阶段,第一阶段为预训练生成器G和鉴别器D,第二阶段为对抗训练生成器G和鉴别器D。

在第一阶段训练过程中,我们首先预训练生成器G,使得生成器G能够复写两个不同情感数据中的文本,即G(s1,x)≈x和G(s2,y)≈y,定义了损失函数Lself,通过最小化生成样本G(s1,x)和真实样本x∈X以及G(s2,y)和y∈Y的交叉熵来训练生成器G,即采用了最大似然估计(maximum likelihood estimation)的方法[13],Lself公式如下:

预训练生成器G后,我们对鉴别器D1和D2进行预训练,预训练鉴别器是为了在对抗训练的初始阶段就能给予生成序列更准确的判断,使得D1和D2能够区分不同数据中的情感S1和S2。

在第二阶段训练中,通过对抗训练来进行情感迁移任务的训练,我们引入了三个损失函数,包括对抗损失函数LGAN1、LGAN2和循环一致性损失Lcycle,目的是为了提高情感迁移成功率和降低内容迁移损失。

其中对抗损失函数为了使生成器G能够生成鉴别器D1评价为真的属性数据ŷ=G(s2,x),同时能够生成鉴别器D2评价为真的数据x̂=G(s1,y)。LGAN1如下:

循环一致性损失函数用于保证迁移数据的内容不变,公式如下:

在鉴别器D1和D2的训练过程中,为了鉴别器能够区别真实样本y∈Y(x∈X)和生成样本ŷ(x̂),同时使得生成器G生成更符合真实样本分布的数据,引入了损失函数Ldis1和Ldis2,通过真实样本和生成样本并最小化损失函数值来训练鉴别器。对于鉴别器D1,我们将真实数据y∈Y设定为真标签数据(y,1),将生成数据设定为假标签数据同理,对于鉴别器D2,我们将真实数据x∈X设定为真标签数据(x,1),将生成数据设定为假标签数据Ldis1公式如下:

3 实验

3.1 数据集

中文数据集为网上收集数据,均来自电商平台商品评论,总共282811条评论数据,其中包含积极和消极两种情感倾向,积极情感倾向数据212966条,消极情感数据69845条,数据平均长度为13.3字,最长评论长度20字。为了验证和测试模型,我们从中随机提取了1600条评论作为验证集,600条评论作为测试集。

3.2 实验参数

在实验中,生成器的编码器和解码器均为4层Transformer结构,每一层的多头注意力机制中head数量设置为4,模型采用Adam动态优化算法,学习率为0.0001。我们使用了Stanford CoreNLP[14]进行中文分词,Transformer隐藏层大小为300维;词向量采用了预训练的中文word2vec词向量[15],维度300维;训练批次大小为48。

3.3 实验结果

由于当前缺乏针对中文的研究,且当前文本生成评价指标难以准确有效的评价中文生成文本的质量,所以在实验中我们采取情感迁移成功率作为主要评价指标,迁移成功率通过分类器进行自动计算,分类器模型基于Fasttext模型[16]。实验结果显示,我们的模型在情感迁移任务上达到了82.3%的迁移成功率。

其中部分测试集样本结果如表1所示,通过结果可以看出我们的模型在针对中文的实验下总体能达到比较好的效果。

表1 测试样本结果

从测试样本中可以看出,在大多数情况下,如序号1、2、3、6、8等测试样本中,模型能够准确无损的实现情感迁移任务,保持了非情感内容不变并实现情感属性的迁移。但在一些测试样本中,模型也出现一定问题,比如在原句5的测试中,模型出现了迁移用词不当的问题,模型将“实惠”复写为“过时”,虽然实现了情感上的反转,但是“过时”在此处形容不恰当。在序号4、7的测试样本中,模型在生成语句时出现生成未能正确截止的问题,比如生成4的中,模型虽然成功实现了情感迁移,但是在句尾多生成了“好,”。通过在基于中文数据集的实验结果显示,我们的模型总体上达到良好的效果,在大多数情况下能够良好地完成情感迁移任务。

4 结语

本文研究了针对中文非平行数据的文本情感迁移任务,与传统需要将情感和内容分离的方法不同,采取了情感复写的方法,在CycleGAN的基础上来训练模型,采用了改进的Transformer模型作为生成器,达成了一步策略。该方法自动提取不同数据之间的情感特征,通过对抗损失函数和循环一致性损失函数来分别保证情感迁移的准确性和内容不变性。通过中文数据集实验结果显示,该方法在情感迁移准确率上达到了较好的指标,在大多数场景下能够准确有效地实现情感迁移任务。

猜你喜欢
损失样本函数
洪涝造成孟加拉损失25.4万吨大米
两败俱伤
随机微分方程的样本Lyapunov二次型估计
关于函数的一些补充知识
高中数学中二次函数应用举隅オ
无独有偶 曲径通幽
损失
基于支持向量机的测厚仪CS值电压漂移故障判定及处理
那些损失上百万的演员