Encoder-Decoder Models Can Benefit from Pre-trained Masked Language Models in GEC翻译

摘要

本文研究如何有效地将诸如BERT的预训练MASK语言模型(MLM)合并到用于语法错误校正(GEC)的编码器解码器(EncDec)模型中。这个问题的答案并不像人们期望的那么简单,因为将MLM合并到EncDec模型中的以前的通用方法在应用于GEC时可能存在弊端。例如,GEC模型的输入分布可能与用于预训练MLM的语料库有很大不同。但是,以前的方法未解决此问题。我们的实验表明,我们提出的方法(首先使用给定的GEC语料库对MLM进行微调,然后将经过微调的MLM的输出用作GEC模型中的其他功能)使MLM的收益最大化。性能最佳的模型在BEA-2019和CoNLL-2014基准上均达到了最先进的性能。我们的代码可在下面网址公开获得:https://github.com/kanekomasahiro/bert-gec。

1.介绍

语法错误纠正(GEC)是一个序列到序列的任务,其中模型将非语法语句纠正为语法语句。对GEC的大量研究已经成功地使用了基于编码器/解码器(EncDec)的模型,实际上,大多数当前最先进的神经GEC模型都采用了这种架构。
  鉴于这一趋势,一个自然而有趣的问题是神经EndDec GEC模型是否可以从屏蔽语言模型(MLM)的最新进展中受益,因为已经证明BERT等能在各种自然语言处理任务中产生实质性的改进。例如,BERT建立在Transformer架构的基础上,并在大型原始语料库上进行了训练,以学习上下文中语言成分的一般表示形式,这些表示形式已被证明可用于各种任务。近年来,MLM不仅用于分类和序列标记任务,而且还用于语言生成,其中MLM与下游任务的EncDec模型相结合显着改善了模型性能。
  将MLM合并到EncDec模型的常见方法是初始化(init)和融合(fuse)。在init方法中,下游任务模型使用预先训练的MLM的参数进行初始化,然后通过特定于任务的训练集进行训练。但是,这种方法不适用于序列到序列语言生成任务之类的任务,因为此类任务往往需要大量的特定于任务的训练数据,并且使用如此大的数据集对MLM进行微调往往会破坏其预训练表示,导致灾难性遗忘。在fuse方法中,在训练特定任务模型期间,将MLM的预训练表示形式用作附加特征。将这种方法应用于GEC时,将保留MLM在预训练中学到的知识;但是,MLM不会适应GEC任务或特定于任务的输入分布(即学习者语料库中的错误句子),这可能会阻止GEC模型有效地利用MLM的潜力。考虑到这两种常见方法的这些缺点,要获得GEC中的MLM优势并不像人们期望的那样简单。这种背景促使我们研究如何将MLM整合到EncDec GEC模型中以最大程度地发挥其作用。据我们所知,尚无研究解决此问题。
  在我们的调查中,我们采用了BERT,后者是一种广泛使用的MLM,并评估了以下三种方法:(a)使用Lample and Conneau (2019) 中的预训练BERT(BERT-init)来初始化EncDec GEC模型,(b)将经过预训练的BERT的输出作为附加特征传递给EncDec GEC模型,(c)结合(a)和 (b)。
  在这种新方法(c)中,我们首先使用GEC语料库对BERT进行微调,然后将经过微调的BERT模型的输出用作GEC模型中的其他特征。为了实现这一点,我们进一步考虑了两种选择:(c1)使用GEC语料库另外训练预训练的BERT(BERT-fused MASK),以及(c2)通过语法错误检测(GED)来微调预训练的BERT(BERT-fused GED)。 在(c2)中,我们期望用来训练GEC模型,以便它既可以利用从大型通用语料库(预训练的BERT)中学到的表示形式,又可以利用从GEC训练数据中得出的对GEC有用的任务特定信息。
  我们的实验表明,将微调BERT模型的输出用作GEC模型中的其他功能(方法(c))是最有效的方法。我们还表明,通过结合BERT-fuse掩模和BERTfuse GED方法,GEC的性能进一步提高。 性能最佳的模型在BEA-2019和CoNLL-2014基准测试中获得了最先进的结果。

2.相关工作

研究报告称,当将MLM用作重新排名或用作过滤工具,能够提升GEC模型的性能。基于EncDec的GEC模型与MLM组合也可以与这些管道方法结合使用。Kantor et al. (2019) 和Awasthi et al. (2019) 提出了基于纠正方法的序列标记模型。我们的方法可以利用现有的EncDec GEC知识,但是由于模型的体系结构不同,因此无法使用上述方法。此外,据我们所知,还没有进行过结合MLM信息来有效训练EncDec GEC模型的研究。
  通过微调,MLM通常用于下游任务,但是Zhu et al. (2020) 证明,将MLM的最后一层的输出作为上下文嵌入提供给EncDec模型更为有效。最近,Weng et al. (2019) 解决了来自预训练模型的上下文知识与目标双语机器翻译之间的不匹配问题。在这里,我们还证明,解决语法纠正的原始语料库和GEC语料库之间的差距可以导致GEC系统的改进。

