文章目录
- Soft-Masked Bert论文阅读记录
- 论文地址
- 论文介绍
- 论文原理
- 检测网络
- Soft Masking
- 纠错网络
- 模型的训练
- 论文实验结果
- 实验数据
- 实验结果
Soft-Masked Bert论文阅读记录
论文介绍
文本纠错,是自然语言处理领域检测一段文字是否存在错别字、以及将错别字纠正过来的技术,一般用于文本预处理阶段,同时能显著缓解智能客服等场景下语音识别(ASR)不准确的问题。
Soft-Masked Bert的大致原理是基于Bert从句子中的每一个字的候选字组中找到正确的候选字进行纠错。Soft-Maked Bert将文本的纠错任务分为检测网络和纠错网络两个部分,纠错网络的输入来自检测网络的输出,通过soft masking 将检测网络的输出字符特征添加mask embedding进行纠错。
论文原理
检测网络
检测网络的输入是一个包含了n个字符的字符序列X通过embedding处理之后的序列E:其中的是通过word embedding,position embedding,segment embedding共同处理。
检测网络的输出是一个字符的标签序列,表示当前字符的标签值,其中0代表当前字符无错,1代表当前字符错误。对于每一个字符,使用表示当前字符的 为1的概率,值越高表示当前的字符错误可能性越大。 检测网络是由双向GRU组成,利用上下文信息输出,的定义如下:其中的为sigmoid函数,对于的定义:
Soft Masking
Soft Masking相当于是input embedding 、mask embeddings 的加权和,权重为,Soft-Masked embedding的表达式如下:通过表达式可以看出,当越高的时候,的值就越接近,反之约接近。
纠错网络
纠错网络的模型是一个基于BERT的序列多分类标记模型,纠错网络的输入为Soft Masking输出的序列,输出为纠错完成的字符序列。检测网络输出的特征作为BERT的12层Transformer模块的输入 ,其中最后一层的Transformer使用检测网络的输入Emdedding特征与这一层的输出残差连接作为模型的输出,最终过一遍softmax函数,在候选字表中选取每一个位置的正确字符。
模型的训练
Soft-Masked Bert模型的训练是端到端进行的,训练的数据是由原始句子序列和纠错句子序列组成的生成训练数据的一种方法是通过给定的字符序列,使用困惑字符表中的字符进行生成原始字符序列,模型的损失函数由检测网络和纠错网络加权构成
其中
论文实验结果
实验数据
SIGHAN数据集和新闻标题数据集
实验结果
实验对比了多种CSC模型方法,最终的结果如下图:
实验的结果可以看到经过微调训练的BERT模型相比预训练模型效果有了很大的提升,这个在之前的Faspell项目中也是相同的,微调能极大的提升纠错的效果。
上图是不同训练数据集大小的效果对比,可以看到随着数据集size的增大,检测和纠错的效果都在提升,不过貌似看起来纠错的召回率有点低,比之前我使用FASPELL训练的要低10%左右。