✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。
我是Srlua小谢,在这里我会分享我的知识和经验。🎥
希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮
记得先点赞👍后阅读哦~ 👏👏
📘📚 所属专栏:传知代码论文复现
欢迎访问我的主页:Srlua小谢 获取更多信息和资源。✨✨🌙🌙
目录
本文所有资源均可在该地址处获取。
ChatGPT辅助细化知识增强!
多模态命名实体识别(MNER)最近引起了广泛关注。 用户在社交媒体上生成大量非结构化内容,主要由图像和文本组成。这些帖子具有与社交媒体相关的固有特征,包括简洁和非正式的写作风格。 这些独特的特征对传统的命名实体识别(NER)方法提出了挑战。
在本文中,我提出了一个两阶段框架,旨在利用 ChatGPT 作为隐式知识库,并使其能够启发式生成辅助知识,以实现更有效的实体预测。 具体来说,其中包含一个多模态相似示例感知模块,该模块从少量预定义的人工样本中选择合适的示例。 然后将这些示例集成到适合 MNER 的格式化提示模板中,并指导 ChatGPT 生成辅助细化知识。 最后,将获得的知识与原始文本集成并输入下游模型以进行进一步处理。
【注】 文章中所用到的数据集,都经过预处理的数据集文件(.txt),代码和数据集都放在了附件中,感兴趣的小伙伴可以进行下载,谢谢支持!
一、研究背景
社交媒体上的多模态命名实体识别(MNER)旨在通过结合基于图像的线索来增强文本实体预测。 现有的研究主要集中在最大限度地利用相关图像信息或结合显式知识库中的外部知识。 然而,这些方法要么忽视了为模型提供外部知识的必要性,要么遇到检索知识冗余度高的问题。
二、模型结构和代码
我的模型主要分为两个阶段。在生成辅助细化知识的阶段,我利用一组有限的预定义人工样本,并采用多模态相似示例感知模块来仔细选择相关实例。然后,将这些选定的示例合并到格式正确的提示中,从而增强为 ChatGPT 提供的启发式指导,以获取精炼的知识。 在基于辅助知识的实体预测阶段,将原始文本与ChatGPT生成的知识信息相结合。然后,将此级联输入输入基于转换器的编码器以生成token表示。最后,将表示输入线性链条件随机场层,以预测原始文本序列的概率分布。
任务流程
-
任务公式化

