精读A Hierarchical Reinforced Sequence Operation Method for Unsupervised Text Style Transfer

在HRL(强化学习)框架中,提出一种基于序列操作PTO(Point-Then-Operate):高级agent提出操作位置,低级agent修改句子。用于无监督文本样式的传输。 转换过程被建模为对输入句子的明确修改,这提高了可解释性、内容保存和可控的风格与内容的权衡。

基于策略的训练算法来建立文本风格转换的fluency(a language model reward)、style polarity(a classification confidence reward和auxiliary classification)、content preservation(a reconstruction reward和a self-supervised reconstruction loss)。

基于mask的推理算法将多步序列操作应用于输入句子中,允许单步训练,这样训练更稳定。

the Options Framework: 在该框架中,高级agent学会确定选项,而低级代理学会在给定选项时采取行动。

给定两个非对齐的句子 s 1 s_1 s1的风格 X 1 = { x 1 ( 1 ) , ⋯   , x 1 ( n ) } X_1 = \left\{ x^{(1)}_1,\cdots,x^{(n)}_1\right\} X1={x1(1),,x1(n)} s 2 s_2 s2的风格 X 2 = { x 2 ( 1 ) , ⋯   , x 2 ( m ) } X_2 = \left\{ x^{(1)}_2,\cdots,x^{(m)}_2\right\} X2={x2(1),,x2(m)}

无监督文本风格迁移的目标是学习两种条件分布 p ( x 1 → 2 ∣ x 1 ) p(x_{1→2}|x_1) p(x12x1) p ( x 2 → 1 ∣ x 2 ) p(x_{2→1}|x_2) p(x21x2),它们改变句子的风格,保留与风格无关的内容。该方法通过disentangled representations显式地对内容建模。

本实验方法是通过重构隐式地对内容建模,考虑自然语言文本的离散性,使用序列操作逼近 p ( x 1 → 2 ∣ x 1 ) p(x_{1→2}|x_1) p(x12x1) p ( x 2 → 1 ∣ x 2 ) p(x_{2→1}|x_2) p(x21x2) x 1 → 2 x_{1→2} x12 x 2 → 1 x_{2→1} x21 是转换句,即文本风格转换系统的输出, x ^ 2 \hat{x}_2 x^2 x ^ 1 \hat{x}_1 x^1的操作句,其不一定要完全转换。


1 HRL中的the Options Framework

S S S:状态空间、 O O O:选项空间 、 A A A:动作空间,

高级agent学习随机策略 μ : S × O → [ 0 , 1 ] \mu:S×O → [0, 1] μ:S×O[0,1],(进行环境观察、产出次级政策、一直持续到终止)

低级agent学习随机策略 π o : S × A → [ 0 , 1 ] \pi_o:S×A → [0, 1] πoS×A[0,1] ,条件是选项 o ∈ O o∈O oO(进行环境观察、输出动作、一直持续到终止)

每个选项 o ∈ O o∈O oO,都有一个有低级随机终止条件 β o : S → [ 0 , 1 ] β_o : S → [0, 1] βo:S[0,1]表示当前选项是否应该终止。

对于上层所做的一个option,包括两个部分,一个是行动策略,一个是终止函数。当终止函数返回0的时候,下一步还会由当前的这个option来控制;当终止函数返回1的时候 ,该option的任务就暂时完成了,控制权就交回给上层策略。

每个片段中,高级agent执行基于 μ \mu μ 的轨迹 ( o 1 , ⋅ ⋅ ⋅ , o L ) (o_1,···,o_L) (o1oL),一旦一个选项 o t o_t ot采用,低阶agent执行一个基于 π o t \pi_{o_t} πot的轨迹 ( a t 1 , ⋅ ⋅ ⋅ , a t l t ) (a^1_t, · · · , a^{l_t}_t) (at1,,atlt) l t l_t lt依赖于$ β_{o_t} , 一 个 片 段 的 单 一 轨 迹 为 ,一个片段的单一轨迹为 (o_1, a1_1···,a{l_1}_1,···,o_L, a1_L,···,a{l_L}_L)$


2 指针模块 High-Level Agent: Pointer

高级政策 μ \mu μ 目的是提出操作位置,将其建模为一个基于注意力的指针网络,并为每个位置分配标准化概率。

Option:给定语句 x = { x 1 , ⋯   , x T } x = \left\{x_1,\cdots,x_T \right\} x={x1,,xT},选项空间: O = { 1 , ⋯   , T } O = \left\{1,\cdots,T \right\} O={1,,T}

T在一个情节中会发生变化,因为操作可能会改变句子的长度。

