Dynamic Connected Networks for Chinese Spelling Check ---- 论文阅读

news2024/11/16 7:43:36

DCN

  • 动机
  • 简介
  • 方法
    • 动态连接评分器
    • 候选生成
      • 拼音增强候选生成器
    • 训练
      • 损失函数
      • 预训练
    • 预测
  • 实验
    • 数据集
    • 方法比较
  • 消融

在这里插入图片描述
Paper:https://aclanthology.org/2021.findings-acl.216.pdf
Code:https://github.com/destwang/DCN [Pytorch]
哈工大+讯飞

动机

大多数关于 CSC 的方法都是基于 BERT 的非自回归语言与模型,这些模型依赖于输出独立性假设。而不适当的独立性假设阻止了这些模型学习目标字符之间的依赖关系,从而导致输出的字符不连贯的问题。

例如下图,”户秃“ 可以被更正为 ”糊涂“ 或者 ”尴尬“,由于每个字符的独立性,非自回归模型可能会将其纠正为 ”尴涂“。
在这里插入图片描述

简介

为了解决以上问题,本文提出了动态连接网络(Dynamic Connected Networks - DCN),包括拼音增强候选生成器(Pinyin Enhanced Candidate Generator)和动态连接评分器(Dynamic Connected Scorer - DCScorer)。此网络可以学习到输出汉字之间的依赖关系,缓解不连贯问题。

首先,本文使用 RoBERTa 和拼音增强候选生成器结合拼音信息,并在每个位置生成 k 个候选字符。
然后,对于每两个相邻的字符,使用 DCScorer 学习一个不同的连接分数,来确定它们之间的依赖关系的强度。DCScorer 通过将当前和下一个位置的上下文表示和候选字符嵌入同时输入到注意力层来计算连接分数。
最终,模型生成 k n k^n kn 个候选路径,利用维特比算法快速找到得分最高的路径作为最终的校正结果。

方法

在这里插入图片描述

动态连接评分器

在这里插入图片描述

动态连接评分器需要同时考虑上下文信息、当前和下一个位置的候选字符。因此,本文使用注意力机制去学习当前候选字符的上下文表示 p p p 和下一个候选字符的上下文表示 q q q。两个相邻候选字符之间的依赖关系强度通常与当前位置和下一位置的 RoBERTa 的隐藏表示更相关,因此注意力机制中的 Key 和 Value 仅包含这两个隐藏表示。更详细的,DCScore 的定义如下:

在这里插入图片描述
其中 i i i 表示字符的位置, m m m n n n 分别表示当前位置和下一位置的候选字符的索引。

然后把候选字符嵌入加入到候选上下文表示中,把输出输入到归一化层中得到两个输出表示 p i , m ′ p_{i, m}' pi,m q i , n ′ q_{i, n}' qi,n
在这里插入图片描述
然后把这个两个向量拼接起来输入到 FFN 层中,使用一个线性层计算两个候选字符的连接分数
在这里插入图片描述
其中 v v v 是训练权重, g ( y i , m , y i + 1 , n ) g(y_{i, m}, y_{i+1, n}) g(yi,m,yi+1,n) 是第 i i i 个字符的第 m m m 个候选字符和第 i + 1 i+1 i+1 个字符的第 n n n 个候选字符的连接分数。

由于将 k 2 k^2 k2 对候选组合输入到 DCScorer 中,将在每个位置生成 k 2 k^2 k2 个分数。最终,模型将生成 k n k^n kn 个候选路径,每条路径的分数使用以下公式计算:
在这里插入图片描述
其中 y y y 是候选字符, f ( y i , m ) f(y_{i,m}) f(yi,m) 是拼音增强候选生成器在第 i i i 个字符位置的第 m m m 个候选字符的预测分数。

候选生成

拼音增强候选生成器

根据统计数据,超过 80% 的拼写错误与发音相似度有关。由于语音错误占汉字错误的很大一部分,因此引入语音信息的方法在生成候选词和纠正拼写错误方面右很大帮助。从单个汉语拼音到汉字的转换有很大的歧义,很难正确转换,因为一个拼音通常对应许多汉字。然后,当有多个连续的拼音时,就会有很大的置信度将拼音转换为正确的汉字。而本文提出的拼音增强候选生成器可以有效的减少歧义,生成更好的字符。
在这里插入图片描述
使用卷积层对连续的拼音进行编码,并将卷积层的输出、RoBERTa 的隐藏表示金额字符嵌入相加。然后输入到归一化层并通过线性层得到预测分数 f ( y i , m ) f(y_{i, m}) f(yi,m)
在这里插入图片描述
其中 p ′ ′ p'' p′′ 时拼音嵌入, ω i \omega_i ωi 是中文字符嵌入, h i h_i hi 是 RoBERTa 的最后隐藏层, v ′ v' v 是第 m m m 个候选字符训练权重向量。

