精读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(x1→2∣x1)和 p ( x 2 → 1 ∣ x 2 ) p(x_{2→1}|x_2) p(x2→1∣x2),它们改变句子的风格,保留与风格无关的内容。该方法通过disentangled representations显式地对内容建模。
本实验方法是通过重构隐式地对内容建模,考虑自然语言文本的离散性,使用序列操作逼近 p ( x 1 → 2 ∣ x 1 ) p(x_{1→2}|x_1) p(x1→2∣x1)和 p ( x 2 → 1 ∣ x 2 ) p(x_{2→1}|x_2) p(x2→1∣x2)。 x 1 → 2 x_{1→2} x1→2和 x 2 → 1 x_{2→1} x2→1 是转换句,即文本风格转换系统的输出, 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] πo:S×A→[0,1] ,条件是选项 o ∈ O o∈O o∈O(进行环境观察、输出动作、一直持续到终止)
每个选项 o ∈ O o∈O o∈O,都有一个有低级随机终止条件 β 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) (o1,⋅⋅⋅,oL),一旦一个选项 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))} µ(i∣x)=∑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 s1→s2和 s 2 → s 1 s_2→s_1 s2→s1训练了两组参数。
为了可读性,我们省略了方向下标,并确保它们可以从上下文推断出来;
相反方向的参数表示为 φ 1 ′ φ'_1 φ1′、 φ 2 ′ φ'_2 φ2′、 φ 3 ′ φ'_3 φ3′。
4 基于策略的训练算法
在流畅性、风格、内容保存上建模
对于流利性,使用外部语言模型奖励;
对于风格极性,使用一个外在的分类信任奖励,并加入一个辅助的风格分类任务;
对于内容保存,使用了自我监督的重构损失和内在的重构奖励。
x 1 → x ^ 2 x_1→\hat{x}_2 x1→x^2运算和 x ^ 2 → x 1 \hat{x}_2→x_1 x^2→x1重构的方程
左边:转化 右边:重建
实线:前馈 虚线:反馈或损失
蓝:源风格 红:目标风格 黄: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,2Exj∼Xj[−logpθ(sj∣xj)]
内容保存建模
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′(w∣x^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′(w∣x^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µθ(i∣x1)]
其中梯度从 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,2Exj∼Xj[−logpθ(sj∣xj)] 中的分类损失和 ∇ θ 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µθ(i∣x1)]中的策略梯度。
ϕ 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′(w∣x^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(s2∣x^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)]
精读A Hierarchical Reinforced Sequence Operation Method for Unsupervised Text Style Transfer相关推荐
- A Hierarchical Reinforced Sequence Operation Method for Unsupervised Text Style Transfer
无监督文本样式转换的分层增强序列运算方法 下载链接:https://arxiv.org/pdf/1906.01833.pdf 一.A Paper List for Style Transfer in ...
- HDU 3397 Sequence operation(线段树)
HDU 3397 Sequence operation 题目链接 题意:给定一个01序列,有5种操作 0 a b [a.b]区间置为0 1 a b [a,b]区间置为1 2 a b [a,b]区间0变 ...
- hdu 3397 Sequence operation(线段树,lazy,区间合并)
hdu 3397 Sequence operation 线段树lazy和区间合并结合的一个题,相当于几个题集中到一起嘛,分开想就好了 0,1,2操作都要lazy,2的异或操作找到每一只含1或只含0的区 ...
- 论文阅读:A Semantic-based Method for Unsupervised Commonsense Question Answering
论文阅读:A Semantic-based Method for Unsupervised Commonsense Question Answering 来源:ACL 2021 下载地址:https: ...
- 【文献阅读】Commission Fee is not Enough: A Hierarchical Reinforced Framework for Portfolio Management
1 解决了什么问题? 现有的投资组合管理方法有一个缺点,它们通常假设每次对资产的重新分配都可以立即完成,从而忽略了价格滑点(price slippage)作为交易成本的一部分. 价格滑点:操盘手期望为 ...
- 【论文精读】Misalignment-eliminated warp image stitching method with grid-based motion statistics matching
图像拼接系列相关论文精读 Seam Carving for Content-Aware Image Resizing As-Rigid-As-Possible Shape Manipulation A ...
- HDU 3397 Sequence operation 线段树 成段更新 区间合并
比较综合的题. 两个标记 setv,xorr.setv的优先级高于xorr,当一个节点获得一个setv时,他之前的xorr要清除. //#pragma comment(linker, "/ ...
- HDU 3397 Sequence operation
裸线段树区间合并,题目本身不难,就是细节处理比较麻烦. 因为涉及到异或运算,所以连续0和连续1的个数都要记录一下. 操作的懒惰标记我只用了一个flag,注意flag更新时的细节,我分了三种情况: fl ...
- HDU - 3397 Sequence operation(线段树+区间合并)
题目链接:点击查看 题目大意:给定一个初始的数列,然后依次进行m次操作: 0 a b:将闭区间[a,b]内的点都变为0 1 a b:将闭区间[a,b]内的点都变为1 2 a b:将闭区间[a,b]内的 ...
最新文章
- spring简单总结part2
- 3.4 matlab用for语句实现循环结构
- Matlab生成m序列
- 「镁客早报」第九城市与法拉第未来成立合资公司,出资6亿美元;华为获得韩国运营商5G订单,占比95%...
- LeetCode 2129. 将标题首字母大写
- 转码与重定向的区别之于SpringMVC
- CASE WHEN 小结
- 世界首富洛克菲勒的6句忠告,每个字都值钱
- 局域网 访问计算机 软件,局域网共享软件
- Verge3D 2.12 for 3ds Max发布
- 三目表达式 java_Java 三目运算符表达式的一些问题
- C# 从Excel复制数据粘贴到DataGridView的实现
- 关于门户网站下载文件.doc文件直接打开成压缩包格式的解决办法
- OpenCV中八种不同的目标追踪算法
- android 手势识别,Android实现Gesture手势识别用法分析
- ps制作20种特效文字_如何使用会声会影进行质感文字制作——动态扫光浮雕特效...
- JSP-简单的练习省略显示长字符串
- 软件性能测试参数化数据准备,性能测试之如何准备测试数据
- Indesign多媒体富交互插件【MagBuilder】与iOS app 【MagViewer】介绍
- Android Studio DeviceFileExplorer 看不到文件列表问题
热门文章
- C++基础语法:判断语句
- linux下安装.hex文件,HexEdit Linux下命令集
- 考研冲刺阶段注意事项?看完一定能考上
- 做产业发展的机会成本思维
- sharpen配置文档的配置说明
- TemplateInputException: Error resolving template 无法解析页面原因记录
- 使用pako.js 解压缩ws消息
- 序列生成对抗网络(SeqGAN)自然语言生成:让机器能够更好地理解和回应人类语音
- 被拒13次,博士五年未发论文是什么体验?美国计算机Top10大学博士亲述心路历程|然后,剧情反转了……...
- 分享116个ASP源码,总有一款适合您