代码以及视频讲解
本文所涉及所有资源均在传知代码平台可获取
ChatGPT辅助细化知识增强!
多模态命名实体识别(MNER)最近引起了广泛关注。 用户在社交媒体上生成大量非结构化内容,主要由图像和文本组成。这些帖子具有与社交媒体相关的固有特征,包括简洁和非正式的写作风格。 这些独特的特征对传统的命名实体识别(NER)方法提出了挑战。
在本文中,我提出了一个两阶段框架,旨在利用 ChatGPT 作为隐式知识库,并使其能够启发式生成辅助知识,以实现更有效的实体预测。 具体来说,其中包含一个多模态相似示例感知模块,该模块从少量预定义的人工样本中选择合适的示例。 然后将这些示例集成到适合 MNER 的格式化提示模板中,并指导 ChatGPT 生成辅助细化知识。 最后,将获得的知识与原始文本集成并输入下游模型以进行进一步处理。
【注】 文章中所用到的数据集,都经过预处理的数据集文件(.txt),代码和数据集都放在了附件中,感兴趣的小伙伴可以进行下载,谢谢支持!
一、研究背景
社交媒体上的多模态命名实体识别(MNER)旨在通过结合基于图像的线索来增强文本实体预测。 现有的研究主要集中在最大限度地利用相关图像信息或结合显式知识库中的外部知识。 然而,这些方法要么忽视了为模型提供外部知识的必要性,要么遇到检索知识冗余度高的问题。
二、模型结构和代码
我的模型主要分为两个阶段。在生成辅助细化知识的阶段,我利用一组有限的预定义人工样本,并采用多模态相似示例感知模块来仔细选择相关实例。然后,将这些选定的示例合并到格式正确的提示中,从而增强为 ChatGPT 提供的启发式指导,以获取精炼的知识。 在基于辅助知识的实体预测阶段,将原始文本与ChatGPT生成的知识信息相结合。然后,将此级联输入输入基于转换器的编码器以生成token表示。最后,将表示输入线性链条件随机场层,以预测原始文本序列的概率分布。
任务流程
1. 任务公式化
将MNER任务视为一个序列标注任务。给定一个包含n个词元的句子
T
=
t
1
,
⋅
⋅
⋅
,
t
n
T = {t_1, ···, t_n}
T=t1,⋅⋅⋅,tn及其对应的图像
I
I
I,MNER的目标是定位并分类句中提到的命名实体,生成标签序列
y
=
y
1
,
⋅
⋅
⋅
,
y
n
y = {y_1, ···, y_n}
y=y1,⋅⋅⋅,yn,其中
y
i
∈
Y
y_i ∈ Y
yi∈Y 是使用BIO2标注体系的预定义语义类别。
2. 上下文学习
GPT-3及其后续模型ChatGPT(以下简称GPT)是基于大量数据集预训练的自回归语言模型。在推理过程中,上下文少样本学习通过在冻结的GPT模型上执行文本序列生成任务的方式来完成新的下游任务。具体来说,给定一个测试输入
x
x
x,其目标y基于格式化的提示
p
(
h
,
C
,
x
)
p(h, C, x)
p(h,C,x)作为条件进行预测,其中
h
h
h指的是描述任务的提示头,
C
=
c
1
,
⋅
⋅
⋅
,
c
n
C = {c_1, ···, c_n}
C=c1,⋅⋅⋅,cn 是
n
n
n个上下文示例构成的上下文。所有的
h
、
C
、
x
、
y
h、C、x、y
h、C、x、y均为文本序列,目标
y
=
y
1
,
⋅
⋅
⋅
,
y
L
y = {y_1, ···, y_L}
y=y1,⋅⋅⋅,yL是长度为L的文本序列。在每一步解码过程中,我们有:
y l = arg max y l p L L M ( y l ∣ p , y < l ) y_l = \argmax_{y_l} p_{LLM}(y_l | p, y_{<l}) yl=ylargmaxpLLM(yl∣p,y<l)
其中, L L M LLM LLM代表预训练的大型语言模型的权重,这些权重在新任务中是冻结的。每个上下文示例 c i = ( x i , y i ) c_i = (x_i, y_i) ci=(xi,yi)由任务的输入-目标对构成,这些示例可以手动构建或从训练集中采样。
虽然GPT-4可以接受多模态信息输入,但这一功能仅处于内部测试阶段,尚未公开使用。此外,与ChatGPT相比,GPT-4的成本更高,API请求速度较慢。为了提高可复现性,我们仍然选择ChatGPT作为主要的研究对象,并且提供的这一范式也可以用于GPT-4。
为了使ChatGPT能够完成图文多模态任务,使用了先进的多模态预训练模型将图像转换为图像说明。最后将测试输入x设计为以下模板:
其中,
t
t
t、
p
p
p 和
q
q
q 代表特定的测试输入。KaTeX parse error: Undefined control sequence: \n at position 2: `\̲n̲` 表示模板中的换行符。同样,每个上下文示例
c
i
c_i
ci的定义也遵循以下类似模板:
其中 t i t_i ti、 p i p_i pi、 q q q 和 a i a_i ai 指的是从预定义的人工样本中检索的文本-图像问题-答案四元组。 MNER 的完整提示模板由固定提示头、一些上下文示例和测试输入组成,被馈送到 ChatGPT 以进行辅助知识生成。
第一阶段:辅助精炼知识启发式生成
1. 预定义的人工样本
使ChatGPT在MNER任务中表现更好的关键在于选择合适的上下文示例。获取准确标注的上下文示例,这些示例能够精确反映数据集的标注风格并提供扩展辅助知识的途径,是一个显著的挑战。直接从原始数据集中获取这些示例并不可行。为了解决这个问题,我采用了随机抽样的方法,从训练集中选择一小部分样本进行人工标注。具体来说,对于Twitter-2017数据集,从训练集中随机抽取200个样本进行人工标注,而对于Twitter-2015数据集,数量为120。标注过程包括两个主要部分。第一部分是识别句子中的命名实体,第二部分是综合考虑图像和文本内容以及相关知识,提供全面的理由说明。在标注过程中遇到的多种情况中,标注者需要从人类的角度正确判断并解释样本。对于图像和文本相关的样本,我们直接说明图像中强调了文本中的哪些实体。对于图像和文本无关的样本,我们直接声明图像描述与文本无关。通过人工标注过程,强调了句子中的实体及其对应的类别。此外,引入了相关的辅助知识来支持这些判断。这个细致的标注过程为ChatGPT提供了指导,使其能够生成高度相关且有价值的回答。
2. 多模态相似示例感知模块
由于GPT的少样本学习能力在很大程度上取决于上下文示例的选择,我设计了多模态相似示例感知(MSEA)模块来选择合适的上下文示例。作为一个经典的多模态任务,MNER的预测依赖于文本和视觉信息的整合。因此,我们将文本和图像的融合特征作为评估相似示例的基本标准。而这种多模态融合特征可以从之前的多模态命名实体识别(MNER)模型中获得。将MNER数据集D和预定义的人工样本
G
G
G表示为:
D
=
(
t
i
,
p
i
,
y
i
)
M
i
=
1
D = {(t_i, p_i, y_i)}M i=1
D=(ti,pi,yi)Mi=1
G
=
(
t
j
,
p
j
,
y
j
)
N
j
=
1
G = {(t_j, p_j, y_j)}N j=1
G=(tj,pj,yj)Nj=1
其中,
t
i
t_i
ti,
p
i
p_i
pi,
y
i
y_i
yi分别指代文本、图像和真实标签。基于
D
D
D训练的基础MNER模型
M
M
M主要由骨干编码器
M
b
M_b
Mb和
C
R
F
CRF
CRF解码器
M
c
M_c
Mc组成。输入的多模态图像-文本对通过编码器
M
b
M_b
Mb编码,得到多模态融合特征
H
H
H:
H
=
M
b
(
t
,
p
)
H = M_b(t, p)
H=Mb(t,p)
在以往的研究中,经过交叉注意力投射到高维潜在空间的融合特征
H
H
H会直接输入到解码层,以进行结果预测。我们的模型选择
H
H
H作为相似示例的判断依据,因为在高维潜在空间中相近的示例更有可能具有相同的映射方式和实体类型。计算测试输入与每个预定义人工样本的融合特征
H
H
H的余弦相似度。然后,选择前N个相似的预定义人工样本作为上下文示例,以启发ChatGPT生成辅助的精炼知识:
I
=
a
r
g
T
o
p
N
j
∈
1
,
2
,
.
.
.
,
N
H
T
H
j
∥
H
∥
2
∥
H
j
∥
2
I = argTopN_{j∈{1,2,...,N}} \frac{H^TH_j}{ ∥H∥_2∥H_j∥_2}
I=argTopNj∈1,2,...,N∥H∥2∥Hj∥2HTHj
I
I
I 是
G
G
G中前
N
N
N个相似样本的索引集。上下文示例C定义如下:
C
=
(
t
j
,
p
j
,
y
j
)
∣
j
∈
I
C = {(t_j, p_j, y_j) | j ∈ I}
C=(tj