训练

损失函数

序列 Y Y Y 的概率可以表示为:
在这里插入图片描述
其中 Y ′ Y' Y 是候选字符生成的路径。
损失函数是概率分布的最大似然:
在这里插入图片描述
损失函数类似于 LSTM-CRF 使用的损失函数。它只学习采样的负候选字符及其之间的依赖关系,这将过度降低潜在候选者的排名。这可能使更相似的候选者排名较低。为了避免上述问题,当黄金分数高于或等于所有候选路径的最大分数时,我们通过将损失函数设置为 0 来对损失函数进行限制。

预训练

通过大规模训练语料库可以更充分地学习汉字之间的依赖关系。在本文中,使用下表所示的中文维基百科数据预训练本文提出的模型。本文随机替换 15% 的字符,包括混淆集中的 70% MASK、15% 的字符和 15% 的随机字符。利用 SIGHAN 2013 发布的混淆集,其中包含发音相似性和形状相似性字符。基于 RoBERTa 模型,本文冻结了主要参数,只微调拼音增强候选生成器和动态连接评分器。

预测

在预测阶段,词汇表中的前 k k k 个候选字符由拼音增强候选生成器生成。最终,有 k n k^n kn 条路径。为了快速选择得分最高的路径,本文使用基于动态规划的维特比算法来解码输出序列。

实验

数据集

预训练数据:中文维基百科

微调数据:生成数据、SIGHAN 2013、SIGHAN 2014、SIGHAN 2015

测试数据:SIGHAN 2013、SIGHAN 2014、SIGHAN 2015

方法比较

在这里插入图片描述

消融

候选字符生成方法的消融研究
在这里插入图片描述

模型各模块的消融研究
在这里插入图片描述

候选字符数量的消融研究

在这里插入图片描述
一个解码的例子

在这里插入图片描述

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

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

相关文章

【Linux】Apache 配置与应用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、构建虚拟 Web 主机1.httpd服务支持的虚拟主机类型 二、基于域名的虚拟主机1.为虚拟主机提供域名解析2.为虚拟主机准备网页文档3.添加虚拟主机配置4.设置访问控制…

FreeRTOS进阶学习

一、FreeRTOS内核控制控制函数: 1、请求任务切换函数: 函数原型:#define taskYIELD() 函数解析:实际上是一个宏定义的函数,调用一次会触发pendSV中断来实现任务切换; /// 2、在任务中进入临界区函数&…

LLM:大模型的正则化

