本文是Spelling Error Correction with Soft-Masked BERT论文的学习笔记,并且根据论文实现了相应的源码。
改进BERT纠错模型的motivation:BERT预训练模型只对于句子进行15%的mask字符进行预测,使得模型没有检测error的能力,从而更趋向于不纠错,即只复制原始字符
论文模型主体思想:
-
句子预处理,得到相应的字符的input embedding
-
input embedding 经过detection 网络,输出得到句子序列每个位置的错误概率分布
-
根据得到的错误概率分布,计算input embdding 和MASK embedding 的权重,并得到soft-masked embedding
-
上述得到的embedding输入纠错BERT网络,输出得到每个位置上的纠错候选词
子网络解释
1.detection网络
-
双向GRU得到前向和反向的隐状态,连接得到最终每个位置的隐状态表示hi
-
隐状态hi经过线性sigmoid层得到可疑字概率ei,计算soft-embedding=ei*masked-embedding + (1-ei)*embedding。(ei代表错字的概率分数)
2.correction网络:跟正常BERT纠错网络一样