论文浅尝 | 基于生成模型的多模态实体链接

77fccaedbcb6dabe336ff552a51b2c77.png

笔记整理:郭凌冰,浙江大学博士,研究方向为知识图谱

链接:https://arxiv.org/abs/2306.12725

1. 动机

多模态实体链接(Multimodal Entity Linking,MEL)旨在将带有多模态上下文的提及映射到知识库(如维基百科)中的参考实体。现有的MEL方法主要侧重于设计复杂的多模态交互机制,并需要对所有模型参数进行微调,这在大型语言模型(LLM)时代可能成本过高且难以扩展。在本文中,作者提出了一种简单而有效的基于LLM的生成式多模态实体链接框架(Generative Multimodal

Entity Linking framework based on LLMs),称为GEMEL,该框架直接生成目标实体名称。GEMEL将视觉和语言模型固定,仅训练一个特征映射器以实现跨模态交互。该方法与任何现成的语言模型兼容,为在MEL任务中利用LLM的高效和通用解决方案铺平了道路。

2. 贡献

本文的主要贡献有:

(1)作者提出了GEMEL,一个简单而有效的多模态实体链接框架,其利用生成式LLM来解决MEL任务。这是首个在MEL任务中引入基于LLM的生成方法的工作。

(2)大量实验证明,仅微调约0.3%的模型参数,GEMEL在两个成熟的MEL数据集上取得了最先进的结果(在WikiDiverse上提高了7.7%的准确率,在WikiMEL上提高了8.8%的准确率),展现了高参数效率和强大的可扩展性。

(3)论文进一步的研究揭示了LLM预测中的流行度偏差,而GEMEL框架可以有效缓解这种偏差,从而提高MEL任务的整体性能。

3. 方法

总体框架如图1所示,给定多模态提及上下文,GEMEL可以利用LLM的能力直接生成目标实体名称(例如,“轮椅击剑”),并使用n个检索到的多模态实例作为上下文示例。图中的<image>表示视觉前缀,文本中的提及被下划线标记。GEMEL将LLM和视觉编码器的参数固定,只训练一个特征映射器将图像特征映射到文本空间中。

802760c23150cdd07aa2ef62e288eeab.png

图1 总体框架图

GEMEL由两个模块组成:即特征对齐和语言模型生成:

对于特征对齐,作者首先从冻结的视觉编码器中提取图像特征。然后,通过特征映射器将这些图像特征投影到文本嵌入空间中,并将其作为视觉前缀输入到LLM中。

其中视觉编码器是为了从与提及(Mention)对应的输入图像中提取视觉特征,GEMEL利用一个预训练的视觉骨干模型,该模型生成维度为  ,其权重被保持冻结状态。

特征映射器:为了促进跨模态对齐和融合,作者使用一个特征映射器将视觉特征投影到一个软提示中,即LLM的视觉前缀输入。具体来讲,通过训练一个特征映射器W对视觉嵌入投影,然后将结果重塑为一个视觉前缀,即一个包含k个嵌入向量  的序列,其中每个嵌入向量与LLM输入标记生成的文本嵌入具有相同的隐藏维度  。

对于语言模型生成,为了让LLM更好地理解MEL任务,作者利用其上下文学习(in-context learning,ICL)能力,并从训练集中构建一个提示模板,其中包含n个示例演示。以图1中的蓝色框为例,其包括提及m的图像、文本上下文、一个人工写的问题(如,“m指的是什么?”)、以及实体名称作为答案。对于演示示例的选择,作者考虑了多种稀疏和密集检索方法:

随机选择:在训练集中,对于每个提及,随机选择将从训练集中随机选择一个上下文示例。

BM25:BM25是最先进的稀疏检索方法之一。作者将训练集中的所有提及作为语料库,并基于提及来检索示例。

SimCSE3:SimCSE3是一种用于语义匹配的密集检索方法。对于一对提及,作者将提及嵌入的余弦相似度作为相关性分数。

对于n个示例和查询q,作者按顺序连接视觉前缀v和文本嵌入t,以获得LLM的输入x:

18281c0c6b2da75bfc9cf20a97ef9869.png

接着,作者使用自回归的 LLM,该语言模型最初是在仅使用文本数据的情况下通过最大似然目标进行训练,并且保持其参数 θ 不变。利用输入嵌入 x 和表示实体名称的 N 个标记作为目标输出  ,可以将教师强制训练目标(teacher forcing training objective)表示如下:

91d5003a96aa71247c0b26ec985abbef.png

在推理阶段,遵循 GENRE方法,作者采用约束束搜索(constrained beam search)来确保生成的实体名称在知识库中始终保持一致且有效。

4. 实验

作者首先说明了实验设置:在数据集的选择上,为了评估GEMEL在MEL任务上的能力,作者在两个标准MEL数据集上进行实验,分别是WikiDiverse和WikiMEL。WikiDiverse是一个人工标注的MEL数据集,包含来自Wikinews的多样化上下文主题和实体类型。WikiMEL是一个大型的经过人工验证的MEL数据集,从Wikidata和Wikipedia中提取而来。Wikidiverse和WikiMEL数据集都已经划分为训练集、验证集和测试集,比例分别为8:1:1和7:1:2,并且作者的实验设置遵循这个划分,其统计信息如表1所示:

e9f2aa17ae8f3e08e3c1efbfb34fc659.png

表1 数据集统计

在基线模型的选择上,作者将GEMEL与最近的最先进方法进行比较。这些方法可以分为以下两类:(1)仅使用文本特征的纯文本方法,和(2)利用文本和视觉特征的文本+视觉方法。其中包括:BERT、BLINK、GENRE、GPT-3.5-Turbo-0613等。

在评估指标上,作者遵循先前的研究采用Top-1准确率作为评估指标。

主实验结果如表2所示:

5293a61874b75243c74c750ef6bd4cb0.png

表2 主实验结果

从实验结果中可以看出:首先,GEMEL在两个MEL数据集上超过了所有其他方法,并取得了最先进的性能,WikiDiverse的改进为7.7%(从78.6%提高到86.3%),WikiMEL的改进为8.8%(从73.8%提高到82.6%),显示了其框架的有效性。这表明通过微调特征映射器(约占模型参数的0.3%),GEMEL能够使冻结的LLM有效而高效地理解视觉信息,并利用它来增强MEL性能。其次,基于LLM的方法(即GPT-3.5和GEMEL)在文本模态和多模态下表现出强大的性能。在文本模态中,GPT-3.5可以达到甚至超过先前多模态方法的性能。这主要有两个原因:1)文本模态在MEL任务中仍然起着主导作用,而视觉模态主要作为补充信息;2)在大规模预训练数据集上预训练的LLM可以捕捉广泛的语言模式、上下文和知识,从而在常见实体预测中表现出色。

fe34d0d6820963a362e422f6b84b06b9.png

表3 消融实验结果

表3展示了消融研究的结果。首先,移除视觉信息显著损害了GEMEL的性能,这表明当文本信息较短且不足时,视觉信息的重要性(详见第5.4节中的案例)。其次,消除提示中的示例导致WikiDiverse和WikiMEL的性能分别下降了6.1%和7.4%。这表明在上下文中提供一些示例有助于LLM识别和理解MEL任务。

5. 总结

作者提出了GEMEL,一种基于LLMs的简单而有效的生成式多模态实体链接框架,利用LLMs的能力直接生成目标实体名称。实验结果表明,GEMEL在两个MEL数据集上优于最先进的方法,并具有高参数效率和强大的可扩展性。进一步的研究揭示了LLMs对尾部实体预测存在偏见,而GEMEL能够有效地缓解这种偏见,从而提高MEL任务的整体性能。此外,GEMEL是模型无关的,可以将其应用于将来更大或更强大的LLMs。进一步的研究可以探索如何缓解LLMs对尾部实体预测的偏见,并将GEMEL扩展到更多的模态(如视频、语音等)。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

708e5c3782c72a4b938a9323667d97e4.png

点击阅读原文,进入 OpenKG 网站。

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

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

相关文章

[SAP ABAP] 运算符

1.算数运算符 算术运算符描述加法-减法*乘法/除法MOD取余 示例1 输出结果: 输出结果: 2.比较运算符 比较运算符描述示例 等于 A B A EQ B <> 不等于 A <> B A NE B >大于 A > B A GT B <小于 A < B A LT B >大于或等于 A > B A GE B <小…

keep-alive实现页面缓存

<!--router-view 实现页面缓存--> <router-view v-slot"{Component}"><keep-alive :max"8"><component :is"Component"></component></keep-alive> </router-view>

2024年6月23日 十二生肖 今日运势

小运播报&#xff1a;2024年6月23日&#xff0c;星期日&#xff0c;农历五月十八 &#xff08;甲辰年庚午月戊午日&#xff09;&#xff0c;法定节假日。今天国际奥林匹克日&#xff0c;坚不可摧的意志&#xff0c;披荆斩棘的豪情&#xff0c;永远值得拥有&#xff01; 红榜生…

算法金 | 统计学的回归和机器学习中的回归有什么差别?

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 统计学中的回归 目标&#xff1a; 主要用于解释和推断自变量&#xff08;independent variables&#xff09;和因变量&#xff08;de…

array_key_exists() expects parameter 2 to be array, null given

