算法 KECP 被顶会 EMNLP 收录,极少训练数据就能实现机器阅读理解

news2024/11/15 20:05:26

作者:王嘉宁、汪诚愚、邱明辉、石秋慧、王洪彬、黄俊、高明

近日,阿里云机器学习平台 PAI 与华东师范大学高明教授团队合作在自然语言处理顶级会议 EMNLP2022 上发表基于 Prompt-Tuning 的小样本机器阅读理解算法 KECP(Knowledge Enhanced Contrastive Prompt-tuning)。KECP 是一种面向机器阅读理解的小样本学习算法,采用 Prompt-Tuning 作为基础学习范式,在仅需要标注极少训练数据的情况下,在给定文章中抽取满足要求的文本作为答案。

论文:

Jianing Wang*, Chengyu Wang*, Minghui Qiu, Qiuhui Shi, Hongbin Wang, Jun Huang, Ming Gao. KECP: Knowledge-Enhanced Contrastive Prompting for Few-shot Extractive Question Answering. EMNLP 2022

背景

在预训练语言模型广泛应用的背景下,传统的机器阅读理解(Machine Reading Comprehension)任务通常需要大量的标注数据来微调模型(例如 BERT)。机器阅读理解任务旨在给定一篇文章(Passage)和一个问题(Question),从文章中寻找对应问题的答案(Answer)。通常情况下,我们假设答案来自于文章中的子片段,这一任务可以进一步被称为抽取式阅读理解,或抽取式问答(Extractive Question Answering)。这一任务在大量深度学习应用中有广泛的应用场景,例如任务型对话系统等。

传统的抽取式问答采用序列标注或指针网络的方法,获得答案在给定文章的区间,其学习范式如下图(a)所示:

在这里插入图片描述

然而,这种方法需要重头开始学习 Preduction Head 的参数,在小样本场景下容易过拟合。最近 Prompt-Tuning(即提示微调)相关方法的提出缓解了预训练语言模型在低资源场景下的过拟合问题。特别地,对于 BERT 类模型,其通常是将下游任务目标转换为预训练目标(例如 Masked Language Modeling),以充分复用预训练阶段的先验知识。受到这个启发,我们将抽取式阅读理解转换为基于 BERT 的生成任务,如上图(b)。

算法概述

我们提出的 KECP(Knowledge Enhanced Contrastive Prompt-tuning)模型综合利用了模型表示的知识增强和对比学习技术,提升了小样本学习场景下的机器阅读理解准确度,模型架构图如下:

在这里插入图片描述

模型输入

首先,我们将问题(Question)转换为陈述句,并通过一些启发式规则将问题变为类似完形填空任务。例如,我们可以将问题

What was one of the Normans’major exports?

变为

[MASK] [MASK] [MASK] was one of the Normans’major exports.

其中[MASK]为待预测的 Token。最后,我们将这一陈述句和文章进行拼接在一起,形成统一的输入序列:

知识增强的语义表达

因为训练样本很少时,模型的推理能力有限;因此,我们提出了知识注入方法,即给定一个知识库(例如 Wikidata5M),我们使用实体链指工具识别出文章(Passage)中所有实体。在 KECP 算法中,我们提出了 Passage Knowledge Injection 模块,将预训练知识库实体表征与 Word Embedding 表征向量通过门控单元进行向量融合:

在这里插入图片描述

为了避免注入过多知识引起知识噪音(Knowledge Noise)问题,我们将融合了知识的文章表征信息聚集到问题部分挑选的 Token 中。例如,在前述示例中,我们挑选了名词“Norman Major Exports”,我们可以通过 Self-Attention 模型将文章中的实体融合向量进一步融合到这些选定的 Token 中:

在这里插入图片描述

这样,我们能获得更好的文本表征。

对比学习增强的模型训练

在获得新的表征向量后,我们将这些表征喂入 BERT 模型中,进行模型的训练。我们复用了预训练任务目标 Masked Language Modeling(MLM)。为了提高模型效果,我们采用对比学习对学习目标进行增强。在 KECP 的对比学习模块中,正样本为 Ground Truth,负样本为通过知识库检索到文章中的一些错误的实体(这些实体可能会对模型预测产生混淆),损失函数如下:

在这里插入图片描述

KECP 协同最小化 MLM 和对比学习损失,得到最终的机器阅读理解模型。

算法精度评测

为了评测 KECP 算法的精度,我们在一些常用的机器阅读理解数据集上,随机采样 16 个样本进行训练,结果如下:

在这里插入图片描述

