《Domain-shift Conditioning using Adaptable Filtering via Hierarchical Embeddings for Robust Chinese Spell Check》

Accepted at IEEE/ACM TASLP.  2021.5.22

链接:https://arxiv.org/abs/2008.12281

摘要

拼写检查,处理有噪声的人工生成文本。

限制:字符数量多、错误分布稀疏,缺乏足够覆盖异构和偏移错误域的资源。

混淆集限制:大多数所使用的混淆集是固定的,不包括新的、偏移的错误域。

本文:提出可扩展的自适应过滤器。利用分层字符嵌入(1)消除手工制作混淆集的需要(2)解决与罕见错误相关的稀疏性问题。

在2014、2015的中文拼写检查Bake-off数据集上获得了SOTA结果

结论

提出了一种基于层次字符嵌入的中文拼写检查过滤模型

HeadFilt的适应性使得所提出的模型能够适应来自不同领域的文本、使用不同输入方法编写的文本以及由不同个人编写的潜在文本。

介绍

背景

汉语字符较多(常见字多达一万个),错误稀少,语言资源较为稀疏。

无法充分覆盖异构和偏移的错误域:错误来自不同领域,带有错误的文本是打字还是手写,用户的人口、学历如何,都会导致偏移错误域。如:非母语学习者考试的文章,可能不能很好地推广到在社交平台写文本的母语者。

(CFS confusion set)

  • 两千以上类型错误在三年内只出现一次
  • 数据集间的错误域差异很大,三个数据集间只有百分之一的错误类型是相同的。
  • 很多错误的类型只发生在一个数据集中
  • 当数据中的错误域偏离手工混淆集捕获的错误域时,混淆集覆盖的错误数量下降到73%,剩下四分之一的错误有被误检测的风险。(限制检测罕见拼写错误的能力)

混淆集:通常用于解决误差稀疏性问题,由形态相似字符组成。构建覆盖所有错误域的混淆集不实际,因为许多域有许多不同的错误模式。

还可能会受到输入法(IME)影响,搜狗拼音输入法由发音相似引起,五笔输入法由形态相似引起。

准确的拼写检查需要覆盖多个域。

增加覆盖率非常难。

解决方案

由于数据少,直接训练模型非常困难,提出了一个带有自适应过滤器的拼写检查模型。

该模型通过考虑字符之间的语音和形态相似性来改进其预测。自适应过滤器是利用从使用分级字符嵌入的数据中学习的相似性函数来构建的(因为字符间相似性是导致替换错误的主要因素之一)

第一个使用字符嵌入过滤模型输出提高准确性的工作。

过滤器可以使用训练数据中的错误进行训练,受域偏移影响较小。

核心:过滤器根据数据自动微调,有自适应性。

相关工作

错误检测和纠正的几种方法:

  • 语言模型
  • 条件随机字段
  • 基于图的算法
  • 序列标记模型

纠错方法:<几乎每句话一篇论文,在原文找出处>

  • 使用混淆集过滤掉不可能的校正候选,或生成beam-search的解码候选。

    • 混淆集通常使用手工制作的相似性函数构造。
  • 数据扩充,或迁移学习,补偿CSC训练集数量小

通过自适应,将方法推广到更多的错误域,不需要手动调整。

方法(模型)

组成

  • 预先训练的掩码语言模型(BERT) ←仅适用,会被训练数据不足所限制
  • 分层嵌入自适应过滤器Hierachical Embedding Adaptable Filter(HeadFilt) 用来过滤

内容

输入序列X_* :X_i代表序列中的第i个字符。所有序列中的唯一字符都∈词汇集合{X}

给定X_*,掩码语言模型输出Y_*是i处校正的分布,还未经过滤(1)。

过滤后为(2)。

对于每个输入字符X_i,HeadFilt计算大小为(N,S_i)的相似度向量,是X_i和词汇表{X}中N个字符之间的相似性。

相似向量S_iY_i逐元素相乘,过滤掉不可能的纠正,过滤后,位置i预测的正确字符为(4)。

