2024论文精读:利用大语言模型(GPT)增强上下文学习去做关系抽取任务
文章目录
- 1. 前置知识
 - 2. 文章通过什么来引出他要解决的问题
 - 3. 作者通过什么提出RE任务存在上面所提出的那几个问题
 - 3.1 问题一:ICL检索到的**示范**中实体个关系的相关性很低。
 - 3.2 问题二:示范中缺乏解释输入-标签映射导致ICL效果不佳。
 
- 4. 作者为了解决上述的问题,所提出来的方法
 - 4.1 证明作者提出的第三个问题是一个问题
 
- 5. 实现方式
 - 5.1 任务定义
 - 5.2 概述
 - 5.3 提示构建
 - 5.4 任务感知的示范检索
 - 5.4.1 实体提示的句子嵌入
 - 5.4.2 微调关系表示
 
- 5.5 金标签诱导推理
 
- 6. 实验结果
 - 7. 复现情况
 
GPT-RE: In-context Learning for Relation Extraction using Large Language Models
论文信息
年份: 2023
状态:arXiv
引用次数:77(截至至2024年7月20日)
是否开源:是
1. 前置知识
- ICL (In-Context Learning) 上下文学习
 
2. 文章通过什么来引出他要解决的问题
文章说,现在通过上下文学习 (ICL) 的大语言模型有很大的潜力,但是在关系抽取的任务上 (RE) 依旧是落后全监督的方法,所以作者提出了两个可能的问题,就是因为这两个问题导致现在的大预言模型关系抽取的精度比那些全监督的关系抽取模型还要差。这两个问题是:
- **问题一:**现有的在句子级别的示范检索方法中,与实体和关系的相关性低。
 - **问题二:**缺乏对示范中输入-标签映射的解释,导致ICL的效果不佳。
 - **问题三:**大模型会错误将NULL示例分类为其他预定义标签的强烈倾向。
 
3. 作者通过什么提出RE任务存在上面所提出的那几个问题
3.1 问题一:ICL检索到的示范中实体个关系的相关性很低。
什么是示范?
示范指的是在使用大型语言模型进行上下文学习(ICL)时,作为学习样本的示例。可以理解为提示词,这种数据通常来源于训练数据。
在别人使用大模型进行关系抽取任务的时候,示范(我个人认为是提示词)都是通过句子嵌入随机选者,或者通过KNN搜索选择。
ok?那么为什么使用上面的方法导致使用大模型进行关系抽取效果会不好呢?
作者说,基于句子嵌入的KNN检索更关注整体句子语义的相关性,而不太关注其中包含的具体实体和关系,这就导致了示范的质量较低。在这里作者举了一个例子:

这个图片呢,就是说明了我们有一个测试输入的句子Test Input,想要使用大模型来进行关系抽取,但是,他想要使用KNN的方法从训练集中找到一些一样关系的句子,来作为提示词中的示范。但是能,由于使用句子嵌入的原因 ,导致了拿到的示范并不准确,我们输入的句子是想要找到公司和一个城市founded by的关系,但是示例呢找到的是located in的关系,这并不符合,这也导致了大模型的抽取精度不高的原因。
3.2 问题二:示范中缺乏解释输入-标签映射导致ICL效果不佳。
普通形式的ICL将所有示范列为输入-标签对,而没有任何解释。这可能会误导大型语言模型(LLMs)从表面词汇中学习浅层线索,而关系可以因语言的复杂性以多种形式呈现。特别是当ICL有最大输入长度限制时,优化每个单独示范的学习效率变得极为重要。
4. 作者为了解决上述的问题,所提出来的方法
- 解决办法一:在示范检索中引入任务感知的表示。
 
incorporating task-aware representations in demonstration retrieval.
核心是使用刻意编码并强调实体和关系信息的表示,而不是用于KNN检索的句子嵌入。
作者使用两种不同的检索方法实现了这一点,(1)实体题是的句子嵌入(2)经过微调的关系表示,这自然的强调了实体和关系。这两种方法都包含了比句子语义更多的RE任务所需要的特定信息,从而有效地解决了低相关性的问题。
- 解决办法二:通过金标签引导的推理逻辑丰富示范内容。
 
