← 阅读室全部精读正在排版公式与图表…
PAPER ANALYZER · P10 · 细粒度方向

EMER:让情绪预测有可检查的线索

从人工协作标注到集合指标,逐步读懂解释式情绪识别

Lian 等 · arXiv 2306.15401v6 · 2024 修订 · 学术型 · 核查于2026-10-23

一句话总结

EMER 建立解释性线索与评价流程;其人工审核输入、音频预标注版本和算术均值必须与后续 OV-MER 区分。

先明确研究对象:解释性标签,不是又一个融合网络

当视频中的人笑着说“你真厉害”,单一的“高兴”标签可能遗漏讽刺、不满或勉强附和。EMER 关注的不是把已有六分类模型加深,而是把任务从选择一个类别改成产生与情绪有关的可读线索,再从线索中识别情绪。初学者必须先把“模型输出什么”弄清楚,否则容易把这篇基准与 ALMT 的连续情感回归混为一谈。

本文对应 Explainable Multimodal Emotion Recognition 的 arXiv 2306.15401v6,即 2024 年修订版;首次预印本在 2023 年发布。它与后续 OV-MER 存在演进关系,但数据统计、音频预标注方法和指标定义有变化。这里使用该版本的 332 个样本、301 个候选情绪词和算术平均指标,不把后续论文的 236 类或 F1 结果搬过来。

所谓多模态,是同一段内容可同时提供画面、声音和字幕。画面能显示眼睛、嘴角、身体姿势;声音能显示停顿、音调和说话节奏;字幕提供语义。线索是从这些观察推向情绪的中间描述。例如“嘴角上扬”属于观察,“可能高兴”属于解释,两者应该分开保存,以免把猜测当作看见的事实。

原文 Figure 1 展示传统单标签不能完整表达复合情绪的情形,Figure 2 展示标注流程,Figure 4 比较不同模态线索。在阅读时先问三个问题:文字描述由谁写、哪些部分经人工检查、最后预测由谁产生。只有分别回答这三点,才能判断某个高分是否来自自动识别能力,还是来自人工修正后的优质输入。

本篇最值得学习的贡献是标注与评价设计。作者提供可以观察多种情绪的线索描述,检验大模型是否理解这些线索,并比较字幕如何加入分析。论文没有通过反向传播训练一个全新的 EMER 主干网络;把整个流程画成“编码器—融合层—分类头”会掩盖它实际使用语言模型和人工审核的事实。

标注链条:每一步的信息从哪里来

视觉预标注使用 GPT-4V,在视频中均匀选择三帧,让模型描述与情绪有关的面部、身体和场景信息。三帧是采样策略,不代表模型观看了全部动作。若眉毛短暂抬起只持续几帧,它可能完全没有进入输入。后续人工审核可以回看视频,因此经审核的描述与直接三帧推理不是相同的信息条件。

这里最容易误读的是音频环节。v6 讨论了把梅尔频谱提供给 GPT-4V 但效果不足,因此预标注借助字幕/文本提示形成初步线索,再由人工听音频、删除错误并补充信息。不能把后续 OV-MER 使用 SALMONN 提取音频线索的做法倒写成这一版本的方法,也不能说初始音频描述已经证明模型理解了声学信号。

人工审核不只是选择情绪词。审核者需要删去不符合视频的描述、合并重复内容并补上缺失线索;多轮检查用于提高完整性。此处的标注劳动是方法有效性的组成部分。在自己的小项目里,应记录原始自动描述、修改后描述和修改原因,而不是只保留最后的流畅段落,否则无法分析模型究竟错在观察还是推理。

经过审核的视觉、音频线索与字幕交给 GPT-3.5 整合,得到多模态描述 EMER(Multi)。整合模型需要在不同信息之间解释一致与冲突,例如文字积极但音色低沉。语言模型可能给出合理的故事,但合理不等于唯一真实原因;这也解释了为什么“提供解释”与“解释忠实于模型内部决策”是两个不同研究问题。

三个必要术语可以直接定位原文:“visual clues”“acoustic clues”“multimodal”。前两个对应可观察证据的来源,第三个要求考虑它们之间的关系。学习时不应把线索清单写成心理诊断,也不应把一个动作机械绑定为一种情绪;相同的笑容可以出现在高兴、礼貌、尴尬或掩饰不满的场景中。

