共享表示旨在将不同类型的数据汇集到一种共同的“语言”中,而还有另一种有效处理多模态信息的方法:协调表示。这种方法并非强行将所有信息整合到一个统一空间,而是侧重于学习不同模态独立表示信息方式之间的关系。可以将其看作不是创建一本通用词典,而更像是培养一位能将思想在两种不同语言之间进行翻译的熟练译员,即使这两种语言仍保留其独特的语法和词汇。这里的“协调”是什么意思?协调表示通过学习如何对齐或映射一种模态的特定表示空间到另一种模态的表示空间来发挥作用。每种模态,如文本或图像,仍可以按其自身方式处理和理解,从而生成其自身独有的特征集或嵌入。“协调”部分来源于在这些可能不同的空间之间构建一座桥梁。设想一下:一个图像基于其视觉特征(例如,形状、颜色、纹理)进行表示的空间。一个文本基于词义和句子结构进行表示的空间。这两个空间本质上是不同的。协调方法不会尝试直接合并它们。相反,它会尝试学习,例如,图像空间中特定点(代表一只猫)应与文本空间中特定点或区域(代表“猫”这个词或与猫相关的短语)相对应或“协调”。协调表示的两种主要方式通常有两种主要策略来协调表示:学习直接映射(类似翻译的任务): 这就像学习将一种模态翻译成另一种模态。目标是建立一个模型,该模型可以从模态 A 获取表示,并在模态 B 中生成对应的表示(或实际数据)。例子:图像描述生成 一个典型例子是为图像生成文本描述(或称图说)。系统获取图像,对其进行处理以获得图像表示(我们称之为 $v_{\text{image}}$)。然后,模型的一部分根据 $v_{\text{image}}$ 学习生成一系列词语(一个文本图说,$T$)。 我们可以将此看作是学习一个函数 $M$,使得: $$ T = M(v_{\text{image}}) $$ 这里,模型 $M$ 作为映射机制,有效地将图像的“语言”翻译成文本的“语言”。它学习视觉模式如何与词语和短语对应。学习关联(用于比较或检索的对齐): 该策略侧重于学习如何比较来自不同模态的表示,以判断它们是否指向相同的潜在信息或事件。这更多是关于理解相似性或相关性,而非直接翻译。例子:跨模态检索(例如,用文本搜索图像) 假设您想找到与文本查询“一只狗在公园里玩接球”相匹配的图像。系统将文本查询处理为文本表示 $v_{\text{text}}$。它还可以获取许多图像,每张图像都有其图像表示 $v_{\text{image}}$。 目标是学习一种方式来比较 $v_{\text{text}}$ 与每个 $v_{\text{image}}$,以找到最佳匹配。这通常涉及学习转换函数,例如 $f_{\text{image}}$ 和 $f_{\text{text}}$,来处理初始表示。然后,一个评分函数 $S$ 可以评估相似性: $$ \text{得分}(\text{图像}, \text{文本}) = S(f_{\text{图像}}(v_{\text{图像}}), f_{\text{文本}}(v_{\text{文本}})) $$ 系统经过训练,使得匹配的图像-文本对得分高,不匹配的对得分低。即使 $f_{\text{image}}(v_{\text{image}})$ 和 $f_{\text{text}}(v_{\text{text}})$ 这些表示不处于完全相同的数学空间中,它们也会被“协调”以使这种评分有意义。它们只是为了比较而被设置为兼容。协调表示的可视化在协调表示中,模态 A 和模态 B 的表示经过处理(可能通过神经网络层)。系统随后学习一种关系,这可能是一个从一种模态到另一种模态的映射,或是一种将它们关联起来进行比较的方式。digraph G { rankdir=LR; graph [fontname="Helvetica", fontsize=10]; node [shape=box, style="filled", fillcolor="#e9ecef", fontname="Helvetica", margin=0.1]; edge [fontname="Helvetica", fontsize=9]; subgraph cluster_0 { label="模态 A 空间(例如,图像)"; style="filled"; color="#dee2e6"; bgcolor="#f8f9fa"; // Light background for subgraph node [fillcolor="#a5d8ff", color="#1c7ed6", fontcolor="#000000"]; A_rep [label="原始表示 A (v_A)"]; } subgraph cluster_1 { label="模态 B 空间(例如,文本)"; style="filled"; color="#dee2e6"; bgcolor="#f8f9fa"; // Light background for subgraph node [fillcolor="#b2f2bb", color="#37b24d", fontcolor="#000000"]; B_rep [label="原始表示 B (v_B)"]; } Processed_A_node [label="已处理 A\n(例如,f_A(v_A))", shape=ellipse, fillcolor="#74c0fc", color="#228be6", style="filled", fontcolor="#000000"]; Processed_B_node [label="已处理 B\n(例如,f_B(v_B))", shape=ellipse, fillcolor="#8ce99a", color="#40c057", style="filled", fontcolor="#000000"]; A_rep -> Processed_A_node [label="处理 A", color="#495057"]; B_rep -> Processed_B_node [label="处理 B", color="#495057"]; {rank=same; Processed_A_node; Processed_B_node;} // Align processed nodes Processed_A_node -> Processed_B_node [label=" 学习关系\n (关联或映射)", style=dashed, dir=both, constraint=false, color="#f06595", fontcolor="#c2255c", penwidth=1.5]; }此图展示了模态 A(如图像)和模态 B(如文本)的表示如何首先进行单独处理。随后,学习这些已处理表示之间的关系。这种关系可能是一个从 A 到 B(或 B 到 A)的直接映射,也可能是衡量其相似性或关联性的一种方式。重点在于,模态 A 和模态 B 的表示不一定合并成单一、相同的表示类型。为何使用协调表示?这种方法提供了一些优点,尤其是在处理非常不同类型的数据时:灵活性:模态可以保持其独特的结构属性。图像可以被视为像素网格或复杂特征图,而文本可以被视为词语序列,而无需强行将其转换成通用格式。信息保留:通过不立即投射到高度受限的共享空间,更多原始的模态特定信息可能在处理流程中得到更长时间的保留。任务适用性:对于本质上是翻译(如图像描述生成或文本到图像生成)或跨模态检索的任务,学习显式映射或强关联通常更直接有效。协调表示模型的训练AI 系统如何学习这些协调?这取决于具体的任务:对于映射任务(例如,图像描述生成):模型通常被训练以基于输入模态预测输出模态。例如,一个图像描述生成模型会看到许多图像-描述对。它尝试为图像生成一个描述,然后将其生成的描述与真实描述进行比较。差异(或“误差”)用于调整模型的内部参数,使其随着时间的推移在该映射任务上表现更好。如果其中一个模态(如文本)是序列化的,这通常涉及序列建模技术。对于关联任务(例如,跨模态检索):模型被训练以区分来自不同模态的相关和不相关数据对。例如,它可能会被给予一张图像和正确的文本描述(一个正对),以及一张图像和不正确的文本描述(一个负对)。模型学习为正对生成高相似度分数,为负对生成低分数。此处的“对比学习”等技术很常见,模型通过将正例与许多负例进行对比来学习。协调表示提供了一种通用且有效的方法来构建多模态 AI 系统。通过侧重于不同类型数据之间的关系和转换,它们使得 AI 能够执行需要以关联方式理解来自多个来源信息的复杂任务,而无需丢失每个来源的独有特性。这为许多复杂的应用打下了基础,在这些应用中,一种类型的数据需要为另一种提供信息或生成另一种数据。