结果可以证明,KECP 在这些数据集上获得不错的效果。在未来,我们会拓展 KECP 到到 BART、T5 等生成式模型上,训练更加通用的生成式阅读理解模型。为了更好地服务开源社区,KECP 算法的源代码即将贡献在自然语言处理算法框架 EasyNLP 中,欢迎 NLP 从业人员和研究者使用。

EasyNLP 开源框架:https://github.com/alibaba/EasyNLP

参考文献

  • 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
  • Xiang Lisa Li, Percy Liang. Prefix-Tuning: Optimizing Continuous Prompts for Generation. ACL/IJCNLP 2021: 4582-4597
  • Ori Ram, Yuval Kirstain, Jonathan Berant, Amir Globerson, Omer Levy. Few-Shot Question Answering by Pretraining Span Selection. ACL/IJCNLP 2021: 3066-3079
  • Rakesh Chada, Pradeep Natarajan. FewshotQA: A simple framework for few-shot learning of question answering tasks using pre-trained text-to-text models. EMNLP 2021: 6081-6090
  • Mandar Joshi, Danqi Chen, Yinhan Liu, Daniel S. Weld, Luke Zettlemoyer, Omer Levy. SpanBERT: Improving Pre-training by Representing and Predicting Spans. Trans. Assoc. Comput. Linguistics 8: 64-77 (2020)
  • Xiao Liu, Kaixuan Ji, Yicheng Fu, Zhengxiao Du, Zhilin Yang, Jie Tang. P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks. CoRR abs/2110.07602 (2021)

论文信息

论文名字:KECP: Knowledge-Enhanced Contrastive Prompting for Few-shot Extractive Question Answering
论文作者:王嘉宁、汪诚愚、邱明辉、石秋慧、王洪彬、黄俊、高明
论文 pdf 链接:https://arxiv.org/abs/2205.03071

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

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

相关文章

【人工智能】体验一下ChatGPT

体验一下ChatGPT 1.体验地址 chatGPT 注册openai的账号 注意:如果注册过程中一直不成功,可以清清缓存 2.接受短信的手机号 得有个国外手机号,或者1块钱去sms-activate.org注册一个虚拟的手机号 3.功能 最近OpenAI 发布了备受期待的原型通用 ChatGPT&#xf…

一段eslint jsx-a11y/anchor-is-valid警告背后的原因

我们在做React项目时,经常用到a标签做一些跳转动作,但是每次eslint都要提示 jsx-a11y/anchor-is-valid这段代码,我们可以通过/* eslint-disable jsx-a11y/anchor-is-valid */把这个规则屏蔽掉,但是显然不够优化,那到底…

8_2、Java基本语法之多线程的两种创建方式(jdk5之前)

一、前言 Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread 类来体现。 二、JDK1.5之前创建新执行线程有两种方法 继承Thread类的方式 实现Runnable接口的方式 三、继承Thread类的方式 1、使用继承Thread类的方式创建一个线程: ①.创建一个…

c++17可变参函数模板详解

c语言中对于 可变参数的处理是用va_list等一系列宏去做的 他只会生成一个函数 但是理解起来非常麻烦 因为你不得不去了解很多关于汇编层面栈帧的知识 c对于可变参数函数模板进行了改进 他会生成多个函数 而不是在一个函数里玩 个人觉得c这种方式更加先进而且更好理解 接下来让…

线性代数的本质

