![[Pasted image 20230904094353.png]]
论文标题:重新思考用于中文拼写纠正的掩码语言模型
期刊/会议:ACL 2023
作者单位:上海交通大学
论文:https://aclanthology.org/2023.acl-long.600
代码:https://github.com/gingasan/lemon
数据集:https://github.com/gingasan/lemon

摘要

在本文中,我们研究将中文拼写纠正(CSC)视为由两个独立模型(语言模型和错误模型)做出联合决策的方法。通过实证分析,我们发现微调 BERT 往往会过度拟合错误模型,而欠拟合语言模型,从而导致对分布外错误模式的泛化能力较差。鉴于 BERT 是大多数 CSC 模型的骨干网络,这种现象具有显著的负面影响。为了解决这个问题,我们发布了一个多域基准 LEMON,它比现有基准具有更高的质量和多样性,以便对 CSC 模型的开放域泛化进行全面评估。然后,我们证明了一种非常简单的策略,即在微调过程中从输入序列中随机掩码 20% 的非错误标记,足以在不牺牲错误模型的情况下学习更好的语言模型。该技术可应用于任何模型架构,并在 SIGHAN、ECSpell 和 LEMON上取得了最新的结果。

1 介绍

中文拼写纠正 (Chinese Spelling Correction,CSC)的目的是检测并纠正句子中潜在的拼写错误。从高纬度视角来看,CSC 需要一个有效的语言模型和错误模型共同做出决定。假设输入句子包含 $n$ 个字符 $X = (x_1,…,x_n)$。模型预测每个位置 $Y = (y_1,…,y_n)$ 处的正确字符。在每个位置 $i$,让 $x_i$ 表示所有其他位置的字符,然后根据贝叶斯规则,我们有:

$P\left(y_i \mid X\right) \propto \underbrace{P\left(y_i \mid x_{i}\right)}{\text {language model }} \cdot \underbrace{P\left(x_i \mid y_i, x{i}\right)}_{\text {error model }}$

其中语言模型决定给定上下文的字符 $y_i$ 的分布,而错误模型表示给定上下文及其正确形式的潜在拼写错误字符 $x_i$ 的分布。

![[Pasted image 20230904095737.png]]
图 1:传统微调的 BERT 所犯的错误。

在本文中,我们进行了一个关键观察,即基于 BERT 的 CSC 模型通常会过度拟合错误模型,但会欠拟合语言模型。因为与语言模型相比,错误模型更容易记住。因此,该模型对看不见的编辑对 $(x_i, y_i)$ 的泛化能力非常差,并且无法利用上下文 $x_i$。我们在图 1 中说明了这一事实。例如,模型在训练期间暴露了编辑对“生硬→声音”和“生音→声音”。在测试过程中,模型无法检测到看不见的编辑对“声影→声音”,同时过度校正“生硬→声音”。这是因为模型天真地记住了训练编辑对,无法识别它们是否适合更广泛的上下文。

次优或欠拟合的语言模型的后果是该模型难以推广到新的上下文和新的领域。SIGHAN 是目前 CSC 中使用最广泛的基准,但它有两个局限性:(1)仅来自外国演讲者的中文论文的狭窄语料库; (2) 编辑对多样性较低(即测试集中有 370 个编辑对)。因此,它并没有对模型的泛化能力提出足够的挑战。为此,我们推出了 LEMON,一个新的基准测试,它是一个具有自然拼写错误的大规模多域数据集,涵盖 7 个领域,包含超过 22,000 个示例,其中有 7,627 个不同的编辑对,这些示例是从真实的人类日常写作中收集的。它提供了现实场景中 CSC 模型的综合评估。

本文贡献:

  1. 我们进行的实证分析表明,基于 BERT 的 CSC 模型学习的是次优语言模型,导致分布外编辑对的性能不佳。
  2. 我们针对 CSC 发布了大规模、多领域的基准测试,这比现有的基准测试更具挑战性。
  3. 我们证明了一种简单的屏蔽微调策略可以显着增强语言建模,而不会损害错误建模,从而在基准测试中产生新的最先进的结果。

2 Method: Masked Fine-Tuning

我们希望在不干扰错误模型的情况下增强语言模型的学习。因此,我们建议随机掩码一部分 token 并训练模型来恢复它们。掩码标记可以是任何标记,只要它不会出现在普通输入中即可。可以将其理解为人类从未犯过的特殊“打字错误”,从而向错误模型引入零偏差。根据经验,我们发现通过 [MASK] 掩码 20% 的非错误标记是最有效的。

对于使用 parallel 并行(带注释)数据和单语言 monolingual(未注释)数据进行训练,我们建议从单语言数据中随机屏蔽 20% 的标记,然后构建 MLM 损失并将其添加到训练目标中。任何破坏规则(corruption rule)(例如混淆集)都会对人为错误做出假设,从而给错误模型带来偏差。 MLM 损失不会引入任何误差模型偏差,并且如第 Empirical Results 节所示,它在领域迁移中取得了更好的结果。

