基于生成对抗网络的事件描述生成

2021-07-02 00:35孙鹤立孙玉柱张晓云
计算机应用 2021年5期
关键词:编码器编码神经网络

孙鹤立,孙玉柱,2*,张晓云

(1.西安交通大学计算机科学与技术学院,西安 710049;2.西安交通大学外国语学院,西安 710049)

(*通信作者电子邮箱sunyuzhu12@xjtu.edu.cn)

0 引言

社交事件是基于事件的社会网络(Event-Based Social Network,EBSN)[1]的核心要素,驱动了线上和线下网络的整体运行。事件描述是事件的重要属性,可综合包含事件意义、安排、特点等多种信息,不但可辅助用户决策是否参加该事件,而且给了组织者最大的自由度来使事件更有吸引力。目前,主流社交平台如Meetup、豆瓣中的事件描述均为人工生成,由于受到语言描述能力和对事件描述认知层次的影响,事件描述出现了描述贫乏或描述过度、要素覆盖不全、语言吸引力不强的现象,导致事件参与人数不符合预期,且人工生成事件描述工作量较大,为事件组织者增加负担。本文采用自然语言处理模型生成高质量的事件描述供组织者参考,以帮助组织者快速形成丰富、准确、高吸引力的事件描述。

事件描述的生成算法最终会应用到EBSN 平台中,优秀的算法不但可以生成高质量文本,同时还需要满足无监督的特点。为了满足以上特点,本文中研究了多种语言生成模型。

2011 年,文献[2]中提出了循环神经网络语言模型(Recurrent Neural Network Language Modeling,RNNLM)被广泛应用,并多次被应用在文本生成实践中。文献[3]中对RNNLM 做了改进,使用单个字符而非单个单词作为输入,在RNNLM 前加入了卷积层和highway 层,使得模型从字符的角度,而非单词的角度学会了如何表达自然语言。实验证明他们的改进模型能大幅减少参数数量,并且在学习富词法语言中,表现优于传统的以词为最小单位的语言模型。

为了令RNNLM 在生成文本时不但依赖当前状态,而且依赖某个全局表达,Seq2Seq 模型被提出,生成文本的过程变为编码-解码的过程。编码器首先将某段文本表示为一个隐向量,再通过解码器解码,以控制输出文本的效果。在编码器的选择上,有许多不同方案,文献[4]率先将变分自编码器引入文本生成中,利用变分自编码器采样得到编码的特性,令隐编码能够服从特定分布,从而保证了编码的连续性和局部相关性。文献[5]同样利用变分自编码器编码空间连续的特性,通过对特定文本编码进行梯度上升操作来最大化某个目标函数,从而达到改进某段文本的目的。

基于RNNLM 的生成方法多基于极大似然估计,在模型训练时能够很好地通过反向转播更新参数,并获得跟训练集极为相似的结果,然而这些方法又易于过拟合,导致生成文本质量不高,文本多样性低。

为了令生成的文本更接近真实文本,并且满足无监督的条件,生成对抗网络(Generative Adversarial Net,GAN)成为最佳选择。生成对抗网络2014 年诞生于计算机视觉领域,是近年来迅速发展的一种无监督深度学习技术。GAN 的本质是寻找两个不同分布之间的映射,这两个分布通常为先验噪声分布和真实数据样本分布,这种特质导致它在图像生成领域具有天然的优势,不过把它应用到文本生成时却遇到了困难,主要因为生成器生成的文本数据是离散的、不可微的,因此判别器无法将信息反向传播给生成器,导致生成器无法更新[6]。

鉴于以上问题,目前主流的解决办法是将GAN 与强化学习中策略梯度的思想结合起来,把文本生成构建为一个连续的决策过程,通过策略梯度算法来估计生成器的梯度。使用这个方法的突出代表主要有文献[7]提出的SeqGAN,SeqGAN使用RNNLM 作为生成模型,同时使用带卷积层的神经网络作为判别模型来训练生成模型,很好地解决了文本的离散性问题,并且性能较高。文献[8]也采用了类似的结构,通过训练生成模型生成评分胜过真实训练数据的文本,生成了足够真实的文本序列。

