当前位置: 首页 > news >正文

Global Attention Decoder for Chinese Spelling Error Correction(ACL2021)

Global Attention Decoder for Chinese Spelling Error Correction(ACL2021)

一.概述

在这里插入图片描述

作者认为现有的纠错方法大多是基于局部上下文信息进行纠错,没有考虑句子中错词的影响。将注意力放在错误上下文信息上可能会误导并降低CSC(Chinese Spelling Correction)的整体性能。为此,提出了一种用于CSC的全局注意力解码器(GAD)方法。具体而言,该方法学习了潜在正确输入字符与潜在错误候选字符之间的全局关系。获得丰富的全局上下文信息,减轻了局部错误上下文信息的影响。此外,设计了一种带有混淆集引导的BERT替换策略(BERT_CRS -> Confusion set guided Replacement Strategy),以缩小BERT与CSC之间的差距。BERT_CRS生成的候选词覆盖正确字符的概率超过99.9%。

本文首先提出了一种带混淆集引导的BERT替换策略(BERT_CRS),缩小了BERT与CSC任务之间的差距。然后,我们提出了一种新的基于BERT_CRS模型的全局注意解码器(GAD),它学习了丰富的全局上下文表示,以减轻错误上下文信息在校正过程中的影响。具体来说,为了解决局部错误上下文信息的影响,我们引入了BERT_CRS生成的潜在错误字符和隐藏状态的附加候选。然后,全局注意力组件学习候选对象之间的关系,得到候选对象的全局隐藏状态和全局潜在关注权重。然后,对候选字符进行加权和运算,生成丰富的全局上下文隐藏状态。最后一个全连接层来生成正确的字符。

本文主要贡献如下:

A.为了缩小BERT和CSC之间的差距,我们引入了一种带有混淆集引导替换策略的BERT,该策略包含一个决策网络和一个全连接层,分别模拟CSC的检测子任务和校正子任务。

B.提出了一种全局注意解码器模型,该模型学习潜在正确输入字符和潜在错误字符候选字符之间的全局关系。学习了丰富的全局上下文信息,有效减轻了局部错误上下文信息的影响。

二.方法概述

在这里插入图片描述

1.问题定义

输入一个句子X={x1,x2,…,xn},n为字符数量,Bert_CRS模型将其编码成一个连续的表示空间V={v1,v2,…,vn},vi∈Rd是第i个字符的上下文特征,维度为d。决策网络Φd 对V建模去拟合一个序列Z={z1,z2,…,zn},这里的zi表示对第i个字符的检测label,1表示错误,0表示正确。Bert_CRS之上一个全连接层作为校正网络Φc ,此网络对V建模去拟合一个序列Y={y1,y2,…,yn},这里的yi第i个字符的正确label。全局注意力解码器GAD模型对额外的候选c={c1,c2,…,cn}进行建模,以减轻局部错误上下文信息的影响,其中c表示可能正确的输入字符和可能错误的候选字符:
在这里插入图片描述

以上的k是候选字符个数。t是字符错误概率的阈值。

2.CSC的Bert_CRS方法

引入了一种使用混淆集的替代策略,该策略缩小了BERT和CSC模型之间的差距。我们把这个模型称为BERT_CRS (BERT with Confusion set guided Replacement Strategy)。与BERT任务不同,BERT_CRS有几个修改:

A.放弃了NSP(bert的下一句预测)任务,采用了类似于CSC检测子任务的决策网络来检测错误信息。

B.作为MacBERT,我们引入了混淆集引导替换策略,通过替换语音和视觉相似的字符来达到屏蔽的目的,而不是使用[MASK] token进行屏蔽。当没有混淆字符时,我们将保留[MASK] token。该策略类似于CSC的纠错子任务。

C.使用23%的输入字符进行屏蔽。为了保持检测目标的平衡(0为未替换,1为替换),我们分别设置了35%、30%、30%、5%的概率用于不进行屏蔽、用混淆字符替换、用[MASK] token屏蔽和用随机单词替换。计算得到的替换概率和掩蔽概率与BERT的屏蔽概率大致相同。

使用混淆集引导替换策略训练模型,top-k个候选字符几乎都来自混淆集。这为GAD模型做了准备。

学习:类似RoBerta,混淆集引导替代策略在训练过程中采用动态方法。在学习过程中,错误检测和纠错同步优化:
在这里插入图片描述


http://www.mrgr.cn/news/32904.html

相关文章:

  • 【数据结构初阶】链式二叉树接口实现超详解
  • 使用Renesas R7FA8D1BH (Cortex®-M85)和微信小程序App数据传输
  • 大模型终极指南:零基础到精通,一文搞定!
  • Qt窗口——对话框
  • 61. 旋转链表【 力扣(LeetCode) 】
  • MySQL数据库备份与恢复
  • 库函数模块创建
  • 9.安卓逆向-安卓开发基础-安卓四大组件2
  • C++11标准模板(STL)- 常用数学函数 - 计算e的给定幂 (ex)(std::exp, std::expf, std::expl)
  • hadoop大数据平台操作笔记
  • 酒桌上有三种人,从来不敬酒,反而不能小瞧,他们智商很高
  • JavaWeb_Servlet 学习指南
  • 小时候看的多啦A梦中的哪些是与人工智能相关的道具,现在已经实现了
  • React组件如何暴露自身的方法
  • TestDeploy v3.0构思
  • Hadoop的安装和使用
  • 数据库系统基础概述
  • linux操作系统的基本命令
  • javascript数组的常用方法汇总
  • python-SZ斐波那契数列/更相减损数