enriching the demonstrations with gold label-induced reasoning logic.
作者提议将推理逻辑注入示范中,去提供更多的证据来对齐输入和标签,这一策略类似于思维链(Chain-of-Thought)
但是作者这次使用的方式与传统的思维链不一样,他不仅解释为什么给定句子应该被归类于这样特定的标签,而且还要解释为什么NULL示例不应干被分配到任何预定义类别中。
4.1 证明作者提出的第三个问题是一个问题
作者提出了大语言模型会有过度预测的问题。

观察到大型语言模型(LLMs)有将NULL示例错误分类到其他预定义标签的强烈倾向。作者在三个流行的通用领域关系抽取(RE)数据集上评估了我们提出的方法:Semeval 2010任务8、TACRED和ACE05,以及一个科学领域数据集SciERC。我们观察到GPT-RE不仅在现有的GPT-3基准上取得了改进,而且也超过了全监督基准。具体来说,GPT-RE在Semeval和SciERC数据集上取得了最佳性能,在TACRED和ACE05数据集上也表现竞争力。
5. 实现方式
5.1 任务定义
 C C C 表述输入的上下文, e s u b e_{sub} esub表示主体, e o b j e_{obj} eobj表示客体,以下的公式表示主体和客体之间的实体对。我们在关系抽取任务之前,会给定一组预定一个关系类别 R R R,关系抽取的目的就是预测上下文 C C C中实体对( e s u b e_{sub} esub, e o b j e_{obj} eobj)之间关系 y y y,并且 y ∈ R y \in R y∈R的,当然还有一种情况就是他们之间并没有关系,那么预测的结果就为 y = n u l l y=null y=null
  e s u b ∈ C e o b j ∈ C e_{sub} \in C \\ e_{obj} \in C esub∈Ceobj∈C
5.2 概述
根据上面所提到的两个内容,作者引入了两个模块
- 模块一:任务感知的示范检索,目的是为了检索到更高精度的示范。
 - 模块二:金标签的诱导推理,用来丰富每个示范中的解释。
 

图四为整个系统的架构图。
5.3 提示构建
我们为每个测试用例都设定一个提示语,这个提示语会输入到GPT-3模型中去。每个提示会包含以下这几个部分:
**指令 I I I:**我们提供关系抽取任务描述和预定义的的类别集 R R R的简要概述,模型的明确要求输出属于预定义类别的关系。否者,模型将要输出NULL。
在框架图中为这个部分:

**ICL 范式 D D D:利用任务感知检索器(在5.4节中会提到)**获取 K K K次是示范集,然后用金标签诱导的推理ri丰富每个示范(xi, yi),构建新的示范集(xi, yi, ri)作为D。 测试输入 xtest:类似于示范,我们提供测试输入xtest,期望GPT-3生成相应的关系ytest。
在整个流程图中的这个环节:

说实话,这里上面讲的并不是人话,按照作者前面的意思,就是会利用训练集,然后再结合大模型,让大模型去说出为什么这个句子中的这两个实体存在这样的关系,所以往下继续看。
5.4 任务感知的示范检索
作者在上面说了KNN的效果不好,所以他提出了两种新的方法来提供更稳健的表示,用来获取更好的检索质量
- 方法一:一个初级的实体提示的句子嵌入
 
压根不是什么实体提示,就是重构句子,在句子之前加一句话,说两个实体之间的关系是什么。
- 方法二:一个高级的微调关系表示
 
这个部分在整个流程图中的这个位置:

