【论文复现】ChatGPT多模态命名实体识别

在这里插入图片描述

📝个人主页🌹:Eternity._
🌹🌹期待您的关注 🌹🌹

在这里插入图片描述
在这里插入图片描述

❀ChatGPT

  • ChatGPT辅助细化知识增强!
  • 1. 研究背景
  • 2. 模型结构和代码
  • 3. 任务流程
    • 第一阶段:辅助精炼知识启发式生成
    • 第二阶段:基于辅助精炼知识的实体预测
  • 4. 数据集介绍
  • 5. 性能展示
  • 6. 实现过程
  • 7. 运行过程

ChatGPT辅助细化知识增强!

在这里插入图片描述
多模态命名实体识别(MNER)技术近期备受瞩目。随着社交媒体上涌现出海量由图像与文本交织而成的非结构化内容,这些帖子展现出了社交媒体特有的属性,诸如言简意赅及不拘一格的表达方式。这些独特之处,无疑给传统的命名实体识别(NER)手段带来了前所未有的挑战。

在本文的探讨中,我构思了一个双阶段架构,其核心在于将ChatGPT作为隐性的知识宝库,并激发其潜力,以启发式的方式产生辅助性的知识,从而助力实体预测的精准度更上一层楼。具体而言,该架构中融入了一个多模态相似样例感知组件,该组件能够从预设的少量人工样本中精挑细选,筛选出恰当的样例。随后,这些样例将被巧妙地嵌入到专为MNER设计的格式化提示模板之中,进而引导ChatGPT生成更为精细的辅助知识。最终,这些宝贵的知识将与原始文本融合,一并输入至下游模型,进行更为深入的加工处理。

【注】 文章中所用到的数据集,都经过预处理的数据集文件(.txt),代码和数据集都放在了附件中,感兴趣的小伙伴可以进行下载,谢谢支持!

1. 研究背景


社交媒体平台上的多模态命名实体识别(MNER)任务,其核心在于借助图像信息来强化文本实体的预测能力。当前的研究焦点大多集中在如何最大限度地挖掘和利用与文本相关的图像数据,或是如何将外部知识库中的显式知识融入其中。然而,这些研究路径要么未能充分意识到为模型引入外部知识的重要性,要么在知识检索过程中遭遇了信息冗余的难题。

本文所涉及的所有资源的获取方式:这里

2. 模型结构和代码


我的模型设计包含两个核心阶段。在首个阶段,即辅助细化知识的生成过程中,我运用了一组精心挑选的预定义人工样本,并借助多模态相似示例感知模块来精准筛选相关性高的实例。随后,这些精心挑选的示例被巧妙地融入格式规范的提示中,以此强化给予ChatGPT的启发式信息,从而提炼出更为精确的知识。进入第二个阶段,即基于辅助知识的实体预测阶段,我将原始文本与ChatGPT所产出的知识信息加以整合。这一整合后的输入随后被送入基于转换器的编码器,以生成相应的token表示。最终,这些表示被进一步传递给线性链条件随机场层,用以预测原始文本序列的概率分布。

3. 任务流程


