Unsupervised Text Generation by Learning from Search(TGLS)
Posted Facico
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unsupervised Text Generation by Learning from Search(TGLS)相关的知识,希望对你有一定的参考价值。
Unsupervised Text Generation by Learning from Search(TGLS)
Unsupervised Text Generation by Learning from Search
- "先搜索后学习"的无监督文本生成方法
- 在paraphase generation和text formalization上,无监督模型上SOTA,有逼近监督模型的效果
文章的主要贡献
- 1、提出了无监督文本生成的通用模型框架(TGLS),在搜索中学习
- 2、展示了将大规模预训练模型整合到TGLS上的方法
- 3、在paraphase generation和text formalization上的贡献
- 4、对于在text formalization上,是首个设计基于搜索的方法并扩展到TGLS上
TGLS
- 方法分两个阶段
- 1、搜索:将文本用模拟退火(SA),并将搜索生成得到的文本作为“伪标注文本”,得到一个搜索器。
- 2、学习:将搜索器的结果输入生成器,并来训练生成器,得到新文本。
- 最终1、2交替
一阶段(搜索器):模拟退火搜索
- 用启发式的目标函数
s
(
y
∣
x
)
s(y|x)
s(y∣x)来作为文本生成的打分函数(x生成y)
s ( y ∣ x ) = s l m ( y ) ⋅ s s e m a n t i c ( x , y ) ⋅ s t a s k ( y , ⋅ ) s(y|x)=s_lm(y)\\cdot s_semantic(x,y)\\cdot s_task(y,\\cdot) s(y∣x)=slm(y)⋅ssemantic(x,y)⋅stask(y,⋅)- s l m ( y ) s_lm(y) slm(y):文本的流畅度
- s s e m a n t i c ( x , y ) s_semantic(x,y) ssemantic(x,y):替换后文本的关联度
- s t a s k ( y , ⋅ ) s_task(y,\\cdot) stask(y,⋅):和具体的任务相关
我们要最大化这目标函数,这用SA去做
假设当前已经进行了t轮,当前的文本是 y ( t ) y^(t) y(t),我们要生成 y ′ y' y′,生成的方式:word的插入,删除和替换
- 我们对于是否接受 y ′ y' y′有一个概率(SA中): p ( a c c e p t ∣ y ′ , y ( t ) , x , T ) = m i n 1 , e x p ( s ( y ′ ∣ x ) − s ( y ( t ) ∣ x ) T ) p(accept|y',y^(t),x,T)=min\\1,exp(\\fracs(y'|x)-s(y^(t)|x)T)\\ p(accept∣y′,y(t),x,T)=min1,exp(Ts(y′∣x)−s(y(t)∣x))(T是SA的温度变量)
- 如果接受的话, y ( t + 1 ) = y ′ y^(t+1)=y' y(t+1)=y′
问题就是打分函数的构造了
一、文本流畅度 s l m s_lm slm
- 用在非平行语料上学习特殊任务的微调的GPT2计算文本的概率得分
s l m ( y ) = ( ∏ i = 1 n p ( y i ∣ y 1 , . . . , y i − 1 ) ) α s_lm(y)=(\\prod_i=1^n p(y_i|y_1,...,y_i-1))^\\alpha slm(y)=(i=1∏np(yi∣y1,...,yi−1))α- α \\alpha α是
- 使用的是,带byte-pair encoding(BPE)的GPT2词汇表,这里的 y i y_i yi是在BPE分割后的token
二、语义的相关度 s s e m a n t i c s_semantic ssemantic
假设句子是 x = ( x 1 , . . . , x m ) x=(x_1,...,x_m) x=(x1,...,xm)
- 分两种:词级别和句子级别
- 词级别:首先用预训练的RoBERTa得到每个词的特征。因为用了MLM,所以RoBERTa用来做特征表示很好,RoBERTa计算的一个词表示为
R
o
B
E
R
T
a
(
x
i
,
x
)
RoBERTa(x_i,x)
RoBERTa(xi,x)
- 词级的语义分数,计算为:有多少keyword信息是被保留的
s w o r d ( y , x ) = min k ∈ k e y w o r d ( x ) max y i ∈ y R o B E R T a ( k , x ) ⊤ R o B E R T a ( y i , y ) s_word(y,x)=\\min_k\\in keyword(x)\\max_y_i\\in y RoBERTa(k,x)^\\top RoBERTa(y_i,y) sword(y,x)=k∈keyword(x)minyi∈ymaxRoBERTa(k,x)⊤RoBERTa(yi,y)
- 词级的语义分数,计算为:有多少keyword信息是被保留的
- 句子级别:计算两个句子向量的余弦相似度:
s
s
e
n
t
(
y
,
x
)
=
y
⊤
x
∣
∣
y
∣
∣
∣
∣
x
∣
∣
s_sent(y,x)=\\fracy^\\top x||y||||x||
ssent(y,x)=∣∣y∣∣∣∣x∣∣y⊤x
- 句子向量计算为 x = R o B E R T a ( [ B O S ] , x ) x=RoBERTa([BOS],x) x=RoBERTa([BOS],x), [ B O S ] [BOS] [BOS]为句子开头
- 词级别:首先用预训练的RoBERTa得到每个词的特征。因为用了MLM,所以RoBERTa用来做特征表示很好,RoBERTa计算的一个词表示为
R
o
B
E
R
T
a
(
x
i
,
x
)
RoBERTa(x_i,x)
RoBERTa(xi,x)
最后 s s e m a n t i c ( y , x ) = s w o r d ( y , x ) β ⋅ s s e n t ( y , x ) γ β , γ 为 超 参 s_semantic(y,x)=s_word(y,x)^\\beta\\cdot s_sent(y,x)^\\gamma\\qquad \\beta,\\gamma为超参 ssemantic(y,x)=sword(y,x)β⋅sseControllable Unsupervised Text Attribute Transfer via Editing Entangled Latent Representation
A Probabilistic Formulation of Unsupervised Text Style Transfer
IMaT: Unsupervised Text Attribute Transfer via Iterative Matching and Translation
迁移学习(EADA)《Unsupervised Energy-based Adversarial Domain Adaptation for Cross-domain Text Classificat