State:状态用句子表示 h T h_T hT和每个位置表示 h i h_i hi表示,其中 { h 1 , ⋯   , h T } \left\{h_1,\cdots,h_T \right\} {h1,,hT}由句子 x x x通过bi-LSTM编码器映射而来。

Policy:采用以注意力为基础的政策:一个softmax的过程

µ ( i ∣ x ) = e x p ( a ( h T , h i ) ) ∑ t = 1 T e x p ( a ( h T , h t ) ) µ(i|x) = \frac{exp(a(h_T , h_i))}{\sum^T_{t=1}exp(a(h_T , h_t))} µ(ix)=t=1Texp(a(hT,ht))exp(a(hT,hi))---------1

a ( ⋅ , ⋅ ) a(·,·) a()为注意评分函数,$i ∈ \left{1, · · · , T \right} $为输入句中的每个位置。


3 运算符模块 Low-Level Agent: Operators

低级策略 π \pi π 改变了取样自 µ µ µ i i i位置周围的句子。预定义7种操作
在这里插入图片描述
Action

给定句子 x = { x 1 , ⋯   , x T } x = \left\{x_1,\cdots,x_T \right\} x={x1,,xT},低级agent的动作可以分解为两个步骤。

1、操作选择。从表1中选择一个操作模块。

2、词语生成(可选)。如果需要词的话,生成一个单词,如表1所示。

State

与高级agent相比,低级agent更加专注于本地化的特性。

通过bi-LSTM编码器将 x x x映射到 { h 1 , ⋯   , h T } 2 \left\{h_1,\cdots, h_T \right\}^2 {h1,,hT}2, 以 h i h_i hi作为状态表示。

Low-level Termination Condition 终止条件

低层次agent在每个选项中采取一个动作并终止,使训练更容易、更稳定,可以执行多个选项。

这里终止条件是固定的,目的是让训练更稳定。

Policy for Operator Selection 操作选择策略:

对于训练,从表1中统一采样一个运算符模块。

Policy for Word Generation 词生成策略:

对三个操作符进行参数化,生成一个合适的单词来完成操作,

对于每个参数符M,生成 w ^ \hat{w} w^的概率为$M( \hat{w}|x, i) = softmax_\hat{w}(Wh_i) $-------2,

对于每个M,我们为 s 1 → s 2 s_1→s_2 s1s2 s 2 → s 1 s_2→s_1 s2s1训练了两组参数。

为了可读性,我们省略了方向下标,并确保它们可以从上下文推断出来;

相反方向的参数表示为 φ 1 ′ φ'_1 φ1 φ 2 ′ φ'_2 φ2 φ 3 ′ φ'_3 φ3

4 基于策略的训练算法

在流畅性、风格、内容保存上建模

对于流利性,使用外部语言模型奖励;

对于风格极性,使用一个外在的分类信任奖励,并加入一个辅助的风格分类任务;

对于内容保存,使用了自我监督的重构损失和内在的重构奖励。

x 1 → x ^ 2 x_1→\hat{x}_2 x1x^2运算和 x ^ 2 → x 1 \hat{x}_2→x_1 x^2x1重构的方程
在这里插入图片描述
在这里插入图片描述

左边:转化 右边:重建

实线:前馈 虚线:反馈或损失

蓝:源风格 红:目标风格 黄:agent

**流畅度建模 **Language Model Reward

L M 1 , L M 2 LM_1, LM_2 LM1,LM2分别表示为 s 1 s_1 s1 s 2 s_2 s2的语言模型。

给定操作句 x ^ 2 \hat{x}_2 x^2中生成单词 w ^ \hat{w} w^ 语言模型奖励定义为 R l m = λ l m L M 2 ( w ^ ∣ x ^ 2 ) R_{lm} = λ_{lm}LM_2(\hat{w}|\hat{x}_2) Rlm=λlmLM2(w^x^2) --------3

$LM_2( \hat{w}|\hat{x}_2) 表 示 给 定 表示给定 \hat{x}_2 中 其 他 单 词 的 概 率 为 中其他单词的概率为 \hat{w}$,在实验中,通过平均一个forward LSTM-LM和backward LSTM-LM来计算概率。

风格极性建模

Classification Confidence Reward:通过采用分类置信度函数

$R_{conf} = λ_{conf}[p(s_2|\hat{x}_2) − p(s_2|x_1)] $-------4

Auxiliary Task: Style Classification

在HRL中高级agent面临梯度方差大的问题,为了稳定训练,将指针扩展到一个基于注意力的分类器,即: $p(s_j|x) = softmax_j (W\sum^T_{i=1}µ(i|x)h_i) $