具有分层嵌入的自适应过滤器(Adaptable Filter with Hierarchical Embeddings)

可以利用新域误差进行微调,缓解域偏移问题。

过滤器微调是监督域自适应的一种形式,因为它最小化了由给定混淆集捕获的误差和训练数据中的误差之间的域偏移。

HeadFilt使用字符之间嵌入空间中的距离估计候选校正的可能性。

HeadFIlt使用具有字符结构归纳偏差分级字符嵌入,以便将过滤扩展到训练数据中为看到的语音和形态字符。

分级字符嵌入通过在字符的树结构上应用TreeLSTM获得。

一个字符的(固定的)混淆集可以表示为一个二进制相似性向量,该向量中被认为可能与给定字符混淆的每个字符相似度都为1。5(a)

相比之下,HeadFilt生成的相似性向量具有使用字符结构估计的实值分数,组合所有混淆集(连接所有二进制向量)会产生相似性矩阵。5(c)

假设,字符a和b嵌入后的表示为h_ah_b

等式(6)估计a和b之间的HeadFilt相似性,常量β和m分别为缩放和间距向量。

直观来讲,如果两个嵌入向量之间的L2距离(d_{ab} (5))小于间距m,则等式(6)结果接近于1,否则接近于0。

为字符X_i的HeadFilt相似度向量,串联了X_i和其他N个字符的相似度分数。(7)

S_iX_i的混淆集相似向量,过滤后预测为:

自适应过滤器训练

最小化(10)的对比损失。

最小化损失迫使相似字符之间的L2距离在边界m之内,不相似字符之间的L2距离大于边界m。

S(a,b)为两个字符a和b的相似性。

样本来源

  • 来自混淆集的正、负样本
  • 来自训练集的正、负样本

正例为错误对(a,b) a被误认为b,反之亦然。

故,同一混淆集中的所有对(a,b)、训练集中的所有对(a,b)都是正例。

正例S(a,b)=1(相似),负例S(a,b)=0(不相似)

优化目标

优化等式10的原因:

  • 确保相似字符之间距离<边距m
  • 确保不同字符之间距离>边距m

a和b相似时,S(a,b)=1, 损失取max(0,d_{ab}-m),最小化损失将让a和b的嵌入更近。

a和b不同时,S(a,b)=0, 损失取max(0,m-d_{ab}),最小化损失将让a和b的嵌入更远。

训练步骤

  1. 模仿给定的混淆集,相同混淆集中的字符被转换为正例,而不在相同混淆集中的字符被转换为负例。
  2. 域偏移调节(自适应):在训练数据中观察到的误差对被进一步添加为正样本,并且使用这个更大的样本集进一步训练过滤器。

实验中m=0.4。

设置β,以便于当a和b不同时,预测b作为a的校正结果的概率非常小。(11)

求解所有(a,b)对较为困难,使用训练数据中的正负样本,通过(12)近似(11),达到目的。

实验

数据

数据集

2013年[1]、2014年[2]和2015年[3]中文拼写Bake-offs数据集。

对于每个数据集,我们只使用其训练集来微调模型。

混淆集

2013 Bake-off提供的混淆集过滤基线模型,以及训练HeadFilt模型(2011年创建的混淆集,可能不会覆盖较新的错误域)

基线

提出的方法:第一阶段由MLM输出,第二阶段由HeadFIlt过滤。

对比基线:

  • 没有过滤预测的BERT
  • FixedFilt,使用提供的固定混淆集进行过滤。
  • GlyceFilt,使用Glyce嵌入代替分层嵌入。
  • SMT
  • n-gram LM
  • HanSpeller
  • DPL-Corr
  • FASpell
  • MERT

实验设置

使用CSC Bake-offs 提供的工具来对准确率、精确率、召回率和F1-Score进行评估,句子级别(正确预测了句子中的所有错误,预测才正确)

使用:

  • PyTorch。
  • 交叉熵损失,20Epochs的BERT模型
  • 3e-5的学习速率和16batch size的AdamW [59]
  • 五种不同的随机种子,重复训练五次报告平均值。

