引入自编码机制对抗网络的文本生成模型*

2020-10-10 02:39孙天岳赵启涛
计算机工程与科学 2020年9期
关键词:鉴别器创新性模块

韩 虎,孙天岳,赵启涛

(1.兰州交通大学电子与信息工程学院,甘肃 兰州 730070; 2.甘肃省人工智能与图形图像工程研究中心,甘肃 兰州 730070)

1 引言

文本生成是自然语言处理NLP(Natural Language Processing)的热点研究内容,其研究如何使机器熟练地使用自然语言与人类一样进行表达和写作,主要应用在:机器翻译[1]、自动摘要[2]和对话系统[3]等。一般是指将文本、语音、图像、视频等作为输入,产生文本数据的过程,目前研究的主流是对源文本的特征提取、风格模拟,以产生与源文本含义相似的文字。

基于神经网络的文本生成模型是近几年的研究热点,研究人员使用卷积神经网络CNN(Convolutional Neural Network)[4]、循环神经网络RNN(Recurrent Neural Netowrk)[5]、长短时记忆网络LSTM(Long Short-Term Memory)[6]和对抗神经GAN(Generative Adversarial Network)[7]网络等研究文本生成问题,从目前的效果来看,生成的文本仍然差强人意。主要存在以下问题:(1)对书写符号只能仿照使用,无法熟练运用。(2)文本创新性不足。生成的文本容易出现对源文本的仿照,没有创新性的句子与词汇产生。(3)目前的模型对短文本可以取得较好的生成结果,例如古诗词、对联等形式的文本,但对长文本(一般认为在140个字符以上[8,9]),如文本摘要、歌曲创作等,会出现模型难收敛、计算量大、训练维度不可控等问题。

基于上述背景,本文提出编码解码连接对抗网络EAD_GAN(Encoder and Decoder GAN)模型,拟解决基于对抗网络的长文本生成问题。模型主要结合自编码器Auto-Encoder[10]、交叉熵[11]和强化学习[12]技术,改进GAN网络。首先使用自编码模块提取原文本特征,之后将随机数据通过前馈网络转换成具有原文本特征信息的数据,将其作为生成器的输入,生成器使用LSTM网络,鉴别器使用CNN网络。最后解决生成文本的创新性不足问题,引入强化学习和交叉熵作为鉴别器中句子级和单词级的奖励,提高文本生成的质量。

2 相关工作

2011年Sutskever等人[13]在会话方面解决了RNN训练困难的问题,使用RNN成功生成文本;2012年He等人[14]在统计模型基础上,为每一行古诗进行特定训练,生成中国古诗;在此基础上,2014年Zhang等人[15]使用RNN学习到单个字符的多种不同组合,解决了多个字符间关联的问题,使产生的诗歌更流畅。同年,Sutskever等人[16]使用了Seq2Seq(序列到序列模型)模型,使模型可以学习到词组组合、主动语态和被动语态的表示,并且对自然语言处理的各个研究领域产生了重大影响。2016年 Wang等人[17]在前人基础上使用带注意力机制的模型,实现了诗歌的多样性生成。

2015年Wen等人[18]使用LSTM模型通过简单的交叉熵训练,使生成的语句很容易地实现语言变化,提高了对话系统的真实性。2018年Tan等人[19]引入门控分层LSTM模型,在问答系统中取得了较好的成绩。

2014年Cho等人[20]使用编码解码模型和卷积门控递归网络,使产生的文本具有明显的语法结构。同年Bahdanau等人[21]在模型中加入软注意力机制匹配原句中与预测目标词相关的部分,提高了长文本生成的准确率。

2014年Goodfellow 等人[7]提出对抗生成神经网络GAN,GAN模型启发于博弈论中的二人零和博弈,GAN 模型中的博弈双方就是生成器和鉴别器。生成器尽可能生成假数据骗过鉴别器,而鉴别器学习真实数据后,区分真实数据和生成数据,当鉴别器无法鉴别生成器生成的数据时就达到了平衡。Zhang等人[22]提出了TextGAN模型,鉴别文本生成好坏的任务就由鉴别器来处理,通过更新参数和对参数优化,直至生成文本与真实文本无法分辨。由于GAN网络对于离散数据的采样过程是不可微的,Kusner等人[23]使用Gumbel-softmax GAN网络模型,解决了离散数据在训练过程中梯度不可传递的问题,并成功地应用于文本生成任务。Yu等人[24]提出SeqGAN模型,将强化学习中的蒙特卡洛搜索树[25]加入GAN中,提高生成文本的质量。目前,较多学者将GAN应用于文本生成任务时,都在模型中加入了强化学习来提高生成的效果。而SeqGAN模型的创新之一,就是使用蒙特卡洛搜索树来提高生成单词的奖励,并且奖励能够影响梯度的变化。

3 EAD_GAN模型

本文使用的GAN模型的公式表达为:

EZ~PG[1-logD(G(Z))]

(1)

其中,EX~Pdata代表服从真实数据分布的X训练鉴别器,EZ~PG代表服从随机数据分布的Z训练生成器和鉴别器,G代表生成器,D代表鉴别器,G(Z)表示生成数据,D(X)表示真实数据。