对于 j = 1 , 2 j = 1,2 j=1,2。 设θ表示指针的参数。 θ θ θ的辅助分类损失为 L c l s θ = ∑ j = 1 , 2 E x j ∼ X j [ − l o g    p θ ( s j ∣ x j ) ] L^θ_{cls}=\sum _{j=1,2}E_{x_j∼X_j}[− log \;p_θ(s_j|x_j )] Lclsθ=j=1,2ExjXj[logpθ(sjxj)]

内容保存建模

Self-Supervised Reconstruction Loss

重构损耗方法:通过自我监督来引导操作模块。 假设第 i t h i^{th} ith个位置的单词 w w w被删除或用运算符 M M M替换。

考虑一个操作M,在第i个位置上操作,根据定义的操作可以找出可能的操作M‘,以及可能的位置i‘。
在这里插入图片描述

识别表2中的重构算子 M ’ M’ M和重构位置 i ′ i' i。 然后在 x ^ 2 \hat{x}_2 x^2 i ′ i' i位置上用 M L E MLE MLE更新 M ′ M' M,,用 w w w作为黄金输出。 对于有两个 ( M ′ , i ′ ) (M', i') (M,i)对,我们统一采样进行训练。 在形式上,重构损失定义为 L r e c ϕ ′ = − l o g    M ′ ( w ∣ x ^ 2 , i ′ ) L^{\phi'}_{rec} = − log\;M'(w|\hat{x}_2, i') Lrecϕ=logM(wx^2,i)

Reconstruction Reward

一对一的处理通常比多对一的处理好。因此,我们引入 R e p Φ 3 Rep_{\Phi_3} RepΦ3的重构奖励来鼓励一对一迁移,即:

R r e c = − λ r e c L r e c ϕ 3 ′ R_{rec} = −λ_{rec}L^{\phi'_3}_{rec} Rrec=λrecLrecϕ3

L r e c ϕ 3 ′ L^{\phi'_3}_{rec} Lrecϕ3 L r e c ϕ ′ = − l o g    M ′ ( w ∣ x ^ 2 , i ′ ) L^{\phi'}_{rec} = − log\;M'(w|\hat{x}_2, i') Lrecϕ=logM(wx^2,i)的重建损失。

它的目的主要是鼓励1对1的映射,防止把很多词都映射到good,bad这类词上。

单选项轨迹训练

只允许高级agent在训练期间每段时间执行一个选项,而将多选项场景留给推理算法。

执行单一选项轨迹有两个动机:

1)执行多选项轨迹不那么容易驾驭和稳定,特别是在风格转换的情况下,这对句子的细微差别非常敏感。

2)自监督重建在多选项轨迹中具有模糊性,即重建的黄金轨迹不确定性。

在高级的agent中,只使用引入的分类任务的奖励,而不使用语言模型的奖励(语言模型的奖励更加局部,会很大地增加奖励的方差)。

在低级的agent中,使用所有的外部奖励和内部奖励。

High-Level Policy Gradients

由于语音模块奖励更局部,增加了估计梯度的方差,只对高级策略使用分类置信奖励。

政策梯度为 ∇ θ J ( θ ) = E i [ R c o n f ⋅ ∇ θ l o g    µ θ ( i ∣ x 1 ) ] ∇_θJ(θ) = E_i[R_{conf} · ∇_θ log\;µ_θ(i|x_1)] θJ(θ)=Ei[Rconfθlogµθ(ix1)]

其中梯度从 R c o n f R_{conf} Rconf中分离出来。

Low-Level Policy Gradients

所有的外部和内部奖励都用于低水平的政策学习。 具体来说, ϕ 1 , 2 , 3 \phi_{1,2,3} ϕ1,2,3的奖励为

R 1 , 2 = R l m + R c o n f R_{1,2} = R_{lm} + R_{conf} R1,2=Rlm+Rconf

R 3 = R l m + R c o n f + R r e c R_3 = R_{lm} + R_{conf} + R_{rec} R3=Rlm+Rconf+Rrec

对于 ϕ = ϕ 1 , ϕ 2 , ϕ 3 \phi=\phi1,\phi2, \phi3 ϕ=ϕ1,ϕ2,ϕ3,政策梯度为