公众号获取微信服务器IP地址 错误代码如下 public function getwxIP(){//获取微信服务器IP地址$accessToken $this->getwxoaiAccessToken();$userToken new UserToken();$result $userToken->curl_get("https: //api.weixin.qq.com/cgi-bin/get_api_domain_ip…

Day58 代码随想录打卡|二叉树篇---将有序数组转换为二叉搜索树

题目&#xff08;leecode T108&#xff09;&#xff1a; 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 平衡 二叉搜索树。 方法&#xff1a;用有序数组构造平衡二叉搜索树&#xff0c;和我们之前有一题的思路差不多&#xff0c…

遗传算法求解时间窗车辆路径规划问题(附python代码)

摘要 本研究提出了一种基于遗传算法的车辆路径规划&#xff08;VRP&#xff09;问题求解框架&#xff0c;它能够有效地处理一系列复杂约束&#xff0c;包括软时间窗、硬时间窗、行驶距离限制、车辆最大载重量、多个配送中心的协调、特定的配送顺序&#xff0c;以及多种车型的选…

Python学习打卡:day13

day13 笔记来源于&#xff1a;黑马程序员python教程&#xff0c;8天python从入门到精通&#xff0c;学python看这套就够了 目录 day1397、初识对象98、类的成员方法类的定义和使用成员变量和成员方法成员方法的定义语法 99、类和对象在程序中通过类来描述基于类创建对象 100、…

Javaweb登录校验

登录校验 JWT令牌的相关操作需要添加相关依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version> </dependency>一、摘要 场景&#xff1a;当我们想要访问一个网站时&am…

cherry 笔记三(启动)

cherry启动很简单 app创建完 直接startup()就好了 func main() {app : cherry.Configure("./examples/config/profile-chat.json","chat-master",false,cherry.Cluster,)app.SetSerializer(cserializer.NewJSON())app.Startup() } Configure()--->N…

c++使用std::function/std::bind

1&#xff09;C入门级小知识&#xff0c;分享给将要学习或者正在学习C开发的同学。 2&#xff09;内容属于原创&#xff0c;若转载&#xff0c;请说明出处。 3&#xff09;提供相关问题有偿答疑和支持。 std::function对象是对C中现有的可调用实体的一种类型安全的包裹&…

多路h265监控录放开发-(9)通过拖拽到窗口完成渲染

xcamera_widget.h class XCameraWidget :public QWidget {Q_OBJECTpublic:XCameraWidget(QWidget* p nullptr);//渲染视频void Draw();//123//清理资源,再一个窗口被覆盖后 清理之前窗口生成的资源1~XCameraWidget();//123 private:XDecodeTask* decode_ nullptr;//123XDemu…

Linux平台I2C多字节数据、按页连续读写E2PROM Demo(AT24C16)

1&#xff09;Linux 平台I2C多字节数据按页连续读写E2PROM之AT24C16小知识&#xff0c;分享给将要学习或者正在学习Linux平台I2C多字节按页连续读写E2PROM开发的同学。 2&#xff09;内容属于原创&#xff0c;若转载&#xff0c;请说明出处。 3&#xff09;提供相关问题有偿答…

class中的溢出滑动效果

效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><style>*{margin: 0;padding: 0;}.frame-pages{width: 30%;height: 60px;display: flex;justify…

网络安全-如何设计一个安全的API(安全角度)

目录 API安全概述设计一个安全的API一个基本的API主要代码调用API的一些问题 BasicAuth认证流程主要代码问题 API Key流程主要代码问题 Bearer auth/Token auth流程 Digest Auth流程主要代码问题 JWT Token流程代码问题 Hmac流程主要代码问题 OAuth比较自定义请求签名身份认证&…

测试工程师常见的面试问题及回答建议

说起软件测试近几年的发展&#xff0c;其实已悄无声息地发生了巨大的变化。前几年随着互联网行业的迅猛发展&#xff0c;软件测试人才稀缺&#xff0c;低门槛高薪资促使大批毕业生和转行人员一窝蜂地涌入。而现在&#xff0c;软件测试发展太快&#xff0c;纵观各大招聘网站&…

本科生大厂算法岗实习经验复盘:从投递到面试的底层思维!

目录 投递渠道boss直聘官网邮箱内推 面试准备leetcode八股深挖项目自我介绍mock面试技巧答不出来怎么办coding反问 复盘技术交流群用通俗易懂方式讲解系列 节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面…

猫头虎分享已解决Bug || Null Pointer Exception: `java.lang.NullPointerException`

猫头虎分享已解决Bug || Null Pointer Exception: java.lang.NullPointerException &#x1f63a;&#x1f42f; 关于猫头虎 大家好&#xff0c;我是猫头虎&#xff0c;别名猫头虎博主&#xff0c;擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程…

嵌入式学习——数据结构(双向无头有环链表、内核链表、栈)——day48

1. 约瑟夫环问题——双向无头回环链表 1.1 问题描述 给定 ( n ) 个人&#xff08;编号为 ( 1, 2, \ldots, n )&#xff09;&#xff0c;他们围成一个圈。从第一个人开始报数&#xff0c;每报到第 ( k ) 个人时&#xff0c;杀掉这个人&#xff0c;然后从下一个人重新开始报数。…

【Git】 -- Part1 -- 基础操作

1. Git简介 Git 是一个开源的分布式版本控制系统&#xff0c;由 Linus Torvalds 于 2005 年开发&#xff0c;主要用于源代码管理。Git 允许多名开发者共同合作处理同一个项目&#xff0c;跟踪每个文件的修改&#xff0c;并且在必要时回滚到之前的版本。 Linus Torvalds是Linux…