Q3:分层反事实证据归因
第一轮比较
第一轮直接复用 Q2 官方 unaligned_50 实验中的 EarlyConcat + BiGRU、MoFE-7 + MLP Router 权重和 train-only robust scaler。这样 E0/E1/E2 使用固定预测器,主要比较解释方式。
| 方案 | 预测器 | 解释 |
|---|---|---|
| E0 | EarlyConcat + BiGRU | 三模态精确 Shapley、配对交互、多尺度局部遮蔽 |
| E1 | MoFE-7 + MLP Router | Router 模态/位置权重;用反事实删除检验其是否 faithful |
| E2 | 与 E1 相同的 MoFE 检查点 | 三模态精确 Shapley、配对交互、多尺度局部遮蔽 |
E1 与 E2 的预测逐样本相同。E1 的路由权重只描述融合机制,只有通过删除检验后才能说明它在这些样本上是否与预测行为一致。
运行
从项目根目录执行,附件目录由 FINAL_DATA_DIR 指定。它应包含 附件2-数据集特征文件/unaligned_50.pkl 和 附件4-可解释专项视频样本与特征文件/。
export FINAL_DATA_DIR="/path/to/task-data"
python -m final.q3.run_experiments \
--output-dir final/output/q3/first_round \
--device auto
检查点与 scaler 默认读取 final/experiments/q2/unaligned_deep_two_b128/。完整运行会计算官方验证集预测及误差归因。--skip-validation 跳过这一步;--no-frames 跳过候选帧抽取。每轮实验使用新的空输出目录;若上次运行中断且留下部分文件,可对该目录增加 --resume 重新生成结果。
方法定义
令三个模态为 (M={T,A,V})。对每个附件 4 样本完整计算 8 个 coalition。分类价值函数使用完整输入预测类别的 logit,并在所有 coalition 上固定该类别;回归价值函数使用模型情感强度输出。绝对 Shapley 贡献除以三模态绝对贡献之和,得到模态作用比例;带符号值保留支持或反对预测的方向。配对交互采用标准 Shapley interaction index 系数。
局部证据对每个可见模态位置计算窗口宽度 (win{1,3,5}) 的遮蔽前后差值,三个尺度等权平均。每个模态选取局部贡献绝对值最高的 10% 位置,合并相邻位置,并输出代表证据段。
Faithfulness 使用固定预测类别 logit。Comprehensiveness 比较完整输入与删去高排名证据后的分数;sufficiency 比较完整输入与只保留高排名证据后的分数;deletion AUC 汇总删除 0% 到 70% 的分数下降。另记录宽度 1/3/5 局部图之间的 Spearman 相关作为尺度稳定性诊断。MoFE Router 与精确 Shapley 按样本比较 Spearman 排序相关和主导模态一致率。
输出
- attachment4_predictions.csv:E0、E1、E2 对 20 个样本的完整预测与类别概率。
- attachment4_modal_shapley.csv:分类与强度的有符号贡献、绝对比例和完备性残差。
- attachment4_pairwise_interactions.csv:Text–Audio、Text–Vision、Audio–Vision 交互。
- attachment4_local_evidence.csv:E0/E2 的 1/3/5-bin 遮蔽差值和来源行。
- attachment4_router_profiles.csv、attachment4_router_local_evidence.csv:MoFE 的专家权重和逐位置 Router utility。
- attachment4_evidence_segments.csv:稀疏代表证据段、来源行、转写文本和候选视频时间。
- faithfulness_by_sample.csv、q3_method_comparison.csv:逐样本与方案汇总的删除/保留检查。
- validation_predictions.csv、validation_errors.csv、validation_error_attribution.csv:官方验证集指标、误差样本和分类 margin 归因。
- explanation_cards/、typical_explanation_card.md、evidence_profiles/:逐样本解释卡、代表卡和 3×50 热图。
- evidence_frames/:从原始视频抽取的候选帧。
- run_manifest.json:检查点、scaler、输入模式、公式、运行边界与产物清单。
Router 热力图样例
在完成 Q3 第一轮后,还可以绘制附件 4 样本 02、03 的输入遮蔽与 Router 权重对照图。每个样本分别展示原始完整输入和受控残缺输入:样本 02 遮蔽 30% 文本与音频,样本 03 遮蔽 30% 视觉。蓝色斜线只标输入中被遮蔽的位置;紧接着一行把七个 expert(T、A、V、TA、TV、AV、TAV)横向排列,色块/数字显示样本平均 Router 权重,下方窄条显示 50 个 bin 上的 α[t,e]。
export FINAL_DATA_DIR="/path/to/task-data"
python -m final.q3.plot_router_heatmaps --output-dir final/output/q3
这两个残缺样例是人为遮蔽的对照,不是附件 4 的原生缺失数据。文本 token 按序列顺序显示,蓝色斜线标出对应遮蔽词段;音频波形和视频帧按相对进程显示蓝色遮蔽区。每个 bin 的七个 expert 权重在可用专家集合内归一化,未满足模态条件的 expert 权重为 0;色条使用原始 0–1 数值并通过平方根归一化提高低权重的可读性。样例顶部另列 T/A/V 的总体 Router exposure share。视频帧和音轨只按归一化进程投影,不能当作精确词/帧同步。Router 权重反映融合路由,不是预测贡献或情绪因果解释。
图表与原始数据输出为 mofe_router_heatmap_examples.png、mofe_router_heatmap_examples.pdf、mofe_router_heatmap_scores.csv(逐 bin 七个 α 分数及模态可见掩码)、mofe_router_heatmap_summary.csv 和 mofe_router_heatmap_manifest.json。
回溯边界
附件 4 的文本、音频和视觉序列为未对齐特征,没有逐词、逐音频帧或逐视频帧的真实时间戳。输出会从 adapter 的稀疏投影权重记录来源特征行和归一化进程。视频候选秒数由归一化进程乘视频时长估算,只供人工回看;它不是真实物理时间对齐。文本 token 需要本地缓存 google-bert/bert-base-uncased tokenizer;缓存不存在时,解释卡仍保留完整转写和来源行。
这些解释衡量的是当前预测器对输入遮蔽的响应,不是现实情绪成因。虽然模型在 Q2 训练时见过模态遮蔽,局部孤立遮蔽和只保留 10% 的输入仍可能偏离训练分布;相关数值按诊断结果报告,不称为解释准确率或因果效应。