Chinese Spelling Correction as Rephrasing Language Model(AAAI2024)
Chinese Spelling Correction as Rephrasing Language Model(AAAI2024)
一.概述
目前最先进的方法将CSC(Chinese Spelling Correction)作为序列标注任务,并在句子对上微调基于bert的方法。然而,我们注意到在将一个字符标注为另一个字符的过程中存在一个严重缺陷,即校正过于依赖于错误。这与人类的思维方式相反,在人类的思维方式中,人们根据语义重新表述完整的句子,而不是仅仅根据之前记忆的错误模式。这样对于机器纠错带 来了通用性和移植性瓶颈。
为此,我们提出了复述语言模型(Rephrasing Language Model, ReLM),该模型被训练成通过填充额外的槽来复述整个句子,而不是字符到字符的标注。
代码:https://github.com/gingasan/lemon
作者认为基于序列标注的纠错模型在训练过程中大量记忆错误字符和正确字符之间的映射,并简单地复制其他字符,这在测试集中仍然可以获得不错的分数。但这意味着最终的纠正将过度地依赖于原始错误本身,而忽略了整个句子的语义。上图(a)部分,模型会强记见过的编辑对,导致在新的样本上表现很不好。最根本原因来源于Tagging(标注)这种拟合方式,模型会不可避免地陷入到上述强记的问题。(b)部分,和Tagging不一样,我们大部分时候不会关注句子里典型的易错字,而是会注重看懂这个句子想表达什么,也就是语义(semantics)。随后,我们会根据记住的这个句子的大概,在心里把它重新写一遍,只是这个过程一般只发生在潜意识里。
不同于字符到字符的序列标注,我们提出将句子重新表述作为微调CSC模型的训练目标,称为rephrasing Language model (ReLM),其中源句子将首先编码到语义空间中,然后根据给定的掩码槽(mask slots)将其表述为正确的句子。ReLM模型也是基于Bert。
本文主要贡献如下:
A.提出ReLM来缩小机器拼写纠正和人工拼写纠正之间的差距。
B.ReLM显著增强了CSC模型的泛化性,并在微调和零样本CSC基准测试中刷新了新的最先进的结果。
C.探讨了并增强了CSC对其他任务的可移植性。
D.分析表明,ReLM有效地利用并保留了预训练模型中预训练的知识,而标注模型则没有。
二.方法概述
1.问题定义
输入一个句子X={x1,x2,…,xn},模型对其中可能错误的字符进行校正,生成结果Y={y1,y2,…,yn}。
2.标注(Tagging)
序列标注是许多自然语言处理任务中的常见模型,其中模型被训练以将一个字符映射到另一个相应的字符,例如命名实体识别,词性标记。所有这些任务都共享一个关键属性,即它们强烈依赖于输入和输出字符之间的对齐信息。CSC模型可以极大地记忆将xi纠正为yi的不重要的编辑对,并在xi的不同上下文中继续应用,而无需参考语义。因此,原来的训练目标退化为:
这里的xi是一个错误字符。
3.复述(Rephrasing)
在本文中,我们提出用复述代替序列标注作为CSC的主要训练目标。为了消除模型拟合错误的趋势,这里训练预训练模型去复述原始句子。具体来说,Transformer层首先将源句子转移到语义空间。然后,该模型生成一个新的句子,同时根据语义纠正其中的所有错误。这个过程与人类进行拼写纠正的过程是一致的。当一个人看到一个句子时,他首先会把这个句子记在脑子里(类似于把它编码到语义空间),然后根据他的语言本能(PLM中预训练的权重)把这个语义转换成一个新的句子。我们看到,除了学习序列标注之外,预训练知识为这种学习复述提供了很好的基础。而序列标注并没有很好地利用预训练的好处。
复述过程也可以基于自回归架构建模,并使用解码器逐个生成输出字符。具体来说,我们将源字符X和目标字符Y连接起来作为输入句子,{x1,x2,…,xn,,y1,y2,…,yn,},这里的和是分隔符和结束符。训练模型自回归预测所有目标字符。因此,基于复述的拼写纠正寻求解决以下概率(yi,i>=1):
4.复述语言模型(Rephrasing Language Model)
基于Bert结构,提出非自回归复述模型ReLM。如上图,输入句子拼接上等数量的[MASK],即{x1,x2,…,xn,,m1,m2,…,mn},随后让模型在这些[MASK]上重新写一遍原句,并改正其中的潜在错别字。由于BERT可以同时看到左侧和右侧上下文,因此ReLM寻求解决yi, i=1~n的以下概率:
ReLM优于自回归模型,因为它总是可以生成与输入相同长度的输出句子,这使得它更加准确。
5.辅助掩码语言建模(Auxiliary Masked Language Modeling)
与标注模型不同,在CSC上进行微调的ReLM仍然是以语言模型为核心。然而,模型仍然有机会学习源句和目标句的对齐。因此,我们提出了一个关键策略,即用未使用的token统一地掩盖源句子中的一小部分非错误token,以极大地正则化模型,防止学习字符到字符的对齐。ReLM最终需要纠正潜在的错字,同时恢复整个句子。
6.与序列标注的区别(Distinguish from Sequence Tagging)
ReLM是P(yi|X)的有偏估计,它对P(yi|X,m1,m2,··,mn)进行优化。模型依赖于整个语义。与公式(1)相反,公式(3)预测yi以整个源句子X作为条件。具体来说,在ReLM中没有字符对齐,并且模型不允许像在序列标注中那样找到执行字符到字符映射的快捷方式。
7.ReLM用于多任务(ReLM for Multi-Task)
在典型的多任务学习中,我们为每个任务添加一个特定的分类头,并为所有任务训练一个共享编码器。例如,CSC将在具有句子分类的编码器内共享相同的语言表示。然而,实证分析表明,当传统的基于标注的CSC与其他任务联合训练时,它的性能可能会大大下降。
相比之下,以语言模型为核心的ReLM自然适合语言建模之上的多任务学习,而基于标注的CSC则不适合。具体地说,每个单独的任务都被模板化为mask语言建模的格式,如图2所示。一般来说,所有的任务都统一为一种类似复述的格式,这增强了CSC对各种任务的可移植性。此外,ReLM支持提示调优。我们在输入的句子前面加上一系列可训练的字符作为提示符,引导模型针对不同的任务,并针对每个任务优化相应的提示符。我们发现,引入提示可以进一步改善结果,但程度不大。

