一、PLOME 概述
1. PLOME全称
Pre-trained masked Language mOdel with Misspelled knowledgE
2.目的
2.1 对输入文本中的拼写错误进行检测和纠正
2.2 中文错误类型
① 同音字错误 phnological errors
② 字形错误 visual errors
3.创新点
3.1 提出了一个基于多种masking策略的混淆数据集(confusion set)
① 动作:
每一个被选到的token,随机用一个混淆数据集中的相似token替代,而非bert中的[mask]标签
② 作用:
在预训练阶段,PLOME能够通过联合学习学到语义和错误拼写的知识
3.2 每一个字符的偏旁部首和拼音作为模型的输入
① PLOME通过恢复masked tokens处的真实字符和拼音,学习到了字符和拼音级别的错写知识
二、PLOME 算法详解
1.PLOME的框架
2. Confusion set based Masking strategy 基于掩码策略的混淆数据集
2.1 传统方式
随机掩盖句子中的一些字,用 [mask] 表示,缺点是:在下游任务中,这些[mask] 不会出现,毫无意义。
2.2 论文中的方法
(1)用混淆数据集(confusion set)中的相似字(读音相似和字形相似)来替换 masked token;
(2)对语料中15%的tokens进行mask,针对随机选中的一个token,具体替换策略有4种方法:
① 60%的概率随机用一个同音字;
② 15%的概率随机用一个形似字;
③ 15%的概率保持该字不变;
④ 10%的概率用词汇表中的任意一个字;
3. Embedding Layer 词嵌入层
每个字符的最终embedding由4部分构成:① character embedding, ② position embedding; ③ phonic embedding; ④ shape embedding
前两个embedding (character 和 position) 通过look up embedding table获取,该方法与BERT中的方式一致
3.1Phonic embedding 拼音向量
为了对字符之间的语音信息建模,将每一个字符的拼音输入到1层的GRU网络中,输出拼音词向量(phonic embedding)。预期是相似的拼音具有相似的量。
3.2 Shape embedding 笔画向量
为了对字符之间的字形关系建模,将每个字符的笔画输入到另一个1层的GRU网络中,输出笔画向量(shape embedding)
4. Output Layer 输出层
4.1 Character Prediction 字符预测
第i个token的字符预测概率,定义如下:
4.2 Pronunciation Prediction 拼音预测
中文由430种不同的发音,但是有超过2500个常用字。许多字符共用同一个拼音,因此,有80%的拼写错误由拼音错误引起。
为了能够在拼音这个层面学习到错写的知识,PLOME同时预测每一个masked token的真实拼音。
拼音预测的概率定义如下:
5. 学习目标
学习的过程就是优化2个目标函数,字符预测和拼音预测:
优化函数:
三、PLOME 实验结果
3.1 参数定义|设置
d_c : 字符embedding,维度:768
d_l : 拼音embedding,维度:32
d_s : 偏旁部首embedding,维度:32
h_p : 拼音隐层embedding,维度:768
h_s : 字形embedding,维度:768
学习率:5e-5
max sentence length : 180
batch size : 32
epochs : 4
模型初始化权重参数为Google BERT中文模型参数
3.2 实验结果
3.3 shape embedding 字形向量 与 phonic embedding 拼音向量可视化
四、参考文献
1、论文:
PLOME: Pre-training with Misspelled Knowledge for Chinese Spelling Correction
https://aclanthology.org/2021.acl-long.233.pdf