目前生成对抗网络已经用于法律文本生成[9]、医疗文本生成[10]等多个场景,但鲜有学者将生成对抗网络用于EBSN平台,尤其是生成事件描述。本文设计了生成对抗网络GAN_PG,以无监督地生成高质量的事件描述。为了保证编码的连续性和局部相关性,采用带变分编码器的网络作为事件描述生成模型,为了对文本有良好的分类效果,采用带控循环单元(Gated Recurrent Unit,GRU)的神经网络作为判别模型。实验结果表明,通过大量训练后,设计的生成对抗网络生成事件描述的BLEU-4 值达到了0.67,证明了提出的事件描述生成模型GAN_PG 可以无监督地产生与自然语言足够相似的事件描述。

1 相关模型原理

为了更清楚地表现模型的计算过程,本章简要介绍生成对抗网络、变分自编码器和带GRU的神经网络的原理。

1.1 生成对抗网络

生成对抗网络是Goodfellow 等[11]于2014 年提出的,已经成为主流生成模型框架之一。它包含生成模型和判别模型,通过生成模型和判别模型的反复博弈来提高生成质量。在训练过程中,生成模型的目标是生成能够让判别模型无法分辨出其和真实数据区别的样本,而判别模型的训练目标则是将生成模型生成的假样本从真实样本中区分开来。标准的生成对抗网络最大化判别模型正确分类的概率,同时最小化生成模型所生成的样本被判别器正确分类的概率:

其中:D、G分别表示判别和生成模型,data表示真实数据集,Gθ表示生成模型产生的假数据。

1.2 变分自编码器

循环神经网络(Recurrent Neural Network,RNN)是一种对序列数据建模的神经网络,可以很好地刻画词汇的前后关联,它十分强大,几乎可以拟合任何分布。循环神经网络语言模型(RNNLM)是利用RNN 对语言建模,用来描述语言序列的产生过程,与RNN 相比,多了词向量层(embedding)和softmax层[12]。

变分自编码器(Variational Auto-Encoder,VAE)于2013 年由Kingma 等[13]提出,2016 年Doersch[14]对VAE 做了更详细的介绍。变分自编码器是传统的RNN 编码器的改进型,对隐空间中的z→编码加入了先验分布,并在目标函数中通过KL(Kullback-Leibler)散度来缩小实际分布和先验分布的距离,以此来强迫编码器学到合适的编码方式;同时,它通过采样来生成编码,这也就保证了隐编码周围的点也都是有意义的。变分自编码器的损失函数Li(θ,φ)如式(2):

可以看出,其损失函数由两部分构成:第一部分是负对数似然损失函数NLL(Negative Log Likelihood),用来缩小输入序列和输出序列的差异;第二个部分则是KL 散度,其中qθ为编码器,p(z)为对隐编码z的先验分布。

1.3 门控循环单元

门控循环单元(GRU)是为了克服传统RNN 无法很好处理远距离依赖而提出的长短期记忆(Long Short-Term Memory,LSTM)网络的一个变体,解决了传统RNN 中出现的梯度弥散问题,在保留了LSTM 网络很好的记忆功能的同时,较少的参数也使得GRU 的训练过程能够更快一些。它可以很好地将文本上下文特征的关联进行有效地整合,对文本有良好的分类效果[15]。基于上述特性,结合事件描述的文本特点,本文采用带GRU的神经网络作为判别模型。

门控循环单元神经网络在处理序列文本的同时,更好地保留了事件描述中原始文本信息,尤其是长文本中的信息,相较于卷积神经网络,能够捕捉更多文本信息,从而提高判断的准确率。本文使用文献[16]中的GRU结构,如图1所示。

图1 GRU的结构Fig.1 Structure of GRU

图中:z[t]为更新门,r[t]为重置门,h[t]为当前t时刻的隐含状态,椭圆中为算符,方框表示非线性函数。

