Improving Grammatical Error Correction with Data Augmentation by Editing Latent Representation翻译

摘要

在语法纠错任务中结合数据增强方法已经引起了广泛的关注。然而,现有的数据增强方法主要将噪声应用于字符,这导致所产生的错误缺乏多样性。鉴于此,我们提出了一种新的数据增强方法,该方法可以将噪声应用于句子的潜在表示。 通过编辑语法句子的潜在表示,我们可以生成具有各种错误类型的合成样本。结合一些预定义的规则,我们的方法可以大大提高现有语法错误校正模型的性能和鲁棒性。我们在GEC任务的公开基准上评估了我们的方法,并且该方法在CoNLL-2014和FCE基准上达到了最先进的性能。

1.介绍

语法错误纠正(GEC)是检测和纠正句子中语法错误的任务。由于英语语言学习者的数量不断增加,因此在过去几年中,人们越来越关注英语GEC。
  考虑到神经网络模型在机器翻译任务中的出色表现,许多研究已将GEC视为机器翻译任务。他们将语法错误句子作为源语言,将语法正确句子作为目标语言。这种方法允许将最新的神经机器翻译模型应用于GEC。许多编码器/解码器模型,例如循环神经网络(RNN),卷积神经网络(CNN),已广泛应用于GEC。
  将神经机器翻译模型应用于GEC的一个挑战是需要大量的训练数据,即源目标对。为了解决这个问题,已经提出了许多数据增强方法。但是,现有方法通常只能生成错误类型有限的语句,并且只能提高GEC模型在这几种错误类型上的性能,而模型仍然很难用其他类型的错误来纠正语句。
  为了解决上述问题,我们提出了一种新的数据增强方法,通过编辑语法句子的潜在表示来生成合成样本。给定目标语法错误类型和相应的语法错误类型分类器,我们可以获得潜在空间中的扰动向量。然后,将扰动向量添加到输入句子的潜在表示中,并使用解码器生成具有目标语法错误类型的句子。 这样,可以通过分配不同的目标错误类型来生成各种错误。为了进一步提高性能,我们采用了一些规则来协助生成一些局部语法错误,例如拼写错误,标点符号错误等。
  我们将此数据增强方法应用于现有的GEC模型Copy-transformer以评估结果。实验在以下广泛使用的基准上进行:CoNLL-2014,FCE,BEA-2019。实验结果表明,本文提出的方法优于几种现有模型。
  我们的贡献总结如下:
  1.我们提出了一种新的数据增强方法,可以通过编辑语法句子的潜在表示来生成合成样本,从而能够生成高质量且多样化的错误。
  2.额外的合成训练样本使训练神经GEC模型能够检测和纠正大多数错误类型,并提高了模型的性能和鲁棒性。
  3.我们的方法达到了CoNLL-2014和FCE基准的最新性能。它不仅优于所有以前的单个模型,而且还优于所有集成模型。在BEA-2019基准上,我们的方法也获得了非常有竞争力的性能。

2.相关工作

早期的GEC模型主要基于人工设计的语法规则。Han et al. (2006) 指出了基于规则的方法的局限性,并提出了一个统计模型。后来,一些研究人员提出了基于统计机器学习方法的解决方案。
  随着深度学习的发展,最近的工作提出了各种神经网络模型来处理GEC任务。一些人将GEC任务视为翻译问题,并应用神经机器翻译模型来检测和纠正语法错误。Yuan and Briscoe (2016) 使用了经典的双向循环神经网络。Chollampatt and Ng (2018) 提出了卷积神经网络来捕获局部上下文。最近的许多工作都使用了功能强大的机器翻译架构Transformer。Zhao et al. (2019) 进一步将复制机制应用于Transformer。考虑到预训练方法的巨大性能,可以将诸如BERT之类的预训练语言模型合并到编码器-解码器模型中。
  编解码器GEC模型需要大量的训练数据,并且现有可用的训练语料通常无法训练出良好的GEC模型。为了解决这个问题,已经提出了许多数据增强方法。许多工作采用预定义的规则来产生局部语法错误。Grundkiewicz et al. (2019) 将拼写检查器构建的混淆集应用于语料库。Choe et al.(2019) 从人类写作习惯中提取了一些常见的文本编辑操作,并通过这些提取操作获得了合成样本。Lichtarge et al.(Lichtarge et al., 2018) 利用了对大量弱监督文本进行训练的模型。受机器翻译的反向翻译过程启发,Xie et al.(2018) 提出了一个模型,该模型可以学习从正确的句子中生成错误的句子。基于这项工作,Kiyono et al. (2019) 进一步研究了数据增强方法并获得了一些经验结论。

