1. 为什么传统方法在“听”和“看”上总差点意思?
想象一下,你正在看一场电影。主角强颜欢笑地说“我很好”,但他的声音却在微微颤抖,眼神也躲躲闪闪。你几乎立刻就能判断出,他其实很悲伤。这个过程,就是人类大脑在做“多模态情感计算”——我们自然而然地融合了视觉(表情、肢体)和听觉(语调、语速)的信息,做出了一个综合的情感判断。
然而,当计算机试图模仿这个过程时,却常常表现得像个“偏科生”。在很长一段时间里,AI处理音视频情感分析的主流思路,可以概括为两种“偷懒”的办法。
第一种是“各管各的,最后投票”。也就是先分别用视觉模型(比如3D CNN)分析视频画面中的表情,用音频模型(比如处理频谱图的2D CNN)分析声音里的情绪,得到两个独立的预测结果(比如效价和唤醒度的分数),最后再简单地把这两个分数平均一下或者拼接起来。这就像两个专家,一个只看画面,一个只听声音,然后各自打分,最后取个平均分。问题显而易见:当画面里的人在假笑,而声音里带着哭腔时,平均分可能给出一个“中性”的错误判断,完全丢失了那种内外不一的复杂情感。
第二种稍微高级一点,叫“早融合”或“特征拼接”。也就是在模型的中期,把从视频里提取的特征向量和从音频里提取的特征向量,像串糖葫芦一样直接拼接到一起,然后扔给后续的神经网络(比如LSTM)去处理。这种方法比第一种好,因为它给了模型自己去学习如何关联音视频信息的机会。但它的瓶颈在于,这种简单的拼接是“静态”和“粗暴”的。它假设在每一时刻,视觉和听觉信息的重要性是固定的,或者模型能自己完全学会动态调整。但实际上,情感的表达是高度动态和上下文相关的。比如,在一句话的停顿处,面部表情的细微变化可能承载了关键信息;而在一个人大喊时,声音的强度(唤醒度)可能压倒一切视觉线索。简单的拼接很难捕捉这种动态的、此消彼长的互补关系。
更本质的问题是,音视频数据来自完全不同的“域”。视频特征是空间和时间的组合,高度结构化;音频特征(如频谱图)是时频表示,模式迥异。这种“异质性”就像让一个习惯看图纸的建筑师和一个习惯听旋律的音乐家直接合作,如果没有一个有效的“翻译”和“协调”机制,他们的沟通效率会很低,甚至互相干扰。传统方法缺乏这种深度、动态的跨模态协调能力,导致融合效果不佳,尤其是在AffWild2这种充满遮挡、模糊、嘈杂背景的真实场景数据上,性能提升非常有限。
所以,核心挑战浮出水面:我们能否设计一种机制,让AI模型也能像人脑一样,动态地、有重点地“凝视”声音和画面,根据当前情境,智能地决定“这一刻,我更应该听他的语气,还是看他的眼神”?这就是“注意力”机制,特别是“交叉注意力”要解决的问题。而今天我们要深入探讨的“联合交叉注意力”,正是在这个方向上的一次关键进化。
2. 联合交叉注意力:让AI学会“察言观色”的核心机制
那么,什么是联合交叉注意力?我们可以把它理解为一个更加聪明的“多模态会议主持人”。在传统的交叉注意力会议上,只有两位专家:视觉专家和听觉专家。他们轮流发言,并根据对方的发言(Query和Key)来调整自己报告的重点(Value)。这比各自为政好,但互动仍然是两两之间的。
联合交叉注意力则引入了一位“联合协调员”。这位协调员手里有一份融合了视觉和听觉信息的“联合简报”。会议流程变成了这样:
- 建立联合认知:首先,视觉专家和听觉专家分别提交自己的报告(视觉特征V和音频特征A)。协调员将这两份报告的核心内容合并,生成一份“联合简报”(联合特征J)。这份简报不再是简单的拼接,而是包含了两种模态信息的初步关联。
- 交叉质询与聚焦:然后,有趣的部分来了。视觉专家会拿着这份“联合简报”(作为Query),去审视自己和听觉专家的原始报告(Key),问自己:“基于我们整体的情境(联合简报),我的报告(视觉特征)中哪些部分是最相关的?听觉专家的报告中,又有哪些信息能佐证或补充我的观点?” 这个过程通过计算联合特征J与视觉特征V、音频特征A的相关性矩阵来实现,从而生成一组“注意力权重”。
- 加权整合与决策:最后,这组权重会分别作用回原始的视觉和听觉报告上,产生“加权后的视觉报告”和“加权后的听觉报告”。这意味着,模型不是平等地看待所有视觉或听觉信息,而是根据当前联合上下文,放大了那些重要的、互补的部分,弱化了可能冗余或干扰的部分。最终,这两份加权后的报告再被融合,送入最终的预测层。
用技术术语来拆解这个流程:
- 输入:视觉特征序列 V 和音频特征序列 A。
- 生成联合表示:
J = [V; A],这里的[;]表示拼接操作,J 承载了初步的跨模态信息。 - 计算联合相关性:这不是简单的V和A直接相关,而是分别计算联合表示J与V、J与A的相关性。例如,
C_v = softmax((W_q * J) * (W_k * V)^T),这里计算的是“整体情境J”与“视觉细节V”在每个维度上的关联强度。同理计算C_a。 - 产生注意力权重:相关性矩阵
C_v和C_a经过进一步变换,生成用于重新校准原始特征的注意力映射。 - 输出加权特征:
V' = Attention_weights_v * V,A' = Attention_weights_a * A。V'和A'就是被联合上下文调制过后的、更具任务针对性的特征。 - 最终预测:将
V'和A'拼接,通过全连接网络预测效价和唤醒度。
为什么“联合”二字如此重要? 传统的交叉注意力是 V -> A 和 A -> V 的双向关注。而联合交叉注意力是 J -> V 和 J -> A。这个微妙的转变带来了巨大优势:
- 全局上下文感知:J 作为一个融合载体,提供了一个全局


274

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