flowchart TD
 V[视频三帧] --> PV[视觉预标注]
 T[字幕] --> PA[音频相关初步描述]
 PV --> H[人工回看与听音 多轮修正]
 PA --> H
 H --> M[结合字幕整合描述]
 M --> E[提取情绪词]
 E --> S[分组后计算准确程度与覆盖程度]

把评价公式算懂:为什么不是普通分类准确率

评价先从模型描述和参考描述中抽取情绪词,再对同义词进行语义分组。设参考集合为 Y,预测集合为 Ŷ。集合没有重复元素;反复写三次“高兴”不能当作三次正确。词义映射会影响交集大小,所以复现时必须保存原始词、映射后的词和分组规则,而不能只报告一个最终数字。

$$P_s=\frac{|Y_s\cap\widehat Y_s|}{|\widehat Y_s|}$$

原文 Eq.1 的精确程度项。分母是模型预测了多少种情绪,分子是其中多少种与参考一致。若参考为“紧张、不满”,预测为“紧张、高兴”,交集只有一个,精确程度是二分之一。它惩罚无根据地堆砌大量标签。

$$R_s=\frac{|Y_s\cap\widehat Y_s|}{|Y_s|}$$

原文 Eq.1 的覆盖项。分母换成参考标签个数,衡量参考情绪被找回多少。若只预测“紧张”,精确程度为一,覆盖程度仍为二分之一。此时预测并非完全错误,而是漏掉了另一种同时存在的情绪。

$$\mathrm{Avg}_s=(P_s+R_s)/2$$

原文 Eq.2。EMER 的这个均值是算术平均,不是 F1。上一例得到零点七五。它让高精确率在一定程度上补偿低召回;把这个分数与 OV-MER 的调和平均直接比较,会产生版本混淆。

$$J(A,B)=\frac{|A\cap B|}{|A\cup B|}$$

原文 Eq.3 的集合一致性。Jaccard 用于比较两组标签的相似性,分母是并集,交换 A 与 B 不改变结果。它适合比较两种语言抽取出的标签,不能替换具有预测与真值角色区分的精确率、召回率。

$$\widetilde Y=\{g(y):y\in Y\},\quad \widetilde{\widehat Y}=\{g(y):y\in\widehat Y\}$$

教学重写,不是新增原文公式。g 表示固定的同义词规范化过程,例如把同义变体映射到共同组。应先规范化再去重。空预测与空参考必须另设明确处理分支,不能依赖除零后自动产生的无穷值或缺失值。

集合指标有意忽略描述的许多语言表面差异。例如一句话说“他眉头紧锁,似乎很恼火”,另一句话说“这个人表现出愤怒”,两者措辞不同但标签可能相同。反过来,两段句型高度相似的描述也可能一个判断高兴、一个判断悲伤。因此词面重叠不是情绪正确性的充分替代。

不过,标签匹配也会丢掉证据质量。如果模型写错了眼睛或语气,却偶然猜中情绪,标签分数仍可能很好。对细粒度方向,最好把“观察是否正确”“情绪是否覆盖”“解释是否有证据”做成三列。本文主要量化第二项,不能由高标签分数推导第一项和第三项同样可靠。

实验:先辨别人工参考,再看自动模型

原文 Table 3:英文结果,数值单位为百分制,均值保留原文定义
输入/方法精确程度覆盖程度Avg
随机24.8513.4219.13
Chat-UniVi53.6852.5053.09
GPT-4V48.5264.8656.69
EMER(Text)54.4139.8447.13
EMER(Video)63.2958.0560.67
EMER(Audio)67.5463.3065.42
EMER(Multi)80.0380.0780.05

这里的 EMER(Multi) 使用人工检查后的线索,八十点零五不能宣传为直接从原始视频自动识别的准确率。它更接近优质线索条件下的参考表现,说明输入证据的质量很重要。GPT-4V 的召回高于精确程度,意味着它找到了较多参考情绪,但也加入了更多不匹配情绪;仅看一个均值会掩盖这种行为差异。

单模态结果也不能解释为“声音永远比图像重要”。当前样本、提示、预标注与人工检查共同决定这些数值。视觉只有少量采样帧,音频修订又包含人工听音,比较对象的信息获取方式并不完全对称。真正研究模态贡献,需要固定采样、审核投入与后处理,再增加去掉某种证据的受控实验。