1. 任务公式化
将MNER任务视为一个序列标注任务。给定一个包含n个词元的句子
T= t 1 t_1 t1…, t n t_n tn及其对应的图像I,MNER的目标是定位并分类句中提到的命名实体,生成标签序列y= y 1 y_1 y1…, y n y_n yn,其中 ( y i ∈ Y (y_i \in Y (yiY) 是使用BIO2标注体系的预定义语义类别。

2. 上下文学习
GPT-3及其后续模型ChatGPT(以下简称GPT)是基于大量数据集预训练的自回归语言模型。在推理过程中,上下文少样本学习通过在冻结的GPT模型上执行文本序列生成任务的方式来完成新的下游任务。具体来说,给定一个测试输入x,其目标y基于格式化的提示p(h,C,x)作为条件进行预测,其中h指的是描述任务的提示头,C= c 1 c_1 c1…, c n c_n cn是n个上下文示例构成的上下文。所有的h、C、x、y均为文本序列,目标y= y 1 y_1 y1…, y L y_L yL,是长度为L的文本序列。在每一步解码过程中,我们有: y l = arg ⁡ max ⁡ y l p LLM ( y l ∣ p , y < l ) y_l = \arg\max_{y_l} p_{\text{LLM}}(y_l \mid p, y_{<l}) yl=argylmaxpLLM(ylp,y<l)

其中,LLM代表预训练的大型语言模型的权重,这些权重在新任务中是冻结的。每个上下文示例
c i c_i ci=( x i x_i xi, y i y_i yi)由任务的输入-目标对构成,这些示例可以手动构建或从训练集中采样。

虽然GPT-4可以接受多模态信息输入,但这一功能仅处于内部测试阶段,尚未公开使用。此外,与ChatGPT相比,GPT-4的成本更高,API请求速度较慢。为了提高可复现性,我们仍然选择ChatGPT作为主要的研究对象,并且提供的这一范式也可以用于GPT-4。

为了使ChatGPT能够完成图文多模态任务,使用了先进的多模态预训练模型将图像转换为图像说明。最后将测试输入x设计为以下模板:
在这里插入图片描述
其中,t、p和q 代表特定的测试输入。\n 表示模板中的换行符。同样,每个上下文示例
c i c_i ci的定义也遵循以下类似模板:
在这里插入图片描述
其中, t i ​ t_i​ ti​, p i ​ p_i​ pi,q, a i ​ a_i​ ai指的是从预定义的人工样本中检索的文本-图像问题-答案四元组。 MNER 的完整提示模板由固定提示头、一些上下文示例和测试输入组成,被馈送到 ChatGPT 以进行辅助知识生成。

第一阶段:辅助精炼知识启发式生成

人工精选的上下文样本
在提升ChatGPT于MNER任务中的效能方面,关键在于精心挑选恰当的上下文样本。获取那些准确标注且能精准体现数据集标注风格,并能为辅助知识扩展提供渠道的样本,是一项艰巨的任务。直接从原始数据集中筛选这些样本并不现实。为此,我采取了随机抽样的策略,从训练集中审慎地选取了一部分样本进行人工标注。针对Twitter-2017数据集,我随机抽取了200个训练样本进行细致标注;而对于Twitter-2015数据集,则标注了120个样本。标注流程包含两大环节:首先是识别句子内的命名实体,其次是结合图像、文本内容及相关知识,给出全面详尽的阐释。在标注实践中,标注者需从人类视角出发,准确判断并解析样本。对于图像与文本相关联的样本,我们明确指出图像突出了文本中的哪些实体;对于图像与文本无关的样本,则直接表明图像描述与文本内容无直接联系。这一精细的标注流程为ChatGPT提供了明确指引,助力其生成高度相关且富有价值的回应。

多模态相似样本智能筛选模块
鉴于GPT的少样本学习能力在很大程度上受上下文样本选择的影响,我研发了多模态相似样本智能筛选(MSEA)模块,旨在精准挑选适合的上下文样本。MNER作为一项典型的多模态任务,其预测精准度依赖于文本与视觉信息的深度融合。因此,我们将文本与图像的融合特征作为衡量样本相似性的基准。而这种多模态融合特征可源自前期的多模态命名实体识别(MNER)模型。在将MNER数据集D和预定义的人工样本G表示为:

D = { ( t i , p i , y i ) } i = 1 M D = \{(t_i, p_i, y_i)\}_{i=1}^M D={(ti,pi,yi)}i=1M

G = { ( t j , p j , y j ) } j = 1 M G = \{(t_j, p_j, y_j)\}_{j=1}^M G={(tj,pj,yj)}j=1M

其中, t j t_j tj, p j p_j pj, y j y_j yj,分别指代文本、图像和真实标签。基于D训练的基础MNER模型
M主要由骨干编码器 M b M_b Mb和CRF解码器 M c M_c Mc组成。输入的多模态图像-文本对通过编码器
M b M_b Mb编码,得到多模态融合特征H:
H = M b ( t , p ) H = M_b(t, p) H=Mb(t,p)

在以往的研究中,经过交叉注意力投射到高维潜在空间的融合特征H会直接输入到解码层,以进行结果预测。我们的模型选择H作为相似示例的判断依据,因为在高维潜在空间中相近的示例更有可能具有相同的映射方式和实体类型。计算测试输入与每个预定义人工样本的融合特征H的余弦相似度。然后,选择前N个相似的预定义人工样本作为上下文示例,以启发ChatGPT生成辅助的精炼知识:
( I = arg ⁡ max ⁡ j ∈ { 1 , 2 , . . . , N } ∥ H ∥ 2 ∥ H j ∥ 2 H T H j (I = \arg\max_{{j \in \{1, 2, ..., N\}}} \frac{\|H\|_2 \|H_j\|_2}{H^T H_j} (I=argmaxj{1,2,...,N}HTHjH2Hj2)

I 是G中前N个相似样本的索引集。上下文示例C定义如下:
C = { ( t j , p j , y j ) ∣ j ∈ I } C = \{(t_j, p_j, y_j) \mid j \in I\} C={(tj,pj,yj)jI}

为了高效实现相似示例的感知,所有的多模态融合特征可以提前计算并存储。

3. 启发式增强提示生成
在获得上下文示例C之后,构建了一个完整的启发式增强提示,以利用ChatGPT在MNER任务中的少样本学习能力。提示头、一组上下文示例和测试输入共同构成了一个完整的提示。提示头根据任务需求以自然语言描述MNER任务。鉴于输入的图像和文本不一定总是直接相关,鼓励ChatGPT发挥其自主判断力。上下文示例由MSEA模块的结果 C = c 1 , ⋯ , c n C = c_1, \cdots, c_n C=c1,,cn 构建。对于测试输入,答案部分留空,由ChatGPT生成。

第二阶段:基于辅助精炼知识的实体预测


定义经过上下文学习后由ChatGPT生成的辅助知识为Z = {z_1, ···, zm},其中m是Z的长度。将原始文本的长度。将原始文本T = {t_1, ···, t_n}与获得的辅助精炼知识Z拼接为与获得的辅助精炼知识Z拼接为[T; Z]$,并将其输入基于Transformer的编码器:
h 1 , ⋯ , h n , ⋯ , h n + m = embed ( [ T ; Z ] ) h_1, \cdots, h_n, \cdots, h_{n+m} = \text{embed}([T; Z]) h1,,hn,,hn+m=embed([T;Z])

由于Transformer编码器中使用的注意力机制,得到的词元表示 H = ( h 1 , ⋯ , h n ) H = (h_1, \cdots, h_n) H=(h1,,hn)包含了来自辅助知识Z的相关线索。与先前的研究类似,将H输入标准的线性链条件随机场层,定义给定输入句子T的标签序列y的概率为:

P ( y ∣ T , Z ) = ∑ y ′ ∈ Y ∏ i = 1 n ψ ( y i − 1 ′ , y i ′ , h i ) ∏ i = 1 n ψ ( y i − 1 , y i , h i ) P(y \mid T, Z) = \frac{\sum_{{y' \in Y}} \prod_{{i=1}}^{n} \psi(y'_{i-1}, y'_i, h_i)}{\prod_{{i=1}}^{n} \psi(y_{i-1}, y_i, h_i)} P(yT,Z)=i=1nψ(yi1,yi,hi)yYi=1nψ(yi1,yi,hi)

其中 ( ψ ( y i − 1 , y i , h i ) (\psi(y_{i-1}, y_i, h_i) (ψ(yi1,yi,hi))和 ( ψ ( y i − 1 ′ , y i ′ , h i ) (\psi(y'_{i-1}, y'_i, h_i) (ψ(yi1,yi,hi))是势函数。最后,使用负对数似然作为带有真实标签 y∗的输入序列的损失函数:
L NLL ( θ ) = − log ⁡ P θ ( y ∗ ∣ T , Z ) L_{\text{NLL}}(\theta) = -\log P_\theta(y^* \mid T, Z) LNLL(θ)=logPθ(yT,Z)

4. 数据集介绍


我们在两个公共 MNER 数据集上进行了实验:Twitter-2015和 Twitter-2017。这两个数据集都是从Twitter平台上收集的,包含了文本和图像的配对信息,主要用于研究在社交媒体短文本场景下的多模态命名实体识别和情感分析等任务。

1. Twitter-2015: 推文中的文本部分被手动标注了命名实体,并使用BIO2(Beginning- Inside-Outside)标注方案对命名实体进行分类。实体类别包括人物(Person)、组织(Organization)、地点(Location)等。3373/723/723(train/development/test)

2. Twitter-2017: 相比于Twitter-2015,Twitter-2017数据集的规模更大,包含了更多的推文样本。Twitter-2017不仅扩大了数据规模,还提高了标注的多样性和复杂性,推文中的命名实体更加丰富。此外,推文配对的图像信息在识别命名实体方面也具有重要作用,尤其是那些无法通过文本直接判断的实体。4000/1000/3257(train/development/test)

5. 性能展示


1. Twitter-2015:

ModelPreRecF1
UMT71.6775.2373.41
UMGF74.4975.2174.85
MNER-QG77.7672.3174.94
R-GCN73.9576.1875.00
CAT-MNER78.7578.6978.72
Proposed79.2179.4579.33

2. Twitter-2017:

ModelPreRecF1
UMT85.2885.3485.31
UMGF86.5484.5085.51
MNER-QG88.5785.9687.25
R-GCN86.7287.5387.11
CAT-MNER90.2790.6790.47
Proposed90.8692.0191.43

6. 实现过程


在下载附件并准备好数据集并调试代码后,进行下面的步骤,附件已经调通并修改,可直接正常运行;

1. 环境要求

python == 3.7
torch == 1.13.1
transformers == 4.30.2
modelscope == 1.7.1

2. 我们的项目基于AdaSeq, AdaSeq项目基于Python版本>= 3.7和PyTorch版本>= 1.8。

3. 下载

git clone https://github.com/modelscope/adaseq.git
cd adaseq
pip install -r requirements.txt -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html

4. 将我们的附件文件夹复制到/adaseq/examples/

-adaseq
---|examples
-----|ER
-------|twitter-15-txt.yaml
-------|twitter-17-txt.yaml

5. 用我们的adaseq文件夹替换原来的adaseq文件夹

-adaseq
---|.git
---|.github
---|adaseq   <-- (Use our adaseq replace it)  
---|docs
---|examples
---|scripts
---|tests
---|tools

6. 训练模型

	python -m scripts.train -c examples/ER/twitter-15.yamlpython -m scripts.train -c examples/ER/twitter-17.yaml

7. 运行过程


  1. 训练过程
    在这里插入图片描述

  2. 最终结果
    在这里插入图片描述


编程未来,从这里启航!解锁无限创意,让每一行代码都成为你通往成功的阶梯,帮助更多人欣赏与学习!

更多内容详见:这里

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

echarts-gl 3D柱状图配置

1. 源码 此demo可以直接在echarts的编辑器中运行 option {title: {text: 产量图,textStyle: {color: rgba(255, 255, 255, 1),fontSize: 17},left: center},tooltip: {},legend: {show: false,orient: vertical,x: left,top: 0,right: 20,textStyle: {fontSize: 12}},visualM…

c语言数据结构与算法--简单实现栈和队列的出栈与入栈

&#xff08;一&#xff09;栈的基本概念 栈(Stack)是限定仅在表尾进行插入和删除操作的线性表&#xff0c;如铁路调度。如下 图&#xff1a; &#xff08;二&#xff09;栈的的表现形式 栈有两种表示形式&#xff1a;栈的表示和实现、栈的 链式表示。 1&#xff0e;栈的表示…

人工智能(AI)和机器学习(ML)技术学习流程

目录 人工智能(AI)和机器学习(ML)技术 自然语言处理(NLP): Word2Vec: Seq2Seq(Sequence-to-Sequence): Transformer: 范式、架构和自注意力: 多头注意力: 预训练、微调、提示工程和模型压缩: 上下文学习、思维链、全量微调、量化、剪枝: 思维树、思维…

C++初阶——vector

一、什么是vector vector是表示可变大小的数组的序列容器&#xff0c;就像数组一样&#xff0c;vector也采用连续空间来存储元素。也就是说它的访问和数组一样高效&#xff0c;但是它的大小是动态可变的&#xff0c;并且它的大小会被容器自动处理。 二、vector的构造 常用的构…

移远通信亮相骁龙AI PC生态科技日,以领先的5G及Wi-Fi产品革新PC用户体验

PC作为人们学习、办公、娱乐的重要工具&#xff0c;已经深度融入我们的工作和生活。随着物联网技术的快速发展&#xff0c;以及人们对PC性能要求的逐步提高&#xff0c;AI PC成为了行业发展的重要趋势。 11月7-8日&#xff0c;骁龙AI PC生态科技日在深圳举办。作为高通骁龙的重…

AIGC专栏17——EasyAnimate V5版本详解 应用MMDIT结构,拓展模型规模到12B 支持不同控制输入的控制模型

AIGC专栏17——EasyAnimate V5版本详解 应用MMDIT结构&#xff0c;拓展模型规模到12B 支持不同控制输入的控制模型 学习前言相关地址汇总源码下载地址HF测试链接 测试效果Image to VideoText to Video EasyAnimate详解技术储备Diffusion Transformer (DiT)Stable Diffusion 3Co…

Android Studio | 最新版本配置要求高,JDK运行环境不适配,导致无法启动App

Android Studio 的最新版本配置要求比较高&#xff0c;这时候需要降低插件的版本&#xff0c;才能正常启动项目 build.gradle 文件的 dependencies 部分中&#xff0c;使用 libs 作为一些常用库的别名。这些别名在项目的 gradle.properties 文件或者某个特定的 versions.prope…

ssm093基于Java Web的毕业生就业状况管理系统设计与实现+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;毕业生就业状况管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本毕业生就业…

el-dialog 设置 水平垂直居中 高度不固定

小记一下&#xff1a; 希望实现不管内容高度多少 el-dialog都能水平垂直居中 效果&#xff1a; css: .form-view-dialog{display: flex;align-items: center;justify-content: center;.el-dialog{margin: 0 auto; }.el-dialog__body{max-height: 75vh; // 可选择 设置一个最…

当AI遇上时尚:未来的衣橱会由机器人来打理吗?

内容概要 在当今这个快速发展的时代&#xff0c;人工智能与时尚的结合正在逐渐改写我们对衣橱管理的认知。传统的衣橱管理常常面临着空间不足、穿搭单调及库存过多等挑战&#xff0c;许多人在挑选服饰时难以做出决策。然而&#xff0c;随着技术的进步&#xff0c;智能推荐和自…

Ubuntu 20.04安装CUDA 11.0、cuDNN 8.0.5

不知道咋弄的ubuntu20.04电脑的cuda驱动丢了&#xff0c;无奈需装PyTorch环境&#xff0c;只有CUDA11.0以上版本才支持Ubuntu20.04&#xff0c;所以安装了CUDA11.0、cuDNN8.0.5 为防止频繁在浏览器检索对应的贴子&#xff0c;今天记录一下。 一. 驱动安装 为防止驱动安装后没…

高德地图通过经纬度查找位置和轨迹回放

1、完整代码自己高德申请key,其他文章有写的 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title><…

C++常用的特性-->day05

友元的拓展语法 声明一个类为另外一个类的友元时&#xff0c;不再需要使用class关键字&#xff0c;并且还可以使用类的别名&#xff08;使用 typedef 或者 using 定义&#xff09;。 #include <iostream> using namespace std;// 类声明 class Tom; // 定义别名 using …

使用docker形式部署jumpserver

文章目录 前言一、背景二、使用步骤1.基础环境准备2.拉取镜像3.进行部署4.备份记录启动命令 前言 记录一下使用docker形式部署jumpserver服务的 一、背景 搭建一个jumpserver的堡垒机&#xff0c;但是发现之前是二进制文件部署的&#xff0c;会在物理机上部署污染环境&#x…

产品经理如何使用项目管理软件推进复杂项目按时上线

前言 相信很多产品同学或多或少都有过这样的经历&#xff1a;平时没有听到任何项目延期风险&#xff0c;但到了计划时间却迟迟无法提测……评审时没有任何argue&#xff0c;提测后发现开发的功能不是自己想要的……费劲九牛二虎之力终于让项目上线了&#xff0c;然而发现成果达…

贪心算法-汽车加油

这道题目描述了一个汽车旅行场景&#xff0c;需要设计一个有效的算法来决定在哪几个加油站停车加油&#xff0c;以便最小化加油次数。题目给出了汽车加满油后的行驶距离n公里&#xff0c;以及沿途若干个加油站的位置。我们需要找出一个方案&#xff0c;使得汽车能够完成整个旅程…

【大数据学习 | HBASE】hbase的读数据流程与hbase读取数据

1. hbase的读数据流程 在解析读取流程之前我们还需要知道两个功能性的组件和HFIle的格式信息 HFILE 存储在hdfs中的hbase文件&#xff0c;这个文件中会存在hbase中的数据以kv类型显示&#xff0c;同时还会存在hbase的元数据信息&#xff0c;包括整个hfile文件的索引大小&…

2024AAAI | DiffRAW: 利用扩散模型从手机RAW图生成单反相机质量的RGB图像

文章标题&#xff1a;《DiffRAW: Leveraging Diffusion Model to Generate DSLR-Comparable Perceptual Quality sRGB from Smartphone RAW Images》 原文链接&#xff1a;DiffRAW 本文是清华大学深圳研究院联合华为发表在AAAI-2024上的论文&#xff08;小声bb&#xff1a;华…

【Linux系统编程】第四十五弹---线程互斥:从问题到解决,深入探索互斥量的原理与实现

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、线程互斥 1.1、见一见多线程访问问题 1.2、解决多线程访问问题 1.2.1、互斥量的接口 1.2.2、互斥量接口的使用 1.2.3、…

【GVN】AWZ算法

AWZ算法的例子依旧来自于RKS的这篇文章《Detecting Equalities of Variables: Combining Efficiency with Precision》。 上面两个图&#xff0c;进行的是如下图所示的循环结构的等价类计算。 为什么得到的结果不是上图而是下图呢&#xff1f;这里其实是因为用到的AWZ的算法…