GPT-4的发布给ChatGPT带来了又一次飞跃,ChatGPT不仅支持文字输入,还能看得懂图片、甚至是漫画、梗图,以GPT-4为代表的多模态大模型非常强大。多模态大模型就是指模型可以处理多种结构/类型的数据,例如GPT-4,它既可以处理你输入的文本,也可以处理你上传的图片。
那么,多模态到底意味着什么呢?
1. 什么是多模态?
人类有五种基本感官:触觉、视觉、听觉、嗅觉和味觉。与每一种感觉相关的感觉器官向大脑发送信息,帮助我们理解和感知我们周围的世界。然而,事实上,除了这五种基本的感官之外,还有其他的人类感官是你生活中必不可少的。这些鲜为人知的感觉包括空间意识和平衡等。通过这些感官的交互,也就是多模态,以下是最常见的几种模态:
GPT-4专注于语言和视觉作为一些基本的模态。所谓融合,是指将来自两个或多个模态的信息合并以执行预测任务。有两种类型的融合:- 早期融合:模态将在训练早期就连接起来。- 晚期融合:我需要在每个模态早期进行一些处理,然后再将它们组合起来。
看一些现实世界的例子,了解什么是MMML应用:
2. 单模态分类模型及一些基本概念
从单模态的分类模型开始,分析视觉、文本和声音模态的基本处理方法,还试图澄清了数据集、最近邻居、神经网络基础、推理和模型参数等相关术语和概念。
2.1 单模态的分类模型
从一种模态的分类模型开始,例如视觉分类,给定一张图片,它是不是一只狗呢?
这是三个二维矩阵叠加在一起形成的彩色图像,如何解决这个图像分类问题呢?因为大多数神经网络或分类器只接受二维矩阵,为了制作这个输入向量,需要将这个三维向量分解并将它们叠加在一起,就像下面的图像所示的那样。然后,才能能够通过多分类输出来获取目标的对象分类。
对于单模态模型,首先有一个输入,可以是如上所述的3D矩阵,然后将其传递到已经训练好的模型中,得到一个分类(单类或多类)或回归输出。
对于单词、句子或段落这样的模态而言,有两种类型:书面(文本)和声音(转录)。举个例子,假设从一段文本中提取了一个单词,想要了解这是正面还是负面的情绪。该怎么做呢?
为了简单起见,可以使用one-hot向量,这是一个非常长的向量,其长度是字典的长度。这个字典是我们的模型从训练集中创建的,计算出它所发现的所有去重后的单词。对于每一个单词,在向量中有一个索引条目。需要注意的是,某些非常低频的词语,可能不在字典中。
用这个one-hot向量将作为最大熵模型的输入向量,进而进行情绪分类,命名实体分类(名字 vs 地方 vs 实体),或者词性标注(动词,名词,形容词)等。如果想要更细粒度地按单词运行模型,就可以这样做。
但是,如果想要处理更大量的文本,比如一句话或一段话,该怎么办呢?
可以将输入向量变成一个词袋向量,但它仍然是一种one-shot编码,现在对目标文档中的每个单词进行编码,如果一个维度上有这个单词就是1,否则就是0。然后可以运行同样的任务,就像上面做的情绪分类一样。
最后,在看看声音模态。假设正在聆听一个音频,基本上,音频是一个非常长的一维向量,可以使用此向量并运行分类问题以转录语音。在实践中,人们用时间窗口在音频信号中切片,并开始处理该数据集以创建Spectogram。在这个音频中,检查获取了多少低频与高频成分,以千赫为记录在Spectogram中。然后,我们将这个Spectogram转换为模型的输入向量。
除了仅仅进行转录外,还可以使用这些模型来获取情感分类或语音质量。
2.2 相关术语
数据集是带有标签的样本集合,包括:
- 训练集:在这个训练集上学习分类器
- 验证集:通过查看L1或L2函数在此处选择最佳的超参数,基本上希望看到哪些超参数会带来最佳的结果。
- 测试集:在这个保留的测试集上评估分类器。
最近邻居:最简单但仍然是最有效的分类器之一。 - 在训练时间,时间复杂度为O(1),测试时间为O(N) - 它使用距离度量来找到最近的邻居。 - 它将使用L1(曼哈顿)或L2(欧几里得)距离。
2.3 神经网络基础
根据激活函数的不同,一个神经元可以被称为一个线性分类器。神经网络中每个部分的组成和功能如下:
1)定义一个神经元的得分函数,目标是预测该类别标签的得分。例如,对于图像分类问题“这是一只狗、猫、鸟还是猪?”,可以将为鸭子、猫、鸟和猪各设置一个神经元。具有线性激活函数的神经元如下图所示:
接下来,在这里学习权重和偏置值。
- 定义损失函数(可能是非线性的)
- 优化参数的权重(考虑梯度下降)
然后,考虑多层前馈神经网络。
这个多层网络由一个输入层,几个隐藏层,以及一个可能包含激活函数的输出层组成。每个前面的隐藏层的输出作为后面层的输入。
最后,我还有两个概念需要澄清:
- 推理:用于测试。推理可以被看作是通过输入获得评分/输出的过程。它既是获得这个分数的行为,也涉及到它的使用。
- 模型参数:在训练时使用,将使用基于梯度的方法进行优化。基本上,需要有固定训练的数据,通过学习得到最小损失的权重和偏差。
3. 多模态机器学习的核心问题
多模态是一种新的人工智能范式,其中各种模态(文本、语音、视频、图像)与多种智能处理算法结合,以实现更高的性能。
业界有多种实现多模态的方式,通过多模态机器学习,希望确保该空间中的相似性对应着相应概念的相似性,通过存在的其他模态, 给出缺失的模态内容。多模态应用目前包括各种任务,如信息检索、映射和融合。
在多模态机器学习中,大约有五个核心问题——表示、翻译、对齐、融合和协同学习。
3.1 多模态的数据表达
多模态数据的最大挑战是以一种方式总结来自多个模态(或视图)的信息,以便综合使用互补信息,同时过滤掉冗余的模态部分。由于数据的异质性,一些挑战自然而然地出现,包括不同类型的噪声、模态(或视图)的对齐以及处理缺失数据的技术。目前,主要有两种的方法来完成多模态表达:联合表达和协调表达。
协调表达
多模态数据必须在非常弱的(它们的空间不重叠)或非常强的(最终成为联合表示)之间协调,通过结构化的协调来完成嵌入。
协调表达涉及将所有形式投射到它们的空间中,但这些空间使用约束进行协调。这种方法对根本上非常不同并且可能不适用于联合空间的形式更有用。由于自然界中形式的多样性,协调表达在多模态表示领域中比联合表达具有巨大优势,使用约束进行协调是一种强大的方法。
联合表达
联合表达涉及将所有模态投影到一个共同的空间,同时保留来自给定模态的信息。训练和推理时需要所有模态的数据,这可能会使处理缺失数据变得困难。另外,通过递归模型,可以在每个时间步融合模态的不同视图,最终使用联合表示完成手头的任务(如分类,回归等)。
对于所有模态在推断时都存在的任务,联合表达更适合。另一方面,如果缺少其中一种模态,则协调表达更适合。
3.2 多模态机器翻译
多模态机器翻译涉及从多个模态中提取信息,基于这样的假设,附加的模态将包含有用的输入数据的替代视图。在这个领域中最重要的任务是口语翻译、图像引导翻译和视频引导翻译,它们分别利用音频和视觉模态。这些任务与它们的单语对应任务——语音识别、图像字幕和视频字幕——不同之处在于需要模型生成不同语言的输出。(来源) 下面我们可以看到一个图像字幕的例子出了大错:
上述模型无法将视觉场景与语法句子进行同步理解,这对于强大的多模态模型至关重要。多模态翻译模型有两种类型:基于示例的和生成式的。
基于示例的模型将存储一个翻译词典,如上所示,然后将其从一种语言模态映射到另一种。在推理过程中,模型将从字典中提取最接近的匹配项,或通过推断字典提供的信息创建翻译。这些模型需要存储更多的信息,运行速度非常缓慢。
生成模型在推理时不需要参考训练数据即可产生翻译。生成模型有3个类别,分别是基于语法的、变压器模型和连续生成模型。
3.3 多模态的对齐
多模态对齐是找到两种或更多模态之间的关系和对应。
为了对齐不同的模态,模型必须测量它们之间的相似度并处理长距离依赖关系。多模态对齐涉及的其他困难包括缺乏注释数据集、设计好的模态相似性度量以及存在多个正确的对齐方式。主要有两种类型的多模态对齐:- 显式对齐 :其目标是找到模态之间的对应关系,并对同一事件的不同模态数据进行对齐。例如:将语音信号与转录对齐。- 隐式对齐 :对齐有助于解决不同任务时的模型(例如“注意力”模型)。它是多个下游任务(如分类)的先驱。例如:机器翻译
3.4 多模态的融合
多模态融合可能是更重要的问题和挑战之一。融合是将来自两个或两个以上模态的信息结合起来解决分类或回归问题的实践。使用多个模态提供更强大的预测能力,使我们能够捕获互补信息。即使其中一个模态缺失,多模态融合模型仍可使用。
3.5 协同学习
协同学习是将学习或知识从一种模态转移到另一种模态的挑战。对于在资源有限的模态下建立模型——如缺乏注释数据、嘈杂的输入和不可靠的标签,从资源丰富的模态中转移知识是相当有用的。
小结
多模态机器学习是一种新的人工智能范式,结合各种模态和智能处理算法以实现更高的性能。多模态机器学习中的核心问题包括表示、翻译、对齐、融合和协同学习。其中,多模态数据的表达是最大的挑战之一,需要使用联合表达和协调表达等方法。多模态机器翻译涉及从多个模态中提取信息,基于这样的假设,附加的模态将包含有用的输入数据的替代视图。多模态对齐是找到两种或更多模态之间的关系和对应,多模态融合可能是更重要的问题和挑战之一,协同学习是将学习或知识从一种模态转移到另一种模态的挑战。
【参考资料】