Chinese Spelling Correction as Rephrasing Language Model(AAAI2024)
Chinese Spelling Correction as Rephrasing Language Model(AAAI2024) 一.概述 目前最先进的方法将CSC(Chinese Spelling Correction)作为序列标注任务,并在句子对上微调基于bert的方法。然而,我们注意到在将一个字符标注为另一个字符的过…...
DirectShow过滤器开发-写MP3音频文件过滤器(再写 写MP3)
下载本过滤器DLL 本过滤器将MP3音频流写到MP3音频文件。 过滤器信息 过滤器名称:写MP3_2 过滤器GUID:{AE46BC15-71E5-471C-8540-3B73094111EC} DLL注册函数名:DllRegisterServer 删除注册函数名:DllUnregisterServer 过滤器有1个…...
文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《基于对等架构的虚拟电厂-配电网双层电碳协同调度模型》
本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…...

大数据-204 数据挖掘 机器学习理论 - 混淆矩阵 sklearn 决策树算法评价
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...

Fsm1
为了处理有时间上先后的事件,在FPGA中采用状态机的形式完成事件处理。 Mealy 状态机:输出不仅取决于当前状态,还取决于输入状态。 Moore 状态机:组合逻辑的输出只取决于当前状态,而与输入状态无关。 二段式状态机&…...
C. Gorilla and Permutation
time limit per test 2 seconds memory limit per test 256 megabytes Gorilla and Noobish_Monk found three numbers nn, mm, and kk (m<km<k). They decided to construct a permutation†† of length nn. For the permutation, Noobish_Monk came up with the …...