主流大模型使用的Normalization主要有三类,分别是Layer Norm,RMS Norm,以及Deep Norm。 小模型的正则化参考: l1l2正则和dropout正则化[https://youzipi.blog.csdn.net/article/details/75307522] LN和BN归一化 [深度学习&…

【3000字帮你深度剖析数据在内存中的存储】

本节重点 -- 重中之重 数据类型详细介绍 整形在内存中的存储:原码、反码、补码 大小端字节序介绍及判断 浮点型在内存中的存储解析 准备好了,开始啰,在小小的花园里面......最近被这个歌曲洗脑,但是我们并不是要唱歌,而…

linux基础知识学习记录

这里写自定义目录标题 一、 计算机基础知识二 、 Linux操作系统的介绍三、 Linux的安装四、Linux命令使用汇总 一、 计算机基础知识 计算机组成:计算机主要硬件和软件2部分组成。计算机软硬件的概念:硬件是可以看得见的物理实体,软件是运行在…

还在担心期末挂科吗? 期末必备复习资料-----“树“的概念

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:记录期末复习 数据结构中有关树的一些知识 金句分享: ✨我将…

2023最新150道渗透测试面试题

前言 眨眼间2023年快过去一半了,不知道大家有没有找到心仪的工作呀,今天我给大家整理了150道渗透测试面试题给大家,需要答案的话可以在评论区给我留言哦~ 第一套渗透测试面试题 你了解什么是网络安全渗透测试吗? 你的网络安全渗…

Stream相关知识点

这里写目录标题 Stream流体验Stream流Stream流的常见生成方式流程分类具体操作 Stream流常见中间操作之filter简介具体操作 Stream流常见中间操作之limit&skip简介具体操作 Stream流常见中间操作之concat&distinct简介具体操作 Stream流常见中间操作之concat&disti…

什么是SSO

1. 什么是SSO? 「SSO」(单一登录single sign on)是一种身份验证机制,它允许用户使用单一的凭据登录到多个相关应用程序或系统中。换句话说,用户只需一次登录,就可以访问多个不同的应用程序,无需…

并发专栏-CAS

从 Atomic 到 CAS CAS 知道吗,如何实现? 讲一讲 AtomicInteger,为什么要用 CAS 而不是 synchronized? CAS 底层原理,谈谈你对 UnSafe 的理解? AtomicInteger 的ABA问题,能说一下吗,原…

自学黑客(网络安全/Web安全),一般人我还是劝你算了吧

由于我之前写了不少网络安全技术相关的文章,不少读者朋友知道我是从事网络安全相关的工作,于是经常有人私信问我: 我刚入门网络安全,该怎么学? 要学哪些东西? 有哪些方向? 怎么选&a…

自学网络安全(黑客)该如何系统学习

一、自学网络安全学习的误区和陷阱 1.不要试图以编程为基础的学习开始学习 我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多 一…

layui(1)

Layui镜像站-经典开源模块化前端 UI 框架(官方文档完整镜像) 下载框架包 点击文档&#xff0c;可进入学习界面 1.引入框架包 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-C…

『赠书活动 | 第八期』《ChatGpt全能应用一本通》

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 『赠书活动 &#xff5c; 第八期』 本期书籍&#xff1a;《ChatGpt全能应用一本通》 赠书规则&#xff1a;评论区&#xff1a;点赞&#xff5c;收藏&#xff5c;留言 …

深度学习(卷积神经网络)

文章目录 动物视觉神经&#xff0c;以及脑科学视网膜——视觉第一站外膝体——信息中转站视皮层——中央处理器小tips 人工神经网络神经认知机模型卷积神经网络结构&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;卷积层池化层全连接层输出层softmax函数…

智能离网微逆变系统

文章目录 一、功能描述二、硬件部分2.1、单片机选型及中断号2.1.1、引脚分配 2.2、EG80102.3、控制电路图2.4、主电路图 三、代码流程图四、代码部分展示4.1、主函数4.2、modbus 五、项目演示 一、功能描述 把风光能&#xff0c;逆变为可调压调频的交流电可通过串口屏&#xf…

通过python封装采集商品ID请求获取京东商品详情数据,京东商品详情接口,京东API接口

使用Python封装采集商品ID请求获取京东商品详情数据。具体步骤如下&#xff1a; 使用Python中的requests库发送HTTP请求&#xff0c;获取商品ID列表。采集方法可根据需求选择&#xff0c;如爬虫框架Scrapy、Selenium等。导入京东API的Python SDK&#xff0c;如jdapi&#xff0…

YARN【工作机制】

Yarn概念 Yarn 是一个资源调度平台&#xff0c;负责为运算程序提供服务器运算资源&#xff0c;相当于一个分布式 的 操作系统平台 &#xff0c;而 MapReduce 等运算程序则相当于运行于 操作系统之上的应用程序 。 Yarn的四大组件 YARN 主要由 ResourceManager&#xff08;…

javascript基础十九:说说你对正则表达式的理解?应用场景?

一、是什么 正则表达式是一种用来匹配字符串的强有力的武器 它的设计思想是用一种描述性的语言定义一个规则&#xff0c;凡是符合规则的字符串&#xff0c;我们就认为它“匹配”了&#xff0c;否则&#xff0c;该字符串就是不合法的 在 JavaScript中&#xff0c;正则表达式也是…

MySQL架构简介

MySQL是系统架构中最常见的中间件&#xff0c;主要由Server层&#xff08;连接器Connectors、连接池Connection Pool、查询缓存query cache、分析器Parser、优化器Optimizer、执行器、binlog&#xff09;以及存储引擎层组成。 MySQL架构简介 连接器 与客户端建立连接、认证身…