文章目录
解决的问题
NMT-based GEC系统有如下几个问题妨碍了部署:
- 缓慢的推理速度
- 需要大量的训练数据
- 可解释性
在这篇论文中,通过将任务从序列生成转换成序列标注,简化了任务,处理了上述的问题。
这篇论文的思想
Token-level transformations
首先介绍一下概念,Token-level transformations包括以下两种:
- Basic transformations: 保持不变、删除、在目前的token后面添加一个token、将目前的token替换为另一个token
- g-transformations: 主要是一些具体的任务,比如:改变大小写、将当前的token与下一个token合并、把目前的token分解为两个、单数转复数等等
然后,这篇论文开始了他的预处理工作,把训练和评估数据从简单的原始文本与纠正文本对,转换成了每个token编辑方式的tag。
Tagging model architecture
此模型是由预训练的BERT-like的transformer组成的encoder。然后后面堆了两个线性层和一个softmax层。
Iterative sequence tagging approach
使用GEC sequence tagger标注修改过的序列,然后再次纠正,以这样的方式进行迭代,保证尽可能地完全纠正句子。由于模型问题,一次迭代只能执行一次编辑,但是很多错误并不能由一次编辑来纠正,所以多次迭代具有相应的科学性。
实验显示,大部分的纠正都在前两次迭代中完成。
实验
训练
有三个训练步骤:
- 在合成的错误句子上的预训练
- 在错误句子上进行微调
- 在错误句子和正确句子上进行微调
Encoders from pretrained transformers
这篇论文尝试了LSTM、ALBERT、BERT、GPT-2、RoBERTa、XLNet等作为encoder,最后发现BERT, RoBERTa和XLNet效果要好于其他,在进一步的实验中作者使用了这些。
Tweaking the inference
随后这篇论文在推断的时候又做了一些小改良:
- 设置一个不改变原来token的概率阈值,名为confidence bias
- 在错误检测层,设置一个句子级别的minimum error probability阈值
在这些小的改良下,模型的能力确实提升不少:
Speed comparisons
由于此模型不需要一个一个的从decoder中预测纠正的单词,所以推断是并行执行的,速度就快了很多。
结论
这篇论文使用了序列标注方法、预训练transformer、独特的token转换方式和3-stage的训练,实现了一个更快更强的GEC系统,达成了GEC方面的最好性能,并且推导速度是基于Transformer的seq2seq模型的10倍。