论文解读:Spelling Error Correction with Soft-Masked BERT(2020ACL)

  拼写错误纠错是一个比较重要且挑战的任务,非常依赖于人类的语言理解能力。本文关注中文的拼写错误纠错任务(Chinese Spelling Error Correction)。目前SOTA的方法是给予BERT模型,为句子中的每一个词,从候选的字符列表中挑选一个作为纠错的结果,然而这类方法容易陷入局部最优。然而,因为 BERT 没有足够的能力来检测每个位置是否有错误,显然是由于使用掩码语言建模对其进行预训练的方式。、
  本文解决上述提到的问题,提出一种基于BERT端到端的新方法,包括error detection network和error correction network,这两个模块前后之间通过我们提出的soft-masking technique。

Our method of using ‘Soft-Masked BERT’ is general, and it may be employed in other language detection- correction problems.

  拼写错误纠错任务可以用于搜索、OCR识别等下游任务中,本文关注与字符级别的纠错任务。

简要信息:

序号 属性
1 模型名称 SoftMasked BERT
2 所属领域 自然语言处理、中文拼写检测
3 研究内容 预训练语言模型
4 核心内容 BERT应用
5 GitHub源码 https://github.com/hiyoung123/SoftMaskedBert
6 论文PDF https://aclanthology.org/2020.acl-main.82.pdf

一、挑战:

  • 世界知识(World Knowledge)需要应用到拼写错误纠错上;
  • 需要一定的推理(Inference)

二、相关工作与动机:

  • 先前的拼写错误纠错方法可以分为传统的机器学习方法和深度学习方法:
  • BERT目前常用于拼写检错上,但是其错误检测能力还不够好。作者认为可能Masked Langauge Model模型只有15%的字符被mask,因此其可能只学习到mask的分布情况,并不会尝试进行纠错。

the way of pre-training BERT with mask language modeling in which only about 15% of the characters in the text are masked, and thus it only learns the distribution of masked tokens and tends to choose not to make any correction.

  本文提出Soft-Masked BERT,包括detection network和correction network:

  • detection network:使用Bi-GRU用于预测每个位置的字符是否存在错误;概率则作为soft-masking
  • correction network:使用BERT预测纠正的词的概率;

  soft-masking是hard-masking的一种拓展:

  • hard-masking,0/1向量,0表示不纠错,1表示纠错;
  • soft-masking:小数,每个位置的字符代表一个embedding向量,并喂入correction network中

三、方法

Soft-Masked BERT is composed of a detection network based on Bi-GRU and a correction network based on BERT. The detection network predicts the probabilities of errors and the correction network predicts the probabilities of error corrections, while the former passes its prediction results to the latter using soft masking.

模型架构如下图所示:

Detection Network

  • 输入每个token,每个token的input embedding为word embedding、position embedding以及segment embedding,经过双向GRU网路,每个位置将会输出一个二分类标签(1表示该token是错的,0表示正确),并输出对应的标签为1的概率(即存在错误的概率)
  • soft masking:对input embedding和mask embedding进行加权求和:
    ei′=pi⋅emask+(1−pi)⋅eie_i' = p_i\cdot e_{mask} + (1 - p_i)\cdot e_iei=piemask+(1pi)ei

最终获得的 ei′e_i'ei 表示每个位置的soft masking embebding。

Correction Network

  • 输入soft masking emebdding,喂入到BERT的Masked Langauge Modeling模型中
    其中 pip_ipi 是该位置是错误的概率,得到最后一层的隐向量,同时通过残差连接方法与input embedding进行结合:
    hi′=hic+eih_i' = h_i^c + e_ihi=hic+ei

  • 每个位置的token进行多类分类,得到纠错后的结果。
    learning

  • 训练目标:detection network和correction network分别对应loss function:

Ld=−∑i=1nlog⁡Pd(gi∣X)\mathcal{L}_d = - \sum_{i=1}^{n}\log P_d(g_i|X)Ld=i=1nlogPd(giX)

Lc=−∑i=1nlog⁡Pc(yi∣X)\mathcal{L}_c = - \sum_{i=1}^{n}\log P_c(y_i|X)Lc=i=1nlogPc(yiX)

  最后两者线性相加,得到总体的训练损失:
L=λ⋅Lc+(1−λ)⋅Ld\mathcal{L} = \lambda\cdot\mathcal{L}_c + (1-\lambda)\cdot\mathcal{L}_dL=λLc+(1λ)Ld

四、实验:

4.1 数据集

  • SIGHAN:1100texts、461种错误;
  • News Title:15730texts,其中5423texts存在错误,一共3441种类型错误

  训练集:在中文新闻app上爬取5,000,000左右新闻title,并为每个字符根据发音(homophonous)构建来confusion table。

We also created a confusion table in which each character is associated with a number of homophonous characters as potential errors.

  随机将15%的token替换为其他错误的token,所有替换中的80%来自于对应的confusion table,20%则来自于其他任意的token。作者认为中文的80%的拼写错误都是来自于发音问题。

4.2 Baseline:

  • NTOU:词袋模型+分类器;
  • NCTU-NTUT:词向量+CRF
  • HanSpeller++:隐马尔可夫模型+重排序;
  • Hybrid:BiLSTM;
  • Confusionset:指针网络+copy机制;
  • FASpell:BERT+seq2seq模型;
  • BERT-Pretrain:直接使用预训练BERT;
  • BERT-Finetune:使用finetune bert

