【EMNLP 2023】基于知识迁移的跨语言机器阅读理解算法

2023-12-08 19:45

本文主要是介绍【EMNLP 2023】基于知识迁移的跨语言机器阅读理解算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

近日,阿里云人工智能平台PAI与华南理工大学朱金辉教授团队、达摩院自然语言处理团队合作在自然语言处理顶级会议EMNLP2023上发表基于机器翻译增加的跨语言机器阅读理解算法X-STA。通过利用一个注意力机制的教师来将源语言的答案转移到目标语言的答案输出空间,从而进行深度级别的辅助以增强跨语言传输能力。同时,提出了一种改进的交叉注意力块,称为梯度解缠知识共享技术。此外,通过多个层次学习语义对齐,并利用教师指导来校准模型输出,增强跨语言传输性能。实验结果显示,我们的方法在三个多语言MRC数据集上表现出色,优于现有的最先进方法。

论文:

Tingfeng Cao, Chengyu Wang, Chuanqi Tan, Jun Huang, Jinhui Zhu. Sharing, Teaching and Aligning: Knowledgeable Transfer Learning for Cross-Lingual Machine Reading Comprehension. EMNLP 2023 (Findings)

背景

大规模预训练语言模型的广泛应用,促进了NLP各个下游任务准确度大幅提升,然而,传统的自然语言理解任务通常需要大量的标注数据来微调预训练语言模型。但低资源语言缺乏标注数据集,难以获取。大部分现有的MRC数据集都是英文的,这对于其他语言来说是一个困难。其次,不同语言之间存在语言和文化的差异,表现为不同的句子结构、词序和形态特征。例如,日语、中文、印地语和阿拉伯语等语言具有不同的文字系统和更复杂的语法系统,这使得MRC模型难以理解这些语言的文本。

为了解决这些挑战,现有文献中通常采用基于机器翻译的数据增强方法,将源语言的数据集翻译成目标语言进行模型训练。然而,在MRC任务中,由于翻译导致的答案跨度偏移,无法直接使用源语言的输出分布来教导目标语言。

因此,本文提出了一种名为X-STA的跨语言MRC方法,遵循三个原则:共享、教导和对齐。共享方面,提出了梯度分解的知识共享技术,通过使用平行语言对作为模型输入,从源语言中提取知识,增强对目标语言的理解,同时避免源语言表示的退化。教导方面,本方法利用注意机制,在目标语言的上下文中寻找与源语言输出答案语义相似的答案跨度,用于校准输出答案。对齐方面,多层次的对齐被利用来进一步增强MRC模型的跨语言传递能力。通过知识共享、教导和多层次对齐,本方法可以增强模型对不同语言的语言理解能力。

算法概述

X-STA模型框架图如下所示:

给定上下文C和问题Q, MRC任务是从上下文C提取子序列作为问题Q的正确答案。将输入序列表示为

\mathbf{X} = \{Q, C\} \in \mathbb{R}^{N}其中N是序列长度。我们使用\textbf{p}_\text{start} \in \mathbb{R}^{N}\textbf{p}_\text{end} \in \mathbb{R}^{N}表示答案的起始位置和结束位置概率分布。为了简单起见,我们可以将两者连接到一起\textbf{p} \in \mathbb{R}^{N\times 2}。类似地,\mathbf{y} \in \mathbb{R}^{N\times 2}表示一个序列的one-hot标签。

具体流程如下:

  1. 先将源语言的目标数据翻译到各个目标语言,目标语言的测试数据也翻译回源语言。
  2. 每项数据包含问题Q和上下文段落C。
  3. 构建并行语言对={源语言训练数据,目标语言训练数据}送入模型并使用反向传播进行模型训练。
  4. 将并行语言对={源语言测试数据,目标语言测试数据}送入模型获取答案的预测。

算法精度评测

为了验证X-STA算法的有效性,我们在三个跨语言MRC数据集上进行了测试,效果证明X-STA对精度提升明显:

我们也对算法的模块进行了详细有效性分析,我们可以发现各模块均对模型有一定贡献。

为了更好地服务开源社区,这一算法的源代码即将贡献在自然语言处理算法框架EasyNLP中,欢迎NLP从业人员和研究者使用。

EasyNLP开源框架:GitHub - alibaba/EasyNLP: EasyNLP: A Comprehensive and Easy-to-use NLP Toolkit

参考文献

  • Chengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, Wei Lin. EasyNLP: A Comprehensive and Easy-to-use Toolkit for Natural Language Processing. EMNLP 2022
  • Rajpurkar, Pranav, et al. "SQuAD: 100,000+ Questions for Machine Comprehension of Text." Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing. 2016.

论文信息

论文标题:Sharing, Teaching and Aligning: Knowledgeable Transfer Learning for Cross-Lingual Machine Reading Comprehension
论文作者:曹庭锋、汪诚愚、谭传奇、黄俊、朱金辉
论文pdf链接:https://arxiv.org/abs/2311.06758

这篇关于【EMNLP 2023】基于知识迁移的跨语言机器阅读理解算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/471118

相关文章

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.