概述
摘要
语法错误纠正(GEC)的最新工作利用了神经机器翻译(NMT)的进展,从语法错误和纠正的句子的平行语料库中学习重写,从而获得了最新的结果。同时,对抗生成网络(GAN)通过学习直接最小化人类生成的文本与合成的文本之间的差异,已经成功地在许多不同的任务中生成了真实的文本。在这项工作中,我们使用generator-discriminator框架,提出了一种GEC对抗学习的方法。生成器是一个Transformer模型,经过训练可以生成语法正确的句子(给定语法错误的句子)。判别器是一个句子对分类模型,经过训练可以根据语法纠正的质量来判断给定的一对语法纠正的正确句子。我们在并行文本上对判别器和生成器进行预训练,然后使用策略梯度方法对它们进行进一步微调,该策略为能够将错误句子纠正为正确句子的动作赋予高奖赏。在FCE,CoNLL-14和BEA19数据集上的实验结果表明,与基于NMT的基准相比,Adversarial-GEC可以实现具有竞争力的GEC质量。
1.介绍
语法错误纠正(GEC)已是一种流行的NLP任务,该任务涉及构建系统以自动纠正书面文本中的错误。它从构建识别特定错误的机器学习分类器的方法演变而来,并作为单语种机器翻译(MT)问题得到了普及,其中,系统会学习将给定的错误文本“翻译”成正确的形式。最初,基于短语的统计机器翻译(SMT)技术已成功应用于该任务,该方法能同时处理所有错误类型。最近,已经开发了几种神经机器翻译(NMT)系统,取得了可喜的成果,并成功地将其应用于GEC SMT模型,或严格作为神经模型,这已经成为新的最新技术。
尽管基于NMT的GEC模型取得了成功,但主要挑战仍然在于评估指标的定义。理想地,在给定语法错误的输入句子的情况下,该度量应该能够量化(a)词汇重叠,(b)语义相似度和(c)生成句子的语法性。在基于NMT的模型对GEC任务的直接应用中,可以最大程度地减少替代损失(例如,交叉熵),这是真实损失的上限,因此可以粗略地近似这些复杂的标准。此外,基于NMT的GEC模型尝试最大化n-gram或基于编辑的指标,例如
M
2
M^2
M2或GLEU。推动基于NMT的模型以尽可能高的n-gram精度生成句子,这不一定会导致GEC任务的高质量生成。为了避免这些问题,我们采用了基于对抗生成网络(GANs)这一不同的方法,该方法提供了一个框架,可以根据输入的差异直接对任务进行输出分布和上述复杂标准的建模。此外,GAN在许多自然语言处理任务(例如机器翻译,对话生成,文本摘要等)中表现出了出色的生成连贯且语义有意义的文本的能力。
我们提出了基于GAN的generator-discriminator框架,用于语法错误纠正。生成器是序列到序列(Seq2Seq)模型,该模型经过训练可以将语法错误的句子“翻译”为语法正确的句子。判别器是一种深度神经语句对分类模型,经过训练可以评估生成的语句在词法上相似,语义保留并在语法上正确重写错误输入语句的可能性。设置两个模型之间的对抗训练是为了优化最小-最大目标,其中判别学会从真实分布(人工生成)还是生成器(机器生成)中区分给定的输入采样,从而最大化他们之间的差异。另一方面,生成器通过生成高质量的校正候选者来学习欺骗判别器,从而将其输出与真实的校正语句之间的差异最小化。此外,鉴别器用于通过策略梯度微调生成器,在以源为条件的情况下奖励高质量的生成文本,从而改善生成结果。通过最小化人工分布和机器分布之间的差异,我们旨在根据上述标准直接优化GEC任务。
我们在任务的三个标准数据集上评估了我们的方法的有效性,发现判别器可以为生成器提供合理一致的指导,并进一步帮助改善其性能。实验结果表明,与基于NMT的强大基准相比,我们的模型可以实现明显更好的性能。
总而言之,我们做出以下贡献:
- 就我们所知,这项工作是第一个将生成对抗训练应用于GEC任务的工作。
- 我们提出了一种基于句子对分类的判别器,通过学习直接优化任务而不是构造或依靠n-gram或基于编辑的度量标准,可以更好地区分语法文本和非语法文本。我们分析了判别器的不同表述,并提供了有关如何利用其设置,预训练和与框架集成的见解,以进行稳定的训练,并达到更好的性能。
- 我们在标准GEC数据集上进行了广泛的实验,并针对强大的基准对系统进行了评估,结果表明,所提出的模型在独立的单模型设置中始终能够取得更好的结果,而不仅依赖于训练数据之外的任何资源。
2.对抗GEC
图1概述了我们的方法,它由两个部分组成:生成器(G)和判别器(D)。
2.1 生成器
遵循最近基于NMT的最新GEC系统,我们将语法错误的句子作为源,将语法正确的句子作为目标。形式上,给定一个序列
x
=
[
x
1
,
x
2
,
.
.
.
,
x
S
]
x=[x_1,x_2,...,x_S]
x=[x1,x2,...,xS],我们的目标是生成另一个序列
y
=
[
y
1
,
y
2
,
.
.
.
,
y
T
]
y=[y_1,y_2,...,y_T]
y=[y1,y2,...,yT],它是
x
x
x在语法纠正后的形式。我们将一对[不正确,正确]的句子表示为
(
x
,
y
)
(x,y)
(x,y)。给定一个序列
x
x
x,生成器学习生成另一个序列
y
′
≈
y
y'≈y
y′≈y。
尽管生成器可以是任何Seq2Seq模型,但我们为GEC使用两种常见的Encoder-Decoder架构:(1)基于注意力的RNN和(2)Transformer。
2.2 判别器
在此框架中,关键组件是判别器,该判别器负责根据生成的文本的质量向生成器提供适当的奖励。大多数GAN架构通常使用单句
r
e
a
l
−
v
s
−
f
a
k
e
real-vs-fake
real−vs−fake分类器作为判别器。但是,我们认为这种方法不能准确表达GEC的任务目标。传统的GAN判别器将提供语法上正确的句子作为奖励。但是,对于这样的分类器而言,要区分人工纠正和适应真实文本分布的生成的句子更是非常困难的,并且由于分类器与生成数据不匹配,无法修正或改变源语句的语义。而且,它也将无法对部分纠正的句子提供相应的奖励。由于缺乏有关已纠正内容的上下文知识,因此此类分类器将难以区分低质量和不合适的纠正序列。因此,最终将给予他们相同的奖励。
在GEC任务中,我们最终希望生成器生成符合第1节中提到的约束的纠正语句。因此,我们将判别器的目标制定为两个方面:首先,能够评估生成文本的质量相对于真实分布文本的有效性;其次,以对给定输入句子的适当重写来衡量其质量。综上所述,判别器需要能够根据给定的输入句子来衡量输出句子的“语法正确性”程度,而不是仅区分真实与虚假。因此,与训练单句分类器不同,我们需要训练[不正确,正确]的句子对。我们认为真实数据
(
x
,
y
)
(x,y)
(x,y)是高质量的纠正(正例),而从生成器
(
x
,
y
′
)
(x,y')
(x,y′)采样的数据是低质量的(负例)。我们对单句和句子对的两种判别模型进行实验:由于基于CNN和RNN模型的简单性以及易于实现,其在句子对建模任务中被广泛使用。
2.3 对抗训练
建立
G
G
G和
D
D
D之间的对抗训练(分别由
θ
θ
θ和
φ
φ
φ参数化)以优化最小-最大目标,公式化为以下目标函数
V
(
G
θ
,
D
φ
)
V(G_θ,D_φ)
V(Gθ,Dφ):
m
i
n
m
a
x
V
(
G
θ
,
D
ϕ
)
=
E
(
x
,
y
)
∼
P
d
a
t
a
[
l
o
g
D
ϕ
(
x
,
y
)
]
+
E
x
∼
P
d
a
t
a
,
y
∼
P
G
θ
(
⋅
∣
x
)
[
l
o
g
(
1
−
D
ϕ
(
x
,
y
′
)
)
]
(1)
min~max~V(G_{theta},D_{phi}) =\ mathbb E_{(x,y)sim P_{data}}[log~D_{phi}(x,y)]+mathbb E_{xsim P_{data},ysim P_{G_{theta}(cdot | x)}}[log(1-D_{phi}(x,y'))]tag{1}
min max V(Gθ,Dϕ)=E(x,y)∼Pdata[log Dϕ(x,y)]+Ex∼Pdata,y∼PGθ(⋅∣x)[log(1−Dϕ(x,y′))](1)
其中
P
d
a
t
a
P_{data}
Pdata是真实的训练数据分布,而
P
G
θ
(
⋅
∣
x
)
P_{G_θ}(·|x)
PGθ(⋅∣x)是生成器输出的分布。
利用该目标函数,判别器学习去预测是从真实数据
(
x
,
y
)
(x,y)
(x,y)还是从
G
θ
:
(
x
,
y
′
)
G_θ:(x,y')
Gθ:(x,y′)采样了给定的句子对。给定输入句子
x
x
x,
G
θ
G_θ
Gθ试图通过生成高质量的纠正样本
y
′
≈
y
y'≈y
y′≈y来混淆
D
φ
D_φ
Dφ。形式上,
D
φ
D_φ
Dφ的目标函数定义为标准二进制交叉熵(BCE)损失:
L
d
=
E
(
x
,
y
)
∼
P
d
a
t
a
l
o
g
D
ϕ
(
x
,
y
)
+
E
x
∼
P
d
a
t
a
,
y
′
∼
P
G
θ
(
⋅
∣
x
)
l
o
g
(
1
−
D
ϕ
(
x
,
y
′
)
)
(2)
mathcal L_d=mathbb E_{(x,y)sim P_{data}}log~D_{phi}(x,y)+mathbb E_{xsim P_{data},y'sim P_{G_{theta}}(cdot |x)}log(1-D_{phi}(x,y'))tag{2}
Ld=E(x,y)∼Pdatalog Dϕ(x,y)+Ex∼Pdata,y′∼PGθ(⋅∣x)log(1−Dϕ(x,y′))(2)
生成器的目标函数可以表述为优化以下损失:
L
g
=
E
x
∼
P
d
a
t
a
,
y
′
∼
P
G
θ
(
⋅
∣
x
)
l
o
g
(
1
−
D
ϕ
(
x
,
y
′
)
)
(3)
mathcal L_g=mathbb E_{xsim P_{data},y'sim P_{G_{theta}}(cdot |x)}log(1-D_{phi}(x,y'))tag{3}
Lg=Ex∼Pdata,y′∼PGθ(⋅∣x)log(1−Dϕ(x,y′))(3)
但是,由于生成器执行离散采样以获得
y
′
y'
y′,因此我们无法直接使用基于梯度的方法反向传播梯度,从而使
V
(
G
θ
,
D
φ
)
V(G_θ,D_φ)
V(Gθ,Dφ)相对于
θ
θ
θ是不可微的。为了解决这个问题,受Cai and Wang (2018) 以及Wu et al. (2018) 论文的启发,我们使用基于单采样的REINFORCE,一种蒙特卡洛策略梯度方法来优化
G
θ
G_θ
Gθ。在强化学习(RL)中,生成器
G
θ
G_θ
Gθ在策略
G
θ
(
⋅
∣
x
)
G_θ(·| x)
Gθ(⋅∣x)下充当agent,并且生成的语法纠正语句
y
′
y'
y′是动作。通过输入序列
x
x
x和鉴别器
D
φ
D_φ
Dφ对环境进行表示,判别器
D
φ
D_φ
Dφ根据
D
φ
(
x
,
y
′
)
D_φ(x,y')
Dφ(x,y′)的判别损失提供奖励
l
o
g
(
1
−
D
φ
(
x
,
y
0
)
)
log(1-Dφ(x,y0))
log(1−Dφ(x,y0))。生成器通过最大化从环境返回的奖励来改善自身。因此,可以通过对生成器
y
′
∼
G
(
⋅
∣
x
)
y'sim G(·|x)
y′∼G(⋅∣x)进行纠正采样,来估算出
∇
φ
L
d
∇_φmathcal L_d
∇φLd和
∇
θ
L
g
∇_θmathcal L_g
∇θLg,如下所示:
∇
φ
L
d
=
∇
φ
l
o
g
D
ϕ
(
x
,
y
)
+
∇
φ
l
o
g
(
1
−
D
ϕ
(
x
,
y
)
)
(4)
∇_φmathcal L_d=∇_φlog~D_{phi}(x,y)+∇_φlog(1-D_{phi}(x,y))tag{4}
∇φLd=∇φlog Dϕ(x,y)+∇φlog(1−Dϕ(x,y))(4)
∇
θ
L
g
=
∇
θ
l
o
g
G
θ
(
y
′
∣
x
)
l
o
g
(
1
−
D
ϕ
(
x
,
y
)
)
(5)
∇_θmathcal L_g=∇_θlog~G_{theta}(y'|x)~log(1-D_{phi}(x,y))tag{5}
∇θLg=∇θlog Gθ(y′∣x) log(1−Dϕ(x,y))(5)
其中
φ
φ
φ和
θ
θ
θ可以根据REINFORCE算法进行更新。
2.4 训练策略
尽管REINFORCE提供了不用微分的奖励函数框架,但是由于离散奖励空间使用单步采样的
y
′
y'
y′进行蒙特卡洛估计而导致的高方差问题,从而使得训练不稳定,这是公认的RL方法的局限性。在实践中,我们发现仅对方程3进行对抗训练是不稳定的,即使经过预训练也是如此。这是由于提供给生成器的奖励的稀疏性,仅在其完全生成句子后才发生。我们没有为计算效率生成多个样本这一事实也使情况更加复杂。因此,生成器的训练变得脆弱,并且发现很难摆脱不良的局部最小值或模式崩溃。为缓解此问题,我们利用以下措施:基准奖励和teacher forcing交错式训练来训练生成器。
(1)基准奖励
缓解方差问题的一种流行技术是从原始奖励中减去基线值。可以使用各种方法来计算基线奖励。Yang et al. (2018) 使用恒定值,Rennie et al. (2017) 将当前模型获得的序列奖励与贪婪采样策略结合使用。Ranzato et al. (2016), Bahdanau et al. (2017), and Liu et al. (2017) 使用MLP估算基线奖励。但是,这些方法依赖于使用中间状态来逼近最终奖励,或者依赖于通过推广策略合并单词级别的奖励以获得更好的信用分配。而且,鉴于大的解码空间,已经发现这种方法非常耗时。基于先前用于建模对话系统的RL的工作,该系统也具有离散的动作奖励空间,我们使用历史奖励值的移动平均作为基线,从而稳定了训练处理并且在计算上易于处理。
(2)交错训练
继Guo et al.(2018) and Wu et al. (2018),我们交错了MLE和Policy Gradient培训。对抗目标函数与MLE的组合是成功训练
G
G
G的重要因素。通过某种概率
λ
λ
λ(在5.3节中有更多详细信息),使用策略梯度(判别器生成奖励)训练随机选择的mini-batch,同时使用MLE训练其他mini-batch。这种交替提高了训练的稳定性,因为MLE充当正则化器以确保模型更新更平滑,从而减轻了REINFORCE中单步蒙特卡洛样本的高梯度估计方差带来的负面影响。在此生成器更新之后,它用于生成更真实的纠正,然后用于训练判别器。这种方法等效于Li et al. (2017) and Yang et al. (2018) 的teacher forcing设置,其中,在每次进行策略梯度训练更新之后,他们使用teacher forcing更新生成器,方法是使判别器自动向真实数据分配1的奖励,生成器使用该奖励进一步更新自身。
最后
以上就是健康手链为你收集整理的Adversarial Grammatical Error Correction翻译摘要1.介绍2.对抗GEC的全部内容,希望文章能够帮你解决Adversarial Grammatical Error Correction翻译摘要1.介绍2.对抗GEC所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复