3.数据增强方法

我们的数据增强方法将噪声应用于潜在空间,并且可以通过编辑语法句子的潜在表示来生成具有各种错误类型的句子。为了进一步提高性能,我们采用了一些规则来协助生成某些局部语法错误。从我们的方法中生成的合成训练样本用于训练神经GEC模型,并使模型能够检测和纠正大多数错误类型,并提高其性能和鲁棒性。

3.1 编辑潜在表示

在这里插入图片描述
  受对抗样本生成过程的启发,我们提出了一种数据增强方法,该方法可通过编辑潜在表示来应用噪声。首先,我们训练编码器,解码器和错误类型分类器。给定训练后的模型,我们可以通过将扰动向量添加到句子的潜在表示中来生成合成训练样本。我们的方法的总体框架如图1所示。

3.1.1 训练Encoder, Decoder和Classifier

首先,我们训练一个编码器和一个分类器来处理语法错误分类任务。给定一个语法错误句子 x \pmb x xxx及其对应的错误类型 z z z,我们使用编码器 ϕ E \phi_E ϕE x \pmb x xxx编码为其潜在表示 h x \pmb h_x hhhx。然后,我们使用分类器 C C C来获得预测 z ′ z' z。此过程可以表述为:
h x = ϕ E ( x ) (1) \pmb h_x=\phi_E(\pmb x)\tag{1} hhhx=ϕE(xxx)(1)
z ′ = C ( h x ) (2) z'=C(\pmb h_x)\tag{2} z=C(hhhx)(2)
我们将分类损失表示为 L ( h x , z , z ′ ) L(\pmb h_x,z,z') L(hhhx,z,z),其中 h x \pmb h_x hhhx是潜在表示, z ′ z' z是预测标签, z z z是golden标签。在我们的模型中,我们选择交叉熵损失作为分类损失。
  通过在先前过程中训练完的编码器 ϕ E \phi_E ϕE,我们以自编码器的方式训练解码器 ϕ D \phi_D ϕD。目的是最小化输入 x x x和输出 x ~ \tilde{\pmb x} xxx~之间的负对数概率:
x ~ = ϕ D ( h x ) (3) \tilde{\pmb x}=\phi_D(\pmb h_x)\tag{3} xxx~=ϕD(hhhx)(3)
J ( h x ) = − ∑ t = 1 L l o g   P ( x t ∣ x ~ < t , h x ) (4) J(\pmb h_x)=-\sum^L_{t=1}log~P(\pmb x_t|\pmb{\tilde x_{\lt t},\pmb h_x})\tag{4} J(hhhx)=t=1Llog P(xxxtx~<t,hhhxx~<t,hhhxx~<t,hhhx)(4)
  我们选择功能强大的Transformer作为编码器和解码器。编码器和解码器均由具有多头自注意力层和其后的前馈层组成。
  对于分类器来说,它具有几个前馈层作为分类层。分类器将确定句子是否正确。如果不是,它将预测语法错误的特定类型。我们基于自动注释工具ERRANT中定义的25种主要类型定义了六种语法错误:ADJ / ADV(ADJ,ADJ:FORM和ADV),DET,PREP,NOUN(NOUN,NOUN:INFL,NOUN:NUM和NOUN:POSS),VERB(VERB,VERB:FORM,VERB:INFL,VERB:SVA和VERB:TENSE),OTHER(不属于上述类别的其他错误)。这些错误类型在人类写作中很常见,并且更难通过GEC模型进行纠正。

3.1.2 生成训练数据

在这里插入图片描述
  我们想要将扰动向量 r r r添加到输入句子 x \pmb x xxx的潜在表示 h x \pmb h_x hhhx,并使用解码器 ϕ D \phi_D ϕD h x + r \pmb h_{x}+r hhhx+r生成其他训练样本。算法1中总结了生成合成样本的算法。
  给定正确的句子 x \pmb x xxx和目标语法错误类型 z z z,我们可以通过最小化分类损失 L ( h x + r , z , z ′ ) L(\pmb h_{x}+r,z,z') L(hhhx+r,z,z)来获得最佳扰动向量 r ^ \hat r r^。此外,为了防止输出变化太大,我们限制了扰动 r r r的L2范数。此问题可以表述为:
r ^ = a r g m i n r , ∣ ∣ r ∣ ∣ ≤ ϵ { L ( h x + r , z , z ′ ) } (5) \hat r=\mathop{argmin}\limits_{r,||r||\le \epsilon}\{L(\pmb h_x+r,z,z')\}\tag{5} r^=r,rϵargmin{ L(hhhx+r,z,z)}(5)
  但是,对于深度神经网络模型,几乎不可能在等式5中准确估计 r ^ \hat r r^。按照 Goodfellow et al. (2015) 的方法,我们通过围绕 h x \pmb h_x hhhx线性化损失函数 L ( h x + r , z , z ′ ) L(\pmb h_x+r,z,z') L(hhhx+r,z,z),得到的解如下:
r ^ = − ϵ g / ∣ ∣ g ∣ ∣ 2 (6) \hat r=-\epsilon \pmb g / ||\pmb g||_2\tag{6} r^=ϵggg/ggg2(6)
其中 g = ∇ h x L ( h x , z , z ′ ) \pmb g=∇_{h_x}L(\pmb h_x,z,z') ggg=hxL(hhhx,z,z)
  超参数 ϵ \epsilon ϵ确定潜在空间中语义变化的程度。较小的值可以更好地保持语义,而较大的值可以使生成带有语法错误的样本更容易。我们使用启发式算法来选择最合适的值。我们以较小的值进行初始化,然后逐渐增加该值,直到产生具有目标语法错误的句子或达到阈值为止。
  最后,我们使用解码器 ϕ D \phi_D ϕD h x + r ^ \pmb h_x+\hat r hhhx+r^进行解码,并生成相应的错误句子 x ′ \pmb x' xxx
x ′ = ϕ D ( h x + r ^ ) (7) \pmb x'=\phi_D(\pmb h_x+\hat r)\tag{7} xxx=ϕD(hhhx+r^)(7)
  为了过滤低相似度的句子对,我们使用 Parikh et al. (2016) 提出的模型作为相似性判别器。给定一个带有原始句子 x \pmb x xxx的合成样本 x ′ \pmb x' xxx,我们使用相似性判别器 ψ ψ ψ得到一个分数 p ∈ [ 0 , 1 ] p∈[0,1] p[01],该分数反映了 x x x x ′ x' x之间的语义相似度。我们设置一个阈值 t t t,如果 p p p大于此阈值,则可以选择 x ′ x' x作为扩充样本。
  与直接将噪声应用于字符的方法相比,我们的方法可以生成更自然的句子。由于我们编辑句子的潜在表示,因此我们可以获得具有不同错误的更多样本,而仅通过对字符应用噪声便无法获得这些样本。

3.2 预定义规则

基于先前的工作,基于规则的方法可以生成高质量的局部语法错误。我们提出了五个规则来协助生成训练数据。
  (1)Delete。以概率0.15随机删除一个字符。
  (2)Add。首先,从单词列表(Google-10000-English)中随机选择一个单词,然后以0.15的概率将所选单词添加到随机位置。
  (3)Replace。用概率为0.5的随机形式替换字符。如果选择的字符是单词,我们将使用Word形式生成所有可能的形式(副词,形容词,名词和动词)。如果没有,我们从标点符号集中选择替换项。
  (4)Shuffle。通过将正态分布偏差以0.1的概率添加到单词的位置来对字符进行混洗。特别地,令 x = ( p 1 , . . . , p L ) x=(p_1,...,p_L) x=(p1,...,pL)表示单词的位置,其中 L L L是句子的长度,而 p i p_i pi是第 i i i个单词的位置。在一开始, p i = i p_i=i pi=i。然后,添加正态分布偏差,
p i ′ = p i + e i (8) p'_i=p_i+e_i\tag{8} pi=pi+ei(8)
其中 e i e_i ei服从正态分布 e i 〜 N ( 0 , σ 2 ) ei〜N(0,σ^2) eiN(0,σ2)。最后,将单词按校正后的位置 p i ′ p'_i pi重新排序,以获得新的序列 x ′ x' x
  (5)Spell Error。对单词以概率0.1随机应用拼写错误。我们使用与上述字级操作相同的操作(即字符的替换,删除,插入或换位)来随机干扰字符。
  使用上述数据增强方法,我们可以获得具有各种语法错误的合成训练样本。这些合成训练样本可以进一步提高GEC系统的性能和鲁棒性。

4.GEC模型

在本研究中,我们选择copy-augmented Transformer作为GEC模型来测试我们的数据增强方法。copy-augmented Transformer是一种在解码器中结合了基于注意的复制机制的Transformer。 它可以从固定的词汇表和源输入字符生成单词。考虑到输入和输出之间的相似性,此复制机制导致GEC任务中模型的出色性能。

猜你喜欢

转载自blog.csdn.net/qq_28385535/article/details/112702262