KaTeX parse error: Got function '\hat' with no arguments as subscript at position 21: …hi}J(\phi) = E_\̲h̲a̲t̲{w}[R · ∇_{\phi…

Overall Objectives

θ θ θ的总体目标是 L c l s θ = ∑ j = 1 , 2 E x j ∼ X j [ − l o g    p θ ( s j ∣ x j ) ] L^θ_{cls}=\sum _{j=1,2}E_{x_j∼X_j}[− log \;p_θ(s_j|x_j )] Lclsθ=j=1,2ExjXj[logpθ(sjxj)] 中的分类损失和 ∇ θ J ( θ ) = E i [ R c o n f ⋅ ∇ θ l o g    µ θ ( i ∣ x 1 ) ] ∇_θJ(θ) = E_i[R_{conf} · ∇_θ log\;µ_θ(i|x_1)] θJ(θ)=Ei[Rconfθlogµθ(ix1)]中的策略梯度。

ϕ 1 , 2 , 3 \phi_{1,2,3} ϕ1,2,3 的总体目标是 L r e c ϕ ′ = − l o g    M ′ ( w ∣ x ^ 2 , i ′ ) L^{\phi'}_{rec} = − log\;M'(w|\hat{x}_2, i') Lrecϕ=logM(wx^2,i)中的重构损失和KaTeX parse error: Got function '\hat' with no arguments as subscript at position 21: …hi}J(\phi) = E_\̲h̲a̲t̲{w}[R · ∇_{\phi…中的策略梯度。

5 基于mask的推理算法

将单步训练模块应用于多步场景的主要问题是:

1)前一步的操作可能会影响后一步的操作;

2)需要动态地确定轨迹何时应该终止。

利用mask机制来解决这些问题。

基本思想是,给定一个输入语句,高级agent迭代地提出操作位置,以便低级agent进行操作。 在每次迭代中,高级代理可以看到整个句子,但是在策略中隐藏了一些选项(例如,位置)。 轨迹终止条件由一个额外的预先训练的分类器建模。 从 s 1 s_1 s1 s 2 s_2 s2的样式转换算法在算法2中详细介绍。
在这里插入图片描述

Masked Options

为了解决前一步的操作可能会影响后一步的操作,屏蔽了high-level policy中出现的选项(即位置),这些选项出现在任何单词被插入、替换或跳过的上下文中(但不包括删除的单词)。

只屏蔽策略中的选项,但不屏蔽句子中的单词(即,两个代理仍然接收完整的句子),因为我们不能使用屏蔽tokens对状态表示产生偏见。

将窗口大小设置为1(即,每个步骤中有三个单词被屏蔽)。 窗口大小的使用是必要的,因为在很多情况下,例如否定和强调,大小为1的窗口可以覆盖一个完整的语义单元。

结束条件

解决动态地确定轨迹何时应该终止。

如果操作的句子被自信地归类为目标风格,则终止轨迹。 这个简单解决方案的问题是高度程式化的部分可能会导致过早的终止。

提出在操作句中对终止条件进行掩码。

屏蔽策略与Masked Options相同,屏蔽词被 < u n k > <unk> <unk>替代。

为了解决 < u n k > <unk> <unk>数量过多的问题,我们训练了Modeling Style Polarity中定义的一个额外分类器,但训练对象是随机替换为 < u n k > <unk> <unk>的单词的句子。

操作符选择的推理策略

Low-Level Agent: Operators所述,采用启发式推理策略来选择运算符,枚举每个算子,并选择操作句 x ^ 2 \hat{x}_2 x^2,使条件最大化: c ( x ^ 2 ) = L M 2 ( x ^ 2 ) ⋅ p ( s 2 ∣ x ^ 2 ) η c(\hat{x}_2) = LM_2(\hat{x}_2) · p(s_2|\hat{x}_2)^η c(x^2)=LM2(x^2)p(s2x^2)η

其中 L M 2 ( x ^ 2 ) LM_2(\hat{x}_2) LM2(x^2)表示语言模型 L M 2 LM_2 LM2计算出 x ^ 2 \hat{x}_2 x^2的概率, p ( s j ∣ ⋅ ) p(s_j |·) p(sj)为Modeling Style Polarity中定义的分类器, η η η为一个平衡超参数。

数据集有两个,分别是Yelp和Amazon数据集

评价指标有三种,一个是样本分类器(使用TextCNN)实现,BLEU、还有人类打分

实验结果如下:
在这里插入图片描述
在这里插入图片描述

{x}_2 的 概 率 , 的概率, p(s_j |·) 为 M o d e l i n g S t y l e P o l a r i t y 中 定 义 的 分 类 器 , 为Modeling Style Polarity中定义的分类器, ModelingStylePolarityη$为一个平衡超参数。

数据集有两个,分别是Yelp和Amazon数据集

评价指标有三种,一个是样本分类器(使用TextCNN)实现,BLEU、还有人类打分

实验结果如下:

[外链图片转存中…(img-Fg8fZnbP-1649162365201)]

[外链图片转存中…(img-cCwXNSDR-1649162365201)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

St-sun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值