HeadFilt:

  • 3e-3的学习率和500batch size的Adam
  • 分层嵌入维度:512

首先被训练为莫方给定的150k步的混淆集,然后使用50k步的训练数据观察到的附加误差进行训练。

繁体中文结果

对于错误检测,过滤方法实现了更高的精度和更低的召回率。

对于纠错,降低了要考虑的校正候选项水浪,导致了纠错更高的召回率。

简体中文结果

HeadFilt会比GlyceFIlt好,FixedFilt比没过滤的基线更差(混淆集没能很好地捕获错误)。

体现了自适应的好处。

消融研究

自适应分析

2013贡献较小,2014、2015有更明显的贡献,尤其是在纠错方面。

分层嵌入分析

有助于提高性能,标准嵌入替换分层嵌入会导致错误预测和纠正的性能下降,三个数据集都可观察到这一趋势。

此外,没有域自适应的head filt(“Ad”)始终优于FixedFilt,证明了分层嵌入的好处。分级嵌入对嵌入空间施加了额外的约束(归纳偏差),使得具有相似形态的字符更有可能具有相似的字符嵌入。这种归纳偏差可以使自动学习哪组字符更有可能被误认为是另一组更有效。

讨论

分层嵌入支持自动域适配

如果没有混淆集,可能会损害性能。

HeadFilt在理论上,可以为所有字符自动构造混淆集。

之前的一些相似度计算可能不能很好地捕捉汉字的层次性。

使用HeadFilt获得更好的召回率

增加相似性,减小嵌入的L2距离,分层嵌入在嵌入空间中紧密。即使没有被观察位替换错误,利用形态相似性,也可以推断存在替换错误,因为许多在训练过程中没有观察到的错误,使用分层嵌入扩大了过滤器覆盖范围。

未来工作

尽管HeadFilt使用字符的结构来模拟字符的相似性,这种结构隐含地编码了发音,但可能仍然存在不明确的情况

  • 将拼音合并到HeadFilt可以作为一个扩展。

    • 需要明确考虑一个异音异义词(多种发音汉字)的各种不同语音和声调表示的上下文。还可以扩展到类似标志和语音结构的语言,如日语、汉语、越南语。
    • 还可扩展到自动语音识别,使其拥有更高召回率。
  • HeadFilt缩小发音相似的候选字符列表,降低混淆度。