5.4.1 实体提示的句子嵌入
我们会对输入的句子进行改造
Input Text
他有一个姐没Lisa
改造后的句子
Reconstructed context:
在上下文中‘他’与‘Lisa’之间的关系:他有一个姐妹Lisa
然后,作者利用SimCSE去在训练集中找到测试句子嵌入相似度高的句子。
5.4.2 微调关系表示
个人理解:就是模仿了Bert
目前基于BERT的微调方法用于RE,试图通过添加额外的标记符号来突出主体和客体实体及其类型,从而捕捉上下文信息和实体信息。具体来说,给定一个示例:“他有一个姐妹Lisa。”,输入的标记是:
“ [ C L S ] [CLS] [CLS] [ S U B _ P E R ] [SUB\_PER] [SUB_PER]他 [ / S U B _ P E R ] [/SUB\_PER] [/SUB_PER]有一个姐妹$[OBJ_PER] L i s a Lisa Lisa[/OBJ_PER]$。[SEP]”
其中**“PER”**是提供的实体类型。假设BERT编码器的第n个隐藏表示为 h n h_n hn。假设 i i i和 j j j是两个实体标记 [ S U B _ P E R ] [SUB\_PER] [SUB_PER]和 [ O B J _ P E R ] [OBJ\_PER] [OBJ_PER]的索引,我们将关系表示定义为 R e l = h i ⊕ h j Rel = h_i ⊕ h_j Rel=hi⊕hj,其中⊕表示在第一维上的表示连接。随后,这个表示被输入到一个前馈网络中,用于预测关系概率 p ( y ∈ R ∪ N U L L ∣ R e l ) p(y ∈ R ∪ {NULL} | Rel) p(y∈R∪NULL∣Rel)。
实体标记明确编码了主体和客体实体,关系表示Rel自然地丰富了实体信息。我们认为这种方法可能弥补GPT-3在RE中的限制。虽然GPT-3 ICL的示范是有限的,但微调过程是不受限制的,可以在整个训练数据上进行。这具有两个后续优点。首先,关系表示直接微调以适应RE任务,这可能显著提高整体检索质量。其次,过度预测NULL的问题将得到大幅缓解,因为微调后的模型可以准确识别类似的NULL示例。
5.5 金标签诱导推理
就是把上一步找到的在训练集中的句子,输入给大模型中,让大模型去回答,为什么这个句子中的这两个实体是这样的一个关系。
提示词为:
What are the clues that lead to the relation between [entity1] and [entity2] to be [relation] in the sentence [context]?
 
