PLOME: Pre"/>
《PLOME: Pre
《PLOME: Pre-training with Misspelled Knowledgefor Chinese Spelling Correction》
ACL2021
链接:.acl-long.233.pdf
摘要
使用错误拼写知识的预训练掩码语言模型。
核心思想 :
- 使用来自混淆集(confusion set)的相似字符做mask,替代BERT中的[MASK],更好地做字符预测。
- 使用GRU网络,利用拼音与笔画,学习字符之间的发音与字形相似度。
SOTA.
结论
- 第一个面向CSC这一特定任务的语言模型。
- 基于混淆集的掩码策略,可以联合学习语义和拼写错误的知识。
- 使用语音和字形GRU网络,模拟这些语音、字形方面特征。
- 第一个通过联合考虑目标语音和字符分布进行决策的模型。
-
PLOME的性能明显优于所有对比模型。
介绍
中文拼写错误主要有字音与字形错误,其中83%的错误中存在发音错误,48%的错误存在字形错误。
处理CSC(Chinese spelling correction)任务的几个重要分支
- 语言模型
- BERT
- 由于大部分bert不是面向特定任务知识的,效果次佳。
与FASPell的对比
FASPell也融合了字音与字形,但是相似度衡量用的是制定的计算规则(编辑距离)
而PLOME的想法是↓
PLOME简介
- 基于confusion set里的相似字符对句子做mask,让模型在预训练时能够共同学习到语义和拼错知识。
- 每个字符的笔画、语音作为输入,让PLOME对任意字符间的相似性进行建模。
- 联合目标语音和字符,学习错误知识
方法
总体仍然为:pre-training & fine-tuning
基于混淆集的掩蔽策略(Confusion Set based Masking Strategy)
一个字符被选中要做掩码后(第i个位置):
- 60%发音相似字符
- 15%字形相似字符
- vocabulary中的字符15%
- 不变(防止模型认为字符都是拼错的)
嵌入层
最终的嵌入结果,为每个字符的(字符嵌入+位置嵌入+字音嵌入+字形嵌入)的总和
字音嵌入
使用Unihan数据集获取字符与字音间的映射。
建模字符间的关系:每个字符的语音字母,输入至1层GRU网络,生成语音嵌入。相似语音会拥有相似的嵌入。
字形嵌入
使用Chaizi数据集,获取每个字符的笔画顺序。
输入到另一个1层GRU网络,具体想法与字音嵌入相似。
另外两个嵌入查表。
Transformer Encoder
, 12transformer layers, 768 hidden units, 12 heads
输出层
对于每个字符有两个预测:字符预测+发音预测。
字符预测
与BERT相类似,对每个mask掉的字符预测原始字符,如:预测第i个字符。
j:字符词汇表中第j个字符
:transformer最后一层的嵌入输出(768)
:字符词汇表大小
发音预测
中文大概有430多种不同发音,但却有超过2500个字符。
有一些混淆错误,类似相似音:"jing"和"jin"
PLOME预测每个被mask掉字符的真实发音。
k:发音词汇表中的第k个发音
:发音词汇表大小
学习(优化目标)
、 :正确字符/发音
总目标:
微调步骤
训练
优化目标同上方预训练过程。
不同点:
- 不做动态掩码
- 所有字符都要被预测,而非像pre-training一样,只预测被选中的字符。
推导过程
当第i个位置字符发音对应第j个位置的发音时,=1
实验
预训练
没有从头嵌入,而是采用了Google发行的中文BERT来初始化Transformer块。
数据集
- wiki2019zh
- 中国新闻平台上搜集到的三百万篇新闻文章
- 分为1.621亿句子,进行拼接,得到最多不长于510个字符的文本片段
参数设置
字符嵌入、发音嵌入、笔画嵌入的维度
语音、字形GRU网络的隐藏状态维度
Transformer Encoder设置如
学习率:5e-5 (经验设定,可以使用网格搜索来找寻更好的参数)
微调
训练数据
组成:
- SpellGCN,1万条从SIGHAN中人工标记的数据。
- 《A hybrid approach to auto-matic corpus generation for Chinese spelling check》中27.1万条自动生成的数据。
评估数据
SIGHAN2015(1100条文本和461类错误)
评估指标
precision, recall and F1 scores
字符级、句级
使用SpellGCN中的脚本进行评估。
参数设置
最大句长:180
batch size:32
学习率:5e-5
所有实验进行4次,取平均结果。
用于对比的基线模型
-
Hybird:使用自动生成训练集训练的BiLSTM
-
PN:包含指针网络的端到端模型
-
FASPell:BERT作为自动去噪编码器+DAE-decoder
-
SKBERT:对BERT使用Soft-masking策略
-
SpellGCN:GCN网络+BERT建模混淆集中给定字符间的关系
本文自己实现的基线模型:cBERT(confusion set based BERT),输入和编码器层与中的相同 ,输出与PLOME相似,但只预测字符。
cBERT也通过基于混淆集的掩码策略进行预训练。
主要结果
- 未经微调的预训练模型(中间组)达到了相对好的结果,表明基于混淆集的掩码策略使模型能够在预训练期间学习特定任务的知识。
- 相比于微调模型,cBERT比BERT的每个表现都要好,表明所提出的掩码策略提供了必要的知识,并且它不能从微调中学习。
- 通过结合语音和形状嵌入,PLOME-Finetune在句子级别的检测和纠正方面比cBERT-Finetune有很大提升,这表明字符的语音和笔画提供了有用的信息,很难从混淆集中学习。
- SpellGCN和本文中方法使用同一混淆集,但是采用了不同策略区学习相关知识。表明该方法对这类知识建模更有效。
相关工作
CSC任务的应用
- 搜索引擎 (Martins and Silva, 2004; Gao et al., 2010)
- 自动文章打分(Burstein and Chodorow, 1999; Lonsdale and Strong-Krause, 2003)
- OCR (Afli et al., 2016; Wang et al., 2018)
CSC任务相关研究
- Pipeline:错误检测→候选字生成→选择候选字 (Chang, 1995; Huang et al., 2000; Chen et al., 2013; Y u and Li, 2014; Tseng et al., 2015)
- 常用无监督方法,采用混淆集找候选字,用语言模型正确的字符。
- 效果不是特别好。
- 为了对输入上下文建模
- 区分性序列标记方法 (Wang et al., 2018)
- 端到端生成模型(Chollampatt et al., 2016; Ji et al., 2017; Ge et al., 2018; Wang et al., 2019)
- BERT
- BERT作为Encoder,接DAE-Decoder(Hong et al. (2019) 即FASpell)
- 检测网络生成掩码向量,输入到以BERT为基础的纠正网络(Cheng et al. (2020) 即Soft-masked BERT)
- 图卷积网络(GCN),结合BERT对字符间的互相依赖进行建模
更多推荐
《PLOME: Pre
发布评论