一、论文名称
SpellGCN:Incorporating Phonological and Visual Similarities into Language Models for Chinese Spelling Check
作者团队(阿里巴巴—蚂蚁金服)
论文连接:https://arxiv.org/abs/2004.14166v1
二、简介
1.作者提出了通过一个特殊的图神经网络(SpellGCN)将音似和形似的知识融合进语言模型,该模型构建了字符之间的一张图,SpellGCN通过学习将这张图映射到一组相互依赖的字符分类器上。然后,将这些分类器应用到从BERT中提取的文本表示上,并能够使整个网络进行端到端的训练。
2.SpellGCN能够捕获发音和字形的相似性,并能够探索字符之间的先验依赖。尤其是,基于发音和字形之间的关联构造两张相似性图。SpellGCN将两张图作为输入,并在相似字符交互作用之后,为每个字符生成一个向量表示。然后,这些向量表示被构造成一个字符分类器用于BERT输出的语义表示上。
三、创新点
作者提出了一个新的端到端可训练的SpellGCN,它将发音和字形相似性融合进了语义空间。其中的核心部分是:特殊的图卷积以及注意力联合操作(attentive combinationoperation)。
四、核心算法
该框架由2个模块构成:
① 字符表示提取器(character representation extractor) 提取器得到每个字符的向量表示
② SpellGCN
在提取器之上,SpellGCN用于字符之间的相互依赖建模论文中的方法尝试将符号空间(symbolic space)[音似和形似知识] 和 语义空间(semantic space)[语言语义知识]融合进一个模型
1. SpellGCN的结构
SpellGCN针需要两张音似和形似的相似性图A^p, A^s,每张相似性图是一个二进制邻接矩阵,大小为R^NxN,该矩阵基于混淆集中的N个字符构建。在第i个字符与第j个字符之间的边 A_i_j 表示 (i,j)字符对 是否存在于混淆集中。
SpellGCN的目标是学习一个映射函数,将第L层的输入节点向量H^L映射到由矩阵A定义的卷积操作输出的新表示 H^L+1。
1.1 映射函数有两个主要的子模块
1.1.1 图卷积操作
图卷积操作目的是掌握图中相邻字符之间的信息,在GCN中,轻量级卷积层定义如下:
1.1.2 注意力图联合操作 (Attentive Graph Combination Operation)
图卷积操作能够处理单张图的相似性,为了融合音似和形似图,作者采用了注意力机制。
对每一个字符,联合操作的定义如下:
公式-2-3
1.1.3 累计输出
在图卷积核注意力联合操作后,获得了第L层的表示C^L. 为了保持提取器的原始语义,之前所有层的输出进行累加后作为最终的输出:
1.2 SpellGCN能够聚焦于捕获字符相似性知识,而提取器(BERT)主要是进行语义推理。
2. SpellGCN 中文拼写检查
2.1 混淆集中的相似性图
2.1.1 SpellGCN中使用的相似性图是从混淆集构建的,该混淆集包含95%中文字符对应的相似字符。
2.1.2 这些字符可以分为以下五类:
① 相似字形;
② 相同的发音、相同的声调;
③ 相同的发音、不同的声调;
④ 相似的发音、相同的声调;
⑤ 相似的发音、不同的声调;
2.1.3 作者最终构建了两张图,分别是:音似图 和 形似图。
2.2 由提取器输出的字符表示(character representation by extractor)
2.2.1 提取器输出了用于最终分类用的字符表示
2.2.2 作者采用了BERT作为主干模型(bert-base),包含12层,12个自注意力头,隐层768维
2.3 SpellGCN作为字符分类器
2.3.1 当给出字符 X_i 的向量表示 V_i 后,模型需要通过一个全连接层(其权重W是SpellGCN的输出)预测目标字符。公式如下:
2.3.2 在该任务中,SpellGCN的输出向量起到了分类的作用。作者使用SpellGCN的最后一层输出对混淆集中的字符进行分类。
2.3.3 由于混淆集仅包含了一部分的词汇,因此,将提取器的词向量当作一个兜底的分类器(即混淆集中没有该词,则用兜底的)。公式如下:
2.3.4 为了计算效率,混淆集中包含5K个字符,提取器词汇表中包含20K个字符。
2.3.5 目标函数就是最大化目标字符的log概率,公式如下:
3. 预测推理 prediction inference
CSC任务在evaluation阶段包含两个子任务:检测 与 纠正。
在论文中,针对纠正任务,作者使用最高概率的字符;针对检测任务,通过检查预测字符是否与目标字符一致。
五、实验结果
1. 数据集
① 训练数据:10k条 + 271k条
② 测试数据:SIGHAN 2013, SIGHAN 2014, SIGHAN 2015
③ 以上数据进行了数据预处理:所有中文经过OpenCC转换为简体中文
④ 数据统计结果
⑤ 评估指标
precision, recall, F1 scores
character-level:评估一个句子中所有错误字符是否被准确纠正
sentence-level:评估一个句子中所有错误字符是否被准确纠正
2. 超参数设置
① 优化器: AdamW
② Epochs: 6
③ batch size: 32
④ learning rate: 5e-5
⑤ SpellGCN中的层数: 2
⑥ attentive combination operation with factor 3
3. 主要结果
表-3 The performance of our method and baseline models (%). D, C denote the detection, correction, respectively. P, R, F denote the precision, recall and F1 score, respectively. The r
表-4 The performance of BERT and SpellGCN evaluated by official tools on SIGHAN 2014 and SIGHAN 2015. FPR denotes the false positive rate and A denotes the accuracy. D-A and C-A denote detection accuracy andcorrection accuracy.
4. 消融研究
4.1 不同层数的效果
作者分别测试了1到4层,实验结果表明SpellGCN能够利用多层,能够集聚更多信息。不过,当层数大于3之后,F1 score开始下降。
图-3 The character-level C-F results (%) w.r.t. the depth of SpellGCN. The results were obtained with 10K training samples.
4.2 注意力机制的效果
表-5 The ablation results for graph combination method (%). The averaged character-level C-F scoresof 4 runs on the SIGHAN 2013 are reported. The models were trained with 10K training samples.
5. 案例研究
表-6 Several prediction results on the test set. The first line in the block is the input sentence. The secondline is corrected by BERT without SpellGCN. And the last line is the result from SpellGCN.
6. 字符向量可视化
图-4 The scatter of similar characters of ”长” and “祀” in terms of pronunciation by t-SNE.
图-5 The scatter of similar characters of ”长” and “祀” in terms of shape by t-SNE.