原文 Table 7:字幕加入方式的英文 Avg,S0 忽略字幕,S1 联合提示,S2 分步整合
模型S0S1S2
Otter35.4522.9544.40
Chat-UniVi40.0248.1153.09
SALMONN40.7239.8048.06
Qwen-Audio33.0337.4940.23

分步整合通常更好,但“加字幕就提升”并不成立:Otter 从 S0 到 S1 明显下降。可能的原因是同时处理多种要求时,模型过度依赖文字或遗漏观察;这只是合理解释,原表并未直接验证内部注意机制。对初学者而言,合适的复现问题是同一批片段上三种提示分别错在哪里,而不是只抄最优一列。

原文还把多模态描述映射回六个传统类别,得到 Top-1 为九十三点四八、Top-2 为九十六点八九,并报告连续效价相关系数零点八八。这是在优质描述中恢复既有标签的实验,不是训练新视频模型获得的测试准确率。Figure 3 的语言一致性和 Figure 6 的相关性分析同样属于评价研究,需要保留各自的比较对象。

源码与复现:先做可重复的评价器

论文对应项目已在作者后续 AffectGPT 总仓库中演进。本次检查的是固定提交中的 OV-MER 与 AffectGPT 目录:它们能帮助理解“描述转标签、标签转指标”的工程接口,但使用了后续情绪轮指标,不能冒充 v6 的原始完整评价器。尤其不能拿下面返回的 F1 去填 EMER Table 3 的 Avg 栏。

源码:OV-MER/evaluation-scoreonly.py,L125–140(固定提交 95b9257758df)

def calculate_ov_zeroshot(epoch_root, name2gt, llm, tokenizer, sampling_params, inter_print=True):
    
    # epoch_root=(name2reason) => openset
    openset_npz = epoch_root[:-4]+'-openset.npz'
    if not os.path.exists(openset_npz):
        extract_openset_batchcalling(reason_npz=epoch_root, store_npz=openset_npz,
                                     llm=llm, tokenizer=tokenizer, sampling_params=sampling_params)
        
    # 计算 EW-based metrics
    name2pred = {}
    filenames = np.load(openset_npz, allow_pickle=True)['filenames']
    fileitems = np.load(openset_npz, allow_pickle=True)['fileitems']
    for (name, item) in zip(filenames, fileitems):
        name2pred[name] = item
    whole_fscores = wheel_metric_calculation(name2gt=name2gt, name2pred=name2pred, inter_print=inter_print)
    return whole_fscores

这个入口先检查抽取后的标签缓存是否存在;有缓存就不重复调用语言模型,再按样本名建立预测字典。缓存有助于区分生成随机性与评价变化,但换了描述、提示或抽取模型之后必须更新缓存键,否则会对旧标签重复评分。初学者可以仿照数据流组织文件,先不加载大模型。

源码:AffectGPT/my_affectgpt/evaluation/ew_metric.py,L159–174(固定提交 95b9257758df)

    for metric in candidate_metrics:
        precision, recall = calculate_openset_overlap_rate(gt_root=gt_root,
                                                           gt_csv=gt_csv,
                                                           name2gt=name2gt,
                                                           openset_root=openset_root, 
                                                           openset_npz=openset_npz, 
                                                           name2pred=name2pred,
                                                           process_names=process_names, 
                                                           metric=metric,
                                                           format_mapping=format_mapping,
                                                           raw_mapping=raw_mapping,
                                                           inter_print=inter_print)
        fscore = 2 * (precision * recall) / (precision + recall)
        whole_scores.append([fscore, precision, recall])
    avg_scores = (np.mean(whole_scores, axis=0)).tolist()
    return avg_scores

第二段明确把精确率和召回率合成 F1,再对多种情绪轮求平均,说明它属于后续指标实现。阅读源码的意义正是发现这种差异。要实现当前论文,先写独立的小函数返回 P、R、算术平均和 Jaccard;不要未经核对就复用名字相似的函数,也不要把一次成功导入库称为论文复现完成。

三次练习与可以交付的研究起点

第一晚先做十个手工集合例子:完全相同、完全不相交、多预测一词、少预测一词、同义改写、重复词和空预测都要包含。保存输入集合、规范化集合及四种分数到 CSV。验收条件是你能不运行程序手算其中三个例子,并解释为何预测更多词可能提高覆盖却降低精确程度。

