论文浅尝 | GPT-RE:基于大语言模型针对关系抽取的上下文学习

news2024/11/25 3:07:57

baae3297d4013bbb01ac4127d258e60b.png

笔记整理:张廉臣,东南大学硕士,研究方向为自然语言处理、信息抽取

链接:https://arxiv.org/pdf/2305.02105.pdf

1、动机

在很多自然语言处理任务中,上下文学习的性能已经媲美甚至超过了全资源微调的方法。但是,其在关系抽取任务上的性能却不尽如人意。以GPT-3为例,一些基于GPT-3的上下文学习抽取方法在关系抽取任务上不理想的效果主要来自于两个方面:① 检索演示示例中实体、关系的相关度较低;② 大语言模型具有将NULL例子错误分类成为预定义关系类型的强烈倾向。造成①的原因主要是以上方法通过随机选择或基于句子表示的K近邻法检索演示示例。这会导致演示示例实体、关系的相关度低;造成②的原因主要是相对于符合预定义类型的示例,NULL示例的复杂度更高,该类型是包含各种未定义的关系的集合。针对以上问题,该论文提出了结合实体感知检索策略和事实标签诱导策略的GPT-RE,以提高基于大语言模型的上下文学习在关系抽取任务上的性能。

2、贡献

该论文的主要贡献包括:

1)提出了实体感知检索策略和事实标签诱导策略,实体感知检索策略能够在演示检索中结合实体信息,获取更适合关系抽取任务的表示;事实标签诱导策略能够引导大语言模型输出更理想的结果;

2)通过实验验证了结合以上两种策略的基于大语言模型的上下文学习框架能够在关系抽取任务中取得很好的效果,在测试数据集上的性能已经赶上甚至超过了现有全监督基线模型;

3、方法

33fa327eb2ff2af4e2b541c28a3852a5.png

图1 GPT-RE框架

GPT-RE是一个使用GPT-3的基于上下文学习的关系抽取框架,其具体方法如下:

3.1 提示构建:

GPT-RE的提示主要包括三部分,分别是:①任务描述和关系预定义类型,②小样本演示示例,③输入样本。提示包含的任务描述和关系预定义类型是对关系抽取的任务描述和其相关的关系预定义类型的一个简洁概括,模型会根据这部分的内容输出预定义的关系类型,若测试样本不属于任何预定义关系类型,模型会输出NULL标签。小样本演示示例是输入模型的演示示例,其中,每条样例包含文本和该文本中所包含的关系,演示示例可以通过后续推理过程进一步的丰富。输入样本为一条文本,GPT-3的任务就是输入文本中实体对所对应的关系。

3.2 实体感知演示检索:

因为演示示例在表示空间中接近测试样本可以使模型表现出更好的性能,最近的一些工作使用K近邻法选出与测试样本句子表示最相近的演示示例。但是,由于句子表示和关系抽取之间的差异,原始上下文的表示在关系抽取任务中不足以完全作为检索演示示例的标准,该论文提出了两种新的获取表示方法提升检索演示示例的质量。

3.2.1 实体提示句子表示:

首先,考虑到实体信息在关系抽取任务中的重要性,作者利用实体对信息重建原始上下文。其具体做法是在原文中加入描述原文中实体对关系类型的内容。在计算句子相似度时,作者使用了最新的健壮模型SimCSE来计算句子之间的相似度。

3.2.2 微调关系表示:

由于关系表示在很多情况下天然地包含了实体表示的信息,与将实体信息加入到上下文中相比,更直接的解决方法是从微调模型中提取关系表示用于检索演示示例。作者认为这种方法可以潜在地弥补GPT-3在关系抽取任务中的局限性。虽然基于GPT-3的上下文学习只使用有限的演示示例,但预训练模型的微调过程可以在整个训练集上进行。这种方法有两个优点:首先,直接使用适应关系抽取任务的关系表示可以显著提高整体检索质量;其次,由于微调后的模型可以准确识别NULL类型,因此过度预测NULL问题将得到缓解。

3.3 事实标签诱导推理:

最近的工作表明,逻辑提示可以引导大语言模型获得理想输出。在该论文中,作者让GPT-3通过相应的事实关系标签来生成每个演示示例的推理逻辑过程。例如,给定一个选定的示例,作者首先基于该示例文本提出一个提示,然后利用GPT-3生成推理上下文中实体对之间关系类型的逻辑线索。最后,作者通过将生成的线索与原始示例结合起来增强演示示例。