4.3 评价指标:

  sentence-level accuracy、precision、recall、F1

4.4 预训练

对于BERT模型,先在5,000,000个语料上进行微调,再在SIGHAN的训练集上微调。

we first fine-tuned the model with the 5 million training examples and then contin- ued the fine-tuning with the training examples in SIGHAN.

4.5 实验结果

改进点

  • 需要推理:上下文语境;
  • 需要常识知识:一些领域词的预测错误;

论文解读:Spelling Error Correction with Soft-Masked BERT相关推荐

  1. 论文解读:DCSpell:A Detector-Corrector Framework for Chinese Spelling Error Correction

    论文解读:DCSpell:A Detector-Corrector Framework for Chinese Spelling Error Correction 简要信息: 序号 属性 值 1 模型 ...

  2. Spelling Error Correction with Soft-Masked BERT

    使用Soft-Masked BERT纠正拼写错误 Shaohua Zhang 1 , Haoran Huang 1 , Jicong Liu 2 and Hang Li 1 1 ByteDance A ...

  3. 【论文阅读】Spelling Error Correction with Soft-Masked BERT

    文章目录 论文内容 摘要(Abstract) 1. 介绍(Introduction) 2. 方法(Our Approach) 2.1 问题和思路(Problem and Motivation) 2.2 ...

  4. Self-Supervised Curriculum Learning for Spelling Error Correction

    半监督课程学习用于中文拼写纠错任务 课程学习(CL) 以一种从易到难的顺序促进模型训练,该方法需要对数据难度和训练细则进行仔细设计. 纠错中得数据的难易程度受许多因素的影响,如句子长度.词的稀缺性和错 ...

  5. 【论文解读】文本分类上分利器:Bert微调trick大全

    论文标题:How to Fine-Tune BERT for Text Classification? 中文标题:如何微调 BERT 进行文本分类? 论文作者:复旦大学邱锡鹏老师课题组 实验代码:ht ...

  6. 【语音】论文阅读笔记 Non-autoregressive Error Correction for CTC-based ASR with Phone-conditioned Masked LM

    目录 摘要 介绍 预备和相关工作 1. CTC-based ASR 2. Masked LM 3. ASR error correction 提出的方法 1. Phone-conditioned Ma ...

  7. 论文解读:Correcting Chinese Spelling Errors with Phonetic Pre-training

    论文解读:Correcting Chinese Spelling Errors with Phonetic Pre-training(ACL2021)   中文拼写纠错CSC任务具有挑战性,目前的SO ...

  8. 论文解读:Dynamic Connected Networks for Chinese Spelling Check

    论文解读:Dynamic Connected Networks for Chinese Spelling Check   我们知道,拼写纠错任务比较类似预训练语言模型中的**Masked Langua ...

  9. 论文阅读:Overview of the NLPCC 2018 Shared Task: Grammatical Error Correction

    论文阅读:Overview of the NLPCC 2018 Shared Task: Grammatical Error Correction 1. 引言 2. 任务定义 3. 数据 3.1 训练 ...

最新文章

  1. 做完小程序项目、老板给我加了6k薪资~
  2. R语言应用实战-基于R的C4.5算法和C5.0算法原理解析及应用案例
  3. Python动态变量名定义与调用
  4. JSR303数据校验-2021新版
  5. c++ 标准库中 cin.ignore()
  6. html 表单优化,用CSS3优化HTML5表单的步奏
  7. Hakase and Nano【博弈】
  8. linux下配置钉钉内网穿透_4G工业路由器内嵌花生壳PHTunnel,为工业物联网提供智能内网穿透...
  9. WINDOWS下DOCKER安装后卡在boot2docker.iso无法启动
  10. 牛客练习赛24 C PH试纸
  11. 查找文件夹下图片的数量
  12. android slidingmenu 兼容低版本,Android SlidingMenu的使用详解
  13. 一位全减器逻辑电路图_全减器(全减器逻辑电路图)
  14. 集体智慧编程学习笔记(2.1)提供推荐
  15. 【帆软FR】新增自定义字体(以LED字体为例)
  16. python编写一个函数把华氏温度转换成摄氏温度_编写一个函数把华氏温度转换成摄氏温度,温度转换公式为:c=(f-32)*5/9。在主函数中输入华氏温度值......
  17. 使用 Illustrator 中组合形状的方法详解
  18. 亚楠魔域单机V6一键端分享
  19. task7a-10个细胞系仅1个表达你的基因
  20. 论学习和工作的最大区别

热门文章

  1. 路由器和交换的区别解析
  2. linux系统老毛桃怎么安装,windows10系统怎么安装运行linux系统
  3. 剖析ASP.NET WebAPI 转化 ActionResult 为 HttpResponse的机制
  4. 惠普 HPE D380 G9 做raid1+0并安装ESXI6.7
  5. NPOI 设置excel 边框
  6. cp强制覆盖与不覆盖拷贝方法
  7. asu计算机科学排名,美本ASU计算机专业申硕圆梦Top前30名校
  8. 我和sql有个约会 - sql总结(三)
  9. 自学实前后端践项目4 MMall商城 1
  10. 计算机开关电源的发展,开关电源发展史及发展趋势剖析