使用Soft-Masked BERT的拼写纠错
摘要
拼写纠错是一项重要而又具有挑战性的工作,因为要想解决拼写纠错的问题,本质上需要人类水平的语言理解能力。在不丧失一般性的前提下,本文考虑汉语拼写错误校正。该任务的一种先进方法是在BERT语言表示模型的基础上,从候选字符列表中选择一个字符在句子的每个位置进行校正(包括不校正)。然而,由于BERT没有足够的能力检测每个位置是否有错误,这显然是由于掩模语言建模的预训练方式造成的,因此该方法的精度是次优的。在本文中,我们提出了一种新的神经结构来解决上述问题,它包括一个基于BERT的错误检测网络和一个基于BERT的错误修正网络,其中前者与后者通过我们所称的软掩蔽技术连接。本文提出的“软掩码BERT”方法具有普适性,可用于其他语言检测校正问题。在两个数据集上的实验结果表明,我们提出的方法的性能明显优于基线,包括单独基于BERT的基线。
1 Introduction
拼写错误的纠正是一项非常具有挑战性的任务,因为要完全解决这个问题,系统需要具备人类水平的语言理解能力。这里至少有两个挑战,如表1所示。首先,纠正拼写错误需要世界知识。第一句话中的字符字被错误地写成子,其中金子塔的意思是金塔,金字塔是专有名词。人类可以通过参考世界知识来纠正错误。第二,有时也需要根据语意进行推断。
早期的方法主要可以分为两类。一种采用传统的机器学习,另一种采用深度学习。最近,Wang et al.(2019)提出了一种带有复制机制的Seq2Seq模型,该模型将输入句子转换为拼写错误得到纠正的新句子。最近,BERT 利用该模型从给定句子的每个位置的候选字符列表中预测出最可能的字符。
然而,基于BERT方法的存在一些问题:如模型的错误检测能力不够高,本文假设这点可能是由于使用掩码语言建模的预训练BERT的方式,其中文本中只有大约15%的字符被掩码,因此它只学习mask token的分布,使得模型倾向于选择不进行任何纠正。
为了解决上述问题,在这项工作中提出了一种新的神经结构,称为Soft- Masked BERT。Soft- Masked BERT包括两个网络,一个是检测网络,一个是基于BERT的纠正网络。纠正网络类似于单独使用BERT的方法。检测网络是一个Bi-GRU网络,它可以预测字符在每个位置出错的概率。然后利用概率对该位置的字符嵌入进行soft-masking(指输出这个token是否为错的的概率分布,维度为2)。然后将每个位置的soft-masking嵌入信息输入到纠正网络中。纠正网络利用BERT进行误差纠正。在端到端联合训练中,该方法可以在检测网络的帮助下迫使模型学习正确的上下文进行纠错。
2 Our Approach
2.1 Goal
汉语拼写纠错可以形式化为以下任务。给定一个由n个字符(或单词)组成的序列X =(x1, x2,···,xn),目标是将其转换为另一个具有相同长度的字符串Y=(y1,y2,···,yn)的序列,将X中不正确的字符替换为正确的字符,得到Y。这个任务比较简单,因为通常不需要替换或只需要替换少数字符,并且应该复制所有或大部分字符。
2.2 Model
如图1所示,由基于Bi-GRU的检测网络和基于错误纠正网络组成。具体来说,首先为输入句子中的每个token创建一个嵌入,称为input嵌入。然后,利用检测网络输出该序列的错误概率。之后,它计算input嵌入和[MASK]嵌入的加权error概率。计算得到的嵌入以一种柔和的方式掩盖了序列中可能出现的错误。然后,该方法以软掩码嵌入序列为输入,利用校正网络输出error corrections概率,该纠正网络是一个BERT模型,其最后一层由一个针对所有字符的softmax函数组成。在输入嵌入和最后一层的嵌入之间也存在残差连接。接下来,我们描述模型的细节。
2.3 Detection Network
Input:
Model:
Bi-GRU
检测网络给出的条件概率:
其中σ表示sigmoid函数
Output:
2.4 Correction Network
Input:
Model:
Bert
Output:
final layer:
error correction:
其中:
2.5 Learning
two objectives:检测loss和纠正loss
lambda是超参数
其中:
对目标函数的理解:一般是求解等式最小化,-号表示相反,等价于求解概率最大化,也就是输入X1,希望输出Y1的概率最大。
Loss函数一般为交叉熵,从真实分布角度来看,与预测分布的相互关系,越接近,交叉熵loss越小。
原始多分类交叉熵
当为二分类时,P(A)为0或1,0项则被舍去了,就变为了上面的的目标函数。
3 Supplement
MacBert4csc
4 Experimental Results
4.1 Datasets
SIGHAN:是一个包含1100个文本和461种错误(字符)的小数据集。
News Title:创建了一个更大的数据集用于测试和开发,称为新闻标题。选取了今日头条的新闻标题,这是一款中文新闻应用,内容丰富,涵盖政治、娱乐、体育、教育等领域。为了确保数据集包含足够数量的错误句子,我们从质量较低的文本中进行抽样,因此数据集的错误率比平时高。有三个人进行了五轮标注,仔细纠正标题中的拼写错误。数据集包含15730个文本。有5423篇文本中有错别字,有3441种。我们将数据分为测试集和开发集,每个测试集包含7,865个文本。
4.2 Baselines
NTOU:使用n-gram模型和基于规则的分类器的方法(Tseng等人,2015)。NCTU-NTUT:利用词向量和条件随机场的方法(Tseng et al., 2015)。HanSpeller++:统一的框架,利用隐藏的马尔可夫模型来生成候选对象,并利用过滤器对候选对象重新排序(Zhang et al., 2015)。
Hybrid:基于Bilstm的模型(Wang等人,2018b)。
Confusionset:Seq2Seq模型,由指针网络和复制机制组成(Wang et al., 2019)。
FASPell:采用了CSC的Seq2Seq模型,利用BERT作为去噪的自动编码器和解码器(Hong等人,2019)。
BERT- Pretrain:利用预先训练好的BERT的方法。
BERT- finetune:使用微调BERT的方法。
4.3 Experiment Setting
作为评价指标,和之前的大部分工作一样,采用了句子级的准确率、precision、recall和F1分。评估了该方法在检测和纠正正两方面的准确性。
在SIGHAN上的实验中,对于所有基于BERT的模型,先用500万个训练样本(News Title)对模型进行微调,然后再用SIGHAN中的训练样本继续微调。将训练数据中不变的文本进行删除,以提高效率。在新闻标题的实验中,模型只对500万个训练样本进行了微调。
开发集被用于SIGHAN和News Title的超参数调优。为每个数据集选择超参数λ的最佳值。
4.4 Main Results
表2给出了所有方法在两个测试数据集上的实验结果。从表中可以看出,本文提出的方法在两个数据集上的性能都明显优于基线方法。特别是在新闻标题上,Soft-Masked BERT在所有指标上都比基线要好得多。
此外,没有进行微调的BERT(即BERT- pretrain)无法发挥作用,而有微调的BERT(即BERT- Finetune)可以显著提高性能。对比本文方法与BERT- finetune,表明 Soft-Masked是一种有效的方法。
4.5 Effect of Hyper Parameter
λ值越大,错误纠正权重越大。错误检测比错误纠正更容易,因为前者本质上是一个二元分类问题,而后者是一个多分类问题。表5给出了不同超参数λ值下的Soft-Masked BERT结果。当λ为0.8时F1得分最高。这意味着在检测和校正之间达成了良好的妥协。
4.6 Ablation Study
“BERT-Finetune + Force”,它的性能可以被视为一个上界。在该方法中,让
Soft-Masked BERT-R中,去除模型中的残留连接。
Rand-Masked BERT中,检测错误概率是随机的,取值在0到1之间
BERT-Finetune只在有错误的位置进行预测,并从候选列表的其余部分中选择一个字符。结果表明,Soft-Masked BERT算法还有很大的改进空间。
Hard-Masked BERT:检测网络给出的错误概率超过阈值(0.95,0.9,0.7),就只用[mask]向量
5 Conclusion
本文提出的软掩码误码模型由一个检测网络和一个纠正网络组成。该检测网络识别出给定句子中可能存在的错误字符,并对这些字符进行软屏蔽。校正网络以软掩码字符为输入,对字符进行校正。软掩蔽技术具有广泛的应用前景,可用于其他检测校正任务。两个数据集上的实验结果表明,软掩码BERT算法的性能明显优于现有的单独利用BERT算法。作为未来的工作,我们计划将软掩码BERT扩展到其他问题,如语法错误纠正,并探索实现检测网络的其他可能性。
进NLP群—>加入NLP交流群
微信扫码关注该文公众号作者