4、实验

该论文使用了三个开放领域关系抽取数据集和一个科学领域关系抽取数据集共四个数据集作为实验数据,分别为:Semeval 2010 task 8, TACRED, ACE05和SciERC。基于以上四个数据集的对比方法共分为两大类,第一类为传统的微调基线模型,如PURE;第二类是基于GPT-3的基线模型,如GPT-Random等。该论文对比了以上基线模型和GPT-RE在使用不同表示检索演示示例时的性能,并对比了是否加入实施标签诱导推理提示时GPT-RE的性能差异,其主实验结果如下图所示:

783b0cd2660fcb2b219395fb19a8c14a.png

图2 实验结果

此外,该论文也进行了一系列消融实验和在低资源场景下的实验,具体实验结果请参照原论文。

实验结果表明:① 在检索演示示例时,使用适合特定任务的句子表示是有必要的,无论是使用GPT-RE_SimCSE还是GPT-RE_FT都取得了比GPT-Sent更好的效果;② GPT-RE_FT表现出的性能表明,基于GPT-3的上下文学习有潜力在关系抽取上取得很好的效果,甚至已经在Semeval和SciERC上取得了SOTA效果;③ 相比于GPT-RE_SimCSE,推理模块对GPT-RE_FT的加成更小,这说明GPT-RE_FT获得的演示示例在本实验中质量更高。同时,小样本时推理模块会使模型具有更好的性能。

5、总结

总的来说,该论文探索了GPT-3 上下文学习在关系抽取任务上的潜力。针对GPT-3在此任务上存在的问题,该论文提出了两个策略弥补了基于GPT-3框架和目前SOTA基线模型的差距,实验结果表明,GPT-RE在三个数据集上显著优于微调基线模型,并在Semeval和SciERC上实现了SOTA效果。同时,作者对GPT-3如何克服现有困难,如NULL标签的影响等进行了详细的实例分析,以上工作对后续研究具有比较大的意义。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

45c3024e094943d0d1c14afcab4d9c9b.png

点击阅读原文,进入 OpenKG 网站。

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

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

相关文章

2022年第十三届蓝桥杯比赛Java B组 【全部真题答案解析-第一部分】

最近回顾了Java B组的试题,深有感触:脑子长时间不用会锈住,很可怕。 兄弟们,都给我从被窝里爬起来,赶紧开始卷!!! 2022年第十三届蓝桥杯Java B组(第一部分 A~F题) 目录 一、填空题 …

Rabbit MQ详解

写在前面,由于Rabbit MQ涉及的内容较多,赶在春招我个人先按照我认为重要的内容进行一定总结,也算是个学习笔记吧。主要参考官方文档、其他优秀文章、大模型问答。自己边学习边总结。后面有时间我会慢慢把所有内容补全,分享出来也是希望可以给…

可视化搭建一个智慧零售订单平台

前言 智慧零售行业是在数字化浪潮中快速发展的一个领域,它利用先进的信息技术和大数据分析来提升零售业务的效率和顾客体验。智慧零售订单平台,具有跨平台、数据智能清洗和建模,以及更加丰富的数据展示形式等优势。智慧零售订单平台可以以文…

MySQL8空间索引失效

