《SentiGAN: Generating Sentimental Texts via Mixture Adversarial Networks》
最后以GAN的应用结尾,GAN最常用于图像上,所以尝试了解一下GAN在文本生成上的应用。
解决什么问题
本文的目标是利用 GAN 生成具有高质量、多样性的情感文本。
难点是:1、文本的离散特性使采样步骤是不可微的,图像像素可以+0.001,文本没办法。之前有工作如seqGAN把这个问题转换为判别器引导生成器的强化学习。2、mode collapse,生成的文本缺少多样性。
总的来说还是生成文本。
怎么做
把文本生成当作序列决策过程。
SentiGAN有多个生成器和一个多类判别器,多个生成器同时进行训练, 旨在无监督的情况下生成不同情绪标签的文本。
对于生成器,提出一个新的基于惩罚目标函数,通过最小化整体损失而不是最大化奖励来优化模型,迫使生成器可以产生多样文本;对于判别器是多分类目标函数。
Senti GAN
可以k设为2,即正面和负面情绪文本。
Generator Learning
在每个时间步 t t t,训练一个生成器 G i G_i Gi来产生一个序列: X 1 : t = { X 1 , … , X t } X_{1: t}=\left\{X_{1}, \ldots, X_{t}\right\} X1:t={
X1,…,Xt},其中 X t X_t Xt代表代表词典 C C C中的一个word token。 G i ( X t + 1 ∣ S t ; θ g i ) G_{i}\left(X_{t+1} \mid S_{t} ; \theta_{g}^{i}\right) Gi(Xt+1∣St;θgi) 代表基于之前生成的词语 S t = { X 1 , … , X t } S_{t}=\left\{X_{1}, \ldots, X_{t}\right\} St={
X1,…,Xt} 来选择第 t + 1 t+1 t+1个词的概率。 基于此定义一个新的基于惩罚的损失函数 L ( X ) L(X) L(X):
L ( X ) = G i ( X t + 1 ∣ S t ; θ g i ) ⋅ V D i G i ( S t , X t + 1 ) (1) L(X)=G_{i}\left(X_{t+1} \mid S_{t} ; \theta_{g}^{i}\right) \cdot V_{D_{i}}^{G_{i}}\left(S_{t}, X_{t+1}\right) \tag{1} L(X)=Gi(Xt+1∣St;θg