《Domain-shift Conditioning using Adaptable Filtering …… for Robust Chinese Spell Check》阅读记录相关推荐

  1. 阅读记录|《远山淡影》

    2017年那年的诺贝尔文学奖得主有一个日本名字,但不是村上春树,是个英国人,石黑一雄.上海译文出版社有一套他的书,书名大都是四个字,从A Pale of Hills 译到了 The Buried Gi ...

  2. 石黑一雄《远山淡影》——读后感

    看他的作品仅仅是因为不经意在网上看见一句话:回忆模糊不清,就给我自我提供了欺骗的机会.而我恰好也对于自己的部分往事耿耿于怀,然后"远山淡影"这个名字又似乎格外的符合这句话的意境,就 ...

  3. 【读书】2020年阅读记录及心得

    [读书]2020年阅读记录及心得 主要记录个人今年的阅读情况,以及部分带有强烈主观思想的读书笔记输出(按大致的时间顺序). 阅读工具:微信读书(真的很方便).Kindle(有些书微信阅读上没资源,补充 ...

  4. 文献阅读记录1-YOLOv3:An Incremental Improvement

    我只是翻译或转载文献,截屏论文图片,记录下阅读记录.如有侵权,请联系删帖. 原标题: YOLOv3: An Incremental Improvement 原作者: Joseph Redmon, Al ...

  5. 远山启:用数学照亮人性与自由

    前 言 远山启(1909-1979),日本数学家,著名教育家.国内对他的印象,多来自于<数学与生活>一书.笔者初读其书时,除了佩服他对数学概念的精妙讲解外,亦惊叹于他在文学.哲学.艺术方面 ...

  6. 【processing】远山

    [processing]远山 图像临摹 整体分析 图元实现 函数说明 传入参数 函数内容 绘制效果 绘制静止的远山 函数说明 传入参数 函数内容 绘制效果 绘制动态倒影 函数说明 传入参数 函数内容 ...

  7. 原版英文书籍《Linux命令行》阅读记录5 | 使用命令

    背景: 阅读英文原作只为了更好地理解书中的精髓,当然也是为了更好地掌握书中的技巧.我们会坚持阅读全书,并记录书中的精髓. 在前面的章节里,我们学到的都是一些神秘的命令,我们不知道他们怎么来的,不过接下 ...

  8. 实战 | 一键导出微信阅读记录和笔记

    点击上方"逆锋起笔",关注领取视频教程 ☞ 程序员进阶必备资源免费送「各种技术!」 ☜ 作者:云外孤鸟 出处:https://www.cnblogs.com/cloudbird/p ...

  9. 秋天,小溪潺潺,古老的树上黄叶灿灿,阳光像一个魔法师,在树叶间流动,远山,云天,充满秋阳的光线。以此景观做一首诗...

    秋日里,小溪潺潺流, 古树披上黄叶金装. 阳光轻舞树叶间, 远山云天秋色浓. 沐浴着秋阳的光线, 大地仿佛换了面. 一片片叶落寂静, 却散发出生命的气息. 秋风拂面清新爽, 落叶飘舞似天籁. 凝神静听 ...

  10. abuse file struct 阅读记录

    搞file struct angleboy大佬的博客阅读记录,下次看的时候不至于懵笔 fread比read更高层,read是最接近kernel的函数 _IO_FILE 大致分成三个部分 flags s ...

最新文章

  1. 色彩(颜色)空间原理(实现代码)
  2. 更新租约和检测数据完整性脚本
  3. [optee_os]-optee中的内核栈、中断栈、abort栈的定义
  4. hdu 5410(背包问题变形)
  5. Mysql日期和时间函数大全
  6. 项目-团队-技术-个人 (团队建设篇)
  7. ASP.NET Core 2.0 全局配置项
  8. express+vue+mongodb+session 实现注册登录
  9. 405 not allowed什么意思_二驴质问散打:为什么不救天道!面临一个亿赔款?次惑小仙女宣布与可乐分手!...
  10. 跟我一起学docker(14)--docker swarm的使用
  11. vue 路由守卫的使用
  12. MATLAB利用最速梯度下降法求解f(x)函数极小点
  13. 大宝收购案花落强生 静待商务部审批
  14. pytest 测试框架学习(14):pytest.warns
  15. 在photoshop中,从1寸到24寸照片的大小是多少?
  16. ygo游戏王卡组_游戏王最多种类的卡组,竟然高达六种形态
  17. buu(ssti模板注入、ssrf服务器请求伪造)
  18. Android面试攻略
  19. 面试官:[‘1‘, ‘2‘, ‘3‘].map(parseInt)的结果是什么?为甚?我:[1, 2, 3]。面试官:你不用来了。
  20. 买《Python Web全栈工程师》专题视频课程送纸质图书

热门文章

  1. VMware 虚拟机安装 android-x86_64-9.0-r2 后 VirtWifi/无法访问互联网
  2. 中国房企加速并购重组
  3. 电脑新固态硬盘ssd安装win7系统教程
  4. php 网络留言系统总结心的,留言板_感谢您的留言_代潇瑞博客-专注于PHP学习,PHP源码分享...
  5. AI“独角兽”排队上市,但属于AI公司的胜利还没有到
  6. 用python输出世界你好_Hello World! (你好,世界!)
  7. 建筑智能化集成系统及架构简介
  8. windows mac谷歌浏览器跨域
  9. 安装软件一直报错:为了对电脑进行保护,已经阻止此应用。管理员已阻止你运行此应用。有关详情信息,请与管理员联系。
  10. 浅谈cookie中的SameSite属性