发现问题 表结构如下,boundary字段建立空间索引 CREATE TABLE area (id int(11) NOT NULL COMMENT 行政区划编码,pid int(11) NOT NULL COMMENT 上级编码,deep int(11) NOT NULL COMMENT 深度,name varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_…

镜像制作实战篇

“ 在失控边缘冲杀为,最终解脱” CMD与EntryPoint实战 EntryPoint 与 CMD都是docker 镜像制作中的一条命令,它们在概念上可能有些相似,但在使用中,两者是有明显的区别的。比如,执行一个没有调用EntryPoint、CMD的容器会…

一起学数据分析_3(模型建立与评估_1)

使用前面清洗好的数据来建立模型。使用自变量数据来预测是否存活(因变量)? (根据问题特征,选择合适的算法)算法选择路径: 1.切割训练集与测试集 import pandas as pd import numpy as np impo…

使用PWM实现呼吸灯功能

CC表示的意思位捕获比较,CCR表示的是捕获比较寄存器 占空比等效于PWM模拟出来的电压的多少,占空比越大等效出的模拟电压越趋近于高电平,占空比越小等效出来的模拟电压越趋近于低电平,分辨率表示的是占空比变化的精细程度&#xf…

(done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW

一个视频:https://www.bilibili.com/video/BV1mb4y1y7EB/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 这里有个视频,讲解得更加生动形象一些 总得来说,词袋模型(Bow, bag-of-words) 是最简…

spring boot nacos注册微服务示例demo_亲测成功

spring boot nacos注册微服务示例demo_亲测成功 先安装好Nacos Nacos安装使用 创建Maven项目 结构如图 例如项目名为: test-demo 下面有个子模块: test-demo-data-process 父模块pom.xml <?xml version"1.0" encoding"UTF-8"?> <project …

【Micropython ESP32】定时器Timer

文章目录 前言一、分频系数1.1 为什么需要分频系数1.2 分频系数怎么计算 二、如何使用定时器2.1 定时器构造函数2.2 定时器初始化2.3 关闭定时器 三、定时器示例代码总结 前言 在MicroPython中&#xff0c;ESP32微控制器提供了丰富的功能&#xff0c;其中之一是定时器&#xf…

【消息队列开发】 实现MemoryDataCenter类——管理内存数据

文章目录 &#x1f343;前言&#x1f334;数据格式的准备&#x1f332;内存操作&#x1f6a9;对于交换机&#x1f6a9;对于队列&#x1f6a9;对于绑定&#x1f6a9;对于单个消息&#x1f6a9;对于队列与消息链表&#x1f6a9;对于未确认消息&#x1f6a9;从硬盘上读取数据 ⭕总…

SpringCloud-深度理解ElasticSearch

一、Elasticsearch概述 1、Elasticsearch介绍 Elasticsearch&#xff08;简称ES&#xff09;是一个开源的分布式搜索和分析引擎&#xff0c;构建在Apache Lucene基础上。它提供了一个强大而灵活的工具&#xff0c;用于全文搜索、结构化搜索、分析以及数据可视化。ES最初设计用…

ARM和AMD介绍

一、介绍 ARM 和 AMD 都是计算机领域中的知名公司&#xff0c;它们在不同方面具有重要的影响和地位。 ARM&#xff08;Advanced RISC Machine&#xff09;&#xff1a;ARM 公司是一家总部位于英国的公司&#xff0c;专注于设计低功耗、高性能的处理器架构。ARM 架构以其精简指…

Vue前端开发记录(一)

本篇文章中的图片均为深色背景&#xff0c;请于深色模式下观看 说明&#xff1a;本篇文章的内容为vue前端的开发记录&#xff0c;作者在这方面的底蕴有限&#xff0c;所以仅作为参考 文章目录 一、安装配置nodejs,vue二、vue项目目录结构三、前期注意事项0、组件1、数不清的报…

一文速通ESP32(基于MicroPython)——含示例代码

ESP32 简介 ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片&#xff0c;支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa 32 位 LX7 双核处理器&#xff0c;主频高达 240 MHz&#xff0c;内置 512 KB SRAM (TCM)&#xff0c;具有 45 个可编程 GPIO 管…

IDEA 多个git仓库项目放一个窗口

1、多个项目先通过新建module或者CtrlAltShiftS 添加module引入 2、重点是右下角有时候git 分支视图只有一个module的Repositories。这时候需要去设置把多个git仓库添加到同一个窗口才能方便提交代码。

十五、自回归(AutoRegressive)和自编码(AutoEncoding)语言模型

参考自回归语言模型&#xff08;AR&#xff09;和自编码语言模型&#xff08;AE&#xff09; 1 自回归语言模型&#xff08; AR&#xff09; 自回归语言模型&#xff08;AR&#xff09;就是根据上文内容&#xff08;或下文内容&#xff09;预测下一个&#xff08;或前一个&…

微信小程序(五十八)分步表单多页面传值

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.分步表单传值 2.伪数据生成 源码&#xff1a; app.json {"pages": ["pages/index/index","pages/building/building","pages/room/room","pages/logs/logs&quo…

整数和浮点数在内存中是如何存储的?

1.整数在内存中的存储 首先数据在内存中都是以二进制的形式存储的&#xff0c;而整数在内存中也是以二进制的形式存储的&#xff0c;而整数的表示形式有三种&#xff0c;分别是源码&#xff0c;反码&#xff0c;补码&#xff0c;而整数在内存中是以补码的形式存放的。 三种表示…

图文并茂!在Oracle VM VirtualBox上安装Ubuntu虚拟机的详细步骤指南

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…