GRU的前向传播函数如下:

其中:W、U、b为参数;xt为输入向量,ht为输出向量,zt、rt为更新门和重置门向量。同样地,根据链式法则,可以得到其反向传播公式。

2 生成对抗网络GAN_PG

由于本文设计的生成对抗网络在训练时借鉴了强化学习中的策略梯度(Policy Gradient,PG)下降,因此本文将其命名为GAN_PG。

2.1 事件描述生成模型

本文参考了文献[4]中的VAE 结构,在编码器和解码器的选择上,使用了单层GRU。在实现过程中,使用0-1 高斯分布作为隐编码的先验问题定义分布。同时基于文献[13]中的重采样技术,用反向传播来训练网络。抽样时,本文并不直接对隐编码进行采样,而是通过两个线性神经网络获得当前编码的平均值标准差然后通过式(6)获得隐编码,其中~Normal(0,1)。

图2 为事件描述生成模型的核心结构,其中z为向量,其他部分为神经网络,输入为预先训练的词向量。在编码环节完成后,LSTM 的隐状态将分别输入到两个线性网络中,得到隐编码分布的平均值ū和方差,然后通过采样获得隐编码,并将其输入到解码环节。

图2 生成模型核心结构Fig.2 Core structure of generator

本文将隐编码连接在解码器的输入词向量最后,以初始化解码器中的隐状态。在实际的训练过程中,为了防止损失函数中KL 散度降为0,本文还参考了文献[4]所采用的策略:在训练刚开始时设置KL 散度项的权重为0,然后慢慢升到1。训练过程分为两个阶段:第一阶段,编码器从文本序列中学到尽可能多的信息,但不保证分布符合先验分布;第二阶段,通过增加KL散度项的权重,强迫编码器编得的隐编码尽可能接近先验分布。

通过事件描述生成器,可以生成读上去通顺的事件描述。本文有两种方式可以获得事件描述:一是在隐编码空间里面随机采样,这样生成的事件描述文法通顺,但无法保证语义上的一致;二是在已知事件描述的隐编码周围采样,由于采用了变分自编码器,相似的文本序列的隐编码在隐空间中也是相近的。本文采用第二种方法,仅在已知事件描述的隐编码周围采样,便可获得与已知事件描述在文法上相似的新事件描述。生成事件描述后,为了判别事件描述的质量,需要引入判别模型。

2.2 GAN_PG的结构

GAN_PG 的生成模型在上一节中进行了介绍,判别模型为带GRU的神经网络,其损失函数如下:

生成模型的损失函数为最大化式(8),即最大化生成模型在生成序列的每一步中所获得的评分。其中G、D分别为生成模型和判别模型,式(8)的前半部分为在隐编码z和已生成的序列y0:t-1下,生成当前yt的概率。式(8)的后半部分为生成模型生成yt在判别模型所获得的评分。

接下来度量生成模型所生成的每一步获得的评分。因为判别模型只有在生成模型生成完整个序列以后,才能对该序列评分,而式(8)所要求的是对生成序列中每一步行为的评分。本文使用策略梯度来设计损失函数:对于t时刻所生成的序列yt,使用策略网络Gθ(即当前生成模型)通过蒙特卡洛搜索算法对接下来T-t项(T为序列长)使用式(9)进行采样:

其中:y0:t为当前状态,yt+1:T为基于当前生成器状态采样的结果。为了获得更准确的结果,可以将上述过程重复数次取平均。经过改进的生成模型目标函数如式(10):

从而可以将pg_loss改写为式(11)的形式。∇pg_loss可以通过式(12)求得。由于计算∇pg_loss时,判别模型的参数无变化,所以只需要对生成模型Gθ(yt|z,y0:t-1)进行求导并仅更新参数即可。本文使用式(13)来更新判别模型的参数。

在确定了判别器、生成器和其分别的目标函数后,本文通过以下算法来训练GAN_PG。

算法1 训练GAN_PG。