3 BERT微调分析

我们研究了BERT-based模型的 top-k 性能、对未见过的编辑对的泛化以及训练期间的梯度尺度。

3.1 Top-k 预测

CSC 通常关心每个位置的 top-1 预测。但在这里,我们打印出前 5 个预测,以便了解其语言建模能力。我们发现,经过微调的 BERT 模型倾向于预测输入字符的同音异义词和同形异义词,无论其上下文是否合适。请注意,同音异义词和同形异义词是中文拼写错误的两种主要形式。因此,它表明误差模型主导了预测。我们在表 1 中演示了两种情况。

![[Pasted image 20230904100340.png]]
表 1:每个模型输出同一句子的 Top-k 结果。这里的模型是在 SIGHAN 上训练的。 FT是指常规微调。

3.2 已见 vs. 未见编辑对

在这个实验中,我们将 SIGHAN 2015 的测试集分成两个子集,INC(inclusive 包含的简写,表示与训练集重叠的编辑对)和 EXC(exclusive 独有的简写,编辑对不会出现在训练集中)。

![[Pasted image 20230904102916.png]]
表 2:未见的编辑对上的 CSC 性能暴跌。

表 2 显示了比较结果。微调后的 BERT 非常适合 INC(F1=64.1),但在 EXC(F1=6.3)上性能急剧下降。这表明该模型对于看不见的编辑对的泛化能力很差,其中错误模型不提供任何有用的信号。

为了说明这一事实,我们尝试使用普通 BERT 通过用 [MASK] 替换拼写错误的标记来纠正错误。令人惊讶的是,我们发现普通 BERT 在 EXC 上实际上可以达到不错的精度(F1=45.6),比微调 BERT(F1=6.3)好得多。这一结果凸显了这样一个事实:训练有素的语言模型具有处理看不见的错误模式的巨大潜力。

3.3 梯度范数

我们注意到错误模型与大多数拼写错误相关,并且通过记住流行的错误模式很容易拟合模型。因此,CSC 微调过程快速收敛。

![[Pasted image 20230904103353.png]]
图 2:梯度和模型收敛。在 (a) 中,我们计算所有模型参数的梯度 L2 范数。在 (b) 中,我们每 15 个步骤评估一次模型。

图2 中绘制了训练期间的梯度范数曲线。对于 BERT 微调,梯度衰减很快。在前几百步中梯度范数降至非常小(小于 0.05)后,F1 分数停止增加。这意味着模型已经收敛。相比之下,Masked-FT模型的梯度范数保持在较高水平,F1分数不断提高。

![[Pasted image 20230904103459.png]]
表 3:每个标记嵌入的梯度。我们在训练的早期阶段(两个时期)选择一个模型 checkpoint 。这句话是“(年级→年轻)轻轻就惨遭谢顶。”

表 3 报告了示例句子中每个单独标记的梯度范数。 BERT 微调产生的梯度比 Masked-FT (MFT) 产生的梯度小得多,这表明 BERT 微调涉及跨令牌的令牌级参数更新效率较低。

4 LEMON Benchmark

在本文中,我们提出了 LEMON,一个具有自然拼写错误的大规模多领域数据集,涵盖 7 个领域,包括游戏 game(GAM)、百科全书 encyclopedia(ENC)、合同 contract(COT)、医疗 medical care(MEC)、car 汽车( CAR)、novel 小说(NOV)和新闻 news(NEW)。LEMON 包含超过 22,000 个示例,其中包含从日常人类书写中识别出的自然拼写错误,并由受过良好教育的母语人士进行注释。LEMON 包含来自所有域的 7,627 个编辑对,比 SIGHAN 更加多样化。

![[Pasted image 20230904103822.png]]
图 3:LEMON 的快照。我们还在此包含 SIGHAN-15 测试集以进行比较。

5 实验结果

![[Pasted image 20230904104031.png]]
表 4:SIGHAN-15 的微调结果。底部的结果需要额外的预训练。 † 表示我们引用的结果(DCN 、PLOME、REALIZE、PHOMOSpell)。

![[Pasted image 20230904104113.png]]
表 5:ECSpell 的微调结果。

![[Pasted image 20230904104146.png]]
表 6:LEMON 上的性能。我们报告 F1 分数,还包括 SIGHAN 作为第 8 个域 (SIG)。

![[Pasted image 20230904104323.png]]
表7:领域转移结果( F1分数)。所有模型均使用Masked - FT进行训练,除非指定为FT,指的是常规微调。

![[Pasted image 20230904104721.png]]

总结

本文对现有的CSC模型进行了定性分析,指出现有的CSC模型倾向于过拟合错误模型和欠拟合语言模型。
提出了一种简单而有效的方法来促进更好的语言模型学习。