-
上下文学习
虽然GPT-4可以接受多模态信息输入,但这一功能仅处于内部测试阶段,尚未公开使用。此外,与ChatGPT相比,GPT-4的成本更高,API请求速度较慢。为了提高可复现性,我们仍然选择ChatGPT作为主要的研究对象,并且提供的这一范式也可以用于GPT-4。
为了使ChatGPT能够完成图文多模态任务,使用了先进的多模态预训练模型将图像转换为图像说明。最后将测试输入x设计为以下模板: 
第一阶段:辅助精炼知识启发式生成
-
预定义的人工样本 使ChatGPT在MNER任务中表现更好的关键在于选择合适的上下文示例。获取准确标注的上下文示例,这些示例能够精确反映数据集的标注风格并提供扩展辅助知识的途径,是一个显著的挑战。直接从原始数据集中获取这些示例并不可行。为了解决这个问题,我采用了随机抽样的方法,从训练集中选择一小部分样本进行人工标注。具体来说,对于Twitter-2017数据集,从训练集中随机抽取200个样本进行人工标注,而对于Twitter-2015数据集,数量为120。标注过程包括两个主要部分。第一部分是识别句子中的命名实体,第二部分是综合考虑图像和文本内容以及相关知识,提供全面的理由说明。在标注过程中遇到的多种情况中,标注者需要从人类的角度正确判断并解释样本。对于图像和文本相关的样本,我们直接说明图像中强调了文本中的哪些实体。对于图像和文本无关的样本,我们直接声明图像描述与文本无关。通过人工标注过程,强调了句子中的实体及其对应的类别。此外,引入了相关的辅助知识来支持这些判断。这个细致的标注过程为ChatGPT提供了指导,使其能够生成高度相关且有价值的回答。
-
多模态相似示例感知模块 由于GPT的少样本学习能力在很大程度上取决于上下文示例的选择,我设计了多模态相似示例感知(MSEA)模块来选择合适的上下文示例。作为一个经典的多模态任务,MNER的预测依赖于文本和视觉信息的整合。因此,我们将文本和图像的融合特征作为评估相似示例的基本标准。而这种多模态融合特征可以从之前的多模态命名实体识别(MNER)模型中获得。将MNER数据集D和预定义的人工样本 G
在以往的研究中,经过交叉注意力投射到高维潜在空间的融合特征H会直接输入到解码层,以进行结果预测。我们的模型选择HH作为相似示例的判断依据,因为在高维潜在空间中相近的示例更有可能具有相同的映射方式和实体类型。计算测试输入与每个预定义人工样本的融合特征H的余弦相似度。然后,选择前N个相似的预定义人工样本作为上下文示例,以启发ChatGPT生成辅助的精炼知识:
为了高效实现相似示例的感知,所有的多模态融合特征可以提前计算并存储。 -
启发式增强提示生成
在获得上下文示例C之后,构建了一个完整的启发式增强提示,以利用ChatGPT在MNER任务中的少样本学习能力。提示头、一组上下文示例和测试输入共同构成了一个完整的提示。提示头根据任务需求以自然语言描述MNER任务。鉴于输入的图像和文本不一定总是直接相关,鼓励ChatGPT发挥其自主判断力。上下文示例由MSEA模块的结果对于测试输入,答案部分留空,由ChatGPT生成。
第二阶段:基于辅助精炼知识的实体预测

三、数据集介绍
我们在两个公共 MNER 数据集上进行了实验:Twitter-2015和 Twitter-2017。这两个数据集都是从Twitter平台上收集的,包含了文本和图像的配对信息,主要用于研究在社交媒体短文本场景下的多模态命名实体识别和情感分析等任务。
-
Twitter-2015: 推文中的文本部分被手动标注了命名实体,并使用BIO2(Beginning- Inside-Outside)标注方案对命名实体进行分类。实体类别包括人物(Person)、组织(Organization)、地点(Location)等。3373/723/723(train/development/test)
-
Twitter-2017: 相比于Twitter-2015,Twitter-2017数据集的规模更大,包含了更多的推文样本。Twitter-2017不仅扩大了数据规模,还提高了标注的多样性和复杂性,推文中的命名实体更加丰富。此外,推文配对的图像信息在识别命名实体方面也具有重要作用,尤其是那些无法通过文本直接判断的实体。4000/1000/3257(train/development/test)
三、性能展示