Require:生成模型Gθ;判别模型Dσ;数据集X。

3 训练事件描述生成模型的优化技巧

差分自编码器的目标是学会如何在隐空间中表达已有的事件描述。通过观察式(2)可判断编码质量:一个高质量的编码会有相对较小的NLL 和非零的KL 散度。较小的NLL 确保了生成结果和训练数据相似,而非零的KL散度确保了编码的相异性。但如果直接使用式(2)训练,KL 散度会很快降为0,即编码和先验分布完全相同,失去了编码器的意义。

当KL 散度降为0 时,本文提出的变分自编码器从某种程度上便与RNNLM 完全相同了,RNN 可以拟合任意分布,所以在这种情况下,NLL也能降到接近0。但这样并不是本文期望的,如果这种情况发生,解码器会完全忽略编码器的结果,即无论输入何种文本序列,输出的文本序列都相同。

训练事件描述生成器时,为了避免上述情况,式(2)的两部分需处在平衡状态:NLL 部分较小且KL 散度较小但不为零。本文使用了两种方式来达到此目标。

首先,在训练过程中,将后半项的系数置为0,以训练前半项;再慢慢将后半项的系数增加,至1 为止,以训练后半项。在实现过程中,使用式(14)来调整后半项的权重,同时为了使后半项的值稳定在合适范围,本文将前半项的系数设置为79。

第二是使用dropout 层,即随机地将输入文本的某些词替换为“_”。采用这种方式的初衷是弱化编码器对上一步生成文本序列的依赖,以迫使其使用之前编码器得到的编码结果来恢复输入的文本序列。

4 实验结果和分析

本文首先用短文本单独训练事件描述生成器,以考察变分自编码器的训练过程及在处理自然语言中的表现;然后使用GAN_PG 进行正式训练,并考察生成的文本和真实的事件描述的接近程度;最后用训练好的GAN_PG 生成新的事件描述,以此证明GAN_PG 生成的事件描述在文法和语义上都是一致连贯的。

4.1 数据集及评估指标

本次实验使用的语料来自Meetup 平台洛杉矶市的真实事件,具体语料信息如表1 所示。在进行训练前,本文对语料库进行了如下预处理:1)去除非英文单词;2)将数字替换成“#”;3)将出现次数少于5次的词替换为“<ukn>”。

表1 数据集信息Tab.1 Information of dataset

衡量生成的事件描述质量时,采用文献[17]提出的BLEU文本评估方法和文献[18]的用法。BLEU 起初被用于衡量机器翻译的质量,其设计思想是翻译后得到的文本与参考文本越接近越好,所以适合衡量生成的文本与现实事件描述的接近程度。BLEU 采用一种n-gram 的匹配规则,即比较译文和参考译文之间n组词的相似的占比。BLEU的计算公式如下:

其中:BP为长度惩罚因子,Wn=1/n,Pn为各阶n-gram 的精度。

在实验中,本文使用了BLEU-4,即采用4-gram 作为采集窗口的BLEU 值。BLEU 值在[0,1),越接近1,则表示生成文本和参考文本越接近。

同时,为了衡量GAN_PG 的质量,本文使用评分分布作为衡量指标,即比较生成文本在判别模型的评分分布与真实文本评分分布。由于生成模型和判别模型都处于理想状态下的GAN_PG,为了满足纳什均衡的条件,其生成模型的评分分布一定是无限接近于真实文本的评分分布的。因此,本文选择使用评分分布的差异来衡量GAN_PG的质量。

4.2 训练事件描述生成模型

本文使用第3 章的技巧,使用分句后的事件描述来训练事件描述生成模型,训练过程中的损失函数变化如图3 所示。在经历了大约120 000 轮的训练后,NLL 和KL 值都趋于稳定,最后NLL值停留在1.3附近,而KL散度停留在7附近。

图3 NLL和KL值的变化Fig.3 Change of NLL and KL values

1)在已知样本周围采样。

