confusion中文_ACL2020笔记之中文拼写检测(Chinese Spell Check)

eb5ecab9507dda9a5a17523b9706ff85.png

第一篇来自字节跳动[1],之前也有介绍啦,下面跳转门

Giant:Soft-Masked BERT:文本纠错与BERT的最新结合

下面就补充一点我的浅薄理解:

整体框架是 Detection + Correction 的流程。

和之前工作的区别,在于下面的这种correction部分的“soft-mask”:

按照以往的思路,输入句子里的每个字都是直接获取embedding完事,相当于直接使用了e_i。 而考虑到输入的句子里可能是有错字的,把有可能错的字忽略掉(使用mask),有可能效果更好。接下来就是把bert当成一个特征抽取器,将这个soft-mask以后的向量输入给bert,得到最后一层的向量:

此时的h_i已经融合了上下文信息,所以后面的纠错实际就是一个多分类,接一个全连接层完事儿:

这里h'的处理有点莫名其妙:

hc本身已经融合了上下文信息,而且费劲吧啦地提出掉了上下文中有可能错的字,而这e_i是初始的embedding,基本相当于one-hot,不含有任何信息。也不知道加上这个东西,对后面多分类任务会有啥帮助。看了看作者名单里还有Hang Li 大佬,咱也不知道,咱也不敢问啊。

接下来就是让模型达到SOTA的关键步骤了……大规模增强数据。在5million(原始训练集1w左右)条增强数据fine-tune的加持下,没有用soft-mask的bert基线模型的F值从4.7被硬拉到71.9!然后在soft-mask作用下又有1%左右的提升。光是bert基线就已经SOTA了……

起初的时候,我认为这种soft-mask可能是相当于减少了detetction 和 correction 之间的依赖程度,进而发挥作用的。但后来仔细想想,觉得其实纠错模型不仅要学习正确的上下文,还要给定上下文条件下学习(错字-正字)之间的映射关系(比如正确的字一般都为错字的音近形近字),mask掉错字,很有可能一开始就已经南辕北辙了。

第二篇来自蚂蚁金服[2],在confusion_set上做了文章,也印证我之前的猜想。

这篇论文的主体模型就更简单啦,直接取每个字在bert最后一层的向量,接一个全连接做多分类:

,

而本工作的亮点,在于把混淆集做成了“图”,又加到了单字的embedding里。

,

其中W是要学习的矩阵,A是混淆集矩阵,两个字相似为1,否则为0。l代表卷积的层数。

做两层卷积之后,再叠加上无所不能的Attention,

具体的计算方式我也不赘述啦。直观理解,把混淆集做成GCN,每个字不仅是它自己融合上下文特征后的embedding,在embedding里也加入了音近、形近字的影子。于是进行多分类的时候,每个混淆集里的字都更倾向于分为混淆集里的其他字。

再看结果——训练时,本文只用了28W左右的增强数据,相比之前soft-mask已经小很多了。但在benchmark上的表现着实惊人。但仔细看看也能发现,和上面的论文一致,仅使用无任何添加的bert基线模型,就已经傲然群雄,加上GCN后有1-2个百分点的锦上添花。不得不说,这SOTA的军功章里还是有增强训练数据的一大多半啊。

希望大佬们轻拍,本文是本着站着说话不腰疼的态度评论的。不过但看这两篇ACL论文,确实大有魔改bert通吃一切的趋势……

中文纠错,特别是不涉及语法的字词纠错的任务,通常被学术上认为是一个已经“解决”了的问题。即没有太多“智能”的成分,只要数据足够多,肯定能出一个很好的结果。然而这种“数据足够多”在工业上绝对是个伪命题。理论上错误的句子可以有无数种,人类通过学习语法、逻辑等抽象知识,获取了正误判断的能力。放到模型层面,怎样才能算是“好”模型呢,中文纠错的问题依旧是道路阻且长。

参考文献:

[1] Zhang, S., Huang, H., Liu, J., & Li, H. (2020). Spelling Error Correction with Soft-Masked BERT. arXiv preprint arXiv:2005.07421

[2] Cheng, X., Xu, W., Chen, K., Jiang, S., Wang, F., Wang, T., ... & Qi, Y. (2020). SpellGCN: Incorporating Phonological and Visual Similarities into Language Models for Chinese Spelling Check. arXiv preprint arXiv:2004.14166.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值