Chinese Spelling Correction as Rephrasing Language Model(AAAI2024)

news2024/12/23 18:04:46

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支持提示调优。我们在输入的句子前面加上一系列可训练的字符作为提示符,引导模型针对不同的任务,并针对每个任务优化相应的提示符。我们发现,引入提示可以进一步改善结果,但程度不大。
![
在这里插入图片描述

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

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

相关文章

springboot+mybatis+mysql仿百度网盘系统2.0

springbootmybatismysql仿百度网盘系统2.0 一、系统介绍二、功能展示1.用户登陆2.主页3.全部文件4.文件上传5.文件分享6.文件分类 三、其它1.其他系统实现 一、系统介绍 系统主要功能: 普通用户:用户登陆、主页、全部文件、上传文件、文件分类、文件分部…

初始爬虫6

数据提取 数据提取总结 响应分类 结构化 json数据(高频出现) json模块 jsonpath模块 xml数据(低频出现) re模块 …

AJAX 入门 day3

目录 1.XMLHttpRequest 1.1 XMLHttpRequest认识 1.2 用ajax发送请求 1.3 案例 1.4 XMLHttpRequest - 查询参数 1.5 XMLHttpRequest - 数据提交 2.Promise 2.1 Promise认识 2.2 Promise - 三种状态 2.3 案例 3.封装简易版 axios 3.1 封装_简易axios_获取省份列表 3…

TS - tsconfig.json 和 tsconfig.node.json 的关系,如何在TS 中使用 JS 不报错

目录 1,前言2,二者关系2.1,使用 3,遇到的问题3.1,TS 中使用 JS 1,前言 通过 Vite 创建的 Vue3 TS 项目,根目录下会有 tsconfig.json 和 tsconfig.node.json 文件,并且存在引用关系…

【云原生监控】Prometheus之PushGateway

Prometheus之PushGateway 文章目录 Prometheus之PushGateway介绍作用资源列表基础环境一、部署PushGateway1.1、下载软件包1.2、解压软件包1.3、编辑配置systemctl启动文件1.4、创建日志目录1.5、加载并启动1.6、监控端口1.7、访问PushGateway 二、 配置Prometheus抓取PushGate…

超声波测距

基本原理:超声波测距是通过发射超声波到物体表面再反射回来,通过测量声波传播的时间来计算距离的方法。 公式解释: ( L C \times T ) ( L ):距离(从发射头到接收头的总距离)( C ):声波的传播速…

汉王手写签批控件如何在谷歌、火狐、Edge等浏览器使用

背景 近日,有网友咨询汉王手写签批控件是否可以通过allWebPlugin中间件技术加载到谷歌、火狐、Edge等浏览器?为此,笔者详细了解了一下汉王手写签批控件,它是一个标准的ActiveX控件,曾经主要在IE浏览器使用,…

Spring为什么要用三级缓存解决循环依赖?

Spring为什么要用三级缓存解决循环依赖? 1. Spring是如何创建一个bean对象2. Spring三级缓存2.1 一级缓存:单例池,经历过完整bean生命,单例Bean对象2.2 二级缓存:提前暴露的Bean2.3 三级缓存:打破循环 3. S…

【CMake】使用CMake在Visual Studio 构建多cpp文件项目

首先,我们在 C m a k e Cmake Cmake文件下写入以下代码: #需求的最低cmake程序版本 cmake_minimum_required(VERSION 3.12)#本工程的名字 project(OpenGL)#支持的C版本 set(CMAKE_CXX_STANDARD 20)#本工程主程序文件及输出程序名称,生成exe …

TriangleIcon 鸿蒙ArkTS自定义View 实现带颜色的上下箭头

TriangleIcon 鸿蒙ArkTS自定义View 实现带颜色的上下箭头 最近将公司项目中VUE实现的的一个数据看板模块进行了纯血鸿蒙的实现,里面有个效果就是 数据指标上升 一个绿色箭头朝上,数据指标下降一个红色箭头向下 具体的效果可以查看上图, 其中V…

Vue3 项目实战甄选硅谷

1.技术选型 2.搭建Vue3 项目使用pnpm 1.安装pnpm pnpm安装 npm i -g pnpm 2.项目初始化 pnpm create vite cd ./project pnpm i pnpm run dev 初始化完成 3.项目开始之前先对项目进行一些配置 1.想让刚启动项目浏览器自动打开 找到 2.eslint配置 1.安装eslint pnpm…

FloodFill(洪水灌溉)算法专题——DFS深搜篇

1、图像渲染 . - 力扣(LeetCode) 1.1 算法原理 从(sr,sc)位置开始上下左右暴搜,将区域中符合条件的值修改为color。细节问题:当 color image[sr][sc]时,不需修改,直接返回即可。 1.2 算法代码 class Sol…

C++初阶:STL详解(三)——vector的介绍和使用

✨✨小新课堂开课了,欢迎欢迎~✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C:由浅入深篇 小新的主页:编程版小新-CSDN博客 前言: 前面我们刚刚了解了strin…

STM32外设之LTDC/DMA2D—液晶显示(野火)

文章目录 显示屏有几种?基本参数控制?显存 LTDC 液晶控制器LTDC 结构框图LTDC 初始化结构体 LTDC_InitTypeDefLTDC 层级初始化结构体 DMA2D 图形加速器DMA2D 初始化结构体 要了解什么 屏幕是什么,有几种屏,有什么组成。 怎么控制,不同屏幕控…

FastGPT一站式解决方案[2-应用篇]:轻松实现RAG-智能问答系统,AI工作流、核心模块讲解

FastGPT一站式解决方案[2-应用篇]:轻松实现RAG-智能问答系统,AI工作流、核心模块讲解 1.FastGPT快速使用:基本设置、核心模块讲解 1.1 知识库设置 首先我们需要创建一个知识库。 知识库创建完之后我们需要上传一点内容。 上传内容这里有四种模式: 手动输入:手动输入问…

php部署到apach服务器上遇到的问题

php部署到apach服务器上遇到的问题 问题描述解决方案 问题描述 参考环境搭建文章: 链接: Windows本地搭建PHP环境 第六步的第二条中出现无法正常访问http://localhost:8888/index.php的情况。 解决方案 思路:之前的http://localhost:8888是可以正常访…

收购芯片设计公司Annapurna Labs后

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Linux-mysql5.7-mysql8.0安装包下载及安装教程,二合一

一、安装包下载 1、手动下载 MySQL :: Download MySQL Community Server 2、wegt下载 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 登录自己的liunx ,复制上面的命令下载。 二、手动安装 1、上传压缩包到…

Tomcat端口号被占用

1.当启动了Tomcat后再打开idea运行web项目下的Tomcat就会报这个“Tomcat端口号被占用”错误,解决办法就是关闭Tomcat(用tomcat文件里面的shutdown.bat关闭,也可以在exe程序里面关闭),再在idea中运行web项目下的Tomca …

华为OD机试真题-九宫格按键输入-2024年OD统一考试(E卷)

最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷D卷C卷)_华为od机试题库-CSDN博客 题目描述 九宫格按键输入,有英文和数字两个模式,默认是数字模式,数字模式直接输出数字,英文模式连…