paddle&蜜度 文本智能较对大赛经验分享(17/685)

引言我之前参加了一个中文文本智能校对大赛 , 拿了17名,虽然没什么奖金但好歹也是自己solo拿的第一个比较好的名次吧,期间也学到了一些BERT应用的新视角和新的预训练方法,感觉还挺有趣的,所以在这里记录一下这期间学到的知识 , 分享一下自己的比赛过程 。这个赛题任务大概就是,选择网络文本作为输入,从中检测并纠正错误,实现中文文本校对系统 。即给定一段文本 , 校对系统从中检测出错误字词、错误类型,并进行纠正 。
任务定义系统/模型的输入为原始序列\(X=(x1,x2,..,xn)\),输出为纠错后的序列 \(Y=(y1,y2,..,ym)\)X可能已经是完全正确的序列,所以X可能与Y相同 。系统/模型需要支持多种粒度的序列,包括:字词、短语、句子、短文 。
中文错误类型一般包含三种,从字词到语义错误,难度依次递增

paddle&蜜度 文本智能较对大赛经验分享(17/685)

文章插图
Soft-Masked BERT (ACL2020,字节跳动)论文:Spelling Error Correction with Soft-Masked BERT
注意该模型只能处理输入序列和输出序列等长度的纠错场景!
paddle&蜜度 文本智能较对大赛经验分享(17/685)

文章插图
模型简介:整个模型包括检错网络和改错网路:
  • 检错网络是一个简单的Bi-GRU+MLP的网络,输出每个token是错字的概率
  • 改错网络是BERT模型 , 创新点在于 , BERT的输入是原始Token的embbeding和 [MASK]的embbeding的加权平均值,权重就是检错网络的概率 , 这也就是所谓的Soft-MASK , 即 \(ei=pi?e_{mask}+(1?p_i)?e_i\)。极端情况下,如果检错网络输出的错误概率是1,那么BERT的输入就是MASK的embedding,如果输出的错误概率是0 , 那么BERT的输入就是原始Token的embedding 。
在训练方式上采用Multi-Task Learning的方式进行,\(L=λ·L_c+(1?λ)·L_d\),这里λ取值为0.8最佳 , 即更侧重于改错网络(Lc means correction)的学习 。
模型结果:
paddle&蜜度 文本智能较对大赛经验分享(17/685)

文章插图
该结果是句子级别的评价结果,Soft-MASK BERT在两个数据集上均达到了新的SOTA,相比仅使用BERT在F1上有2-3%的提升 。
该模型处理错误的情况,主要有以下缺点,模型没有推理能力不能处理逻辑错误(语义错误),模型缺乏世界知识不能处理知识错误(地名等)
用MLM-phonetics纠错2021ACL中文文本纠错论文:Correcting Chinese Spelling Errors with Phonetic Pre-training 论文笔记 - 知乎 (zhihu.com)
论文地址: paper
作者在论文中对比了MLM-base和MLM-phonetics的差异:
  1. MLM-base 遮盖了15%的词进行预测, MLM-phonetics 遮盖了20%的词进行预测 。
  2. MLM-base 的遮盖策略基于以下3种:[MASK]标记替换(

      推荐阅读