万能的BERT连文本纠错也不放过

一只小狐狸带你解锁炼丹术&NLP秘籍

作者:孙树兵
学校:河北科技大学
方向:QA/NLU/信息抽取
编辑:小轶

背景

文本纠错(Spelling Error Correction)技术常用于文本的预处理阶段。在搜索引擎、输入法和 OCR 中有着广泛的应用。2020年的文本纠错自然也离不开 BERT 的表演。但原生的 BERT 在一些NLP任务如error detection、NER中表现欠佳,说明预训练阶段的学习目标中对相关模式的捕获非常有限,需要根据任务进行一定改造。在文本纠错任务中亦是如此。

此前文本纠错的SOTA方法采用了基于 Bert 的 seq2seq 结构,直接生成纠错后的字符序列。但是经观察发现,这样的方法总是倾向于不进行任何纠错,错误检测能力很低。一种可能的解释是 Bert 在预训练时只掩码了15%的字符,所以并不能够充分学习所有字符的上下文。

为了提高错误检测能力,本文在SOTA方法的基础上又添加了一个错误检测网络。分错误检测和纠正两步走。先检测每一个字的错误概率,然后根据检测结果将可能的错别字 soft-mask,其实就是错误概率:( 滑动查看完整公式 )

原字符的

再输给基于Bert的修正网络。这样就强制修正网络学习了错别字的上下文。下面将详细为大家介绍模型的实现细节。

论文链接:https://arxiv.org/pdf/2005.07421.pdf

Arxiv访问慢的小伙伴也可以在订阅号后台回复关键词【0610】下载论文PDF。

模型结构

本文提出的 Soft-Masked Bert 模型可分为三个部分:

  • 检测网络采用 Bi-GRU 预测字符在每个位置出现错误的概率。

  • 用错误概率对 input embedding 做 soft-mask。soft-mask 是传统 hard-mask 的延伸。当错误概率等于1时,前者退化为后者。

  • 修正网络为原文中每个位置挑选替换字。实现过程与单纯使用BERT的SOTA方法相似。

检测网络

检测网络是一个二分类的序列标注模型。模型的输入是character embedding序列。其中  表示字符  的 character embedding(即word embedding, position embedding 和 segment embedding 的总和)。输出是标签序列  为第 i 个字符的标签,等于 1 表示字符错误,0 表示正确。我们记  为  等于 1 的概率。

本文采用双向 GRU(Bi-GRU) 实现检测网络。字符错误概率  可以定义为

其中, 表示检测网络给出的条件概率, 是 sigmoid 函数, 为 Bi-GRU 的隐状态,  和  是参数。隐状态可以定义为:

Soft-Mask

soft-masked embedding 为 input embedding 和 mask embedding 的加权和。权重由该字符的错误概率得到。第i个字符的 soft-masked embedding 可形式化地定义为:

是 input embedding, 是 mask embedding。如果错误概率很高,则  接近 

修正网络

修正网络是一个基于 Bert 的多类别序列标注模型。输入为 soft-masked embedding 序列  ,输出为替换字符序列 

BERT 由12个相同的 block 组成。每个 block 包含一次 multi-head self-attention 操作和一个前馈神经网络。我们将BERT最后一层的隐状态序列记为 。则给定待纠错的字符序列 ,字符  被替换为候选字符表中第  个字符的条件概率为

其中, 和  为参数; 是 和 Bert 最后一层隐状态  通过残差连接后得到的,即 。校正网络的最后一层采用 softmax 函数,从候选字符列表中选择概率最大的字符作为字符作为输出。

训练过程

Soft-masked BERT 的训练是 Seq2seq 进行的。训练目标包括错误检测和错误纠正两部分,其目标函数分别为:

总目标函数为两者的线性组合:。其中

实验结果

在 SIGHAN 和 News Title 两个数据集上进行了实验。本文的 Soft-Masked BERT方法在两个数据集上基本都取得了最好结果。

总结

