前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >ChatGPT多模态命名实体识别

ChatGPT多模态命名实体识别

作者头像
E绵绵
发布2024-11-09 08:31:30
发布2024-11-09 08:31:30
11300
代码可运行
举报
文章被收录于专栏:编程学习之路编程学习之路
运行总次数:0
代码可运行

本文所有知识点可在以下链接获取:


ChatGPT辅助细化知识增强!

多模态命名实体识别(MNER)最近引起了广泛关注。 用户在社交媒体上生成大量非结构化内容,主要由图像和文本组成。这些帖子具有与社交媒体相关的固有特征,包括简洁和非正式的写作风格。 这些独特的特征对传统的命名实体识别(NER)方法提出了挑战。

在本文中,我提出了一个两阶段框架,旨在利用 ChatGPT 作为隐式知识库,并使其能够启发式生成辅助知识,以实现更有效的实体预测。 具体来说,其中包含一个多模态相似示例感知模块,该模块从少量预定义的人工样本中选择合适的示例。 然后将这些示例集成到适合 MNER 的格式化提示模板中,并指导 ChatGPT 生成辅助细化知识。 最后,将获得的知识与原始文本集成并输入下游模型以进行进一步处理。

一、研究背景

社交媒体上的多模态命名实体识别(MNER)旨在通过结合基于图像的线索来增强文本实体预测。 现有的研究主要集中在最大限度地利用相关图像信息或结合显式知识库中的外部知识。 然而,这些方法要么忽视了为模型提供外部知识的必要性,要么遇到检索知识冗余度高的问题。

二、模型结构和代码

我的模型主要分为两个阶段。在生成辅助细化知识的阶段,我利用一组有限的预定义人工样本,并采用多模态相似示例感知模块来仔细选择相关实例。然后,将这些选定的示例合并到格式正确的提示中,从而增强为 ChatGPT 提供的启发式指导,以获取精炼的知识。 在基于辅助知识的实体预测阶段,将原始文本与ChatGPT生成的知识信息相结合。然后,将此级联输入输入基于转换器的编码器以生成token表示。最后,将表示输入线性链条件随机场层,以预测原始文本序列的概率分布。

任务流程

1. 任务公式化 将MNER任务视为一个序列标注任务。给定一个包含n个词元的句子T=t1,⋅⋅⋅,tnT=t1​,⋅⋅⋅,tn​及其对应的图像II,MNER的目标是定位并分类句中提到的命名实体,生成标签序列y=y1,⋅⋅⋅,yny=y1​,⋅⋅⋅,yn​,其中yi∈Yyi​∈Y 是使用BIO2标注体系的预定义语义类别。

2. 上下文学习 GPT-3及其后续模型ChatGPT(以下简称GPT)是基于大量数据集预训练的自回归语言模型。在推理过程中,上下文少样本学习通过在冻结的GPT模型上执行文本序列生成任务的方式来完成新的下游任务。具体来说,给定一个测试输入xx,其目标y基于格式化的提示p(h,C,x)p(h,C,x)作为条件进行预测,其中hh指的是描述任务的提示头,C=c1,⋅⋅⋅,cnC=c1​,⋅⋅⋅,cn​ 是nn个上下文示例构成的上下文。所有的h、C、x、yh、C、x、y均为文本序列,目标y=y1,⋅⋅⋅,yLy=y1​,⋅⋅⋅,yL​是长度为L的文本序列。在每一步解码过程中,我们有:

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

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

为了使ChatGPT能够完成图文多模态任务,使用了先进的多模态预训练模型将图像转换为图像说明。最后将测试输入x设计为以下模板:

其中,tt、pp 和qq 代表特定的测试输入。`\n` 表示模板中的换行符。同样,每个上下文示例cici​的定义也遵循以下类似模板:

其中 titi​、pipi​、qq 和 aiai​ 指的是从预定义的人工样本中检索的文本-图像问题-答案四元组。 MNER 的完整提示模板由固定提示头、一些上下文示例和测试输入组成,被馈送到 ChatGPT 以进行辅助知识生成。

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