本文提出的EAD_GAN模型将编码器和解码器融入到GAN中,充分利用编解码模型获取特征的能力,提取关键特征。EAD_GAN模型的结构如图1所示。

Figure 1 Structure of EAD_GAN model 图1 EAD_GAN模型结构图

3.1 生成器(Generator)

生成器分为2个部分:自编码部分和强化学习部分。自编码部分使用Auto-Encoder模型,目的是使随机生成的数据更符合真实数据的分布,同时加快训练的过程。强化学习部分使用强化学习对模型进行训练,使用真实数据对鉴别器进行训练,对生成的单词和句子进行奖励指导。

生成器的自编码部分包含3个模块:编码器模块、连接模块和解码器模块。编码器模块和解码器模块都是由自动编码器实现的,对真实文本的数据利用序列到序列模型Seq2Seq提取特征。连接模块使用前馈神经网络学习参数,使真实文本的上一句的特征表示通过前馈网络可以学习到下一句的特征,然后将随机数据放入前馈网络中已经训练好的参数中,生成特征数据,如图2所示。

Figure 2 Three modules of self coding part in EAD_GAN 图2 EAD_GAN自编码部分的3个模块

3.1.1 编码器模块

hfront=Encoder(yfront)

(2)

(3)

(4)

3.1.2 解码器模块

hback=Encoder(yback)

(5)

(6)

解码器模块的损失函数定义如下:

(7)

3.1.3 连接模块

连接模块是连接2个模块的桥梁,也是保证能够学习到文本的真实数据分布的关键一步。 连接模块的目的是确保随机生成的文本在语义上和真实文本相同。简单起见,模型只使用简单的前馈网络g(a),前馈网络的定义为:

g(a(l))=Sigmoid(W(l)*a(l-1)+b(l))

(8)

其中,a(l-1)表示第l-1层神经元的输出,W(l)表示从第l-1层到第l层的权重矩阵,b(l)表示从第l-1层到第l层的偏置,g(a(l))表示第l层神经元的输出,本文使用Sigmoid函数作为激活函数。

连接模块Mθ3将hfront作为前馈网络的输入,目标为hback,对前馈网络的参数θ3进行约束,要求满足L2范式,使模型不会过拟合,并且可以学习到真实数据分布。公式表达为:

hback=g(hfront)

(9)

(10)

3.1.4 强化学习部分

Figure 3 Reinforcement learning model in generator in EAD-GAN 图3 EAD_GAN生成器中的强化学习模型

生成器中的期望可表示为:

J4(θG)=

(11)

其中,sn为生成器生成的句子,且通过了鉴别器的鉴别。

同时得到生成器总期望为:

JG(θ1,θ2,θ3,θG)=

J4(θG)+γ[J1(θ1)+J2(θ2)+J3(θ3)]

(12)

其中,γ是可动态调整的参数。

3.2 鉴别器(Discriminator)

鉴别器采用CNN网络,是一个二元分类器,用来判断一个句子是生成数据还是真实数据。输出的值是0~1的数,代表该句子是真实数据的概率。鉴别器引入交叉熵函数,构建单词级奖励和句子级奖励,希望产生创新性语句。

3.2.1 单词级奖励

将生成器生成的所有句子放入鉴别器中,把鉴别值大于0.5的句子,组成一个生成集合S={s1,s2,…,sn},对生成集合中每个句子相同位置上单词(即节点)的奖励全部相加求平均,得到的平均数作为该位置的单词级奖励,同时引入交叉熵作为创新性的体现。交叉熵定义公式为:

loss=-tlogp-(1-t)log(1-p)

(13)

其中,t为类别,p为该类别的概率值。本文把真实数据和生成数据认为是2种类别,分别对应0和1,则式(13)可简化为:

loss=-logp

(14)

单词级奖励定义如下:

(15)

其中,γ′是学习率,D(si)是通过鉴别器的句子得到的奖励分数。

3.2.2 句子级奖励

句子级奖励是所有单词级奖励的累加和求平均,如式(16)所示:

(16)

4 实验设置和结果分析

4.1 随机文本数据的生成

利用LSTM网络生成100 000个长度为30个字符且服从标准正态分布的数据作为真实数据,标记为1,代表真实数据。使用生成器中的自编码模块,学习前句与后句的特征表示,训练10轮,将随机数据作为前馈神经网络的输入(即图2中连接模块里随机数据),通过前馈神经网络的计算得到图2中的特征数据,将特征数据标记为0。特征数据和真实数据共同训练鉴别器并加入L2正则化防止过拟合。

本文使用BLEU(BiLingual Evaluation Understudy)[26]评价生成的序列。这是由IBM在2002年提出的机器翻译自动评测方法,同时也适用于文本生成的效果评价,BLEU采用的方法是统计同时出现在系统给定的译文中和人类专家写出的参考译文中的n元词的个数,最后用匹配到的n元词的数目除以系统全文的单词数目,得到评测结果。本文采用BELU中BELU-2、BELU-3和BELU-4 3种评价指标对生成的文本进行评价。