本文提出了一种新的神经网络结构Soft-masked Bert,实现中文文本纠错。该结构包含错误检测和修正两个部分。通过Soft-mask技术将检测结果编码到修正网络。实验结果表明该方法的性能优于单纯使用Bert的基线模型。并且这一方法具有较强的普适性,也可用于其他语言的纠错任务。

本文收录于原创专辑:《卖萌屋@自然语言处理》

重磅惊喜:卖萌屋小可爱们苦心经营的 自然语言处理讨论群 成立三群啦!扫描下方二维码,后台回复「入群」即可加入。众多顶会审稿人、大厂研究员、知乎大V以及美丽小姐姐(划掉????‍♀️)等你来撩噢~(手慢无

  • 告别自注意力,谷歌为Transformer打造新内核Synthesizer

  • NLP中的少样本困境问题探究

  • ACL20 | 让笨重的BERT问答匹配模型变快!

  • 7款优秀Vim插件帮你打造完美IDE

  • 卖萌屋原创专辑首发,算法镇魂三部曲!

  • GPT-3诞生,Finetune也不再必要了!NLP领域又一核弹!

夕小瑶的卖萌屋

_

关注&星标小夕,带你解锁AI秘籍

订阅号主页下方「撩一下」有惊喜哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

POJ 1664 苹果放盘子(递归)

题目链接:http://poj.org/problem?id1664 m个相同的苹果放在n个相同的盘子里,有多少种不一样的方法。 例如,3个苹果放在4个盘子里有(3,0,0,0)(1,1&#xf…

蚂蚁金服4轮面经(Java研发):G1收集器+连接池+分布式架构

一面 线程池有哪些参数?分别有什么用?如果任务数超过的核心线程数,会发生什么?阻塞队列大小是多少? 数据库连接池介绍下,底层实现说下 hashset底层实现,hashmap的put操作过程 说说HaspMap底层…

算法--二分查找--求平方根(循环法/递归法)

二分查找: 数据需要是顺序表(数组)数据必须有序可以一次排序,多次查找;如果数据频繁插入,删除操作,就必须保证每次操作后有序,或者查找前继续排序,这样成本高&#xff0…

论文浅尝 | 在生成式多跳机器阅读任务中引入外部常识知识

Commonsense for Generative Multi-Hop Question Answering Tasks链接: https://arxiv.org/abs/1809.06309背景机器阅读任务按照答案类型的不同,可以大致分为:(1) 分类问题: 从所有候选实体选择一个(2) answer span: 答案是输入文本的一个片段(3) …

Overleaf v2 评测

原文链接:https://www.jianshu.com/p/1d73d4b9e880 Overleaf v2 评测 去年,两个著名的Latex在线编辑器Overleaf和Sharelatex合并了,强强联手,让我们对他们合并之后的新产品充满了期待。最近,他们的新产品发布了&#x…

蚂蚁中间件团队Java面试题:Netty+Redis+Kafka+MongoDB+分布式

蚂蚁中间件一面: 自我介绍 JVM垃圾回收算法和垃圾回收器有哪些,最新的JDK采用什么算法。 新生代和老年代的回收机制。 讲一下ArrayList和linkedlist的区别,ArrayList与HashMap的扩容方式。 Concurrenthashmap1.8后的改动。 Java中的多线…

面试必备!卖萌屋算法工程师思维导图—统计机器学习篇

卖萌屋的妹子们(划掉)作者团整理的算法工程师思维导图,求职/自我提升/查漏补缺神器。该手册一共分为数据结构与算法、数学基础、统计机器学习和深度学习四个部分。下面是第二部分统计机器学习的内容~公众号后台回复【思维导图】获取完整手册&…

【重磅】全行业事理图谱V3.0正式发布:基于实证的由因求果、由果溯因,因果路径发现

我们一直在事理图谱的探索和应用路上不断前行。。。 【中科院软件所】数据地平线的金融事理图谱Demo已经和大家见面有一段时间了(Demo地址:http://eg.zhiwenben.com/),这段时间我们收到了很多用户的建议反馈和合作邀约,大家对产品的认可和喜…

算法--二分查找--查找给定条件的值

文章目录1.数据有序且无重复,查找给定值2.数据有序且有重复,查找第1个给定的值3.查找最后一个值等于给定值的元素4.查找第一个大于等于给定值的元素5.查找最后一个小于等于给定值的元素6.查找IP归属(利用上面#5代码)7.循环有序数组…

论文浅尝 | 利用边缘标签的网络嵌入强化方法

链接:https://arxiv.org/pdf/1809.05124.pdf本文主要关注Network embedding问题,以往的network embedding方法只将是网络中的边看作二分类的边(0,1),忽略了边的标签信息,本文提出的方法能够较好的保存网络结构和边的语义信息来进行…

2018阿里集团中间件Java面试题(4面)

持续分享阿里技术面试 最新天猫3轮面试题目:虚拟机并发锁Sql防注入Zookeeper 最新阿里内推高级Java面试题 蚂蚁金服4轮面经(Java研发):G1收集器连接池分布式架构 天猫研发团队(4面全题目):并发压测Mina事…

卷积神经网络中十大令人拍案叫绝的操作

一只小狐狸带你解锁 炼丹术&NLP 秘籍作者:Justin ho来源:https://zhuanlan.zhihu.com/p/28749411前言CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个…

python--从入门到实践--chapter 11 代码测试unittest

编写的代码需要测试是否有Bug 1.函数测试 city_functions.py def city_country(city, country):return str(city) , str(country)city_country_unittest.py import unittest #导入测试模块 from city_functions import city_country as cc class citytest(unittest.TestC…

刘升平 | 基于知识图谱的人机对话系统

本文转载自公众号:AI科技大本营。 分享嘉宾 | 刘升平(云知声 AI Labs 资深技术专家)来源 | AI 科技大本营在线公开课人机对话系统,或者会话交互,有望成为物联…

最强Java面试题全部合集,涵盖BAT大厂面试必考的9大技术!-强烈建议收藏

过去2年我持续分享了BAT TMD为代表的大厂最新面试题目,特别是蚂蚁金服、天猫、淘宝、头条、拼多多等Java面试题目。 过去2年,我已经成功的帮助了部分同学进入了大厂。 2020开始,我依然会为大家带来最新的大厂现场面试专场题目,希…

杨强教授新番!破解机器学习数据孤岛和数据保护难题

一只小狐狸带你解锁 炼丹术&NLP 秘籍移动互联技术这把“温柔刀”,带来巨大便利之余,也将我们的个人数据放进了橱窗,为“推动信息技术发展”而供人调取。我们都清楚网络“裸奔”的行为很混乱,但你知道到底有多乱吗?…

POJ 3122 分披萨(二分查找)

题目链接:http://poj.org/problem?id3122 题目大意: 有 n 块披萨(大小不一样), f 个人分,包含主人自己 f1 人; 每人吃的披萨必须是一块披萨上切下来的。每个人吃的披萨相等,披萨可…

没错,继事理图谱后,我们又搞事情了:数地工场自然语言处理语义开放平台正式对外发布!

2020年的钟声即将敲响,在这辞旧迎新之际,经过近几年在Fintech领域中的自然语言处理技术研发和产品迭代积累,数据地平线Datahorizon迎来重大更新,以数据、事件、逻辑的语义toolbox为愿景的数地工场开放平台V1.0正式对外发布。 数地…

论文浅尝 | Understanding Black-box Predictions via Influence Func

Cite: Koh P W, Liang P. Understanding black-box predictions via influence functions[J]. arXiv preprint arXiv:1703.04730, 2017.链接:https://arxiv.org/pdf/1703.04730GitHub项目地址:http://bit.ly/gt-influence本文使用影响函数(Influence fun…

ICLR2020满分论文 | 为什么梯度裁剪能加速模型训练?

一只小狐狸带你解锁 炼丹术&NLP 秘籍作者:苏剑林(来自追一科技,人称“苏神”)前言需要许多时间步计算的循环神经网络,如LSTM、GRU,往往存在梯度爆炸的问题。其目标函数可能存在悬崖一样斜率较大的区域&…