语法纠错(grammatical error correction, GEC)任务旨在利用自然语言处理技术, 自动识别并纠正非英语母语学习者书写的文本中所包含的动词时态、拼写、标点符号等语法错误[1]. 如表1所示, 第1行表示系统的输入, 第2行表示系统的输出, 加粗单词“about”属于句子中多余的单词.
现阶段的GEC常被视为神经机器翻译任务的特例[2], 将标准的encoder-decoder机器翻译模型, 运用到语法纠错任务中. 除此之外, 基于预训练模型的语法纠错模型也渐渐的展露其优势[3]. 尽管上述工作均大幅度地提高了语法纠错的性能, 但都只是将输入句子处理成token序列, 都未能充分挖掘句子的语义(semantic)和句法(syntactic)信息.
句法作为语法的一个分支, 包含句子中单词的排列次序、短语组成等结构信息. 根据句法结构的表现形式, 可分为依存关系图(dependency graph)和成分句法树(constituent syntactic tree). 前者是描述词与词之间的相互依存关系, 后者则是关注短语及短语之间的层次关系. 多项自然语言处理的下游任务, 如机器翻译[4]、语义角色标注[5]、情感分析[6], 表明添加句子的句法信息能够提高模型的性能. 因此, 在GEC任务中, 希望模型可以更多地提取句法层面的信息, 捕捉源语句与目标语句的句法差异, 提高模型的纠错性能.
语法纠错目前存在两个问题. 首先, 语法纠错任务中难以获得大量的标注数据, 模型训练往往达不到很好的效果. 其次, 源语句与目标语句之间可能只存在一个或几个字符有所不同, 导致源语句与目标句子之间的文本编辑距离很小, 很难定位错误的字符. 但在句法结构上存在较大的差异. 如图1所示, 在例句“I appreciate all this.”中, 如果输入时将冗余的“about”写入句子中, 可以明显地看出错误句子(ungrammatical)的句法结构发生了很大的变化.
不过, 语法纠错任务下的输入句子往往存在语法错误, 现有的句法解析模型解析出来的句法信息存在错误.
针对以上问题, 本文在Transformer纠错模型基础上, 新增了句法编码器和差分融合两个模块. 本文提出的模型可以将句法特征融入到Transformer纠错模型中. 句法编码器不仅能够从原始句子中无监督地生成依存关系图和成分句法树信息, 而且更进一步地将两者进行特征融合, 形成深层次的句法向量信息. 差分融合模块将句法向量信息和Transformer捕获的语义向量信息进行差分融合, 使模型可以更有效地利用句法特征信息, 提高GEC模型的性能. 实验结果表明所提模型的准确率P (precision)、召回率R (recall)和F0.5都有很大的提高.
1 相关工作
研究者将语法纠错任务视为机器翻译的特例[7], 序列到序列的网络结构常被用于语法纠错任务中. 其中, Transformer语法纠错模型成为基线模型[8]. 由于BERT[9]、BART[10]等预训练语言模型的语言性能优异, 最近被广泛应用在语法纠错模型的编码端, 获取丰富的语义信息, 提高了语法纠错性能. 语法纠错任务目前存在的挑战依然是缺少大量的数据集. 为此, 多种数据增强的方法涌现出来[11], 一方面使用人工预设的语法错误规则对正确的句子进行噪声扰动, 从而合成平行句子对; 另一方面则是反向翻译的方式, 自动生成平行句子对. 为了缩短人造数据与标注数据的分布差异, 对抗学习(adversarial learning)也常被使用到数据增强模块中[12]. 与此同时, 部分研究者将语法纠错任务看作序列到编辑(sequence-to-edit, Seq2Edit), 不再直接预测正确的句子序列, 而是预测句子的编辑操作, 从而对输入句子的语法错误进行修改[13]. 除此之外, 结合句子间的上下文信息[14]、模型集成和重排序技术也能提高语法纠错模型的性能[15].
在语法纠错研究中, 研究者们也探索了将句法信息融入到语法纠错模型. Li等人[16]采用了现有的句法解析模型对输入句子进行解析, 获取依存关系图和成分句法树的信息, 然后通过图注意力机制将依存关系图和成分句法树的信息分别编码到语法纠错模型中. 但Li等人只利用了单一的句法结构, 既没有考虑两者融合的句法结构信息, 也没有考虑现有的句法解析模型处理存在语法错误的句子可能会生成错误的依存关系图或成分句法树信息的问题.
早期的论文工作证明, 依存关系图和成分句法树具有互补性, 两者融合能提高下游任务的性能[17]. 本文将依存关系图和成分句法树的融合成互补的依存-成分句法信息, 输入到语法纠错模型中, 最终生成语法正确的句子.
2 本文模型为了将句法知识融入语法纠错模型中, 本文提出一种新颖的差分融合句法特征的英语语法纠错模型, 实现英语文本的语法纠错. 在Transformer结构外添加了句法融合器(syn-fusion)、句法编码器(syn-encoder)和差分融合模块(diff-fusion), 框架如图2所示. 其中N、N1、N2、N3分别是句法融合器卷积层的层数、句法编码器、语义编码器和解码器的个数.
首先输入句子经过词嵌入层(embedding layer), 得到句子向量, 作为语义编码器、句法编码器以及句法融合器的输入. 其次, 语义编码器将句子向量编码为高维隐含语义特征, 句法编码器将句法融合器生成的依存-成分句法向量与句子向量编码为高维隐含句法特征, 然后通过协同注意力将语义特征和句法特征进行特征融合, 最后将其输入到解码器, 从而生成正确句子. 特别的, 在句法编码器和语义编码器之间设计了一个差分正则器(differential regularization), 用于减少句法和语义的重叠信息, 鼓励语义编码器生成句法编码器未能捕捉到的语义特征.
2.1 Transformer模型Transformer模型是一个可获取句子深层语义信息的端到端的序列生成模型, 由编码器和解码器两个部分组成, 即图2中的语义编码器(sem-encoder)和解码器(decoder).
语义编码器由N2个相同的神经模块组成, 每一模块由两个子层组成, 分别是多头注意力层(multi-head attention)和前馈层(feed forward). 其中, 多头注意力层是由多个注意力层拼接组成的, 每个注意力层计算采用的是放缩点乘(scaled dot-product), 如式(1)和式(2)所示.
$ Att(Q, K, V) = {\textit{Softmax}}\left(\frac{{Q{K^{\rm{T}}}}}{{\sqrt {{d_k}} }}\right)V $ | (1) |
$ MultiHead = [At{t_1};At{t_2};\cdots;At{t_h}] $ | (2) |
其中,
前馈层(
$ {\textit{FFN}}(x) = {{ReLU}}(x{W_1} + {b_1}){W_2} + {b_2} $ | (3) |
其中,
解码器也是由N3个相同的模块构成, 它的功能是结合编码器生成的高维向量预测目标句子. 解码器在编码器的基础上多了一个掩码多头注意力层(masked multi-head attention), 目的是保证模型不能看到未预测词的信息.
为了防止过拟合和加快模型收敛速度, 语义编码器和解码器的每个子层后面都有一个残差结构和归一化层(Add&Norm).
实际上, 纠错任务的源语句和目标语句的绝大部分单词是相同的. 因此本文引入了复制机制, 直接从源句子中复制正确的单词, 可以很好地解决未登录词(out-of-vocabulary words)的问题.
2.2 句法融合器在介绍句法融合器时, 先介绍句法距离[18]和句法高度[19]的定义以及两者的联系.
句法距离是用来记录将句子分割成更小成分的过程. 分割点的顺序记录了句子的层次结构, 通过预测句法距离序列就可以得到成分句法树.
句法高度是用来描述依存关系图中非根节点到根节点的距离. 设
句法融合模块目的是从输入的句子向量中直接生成融合的依存-成分句法信息. 首先, 将词嵌入层输出的句子向量输入到N层卷积网络中, 如式(4)所示.
$ {S_{l, i}} = \tanh (conv({S_{l - 1, i - w}}, \cdots, {S_{l - 1, i + w}})) $ | (4) |
其中,
其次, 将N层卷积网络的输出向量
$ {\tau _i} = {{ReLU}}(W_1^\tau {[{s_{N, i}}, {s_{N, i + 1}}]^{\rm{T}}})W_2^\tau $ | (5) |
$ {\delta _i} = {ReLU} (W_1^\delta {s_{N, i}} + b_1^\delta )W_2^\delta + b_2^\delta $ | (6) |
其中,
再次, 将句法距离
$ p_{i, j}^{{\rm{const}}}(j|i) = {\textit{Sigmoid}} (\tanh ({\tau _j} - {\tau _i}) + 1) $ | (7) |
然后, 遵循Shen等人[20]提出的计算方法, 依存关系层(dep layer)通过式(8)–式(10)计算单词
$ {p_C}([l, r]|i) = p({\tau _{l - 1}} < {\delta _i})\sum\limits_{l \leqslant k < r} {p({\tau _k} > {\delta _i})p({\tau _r} - {\delta _i})} $ | (8) |
$ {p_{\Pr }}(j|[l, r]) = {\textit{Softmax}} ({\delta _l}, \cdots, {\delta _r}) $ | (9) |
$ p_{i, j}^{{\rm{dep}}}(j|i) = \sum\limits_{[l, r]} {{p_{\Pr }}(j|[l, r]){p_C}([l, r]|i))} $ | (10) |
其中,
最后, 与Shen等人[20]不同的是, 并没有直接使用
$ g = \sigma ({W^{({g_1})}}p_{i, j}^{{\rm{const}}}(j|i) + {W^{({g_2})}}p_{i, j}^{{\rm{dep}}}(j|i) + {b^{(g)}}) $ | (11) |
$ p_{i, j}^{{\rm{fuse}}}(j|i) = g \times p_{i, j}^{{\rm{const}}}(j|i) + (1 - g)p_{i, j}^{{\rm{dep}}}(j|i) $ | (12) |
其中,
句法编码器同样由N1个相同的层组成, 每一层包含两个子层, 分别是多头句法注意力层(multi-head syn-attention)和前馈层.
如果将句子视为单词的全连接图, 可以将Transformer的多头注意力层视为完全图
$ {p_{i, j}} = {w_{{\rm{parent}}}}p_{i, j}^{{\rm{fuse}}}(j|i) + {w_{{\rm{dep}}}}p_{j, i}^{{\rm{fuse}}}(i|j) $ | (13) |
$ {w_{{\rm{parent}}}} + {w_{{\rm{dep}}}} = 1 $ | (14) |
$ Att({Q}_{i}, {K}_{j}, {V}_{j}, {p}_{i, j})={\textit{Softmax}}\left(\frac{{p}_{i, j}\cdot ({Q}_{i}{K}_{j}{}^{{\rm{T}}})}{\sqrt{{d}_{k}}}\right){V}_{j} $ | (15) |
其中,
然而, 语法纠错任务下的输入句子往往是存在语法错误的, 句法编码器可能会产生语法错误的句法信息. 因此, 对
本文使用差分正则器限制语义编码器的输出, 旨在减少句法编码器和语义编码器输出的信息冗余, 捕获新的语义特征. 计算公式如式(16)所示.
$ {R_D}{\text{ = }}\frac{{\text{1}}}{{{{\left\| {{H^{{\rm{sem}}}} - {H^{{\rm{syn}}}}} \right\|}_F}}} $ | (16) |
其中,
句法和语义作为句子不同视角的表征, 本文没有简单地将其线性相加, 而是使用协同注意力进一步特征融合, 得到协同注意力的输出
$ \begin{gathered} {Q_c} = {H^{{\rm{sem}}}}W_q^{\rm{T}} \\ {K_c} = {H^{{\rm{syn}}}}W_k^{\rm{T}} \\ {V_c} = {H^{{\rm{syn}}}}W_v^{\rm{T}} \\ \end{gathered} $ | (17) |
$ {H^{{\rm{Out}}}} = {\textit{Softmax}} \left(\frac{{{Q_c}K_c^{\rm{T}}}}{{\sqrt {{d_k}} }}\right){V_c} + {H^{{\rm{sem}}}} $ | (18) |
其中,
在训练过程中, 采用最小化交叉熵损失函数(cross-entropy loss function)评估模型, 同时引入L2正则化和差分正则器
$ los{s_T} = {{ - }}\sum\limits_i {{y_i}\log {{\hat y}_i}} + {\lambda _1}{R_D} + {\lambda _2}{\left\| \theta \right\|^{\text{2}}} $ | (19) |
其中,
Lang-8语料来自一个在线的英语学习网站Lang-8, 作为GEC公开语料库中最大的一组, 语料嘈杂且没有明确的标注规则, 侧重于动词时态错误. NUCLE是第一个提供错误标注且免费的语料库, 由专业英语教师进行错误标注, 用于对GEC系统的训练与性能测试. 其中, 共有27种错误类型, 比例最高的5种是搭配错误、冗余错误、限定词错误、名词单复数错误和结构性错误.
FCE语料库是剑桥学习者语料库的子集, 包括了7种错误类型, 9种母语类型.
本文将GEC任务的官方的CoNLL-2013数据集作为验证集, CoNLL-2014测试集评测本文的模型. 所有公开数据集的统计信息如表2所示.
本文使用最大匹配分数(max match score, M2-score)评测模型的性能. 此度量方法首先将GEC系统输出的纠正句子与人工标注的标准句子进行单词对齐, 计算将一个句子转换成另一个句子所需要的单词级别上的编辑数, 以准确率P、召回率R和F0.5作为模型的评价指标.
3.2 模型参数设置本文的基线模型是Copy-Augmented Transformer[1]: 该方法首次利用复制机制直接将输入句子中正确的字复制到输出端, 可以有效地解决未登录词问题, 提高模型的纠错效率.
本文的模型具体参数如表3所示, 其他参数配置与基于Copy-Augmented Transformer[1]语法纠错模型一致.
4 实验
为了证明融合句法特征的语法纠错模型可以有效地提高模型的纠错性能, 进行了消融实验和对比实验.
4.1 消融实验本文基于CoNNL-2014数据集进行4组实验, 以验证所提各模块的有效性.
实验1: 验证句法融合器卷积层层数对本文模型性能的影响, 结果如图3所示.
从图3中可以看出, 句法融合器卷积层数为3时, 模型取得最高的性能. 一方面是句子的句法结构信息存在较低层; 另一方面, 如果层数过多, 模型参数会大幅度增多, 模型会因梯度的消失变得不稳定.
实验2: 验证添加不同句法结构对语法纠错模型的纠错性能影响. 第1组实验仅使用了基线模型进行纠错; 第2组实验是在基线模型的编码端添加成分句法树信息; 第3组实验是在基线模型的编码端添加依存关系图信息; 第4组是在基线模型的编码端添加依存-成分句法信息, 即成分句法树和依存关系图的融合信息. 实验结果如表4所示.
从表4中可以看出, 相较于基线模型, 第2、第3组较第一组结果都有了明显的提升, 在F0.5指标上分别提高了1.8%和2.8%, 验证了语法纠错模型中添加不同的句法信息均能提高语法纠错性能. 由于依存关系图是在成分句法树的基础上得到的, 第3组的实验结果相对好一些.
通过对比第2–4组实验, 本文提出的依存-成分信息能进一步地提高了语法纠错的性能, F0.5值提高了5.2%, 表明了两者不同结构的句法融合存在互补的信息, 能更好地减少解析语法错误的句子所带来的错误句法信息, 增强了模型的鲁棒性.
实验3: 验证差分正则器
由表5的实验结果可以得出,
实验4: 验证语义和句法不同融合方式对模型性能的影响. 实验结果如表6所示.
由表6可以得出, 在基线模型中直接添加句法编码器输出的句法信息, 使模型提高了3.0%, 表明句法特征有利于模型的纠错性能. 为了将句法编码器优势和基线模型有效地融合在一起, 采用了协同注意力模块, 使得Transformer模型可以更好地融合句法特征, 在各方面性能优于直接将两者线性相加的方式, F0.5值又提升了2.0%.
4.2 对比实验为了验证本文提出模型的有效性, 与8种目前先进的英语语法纠错模型在CoNLL-2014测试集上的实验结果进行对比. 实验统计数据如表7所示.
本文将近几年未使用预训练模型的语法纠错模型分为两组, 第1组是未使用句法知识的模型(w/o syntax), 第2组是使用了句法知识的模型(w/ syntax), 其中“4 ens.”表示4个模型集成的结果, “LM”表示利用了语言模型. Data size表示模型使用的训练集大小, 1.2M表明模型未使用额外的伪数据集.
由表7可以看出, 在没有使用伪数据集、模型集成和语言模型的情况下, 除了R指标外, 本文提出的模型的P指标和F0.5指标均优于其他模型, F0.5值达到了59.9%, 本文提出的深度网络模型的纠错效果总体优于其他算法. 相较于使用现有的句法解析器生成句法知识的SynGEC模型, 本文模型的P和F0.5指标分别提高2.9%、1.8%, 但在R指标上略低于SynGEC模型, 可能是因为该模型使用了额外30M伪数据集. 这些实验结果验证了本文提出的方法可以帮助模型更好地提取句法与语义特征, 表明了语法纠错模型中添加句法特征能够有效地提升纠错性能.
5 结束语本文提出一种新颖的基于差分融合句法特征的英语语法纠错模型, 能很好地将句法特征融入Transformer模型. 通过句法编码器对输入句子进行句法特征的提取, 并对两种异构的句法结构进行融合. 采用差分融合模块将句法信息融入到Transformer模型中, 有效地减少句法和语义信息的冗余信息, 捕获新的语义特征. 实验结果表明, 添加句法特征不仅可以有效地提高语法纠错性能, 而且还能减轻语法纠错任务缺乏大量标注数据的影响.
[1] |
Zhao W, Wang L, Shen KW, et al. Improving grammatical error correction via pre-training a copy-augmented architecture with unlabeled data. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers). Minneapolis: Association for Computational Linguistics, 2019. 156–165.
|
[2] |
Junczys-Dowmunt M, Grundkiewicz R, Guha S, et al. Approaching neural grammatical error correction as a low-resource machine translation task. Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers). New Orleans: Association for Computational Linguistics, 2018. 595–606.
|
[3] |
Kaneko M, Mita M, Kiyono S, et al. Encoder-decoder models can benefit from pre-trained masked language models in grammatical error correction. Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Association for Computational Linguistics, 2020. 4248–4254.
|
[4] |
Bugliarello E, Okazaki N. Enhancing machine translation with dependency-aware self-attention. Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Association for Computational Linguistics, 2020. 1618–1627.
|
[5] |
He SX, Li ZC, Zhao H. Syntax-aware multilingual semantic role labeling. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing. Hong Kong: Association for Computational Linguistics, 2019. 5350–5359.
|
[6] |
Li RF, Chen H, Feng FX, et al. Dual graph convolutional networks for aspect-based sentiment analysis. Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing. Association for Computational Linguistics, 2021. 6319–6329.
|
[7] |
Chollampatt S, Ng HT. A multilayer convolutional encoder-decoder neural network for grammatical error correction. Proceedings of the 32nd AAAI Conference on Artificial Intelligence and 30th Innovative Applications of Artificial Intelligence Conference and 8th AAAI Symposium on Educational Advances in Artificial Intelligence. New Orleans: AAAI Press, 2018. 706.
|
[8] |
Rothe S, Mallinson J, Malmi E, et al. A simple recipe for multilingual grammatical error correction. Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing. Association for Computational Linguistics, 2021. 702–707.
|
[9] |
Devlin J, Chang MW, Lee K, et al. BERT: Pre-training of deep bidirectional transformers for language understanding. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Minneapolis: Association for Computational Linguistics, 2019. 4171–4186.
|
[10] |
Lewis M, Liu YH, Goyal N, et al. BART: Denoising sequence-to-sequence pre-training for natural language generation, translation, and comprehension. Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Association for Computational Linguistics, 2020. 7871–7880.
|
[11] |
Yasunaga M, Leskovec J, Liang P. LM-Critic: Language models for unsupervised grammatical error correction. Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing. Punta Cana: Association for Computational Linguistics, 2021. 7752–7763.
|
[12] |
Raheja V, Alikaniotis D. Adversarial grammatical error correction. Proceedings of the 2020 Findings of the Association for Computational Linguistics. Association for Computational Linguistics, 2020. 3075–3087.
|
[13] |
Awasthi A, Sarawagi S, Goyal R, et al. Parallel iterative edit models for local sequence transduction. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing. Hong Kong: Association for Computational Linguistics, 2019. 4260–4270.
|
[14] |
Chollampatt S, Wang WQ, Ng HT. Cross-sentence grammatical error correction. Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Florence: Association for Computational Linguistics, 2019. 435–445.
|
[15] |
Grundkiewicz R, Junczys-Dowmunt M. Near human-level performance in grammatical error correction with hybrid machine translation. Proceedings of the 2018 conference of the North American chapter of the association for computational linguistics: Human Language Technologies, Volume 2 (Short Papers). New Orleans: Association for Computational Linguistics, 2018. 284–290.
|
[16] |
Li ZC, Parnow K, Zhao H. Incorporating rich syntax information in grammatical error correction. Information Processing & Management, 2022, 59(3): 102891. |
[17] |
Fei H, Wu SQ, Ren YF et al. Better combine them together! Integrating syntactic constituency and dependency representations for semantic role labeling. Proceedings of the 2021 Findings of the Association for Computational Linguistics: ACL-IJCNLP 2021. Association for Computational Linguistics, 2021. 549–559.
|
[18] |
Shen YK, Lin ZH, Jacob AP, et al. Straight to the tree: Constituency parsing with neural syntactic distance. Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics. Melbourne: Association for Computational Linguistics, 2019. 1171–1180.
|
[19] |
Luo HY, Jiang L, Belinkov Y, et al. Improving neural language models by segmenting, attending, and predicting the future. Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Florence: Association for Computational Linguistics, 2019. 1483–1493.
|
[20] |
Shen YK, Tay Y, Zheng C, et al. StructFormer: Joint unsupervised induction of dependency and constituency structure from masked language modeling. Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing. Association for Computational Linguistics, 2021. 7196–7209.
|