为了评估本文提出的EAD_GAN模型在文本生成任务中的表现,将其与在文本生成上取得效果的其他模型:RNN、Gumbel-softmax GAN和SeqGAN进行对比。

(1)RNN[5]:RNN是在文本生成中最早使用且取得较好结果的深度学习模型之一。本文实验中学习模型和生成模型都为RNN,学习模型的最后隐藏状态作为生成器的输入,再由生成器生成文本。

(2)Gumbel-softmax GAN[23]: 基于Gumbel-softmax分布解决离散对象的分布采样过程是不可导的问题,生成的文本也具有一定的可读性与连贯性。生成模型和判别模型都为LSTM模型,参数通过基于梯度的算法进行更新。

(3)SeqGAN[24]:SeqGAN是近几年文本生成中影响力较大的模型,较Gumbel-softmax GAN更好地解决了文本离散化参数不易更新的问题。Yu等人[24]把GAN网络看作强化学习系统,用Policy Gradient算法更新生成器的参数;用蒙特卡洛搜索树更新Discriminator的参数,并且可以对模型中任意时刻的非完整序列文本进行评估,以提高文本生成的速度和质量。

EAD-GAN与当前流行的文本生成模型进行比较的实验结果如表1 所示。

Table 1 Performance comparison of various models表1 各种模型实验性能对比结果 %

首先,通过表1可以看出,本文提出的EAD-GAN模型,在BELU-2、BELU-3指标上比Gumbel-softmax GAN和SeqGAN更好。其次,模型通过预先训练提取出文本特征,使生成文本接近真实数据。但是,BELU-4指标低于SeqGAN模型的,主要因为鉴别器中加入了交叉熵奖励,希望生成的文本在意思不变的情况下,用词更具有新颖性,所以得到的准确率较低;并且实验数据为随机无意义文本,更加客观地验证了模型学习特征的能力;最后,通过表1可以得出GAN网络对数据的预处理方法越精准,准确率也越高的结论。

4.2 真实文本数据的文本生成

实验数据为周杰伦的全部歌曲,包括著名的《稻香》《牛仔很忙》和《七里香》等歌曲,共计56 000字。

评价指标包括:风格性、创新性和连贯性(如表2所示),每个指标的分值为 1~10,分值越高,代表生成歌词与相应指标的效果描述越接近。

Table 2 Evaluation indexes of Jay Chou’s lyrics表2 周杰伦歌词评价指标

对比模型与4.1节中的对比模型相同,本文实验都是使用PyTorch深度学习框架编写代码,并在NVIDIA Geforce GTX 1080 GPU上进行实验。因为训练的数据较大,故只记录5 000个字表。未记录的字表,统一使用〈unk〉表示。

具体参数设置如表3所示。

Table 3 Experimental parameters表3 实验参数表

文本生成模型可以生成多种形式的结果,表4中形式为其中之一。歌词中的u是没有登录在词表中的数据,表示未知词。

Table 4 Generation of Jay Chou’s lyrics 表4 周杰伦歌词生成展示

周杰伦的歌曲以情歌为主,通过表4可以看出,生成的歌词符合周杰伦歌曲创作的风格;歌词整体上逻辑清楚,但也存在不连贯之处,如:文本中的“我知道你再原始无时间”。当然也出现了创新性歌词,如:“乾净”。

实验评价采用人为打分,在高校中对周杰伦的歌迷群体采用调查问卷的形式得到评分。受调查者都为大学本科及以上学历的在读学生,其中女生占比70%,具有较高的可信度。发放调查问卷500份,其中有效问卷424份。从风格性、创新性和连贯性3个方面进行打分评价,每一项满分10分。

实验评价结果如表5所示。

Table 5 Indexes and average scores表5 指标及其平均分值

通过表5可以清晰地看出,本文所提出的模型在3个指标上都超过对比模型。其中,风格性指标变化不大,主要是加入自编码模块充分学习到了原文的特征数据;创新性的提升幅度最大,展示出交叉熵对模型效果的提升作用。

5 结束语

通过4.1节实验可以看出,在GAN网络中加入自编码模块后学习到特征信息,提高模型的准确性,在鉴别器中加入交叉熵可以使模型更具有新颖性。通过4.2节实验可以看出,本文模块生成的中文文本具有较高的质量,这充分肯定了本文的工作。下一步考虑将文本的结构、叙述的顺序等信息加入模型,使模型深层次地学习到高维特征,同时兼顾文本的创新性,增加文本的可理解性、连贯性等。

猜你喜欢
鉴别器创新性模块
基于多鉴别器生成对抗网络的时间序列生成模型
基于双鉴别器生成对抗网络的单目深度估计方法
28通道收发处理模块设计
“选修3—3”模块的复习备考
建筑设计中色彩对外立面的创新性应用思考
谈高中作文教学的实用性和创新性
流动几何的创新性
成公绥赋作的模式化与创新性
北斗系统信号NH码处理方法研究
集成水空中冷器的进气模块