生成出的内容就会拼接到[ICL范式](# 5.3 提示构建)中去
以下为论文中提出的一个例子:

6. 实验结果
肯定是很好才能发啦
7. 复现情况
即将开始
相关文章:
2024论文精读:利用大语言模型(GPT)增强上下文学习去做关系抽取任务
文章目录 1. 前置知识2. 文章通过什么来引出他要解决的问题3. 作者通过什么提出RE任务存在上面所提出的那几个问题3.1 问题一:ICL检索到的**示范**中实体个关系的相关性很低。3.2 问题二:示范中缺乏解释输入-标签映射导致ICL效果不佳。 4. 作者为了解决上…...
WEB 手柄 http通信,mcu端解析代码 2024/7/23 日志
WEB 手柄 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>WEB遥控器</title> </head> &l…...
cmake中的正则表达式
以下字符或者字符组合在cmake的正则表达式中的特殊含义: ^ 匹配输入的开始 $ 匹配输入的结束 . 匹配任意一个字符 \<char> 匹配一个字符,如.匹配字符.,\匹配字符\,\a匹配字符a [ ] 匹配在括号里面的任意字符࿰…...
05. Java 三大范式
1. 前言 在面向对象语言中涉及到诸多的设计模式,例如单例模式、适配器模式,设计模式的存在是为了让系统中的代码逻辑更加清晰,帮助开发者建立更加健壮的系统,同时满足易修改特性和易扩展特性。数据库设计时也存在类似设计模式的通…...
opencv 按键开启连续截图,并加载提示图片
背景图小图 键盘监听使用的是pynput 库 保存图片时使用了年月日时分秒命名 原图: from pynput import keyboard import cv2 import time# 键盘监听 def on_press(key):global jieglobal guanif key.char a:jie Trueelif key.char d:jie Falseelif key.char…...
Android-- 集成谷歌地图
引言 项目需求需要在谷歌地图: 地图展示,设备点聚合,设备站点,绘制点和区域等功能。 我只针对我涉及到的技术做一下总结,希望能帮到开始接触谷歌地图的伙伴们。 集成步骤 1、在项目的modle的build.gradle中添加依赖如…...
Jvm是如何处理异常的
异常抛出 当Java程序运行时遇到无法处理的情况时,会抛出一个异常(比如在一个方法中如果发生异常),这时会创建一个异常对象,并转交给JVM,该异常对象包含异常名称,异常描述以及异常发生时应用程序的状态。创建异常对象并转交给JVM的过程称为抛出异常。 异常捕捉 当JVM检测…...
recursion depth exceeded” error
有些时候不可以用jax.jit装饰器 参考资料:使用 JAX 后端在 Keras 3 中训练 GAN |由 Khawaja Abaid |中等 (medium.com)...
虚拟现实和增强现实技术系列—Expressive Talking Avatars
文章目录 1. 概述2. 背景介绍3. 数据集3.1 设计标准3.2 数据采集 4. 方法4.1 概述4.2 架构4.3 目标函数 5. 实验评测5.1 用户研究5.2 我们方法的结果5.3 比较与消融研究 1. 概述 支持远程协作者之间的交互和沟通。然而,明确的表达是出了名的难以创建,主…...
网站验证:确保网络安全与信任的重要步骤
网站验证:确保网络安全与信任的重要步骤 引言 在数字时代,网站验证是确保网络安全和建立用户信任的关键措施。随着网络诈骗和恶意软件的日益增多,验证网站的真实性和安全性变得尤为重要。本文将探讨网站验证的重要性、常见的验证方法以及如…...
C语言——字符串比较函数strcmp和strncmp
目录 strcmp 函数原型如下: 示例 注意事项 strcmp自实现代码: strncmp 函数 函数原型: 参数: 返回值: 特点: 两者之间的区别和联系 strcmp strcmp 是 C 语言标准库中的一个函数,用于…...
redis的集群模式
目录 1. 为什么使用redis集群 2. 主从模式 2.1修改配置文件 2.2 开启三台redis服务 2.3配置主从关系 3. 哨兵模式 3.1 监控功能 3.2 选举的机制 3.3 准备条件 4. 去中心化模式 4.1 准备三主三从 4.2 启动redis 4.3 分配槽以及主从关系 4.4 命令行的客户端 redis提供…...
基于微信小程序+SpringBoot+Vue的青少年科普教学系统平台(带1w+文档)
基于微信小程序SpringBootVue的青少年科普教学系统平台(带1w文档) 基于微信小程序SpringBootVue的青少年科普教学系统平台(带1w文档) 这个工具就是解决上述问题的最好的解决方案。它不仅可以实时完成信息处理,还缩短高校教师成果信息管理流程,使其系统化…...
智能听觉:从任务特定的机器学习到基础模型
关键词:计算机听觉、音频基础模型、多模态学习、声音事件检测 声音无处不在,弥漫于我们生活的每一个角落。鸟儿向伴侣倾诉心意的歌声,浓缩咖啡机中蒸汽的嘶嘶作响,午后阳光下昆虫振翅的嗡嗡声,金属屋顶上雨滴跳跃的滴答…...
14、如何⽤DDD设计微服务代码模型
在完成领域模型设计后,接下来我们就可以开始微服务的设计和 落地了。在微服务落地前,⾸先要确定微服务的代码结构,也就是我 下⾯要讲的微服务代码模型。 只有建⽴了标准的微服务代码模型和代码规范后,我们才可以将 领域对象映射到…...
ArcGIS Pro SDK (九)几何 12 多面体
ArcGIS Pro SDK (九)几何 12 多面体 文章目录 ArcGIS Pro SDK (九)几何 12 多面体1 通过拉伸多边形或折线构建多面体2 多面体属性3 构建多面体4 通过MultipatchBuilderEx构建多面体5 从另一个多面体构建多面体6 从 3D 模型文件构建…...
二次元手游《交错战线》游戏拆解
交错战线游戏拆解案 游戏亮点即核心趣味 一、关键词: 回合制游戏、二次元、机甲、横板、剧情、养成、异星探索。 二、游戏亮点: 符合目标群体审美的原画。 三、核心趣味: 抽卡、肝或者氪金解锁新皮肤。 核心玩法及系统规则 核心玩法&…...
【BUG】已解决:Downgrade the protobuf package to 3.20.x or lower.
Downgrade the protobuf package to 3.20.x or lower. 目录 Downgrade the protobuf package to 3.20.x or lower. 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身…...
Java开发之Redis
1、非关系型数据库、快、高并发、功能强大 2、为什么快?内存单线程 非阻塞的IO多路复用有效的数据类型/结构 3、应用:支持缓存、支持事务、持久化、发布订阅模型、Lua脚本 4、数据类型: 5 种基础数据类型:String(字…...
Java面试八股之 Spring Bean的生命周期
Spring Bean的生命周期 实例化(Instantiation):Spring容器根据Bean定义信息创建Bean的实例,通常通过无参构造函数进行。 依赖注入(Dependency Injection,DI):Spring容器按照Bean定…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