实现过程
在下载附件并准备好数据集并调试代码后,进行下面的步骤,附件已经调通并修改,可直接正常运行; 环境要求
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">python</span> <span style="color:#981a1a">==</span> <span style="color:#116644">3.7</span>
<span style="color:#000000">torch</span> <span style="color:#981a1a">==</span> <span style="color:#116644">1.13.1</span>
<span style="color:#000000">transformers</span> <span style="color:#981a1a">==</span> <span style="color:#116644">4.30.2</span>
<span style="color:#000000">modelscope</span> <span style="color:#981a1a">==</span> <span style="color:#116644">1.7.1</span></span></span>
-
我们的项目基于AdaSeq, AdaSeq项目基于Python版本>= 3.7和PyTorch版本>= 1.8。
-
下载
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">git</span> <span style="color:#000000">clone</span> <span style="color:#000000">https</span>:<span style="color:#981a1a">//</span><span style="color:#000000">github</span>.<span style="color:#000000">com</span><span style="color:#981a1a">/</span><span style="color:#000000">modelscope</span><span style="color:#981a1a">/</span><span style="color:#000000">adaseq</span>.<span style="color:#000000">git</span>
<span style="color:#000000">cd</span> <span style="color:#000000">adaseq</span>
<span style="color:#000000">pip</span> <span style="color:#000000">install</span> <span style="color:#981a1a">-</span><span style="color:#000000">r</span> <span style="color:#000000">requirements</span>.<span style="color:#000000">txt</span> <span style="color:#981a1a">-</span><span style="color:#000000">f</span> <span style="color:#000000">https</span>:<span style="color:#981a1a">//</span><span style="color:#000000">modelscope</span>.<span style="color:#000000">oss</span><span style="color:#981a1a">-</span><span style="color:#000000">cn</span><span style="color:#981a1a">-</span><span style="color:#000000">beijing</span>.<span style="color:#000000">aliyuncs</span>.<span style="color:#000000">com</span><span style="color:#981a1a">/</span><span style="color:#000000">releases</span><span style="color:#981a1a">/</span><span style="color:#000000">repo</span>.<span style="color:#000000">html</span></span></span>
-
将我们的附件文件夹复制到/adaseq/examples/
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#981a1a">-</span><span style="color:#000000">adaseq</span>
<span style="color:#981a1a">---|</span><span style="color:#000000">examples</span>
<span style="color:#981a1a">-----|</span><span style="color:#000000">ER</span>
<span style="color:#981a1a">-------|</span><span style="color:#000000">twitter</span><span style="color:#981a1a">-</span><span style="color:#116644">15</span><span style="color:#981a1a">-</span><span style="color:#000000">txt</span>.<span style="color:#000000">yaml</span>
<span style="color:#981a1a">-------|</span><span style="color:#000000">twitter</span><span style="color:#981a1a">-</span><span style="color:#116644">17</span><span style="color:#981a1a">-</span><span style="color:#000000">txt</span>.<span style="color:#000000">yaml</span></span></span>
-
用我们的adaseq文件夹替换原来的adaseq文件夹
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#981a1a">-</span><span style="color:#000000">adaseq</span>
<span style="color:#981a1a">---|</span>.<span style="color:#000000">git</span>
<span style="color:#981a1a">---|</span>.<span style="color:#000000">github</span>
<span style="color:#981a1a">---|</span><span style="color:#000000">adaseq</span> <span style="color:#981a1a"><--</span> (<span style="color:#000000">Use</span> <span style="color:#000000">our</span> <span style="color:#000000">adaseq</span> <span style="color:#000000">replace</span> <span style="color:#000000">it</span>)
<span style="color:#981a1a">---|</span><span style="color:#000000">docs</span>
<span style="color:#981a1a">---|</span><span style="color:#000000">examples</span>
<span style="color:#981a1a">---|</span><span style="color:#000000">scripts</span>
<span style="color:#981a1a">---|</span><span style="color:#000000">tests</span>
<span style="color:#981a1a">---|</span><span style="color:#000000">tools</span></span></span>
-
训练模型
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">python</span> <span style="color:#981a1a">-</span><span style="color:#000000">m</span> <span style="color:#000000">scripts</span>.<span style="color:#000000">train</span> <span style="color:#981a1a">-</span><span style="color:#000000">c</span> <span style="color:#000000">examples</span><span style="color:#981a1a">/</span><span style="color:#000000">ER</span><span style="color:#981a1a">/</span><span style="color:#000000">twitter</span><span style="color:#981a1a">-</span><span style="color:#116644">15.</span><span style="color:#000000">yaml</span>
<span style="color:#000000">python</span> <span style="color:#981a1a">-</span><span style="color:#000000">m</span> <span style="color:#000000">scripts</span>.<span style="color:#000000">train</span> <span style="color:#981a1a">-</span><span style="color:#000000">c</span> <span style="color:#000000">examples</span><span style="color:#981a1a">/</span><span style="color:#000000">ER</span><span style="color:#981a1a">/</span><span style="color:#000000">twitter</span><span style="color:#981a1a">-</span><span style="color:#116644">17.</span><span style="color:#000000">yaml</span></span></span>
运行过程
训练过程

最终结果

-
本文所有资源均可在该地址处获取
希望对你有帮助!加油!
若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!


828

被折叠的 条评论
为什么被折叠?



