《Style Transformer: Unpaired Text Style Transfer without Disentangled Latent Representation》浅析

本文介绍了Style Transformer模型,它解决了传统文本样式转换中的内容与风格分离难题,利用注意力机制保持内容保真度并转换文本风格。该模型无需依赖隐空间假设,通过Transformer网络和判别器进行训练,有效处理长文本信息损失和长程依赖问题。

摘要

传统的文本样式转换通常是通过分解隐空间中的内容和风格的方式。这种方式存在如下两种问题:

  • 很难从句子的语义中完全剥离样式信息
  • 基于编解码器模式的RNN难以保持长程依赖,导致内容保真度有损

本文提出一种不用隐空间假设,基于注意力机制的模型——Style Transformer,能够较好的保持文本内容,同时很好的转化文本风格

发展

文本样式转换定义:改变文本的风格属性,同时尽可能保留文本的内容信息。
难点:文本风格的定义比较含糊,因此很难构建具有相同内容和不同风格配对句子。

  • 从内容与风格分离的角度入手

    • 方式:
      • encoder: 将文本表征为与风格独立的表示
      • decoder: 根据encoder输出的表示生成相同内容不同风格的新文本
      • 损失:对抗损失
    • 缺点:
      • 由于难以从句子的语义中分离风格模式,因此分解质量难以判定
      • 一个好的解码器可以通过覆盖原始样式从编码的输出表示中生成所需风格的文本,即可不需要分解内容和样式
      • 由于向量长度有限,所容纳信息有限,因此文本信息会有所损失,尤其是长文本
      • RNN作为编解码器捕捉句子中单词之间长程依赖性的能力较差
    • 发展
      • a cross-aligned auto-encoder 交叉对齐自编码器(2017)
      • combines variational auto-encoder and holistic attribute discriminators 结合变分自动编码器和整体属性鉴别器(2017)
      • 以及基于上面方法的一些改进办法
  • 非分解方式

    • a cycled reinforcement learning method 循环强化学习方法(2018)
    • a three-stage method 三步法(2018)
      • 提取内容词汇
      • 提取目标风格的介词
      • 组合
    • denoising Auto-encoder and back-translation 将文本风格转换问题转变为无监督机器翻译问题
  • 如上两者方式的不足:没有注意力机制,具有长程依赖问题

  • 本文方式

    • 第一个引入Transformer 模型
    • 引入一种新颖的训练方法,该方法不用基于分离隐空间的假设,因此可以采用注意力机制来进一步提高性能
    • 效果好

模型

问题描述

将一种风格的文本转为另一种风格的文本:
{ D i } , i = 1 , 2 , . . . , k \{D_i\},i=1,2,...,k {Di},i=1,2,...,k表示 k k k个数据集,每个数据集一种风格,即有 k k k种风格 { s i } , i = 1 , 2 , . . . , k \{s_i\},i=1,2,...,k {si},i=1,2,...,k
处理的问题是:具有 s s s风格的 x x x文本转为具有 s ^ \hat{s} s^风格的文本 x ^ \hat{x} x^
难点:不存在平行语料库,难以直接进行监督学习

步骤

  • 采用两种discriminator来创建非平行语料库的监督学习
  • 结合Transformer网络和discriminator网络来进行风格转移训练

模型

在这里插入图片描述
首先,训练discriminator,这部分的训练分为两个stage

  • 判断文本与风格是否匹配
    损失函数: L d 1 = − p ( c ∣ x , s ) , c = { 0 , 1 } L_{d_1}=-p(c|x,s),c=\{0,1\} Ld1=p(cx,s),c={0,1}
  • 若匹配,则再输入文本,进行文本分类,找出所属风格;若不匹配,输出0
    损失函数: L m u l t i = − p ( c ∣ x ) , c = { 0 , 1 , . . . , k } L_{multi}=-p(c|x),c=\{0,1,...,k\} Lmulti=p(cx),c={0,1,...,k}

整体结构如下图:
在这里插入图片描述
然后通过Transformer网络进行连接,这个网络分为三个部分

  • self Reconstruction
    即自编码器
    损失函数: L s e l f = − p ( y = x ∣ x , s ) L_{self}=-p(y=x|x,s) Lself=p(y=xx,s)
    在这里插入图片描述

  • Cycle Reconstruction
    通过输入 x 和 s ^ x和\hat{s} xs^的输出作为输入,结合 s s s作为输入
    损失函数: L c y c l e = − p ( y = x ∣ f ( x , s ^ ) , s ) L_{cycle}=-p(y=x|f(x,\hat{s}),s) Lcycle=p(y=xf(x,s^),s)
    在这里插入图片描述

  • Style Controlling
    将生成的风格转换文本,作为discriminator的输入,然后 s ^ \hat{s} s^输出再用于风格转换模块的输入,即:
    在这里插入图片描述

训练机制

整个过程类似GAN的对抗生成原理,首先先迭代训练discriminator,然后再喂给Transformer网络,反复循环直至收敛。
注意点:自然语言的离散性质,生成器没有办法直接用梯度下降法,可采用REINFORCE 或者 Gumbel-Sotfmax trick。这些会面临高方差问题,因此本文直接将soft结果分布作为输入,而不是采用最大值。

代码解析

效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值