论文地址:
https://arxiv.org/pdf/2305.08698
代码地址:
https://github.com/zjunlp/ContinueMKGC
1. 简介
多模态知识图构建(MKGC)涉及使用多种模态(例如文本和图像)创建实体和关系的结构化表示。然而,现有的 MKGC 模型在处理动态现实场景中添加新实体和关系时面临挑战。当前知识图谱构建的连续设置主要集中于从文本数据中提取实体和关系,而忽略了其他多模态源。因此,需要探索连续MKGC的挑战,以解决灾难性遗忘现象,并确保保留从不同形式的数据中提取的过去知识。作者研究的重点是通过开发 MKGC 基准数据集来研究这个复杂的主题。基于经验发现,与在连续环境中仅利用文本资源的模型相比,几种典型的 MKGC 模型在多媒体数据上训练时可能会意外地表现不佳,作者提出一种用于连续 MKGC 的终身多模态一致性Transformer框架(Lifelong MultiModal Consistent Transformer Framework,LMC),该框架在持续学习中发挥了一致的多模态优化的优势,并导致在稳定性和可塑性之间保持了更好的权衡。实验证明了所提出方法在动态场景中比流行的持续学习技术或多模式方法具有优越的性能。
2. 研究动机及贡献
持续的MKGC任务面临以下几个新的挑战:
(1)多种模式的学习速度不平衡。 之前具有重播策略的MKGC模型失去可塑性的现象表明,模态的不同收敛速度也可能会加剧多种模态的学习节奏不平衡,导致在不断学习新出现的实体类型和关系时,两种模态的表示都不够优化。
(2)多模态交互中的不一致遗忘。 不同模态的遗忘率不同,使得次要模态在持续学习场景中更容易被遗忘,导致模式融合后整个模型出现偏差,甚至比单模态情况下的性能更差。因此,应该派生出一个连续的 MKGC 模型来保持一致的多模态遗忘,同时保持强大的模态融合。
为了克服上述挑战,作者为 MKGC 提出了一种终身多模态一致transformer(LMC),它在持续学习中发挥一致多模态优化的优势,并带来更好的稳定性-可塑性权衡。 (1)为了解决多模态学习节奏不平衡的问题,同时又不失去持续学习的可塑性,文中设计了一种平衡多模态学习节奏的梯度调制策略,该策略根据测量每种模态对优化的贡献来自适应调整每种模态的梯度目标,从而赋予 MKGC 模型对于新任务具有卓越的稳定性。 (2)为了减轻多模态交互中的不一致遗忘,引入了带有注意力蒸馏的hand-in-hand多模态交互。具体来说,通过计算两种模态的自我查询和可学习的外部密钥之间的亲和力来进行多模态交互。然后进一步利用注意力蒸馏来基于上述多模态交互模块来蒸馏注意力级别矩阵。论文贡献总结如下:
(1)该论文是第一篇探索在要求苛刻的持续学习环境中构建多模态知识图的论文。文中通过实验分析,发现以前的 MKGC 模型在处理具有新实体类别和关系的 KGC 任务流时无法匹配或优于单模态模型。
(2)该论文是第一个(很快)为MKGC 社区发布全面的连续MKGC 基准数据集和基线的团体,以鼓励对现实世界KG 增长的MKGC 任务进行更多研究。作者还设计了一个新颖的框架,即LMC,它考虑了多模态学习中的不一致和不平衡,并进一步利用记忆重放过程中随机采样的多模态实例来更有效地对抗遗忘。
(3)作者在现实世界的增量设置中对两个子任务MRE 和MNER 进行了广泛的实验和分析。大量实验表明,所提出的 LMC 框架在一系列类增量设置中超越了传统的 MKGC 模型和连续单模态 KGC 模型。
3. 方法
框架概述
如图 3 所示,作者提出的连续 KGC 框架采用具有任务特定范式的双流 Transformer 结构,包括:
(1) 结构。该方法利用 Visual Transformer (ViT) 模型进行视觉表示,使用 BERT 模型进行文本表示。由于之前的工作揭示了在较高层 LM 上的操作可以更好地激发来自 LM 的知识以更有效地完成下游任务,因此我们选择在最后三层 Transformer 上进行带有注意力蒸馏的手拉手多模态交互。
(2)特定任务范式。对于 MRE 任务,通过连接 ViT 和 BERT 模型中的 [CLS] 表示,采用特定于任务的范例。这种组合表示能够获得任务关系集 R 上的概率分布,如下所示:
其中 和 表示 BERT 和 ViT 的输出序列表示。对于 MNER 任务,为了确保与之前的多模态 NER 任务进行公平比较,使用类似于 LMC 过程中使用的 CRF 函数。对于标签序列 ,在 BERT 中添加 和位置嵌入 以获得视觉角度的表示。标签 的序列在预定义集合 上的概率是使用 BIO 标记模式计算的,如下所示:
(3) 训练过程。整体训练过程如算法1所示。算法框架在每个步骤中包括三个模块,用于学习新的实体类别和关系并复习旧的实体类别和关系,包括平衡的多模态学习节奏、带有注意力蒸馏的当前任务训练和多模态排练。
平衡多模态学习节奏调节梯度优化
正如前文中讨论,不同模态的参数通常具有不同的收敛率,导致持续学习场景中的多模态学习节奏不平衡,从而限制了模型性能。为此,作者希望通过梯度调制策略来关注视觉和文本编码器的优化过程,如图 3 的下半部分所示。在实践中,使用随机梯度下降算法的第 k 个任务为:
注意力蒸馏hand-in-hand多模态交互
直观地,假设视觉和文本编码器在中间(在继续学习期间)有一个共享的媒介来相互交互,正如俗话所说的“手拉手,没有人”被抛在后面”。在这种情况下,多模态学习可能具有相对一致的遗忘率和更稳健的交互。受这句谚语的启发,作者在双流 Transformer 结构之间设计了带有注意力蒸馏的手拉手多模态交互,以缓解不一致的遗忘问题,如图 3 的上半部分所示。
(1)手拉手多模态交互:自注意力机制(SAM)无疑是基于Transformer的模型的核心组成部分,它通过计算自键和自查询之间的相似度来获得注意力图。基于这个特点,作者提出了一种手拉手的多模态交互机制,通过计算可学习的共享密钥KW和自己的自查询之间的亲和力来获得注意力图,这可以隐式地将先前任务信息的知识注入注意力中机制。通过共享密钥,视觉和文本编码器可以加强联系并减少融合偏差和不一致遗忘。此外,可以通过在处理新任务时禁止修改来维持 KW 权重,从而防止丢失先前学习的任务信息。
(2)核心注意力蒸馏:作者提出的想法基于这样的假设:在学习新的 MKGC 任务时,新模型将保持与先前模型的注意力相似。为此,文中提取双流 Transformer 模型交互模块的注意力矩阵。具体来说,可学习参数共享密钥Ks,注意力图通过蒸馏函数与先前的任务交互,以减少遗忘并保持注意力图的稳定性。形式上,以第k步和第(k−1)步视觉侧的注意力图为例;将沿宽度尺寸 的蒸馏损失定义为:
其中 H 和 W 表示注意力图的高度和权重。注意力图 a 和 b 之间沿 h 或 w 维度的总距离由 表示。
训练目标
在训练过程中,模型由交叉熵损失项驱动,以有效地识别实体和关系。同时,采用注意力蒸馏损失项来减轻遗忘造成的不一致。为了共同优化共同目标,将总损失函数中的两个损失组合如下:
其中λ是使注意力蒸馏损失项参与计算的平衡系数。此外,算法1描述了整个训练过程。
4. 实验结果
如表 I 所示,终身 MNRE 的实验揭示了几个值得注意的观察结果。
(1)结果表明,简单地使用新示例对单模态 BERT 模型(称为 Vanilla 方法)进行微调,会因严重的过度拟合和灾难性遗忘而导致性能迅速下降。令人惊讶的是,所有测试的多模态模型本应增强单模态模型的性能,但结果却比 Vanilla 差。这进一步强调了进行持续多模式学习研究的重要性。
(2)提出的方法(称为LMC)与所有现有的多模态知识图谱完成(MKGC)模型相比,表现出显着的性能改进。虽然之前的持续学习方法,如 EMR、EMAR-BERT 和 RP-CRE,也采用了记忆模块来减轻遗忘,并采用了复杂的采样策略,但与本文在 10 个分割的 MNRE 实验上的 LMC 相比,它们的性能仍然存在不足。这一结果强调了本文方法的优越性,该方法充分利用多模式交互来实现更好的持续学习表现。
此外,作者考虑两种不同的任务顺序,对提出的方法LMC 和其他基线方法进行彻底的比较,如表二所示。通过分析结果,可以得出尽管存在各种在持续学习场景中性能存在差异的 MKGC 模型,但值得注意的是,在 MNER 任务持续学习的背景下,与单模态 BERT 模型相比,MKGC 模型仍然表现出较差的性能。这一观察结果表明,在多模式持续学习环境中实现令人满意的表现的挑战仍未解决。然而,本文提出的方法 LMC 在终身 Twitter-2017 基准测试中显着优于所有其他方法。性能的显着提高验证了提出方法的稳健性和多功能性,有效解决了先前方法在多模态数据持续学习中的局限性。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。