将对已知样本的隐编码z~p(z|x)进行采样,其中x为已知的文本序列,即事件描述。p(z|x)为编码过程,本文通过式(3)进行采样。通过此举,可以对生成器认为相似的句子作总体了解。实验结果如表2所示。

表2 已知样本采样结果Tab.2 Sampling results of known samples

2)随机采样。

对未知的隐编码进行采样,同时检验在编码空间中相邻点的编码结果的语义一致性和文法一致性。先在隐空间中进行采样,获得隐编码z1、z2~Normal(0,1),然后在两点之间进行线性插值,获得编码集合{zi}=t*z1+(1-t)*z2,0 ≤t≤1。随后再对集合{zi}进行采样,采样结果见表3。

表3 随机采样结果(加粗为起点和终点)Tab.3 Random sampling results(sentences in bold as start and end)

从采样的结果可以看出,这些句子在文法上都是通畅的,且相邻的句子的语义也保持连贯性。例如“the event is free,but donations will be greatly appreciated.”和“the event is free,but you must rsvp on meetup.”。这也证明文本生成器的编码器已学到如何在编码的同时保持文本间语义和文法的连贯和一致性。

4.3 训练GAN_PG

按照第3 章的方法来对生成模型进行预训练,并使用最小化均方误差来预训练判别模型。正式训练时,设置g-step为5,d-step 为1。使用的语料库与前文几乎相同,唯一差异是未将事件描述拆分成句子,而是将整个事件描述输入。为了控制文本序列的长度,本文只使用了长度小于500 的事件描述。

图4 为分别训练了1,2,4 个epoch 后,生成模型随机采样1 000 次产生的文本序列在评价模型获得的评价分布与真实数据获得评价分布的对比。可以看到,多轮训练后,生成文本的评价分布更接近真实文本,这也表明GAN_PG 的生成模型已学到如何生成高评价的文本序列,同时判别模型也学会如何分辨生成文本,并且g-step和d-step的设置也相对合理。

图4 多轮训练后的评分分布Fig.4 Score distribution after multiple rounds of training

采用真实文本作为参考语料库,针对随机采样所生成的1 000 个样本,预训练结束后的BLEU 值为0.64,训练4 个epoch后的BLEU 值为0.67,训练后的BLEU 有所提高,说明生成的文本更接近真实文本。

4.4 生成新的事件描述

在完成训练后,本文采用GAN_PG 中的生成模型来生成新的事件描述。由于使用了变分自编码器,只需在隐空间中进行服从0-1 高斯分布的随机采样便可借助解码器来获得新的事件描述。为了减少随机性,本文还使用束搜索来最大化当前文本序列出现的概率。表4 为部分随机采样下生成的新事件描述,其文法通顺,语义连贯。

表4 随机采样下生成的新事件描述Tab.4 New event descriptions generated under random sampling

5 结语

本文采用了变分自编码器作为生成模型,采用带GRU 的神经网络作为判别模型,组成了生成对抗网络GAN_PG。对从Meetup平台采集的数据进行多轮训练,实验证明,GAN_PG可以无监督地生成高质量的事件描述,并且生成事件描述的评价分布也与真实的事件描述类似,且BLEU-4 值为0.67,表明生成的事件描述与真实事件描述是相似的。本次研究探索了英文事件描述的生成方法,此方法进一步完备后可转化为EBSN 平台的事件描述自动生成功能,促进平台智能化发展。后续的研究中,拟借助类似方法尝试生成中文事件描述。

猜你喜欢
编码器编码神经网络
基于ResNet18特征编码器的水稻病虫害图像描述生成
HEVC对偶编码单元划分优化算法
基于神经网络的船舶电力系统故障诊断方法
住院病案首页ICD编码质量在DRG付费中的应用
MIV-PSO-BP神经网络用户热负荷预测
基于Beaglebone Black 的绝对式编码器接口电路设计*
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
基于TMS320F28335的绝对式光电编码器驱动设计
论纪录片影像中的组合编码运用
不断修缮 建立完善的企业编码管理体系