1. 预定义的人工样本 使ChatGPT在MNER任务中表现更好的关键在于选择合适的上下文示例。获取准确标注的上下文示例,这些示例能够精确反映数据集的标注风格并提供扩展辅助知识的途径,是一个显著的挑战。直接从原始数据集中获取这些示例并不可行。为了解决这个问题,我采用了随机抽样的方法,从训练集中选择一小部分样本进行人工标注。具体来说,对于Twitter-2017数据集,从训练集中随机抽取200个样本进行人工标注,而对于Twitter-2015数据集,数量为120。标注过程包括两个主要部分。第一部分是识别句子中的命名实体,第二部分是综合考虑图像和文本内容以及相关知识,提供全面的理由说明。在标注过程中遇到的多种情况中,标注者需要从人类的角度正确判断并解释样本。对于图像和文本相关的样本,我们直接说明图像中强调了文本中的哪些实体。对于图像和文本无关的样本,我们直接声明图像描述与文本无关。通过人工标注过程,强调了句子中的实体及其对应的类别。此外,引入了相关的辅助知识来支持这些判断。这个细致的标注过程为ChatGPT提供了指导,使其能够生成高度相关且有价值的回答。

2. 多模态相似示例感知模块 由于GPT的少样本学习能力在很大程度上取决于上下文示例的选择,我设计了多模态相似示例感知(MSEA)模块来选择合适的上下文示例。作为一个经典的多模态任务,MNER的预测依赖于文本和视觉信息的整合。因此,我们将文本和图像的融合特征作为评估相似示例的基本标准。而这种多模态融合特征可以从之前的多模态命名实体识别(MNER)模型中获得。将MNER数据集D和预定义的人工样本GG表示为:

其中,titi​, pipi​, yiyi​分别指代文本、图像和真实标签。基于DD训练的基础MNER模型MM主要由骨干编码器MbMb​和CRFCRF解码器McMc​组成。输入的多模态图像-文本对通过编码器MbMb​编码,得到多模态融合特征HH:

在以往的研究中,经过交叉注意力投射到高维潜在空间的融合特征HH会直接输入到解码层,以进行结果预测。我们的模型选择HH作为相似示例的判断依据,因为在高维潜在空间中相近的示例更有可能具有相同的映射方式和实体类型。计算测试输入与每个预定义人工样本的融合特征HH的余弦相似度。然后,选择前N个相似的预定义人工样本作为上下文示例,以启发ChatGPT生成辅助的精炼知识:

II 是GG中前NN个相似样本的索引集。上下文示例C定义如下:

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

3. 启发式增强提示生成

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

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

定义经过上下文学习后由ChatGPT生成的辅助知识为Z = {z_1, ···, zm},其中,其中m是是Z的长度。将原始文本的长度。将原始文本T = {t_1, ···, t_n}与获得的辅助精炼知识Z拼接为与获得的辅助精炼知识Z拼接为[T; Z]$,并将其输入基于Transformer的编码器:

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

其中,ψ(yi−1,yi,hi)ψ(yi−1​,yi​,hi​)和$ψ(y′_{i−1}, y′_i, h_i)是势函数。最后,使用负对数似然作为带有真实标签 y∗y∗的输入序列的损失函数:

三、数据集介绍

我们在两个公共 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)

三、性能展示

1. Twitter-2015:

Model

Pre

Rec

F1

UMT

71.67

75.23

73.41

UMGF

74.49

75.21

74.85

MNER-QG

77.76

72.31

74.94

R-GCN

73.95

76.18

75.00

CAT-MNER

78.75

78.69

78.72

Proposed

79.21

79.45

79.33

2. Twitter-2017:

Model

Pre

Rec

F1

UMT

85.28

85.34

85.31

UMGF

86.54

84.50

85.51

MNER-QG

88.57

85.96

87.25

R-GCN

86.72

87.53

87.11

CAT-MNER

90.27

90.67

90.47

Proposed

90.86

92.01

91.43

六、实现过程

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

代码语言:javascript
代码运行次数:0
复制
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. 下载

代码语言:javascript
代码运行次数:0
复制
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/

代码语言:javascript
代码运行次数:0
复制
-adaseq
---|examples
-----|ER
-------|twitter-15-txt.yaml
-------|twitter-17-txt.yaml

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

代码语言:javascript
代码运行次数:0
复制
-adaseq
---|.git
---|.github
---|adaseq   <-- (Use our adaseq replace it)  
---|docs
---|examples
---|scripts
---|tests
---|tools

6. 训练模型

代码语言:javascript
代码运行次数:0
复制
	python -m scripts.train -c examples/ER/twitter-15.yaml
	python -m scripts.train -c examples/ER/twitter-17.yaml

七、运行过程

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ChatGPT辅助细化知识增强!
  • 一、研究背景
  • 二、模型结构和代码
    • 任务流程
    • 第一阶段:辅助精炼知识启发式生成
    • 第二阶段:基于辅助精炼知识的实体预测
  • 三、数据集介绍
  • 三、性能展示
  • 六、实现过程
  • 七、运行过程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档