3.在GEC模型中使用预训练MLM的方法

在本节中,我们描述了将预训练的MLM整合到我们的GEC模型中的方法。具体来说,我们选择了以下方法:(1)使用BERT初始化GEC模型;(2)使用BERT输出作为GEC模型的附加特征,以及(3)使用通过GEC语料库微调的BERT输出作为GEC模型的附加特征。

3.1 BERT-init

我们创建一个使用BERT权重初始化的GEC EncDec模型。该方法基于Lample and Conneau (2019)。最近的GEC方法使用伪造数据,该伪造数据是通过对语法正确的句子生成伪造错误来生成的。但是,请注意,此方法无法使用从伪数据中学习到的预训练参数来初始化GEC模型。

3.2 BERT-fuse

我们使用Zhu et al. (2020) 提出的模型作为基于特征的方法(BERT-fuse)。该模型基于Transformer EncDec体系结构。它以一个语句 X = ( x 1 , . . . , x n ) \textbf X=(x_1,...,x_n) X=(x1,...,xn)作为输入,其中 n n n是其长度。 x i x_i xi X X X中的第 i i i个字符。首先,BERT对它进行编码并输出表示 B = ( b 1 , . . . , b n ) \textbf B=(b_1,...,b_n) B=(b1,...,bn)。接下来,GEC模型将 X \textbf X X B \textbf B B编码为输入。 h i l ∈ H h^l_i∈\textbf H hilH是GEC模型中编码器第 l l l层的第 i i i个隐藏表示。 h 0 h^0 h0代表输入句子 X \textbf X X的词嵌入。然后,我们按下式计算 h ~ i l \tilde h^l_i h~il
h ~ i l = 1 2 ( A h ( h i l − 1 , H l − 1 ) + A b ( h i l − 1 , B l − 1 ) ) (1) \tilde h^l_i=\frac{1}{2}(A_h(h^{l-1}_i,\textbf H^{l-1})+A_b(h^{l-1}_i,\textbf B^{l-1}))\tag{1} h~il=21(Ah(hil1,Hl1)+Ab(hil1,Bl1))(1)
其中 A h A_h Ah A b A_b Ab分别是GEC编码器 H \textbf H H和BERT输出 B \textbf B B相对应隐藏层的注意力模型。然后,每个 h ~ i l \tilde h^l_i h~il由前馈网络 F F F进一步处理,前馈网络 F F F输出第 l l l层的 H l = ( F ( h ~ 1 l ) , . . . , F ( h ~ n l ) ) \textbf H^l=(F(\tilde h^l_1),...,F(\tilde h^l_n)) Hl=(F(h~1l),...,F(h~nl))。解码器的隐藏状态 s t l ∈ S s^l_t∈\textbf S stlS计算如下:
s ^ t l = A s ( s t l − 1 , S < t + 1 l − 1 ) (2) \hat s^l_t=A_s(s^{l-1}_t,\textbf S^{l-1}_{\lt t+1})\tag{2} s^tl=As(stl1,S<t+1l1)(2)
s ~ i l = 1 2 ( A h ( s ^ i l − 1 , H l − 1 ) + A b ( s ^ i l − 1 , B l − 1 ) ) (3) \tilde s^l_i=\frac{1}{2}(A_h(\hat s^{l-1}_i,\textbf H^{l-1})+A_b(\hat s^{l-1}_i,\textbf B^{l-1}))\tag{3} s~il=21(Ah(s^il1,Hl1)+Ab(s^il1,Bl1))(3)
s t l = F ( s ~ t l ) (4) s^l_t=F(\tilde s^l_t)\tag{4} stl=F(s~tl)(4)
其中, A s A_s As代表自注意力模型。最后,通过线性变换和softmax函数对 s t L s^L_t stL进行处理,以预测第 t t t个单词 y ^ t \hat y_t y^t。我们还使用Zhu et al. (2020) 提出的“drop-net”技巧,以应用到BERT的输出和GEC模型的编码器。

3.3 BERT-fuse Mask and GED

BERT-fuse的优点是它可以保留原始语料库中经过预训练的信息,但是,它可能不适合GEC任务或特定于任务的输分布。原因是在GEC模型中,与用于训练BERT的数据不同,输入内容可能是错误的句子。为了减少用于训练GEC和BERT的语料库之间的空白,我们另外在GEC语料库上训练BERT(BERT-fuse MASK)或将BERT以GED模型训练(BERT-fuse GED)并将其用于BERT-fuse。GED是一个序列标记任务,可检测输入句子中语法错误的单词。由于BERT在GED中也有效,因此考虑到语法错误,它被认为适合对BERT微调。

猜你喜欢

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