注:目前没有精力去美化排版,所有博客仅作为自己学习记录所用 《线性代数的本质》课程链接(bilibili) 目录: P1-P4的内容: 1.线性代数的加法:为什么这样子来定义呢(如图&#xff…

(附源码)SSM人力资源管理系统 毕业设计 271621

SSM人力资源管理系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中&#…

Servlet(二):Servlet的运行原理HttpServlet、HttpServletRequest、HttpServletResponse类详解

Servlet运行原理Servlet API详解HttpServlet类HttpServletRequest类HttpServletResponse类Servlet API详解 Servlet API中包含了很多的内容,但我们主要用到的是以下三个类,HttpServlet,HttpServletRequest,HttpServletResponse …

2022-04-10-Docker

layout: post #标题配置 title: Docker #时间配置 date: 2022-04-10 22:50:00 0800 #目录配置 categories: Docker #标签配置 tag: 学习笔记 content {:toc} Docker 1.初识 Docker 1.1 docker概念 我们写的代码会接触到好几个环境:开发环境、测试环境以及生产环…

祖师爷香农,到底有多神?

1916年,第一次世界大战激战正酣。在这一年的4月30日,远离战场的美国密歇根州佩托斯基(Petoskey),一个男婴呱呱坠地。这个男婴,就是我们这篇文章的主角——香农。香农的全名,叫做克劳德艾尔伍德香…

Alvas.Audio专门为C#和VB.Net程序员设计

Alvas.Audio专门为C#和VB.Net程序员设计 Alvas.Audio库使C#和VB.Net程序员能够创建执行(包括混合声音信息)、捕获、转换和编辑音频的应用程序。 Alvas.Audio音频是C#音乐库。Web程序员。 这使您能够生产。NET程序,例如Winforms/WPF/Windows服务/控制台录音机、Inter…

steam搬砖项目,新手也能月入8000+(详细教程)

大家好,我是阿阳 这个项目很早之前就有了,而且这么久以来一直非常稳定。 作为一名没有任何经验却想通过低成本投入来赚钱的小白,做steam搬砖项目真的可以实现财富自由 0成本,操作简单,有手机就能做!真的…

【Golang】欲入此Go先看Go的基本语法

📓推荐网站(不断完善中):个人博客 📌个人主页:个人主页 👉相关专栏:CSDN专栏、个人专栏 🏝立志赚钱,干活想躺,瞎分享的摸鱼工程师一枚 🍊前言 完成了我们众多…

OpenAI 最强对话模型 ChatGPT 注册使用笔记

2022年12月5日OpenAI 发布了对话语言模型 ChatGPT,并开放了免费试用。ChatGPT 是一款基于GPT3模型的聊天机器人,该聊天机器人可以在模仿人类说话风格的同时回答大量的问题。在现实世界之中,例如数字营销、线上内容创作、回答客户服务查询&…

Python使用Opencv图像处理方法完成手势识别(一)

Opencv完成手势识别HSV的提取特征提取轮廓绘制完整代码由于是使用Opencv完成手势识别,所以首先利用颜色特征是对手的颜色进行提取,获得HSV的最小值与最大值。HSV的提取 HSV颜色空间阈值主要是靠Trackbar调节阈值和cv2.inRange来生成掩膜来提取。 这是我…

外汇天眼:外汇市场上不得不说的两大类庄家!

前一阵子,天眼君跟好友讨论外汇市场上有没有庄家,今天天眼君就跟大家探讨下这个问题。我们都知道股票交易中是有所谓的庄家的,散户必须要猜测庄家的做法,否则很有可能变成待割的韭菜。 而我们常见的对外宣传中,基本上…

R语言对推特twitter数据进行文本情感分析

原文链接:http://tecdat.cn/?p4012我们以R语言抓取的推特数据为例,对数据进行文本挖掘,进一步进行情感分析,从而得到很多有趣的信息(点击文末“阅读原文”获取完整代码数据)。找到推特来源是苹果手机或者安…

C++ Reference: Standard C++ Library reference: Containers: list: list: assign

C官网参考链接&#xff1a;https://cplusplus.com/reference/list/list/assign/ 公有成员函数 <list> std::list::assign C98 范围 (1) template <class InputIterator> void assign (InputIterator first, InputIterator last); 填充 (2) void assign (…

字符串处理【AC自动机】 - 原理 AC自动机详解

字符串处理【AC自动机】 - 原理 AC自动机详解 AC自动机&#xff08;Aho-Corasick automaton&#xff09;在1975年产生于贝尔实验室&#xff0c;是著名的多模匹配算法。 学习AC自动机&#xff0c;要有KMP和Trie&#xff08;字典树&#xff09;的基础知识。 KMP是单模匹配算法&a…

三代全长16s助攻,轻松搞定水体研究领域10+文章

基于PacBio三代测序平台&#xff0c;可高效获得16s rRNA全长序列&#xff0c;同时不必纠结引物选择带来的结果偏差&#xff0c;令物种分类更多更精准——到达“种”水平。Pacbio平台同时兼具时间短&#xff0c;无需扩增等优势&#xff0c;伴随着三代测序成本的下降&#xff0c;…

<VSCode下载、安装、配置以及连接云服务器进行Linux开发>

目录 1.下载、安装VSCode 2.配置环境及插件 2.1 实用插件安装 2.1.1 中文汉化插件 2.1.2 Remote-ssh插件​ 连接远程云服务器&#xff1a; 远程云服务器开发&#xff1a; Xshell界面与VSCode界面对比&#xff1a; 2.1.3 C/C Extension Pack&#xff08;C/C扩展包&#xff0…