第二步在有使用权限的十段短视频上建立证据表,每行记录时间、模态、直接观察、推断情绪和不确定原因。先只看画面,再只听音频,最后看字幕,避免一开始被文本锚定。验收不是描述写得长,而是每个观察能定位到画面或声音,且至少保留两例多模态冲突而不强行统一。

第三步固定这十段视频,对比忽略字幕、联合提示和分步整合。所有提示、模型版本、抽帧时间、生成参数和人工修改都写入日志。把错误分为观察幻觉、情绪遗漏、字幕主导和同义词评分误差。验收是形成一页带样例的错误分析;十段样本只用于方法检查,不够支持显著优于现有模型的结论。

完成这些任务后,细粒度扩展可以研究“哪一种局部线索最容易被漏掉”,跨场景扩展可以研究“同一句描述在不同场景是否被映射为相同情绪”。两条线都应先固定评价器,再改变数据或模型。若评价词表也随实验改变,就无法判断提升来自识别能力还是更宽松的评分规则。

作者局限与本文独立判断

作者在局限部分明确指出标注成本高、样本规模有限、参与比较的模型不完整,并把更深入的可靠性评价作为后续方向。三百余个样本适合作为探索性基准,却不足以覆盖文化、年龄、语境及罕见复合情绪。文中实验不能直接推断真实部署中的人类心理状态,也不能保证换一个数据来源后排序保持不变。

本文的独立判断是:解释文本改善了可检查性,却没有证明解释忠实于模型决策;由语言模型参与生成、整合与评价还可能带来共享偏好。一个可行的小改进不是立即训练更大模型,而是增加独立的人类证据核查表,分别评估标签正确与线索正确,并记录审核者之间的分歧,保留无法裁决的样本。

把机制变成可以复查的实验记录

在证据标注表中,建议把一个句子进一步拆成观察对象、变化方向、时间位置和解释四栏。例如“嘴角短暂上扬”可以定位到一个时间段,而“他在掩饰不满”需要更强的上下文支持。两者若直接合成一句,复查者就难以知道争议来自看错动作还是解释不同;拆栏能把争议转化为可讨论的问题。

描述长度本身不应作为质量奖励。十个没有视频依据的形容词可能比一个准确的声音线索更差。练习时可以做一个受控删减:保留相同的情绪词,分别删除视觉、音频或上下文证据,观察标签分数是否变化。如果分数不变,就证明当前指标没有衡量被删除的解释信息,而非证明这些证据没有价值。

分析字幕策略时还应区分两种泄漏。字幕确实是任务允许的模态时,利用语义不是错误;但若提示里包含参考情绪或人工分析答案,就改变了实验条件。记录提示模板的目的正是确认模型获得的是允许输入,而不是把审核后线索偷偷作为自动模型的额外优势,再与只看原视频的方法比较。

对每次语言模型调用保留请求编号、模型名称、时间、提示版本、输入哈希及原始输出。这里只需要记录可复查信息,不必把访问密钥放进日志。旧模型版本可能无法再次调用,因此离线缓存尤其重要;没有缓存时,只能说明重新实现了流程,不能保证精确重现历史接口的同一行为。

自测题可以这样设置:为什么一个只预测“紧张”的系统精确率可能很高,却仍不足以解释视频?答案应指出参考中可能还有不满或惊讶,且情绪词正确也不证明证据正确。第二题是为什么人工修订后的多模态描述不能叫端到端自动结果;答案必须同时提到额外观察信息与人工劳动。

最终读书报告可以控制在四页:一页任务与数据流,一页手算指标,一页三种字幕策略的逐样本错误,一页局限与下一步。每页都应有可检查对象。完成后你应该能向同学演示一个预测如何从原始线索经过词抽取和分组变成分数,而不只是背诵“可解释多模态情绪识别”这个研究方向。

原文与核验边界

论文原文及出版信息。本篇依据全文、附录和表格编写;文中的教学计算与研究建议均不冒充作者实验证据。核验日期:2026-10-23。

自己的解释与验收记录

写出一条输入到输出的链路、一个关键公式的含义,以及你完成的最小检查。笔记仅保存在当前浏览器,可从主站「我的学习笔记」导出。