从0开始学python-day17-数据结构2
2.3 队列 队列(Queue),它是一种运算受限的线性表,先进先出(FIFO First In First Out) 队列是一种受限的线性结构 受限之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作 P…...
(蓝桥杯C/C++)—— 编程基础
文章目录 一、C基础格式 1.打印hello, world 2.基本数据类型 二、string 1.string简介 2.string的声明和初始化 3.string其他基本操作 (1)获取字符串长度 (2) 拼接字符串( 或 append) (3)字符串查找(find) (4)字符串替换 (5)提取子字符串…...

企业物流管理数据仓库建设的全面指南
文章目录 一、物流管理目标二、总体要求三、数据分层和数据构成(1)数据分层(2)数据构成 四、数据存储五、数据建模和数据模型(1)数据建模(2)数据模型 六、总结 在企业物流管理中&…...

数据采集-Kepware 安装证书异常处理
这里写目录标题 一、 问题描述二、原因分析三、处理方案3.1 1.执行根证书的更新3.2 安装KepServerEx 资源 一、 问题描述 在进行KepServerEx进行安装的情况下,出现了如下的报错: The installer was unable to find required root certificates ,please …...
ubuntu禁止自动更新设置
背景概述 从CentOS变更到uBuntu或多或少会遇到一些坑,今天分享一个。 在Ubuntu系统中,自动更新是一个既方便又引发争议的功能。它可以帮助用户保持系统的最新状态,但有时也会因为自动更新而导致系统不稳定或不兼容。 Ubuntu系统的自动更新主…...

Rust 力扣 - 1461. 检查一个字符串是否包含所有长度为 K 的二进制子串
文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 长度为k的二进制子串所有取值的集合为[0, sum(k)],其中sum(k)为1 2 4 … 1 << (k - 1) 我们只需要创建一个长度为sum(k) 1的数组 f ,其中下标为 i 的元素用来标记字符串中子串…...

C#/.NET/.NET Core技术前沿周刊 | 第 11 期(2024年10.21-10.31)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…...

unity 三维数学 ,角度 弧度计算
弧度 角度*π/180...

Java基础4-控制流程
控制流程 Java使用条件语句和循环结构确定控制流程。基本和C一样,但是没有goto语句,但break语句可以有标签,用于跳出内层循环。 块作用域(block) 块(即复合语句)是指由一堆花括号括起来的若干…...

面试题分享11月1日
1、过滤器和拦截器的区别 过滤器是基于spring的 拦截器是基于Java Web的 2、session 和 cookie 的区别、关系 cookie session 存储位置 保存在浏览器 (客户端) 保存在服务器 存储数据大小 限制大小,存储数据约为4KB 不限制大小&…...

【含文档】基于ssm+jsp的学科竞赛系统(含源码+数据库+lw)
1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: apache tomcat 主要技术: Java,Spring,SpringMvc,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定义了四个…...
Docker方式部署ClickHouse
Docker方式部署ClickHouse ClickHouse docker 版本镜像:https://docker.aityp.com/r/docker.io/clickhouse/clickhouse-server ClickHouse 21.8.13.6 docker 版本镜像:https://docker.aityp.com/image/docker.io/clickhouse/clickhouse-server:21.8.13.…...

车载通信架构 --- PNC、UB与信号的关系
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…...

智慧农业云平台:大数据赋能现代农业的未来
近年来,随着科技的迅速发展,农业作为传统行业正面临着前所未有的变革。智慧农业,作为现代农业发展的重要方向,借助云计算、大数据、物联网等技术,正在为农业生产、管理和服务提供全新的解决方案。在这个背景下…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...