665 lines
75 KiB
Markdown
665 lines
75 KiB
Markdown
# Q1 特征提取结果
|
||
|
||
## 题面要求与完成范围
|
||
|
||
按题面第 2、3、5、6 页,Q1 首先要从附件 1 的原始 100 条视频建立可追溯的文本、语音、视觉特征,保持样本覆盖完整,并给出 100 条汇总表、至少一个文本—语音—视频帧对应样例、工具参数与复现信息。原始视频和标签没有被修改。
|
||
|
||
全量特征提取与对应性核验已经完成;随后也按 `video_id` 分组跑完了 M1–M4 的五折方法比较、重构探针与冻结情感探针。结果显示当前 M3/M4 训练目标会产生注意力塌缩,详见文末比较结果;因此没有宣称某个方法已经获得可靠的跨模态对齐。
|
||
|
||
## 数据覆盖审计
|
||
|
||
| 核验项 | 结果 |
|
||
| --- | ---: |
|
||
| 标签表样本 | 100 |
|
||
| 唯一 `(video_id, clip_id)` | 100 |
|
||
| 视频文件 | 100 |
|
||
| `video_id` 分组 | 37 |
|
||
| 音视频均可读取 | 100 |
|
||
| 重复、缺失、额外文件 | 0 |
|
||
| 标签极性不匹配 | 0 |
|
||
|
||
题面给出的片段时长范围下限为 2.648 秒。按解码视频帧时间统计,有两条原始视频短于该下限:`-mJ2ud6oKI8/6` 为 2.2356 秒,`-s9qJ7ATP7w/6` 为 2.4667 秒。两条均保留并正常提取,没有为满足区间而裁剪或删除。详见 [coverage_summary.json](outputs/audit/coverage_summary.json)。
|
||
|
||
## 提取结果
|
||
|
||
| 模态/特征 | 每位置维数 | 全部样本总长度 | 有效覆盖 |
|
||
| --- | ---: | ---: | ---: |
|
||
| 文本:BERT 词向量 | 768 | 1,932 个词 | 100/100 样本 |
|
||
| 音频:eGeMAPSv02 LLD | 25 | 77,261 帧 | 100/100 样本 |
|
||
| 视觉:DeiT-Tiny 帧 CLS 向量,5 fps | 192 | 3,948 帧 | 100/100 样本 |
|
||
| 补充视觉:MediaPipe 人脸 blendshape | 52 | 随人脸帧变化 | 87/100 样本检测到人脸 |
|
||
|
||
词级强制对齐共直接得到 1,920/1,932 个词的时间区间。另有 12 个词分布在 9 条样本中无法直接对齐;它们以单调的零宽度时间点插值,并在 `word_alignment_valid` 中标为 `false`。这些词的音频和视觉词级特征用最近的有效源帧回退,回退标志单独保存在 NPZ 中。
|
||
|
||
本次运行 100 条均无提取错误;13 条样本没有检测到人脸,但它们仍有有效的 DeiT 通用视觉帧嵌入。每条样本一个 NPZ,数值特征存为 float16,时间戳为 float32,掩码为 bool。文件中同时保留原始变长时间序列和按词级时间区间平均后的 Audio/Vision 特征,不做磁盘填充。
|
||
|
||
## 典型样本
|
||
|
||
样本 `-tPCytz4rww/12` 展示了 transcript 词序、CTC 强制对齐区间、eGeMAPS 时序特征,以及相同片段内的抽样视频帧。例图里的文本片段为 “and going to similar in, similar with bedrooms and bathrooms as well”。
|
||
|
||

|
||
|
||
## 产物与复现
|
||
|
||
- [100 条样本汇总表](outputs/q1_features/reports/sample_summary.csv)
|
||
- [100×3 样本—模态明细表](outputs/q1_features/reports/feature_summary_100x3.csv)
|
||
- [逐样本运行日志](outputs/q1_features/logs/samples.jsonl)
|
||
- [模型、版本、参数、哈希与运行命令](outputs/q1_features/reports/run_manifest.json)
|
||
- [100 个压缩特征文件](outputs/q1_features/features/)
|
||
|
||
100 个 NPZ 合计 9,261,634 字节;核心提取报告、日志与特征文件合计 10,460,565 字节。连同下面的轻量对比报告包仍低于题面 50 MB 上限;不要把完整训练检查点和全部逐样本对齐矩阵也放进提交包。
|
||
|
||
复现步骤(在 `deep_learning` 目录执行):
|
||
|
||
```bash
|
||
cd Q1
|
||
uv sync
|
||
uv run python -m q1.audit
|
||
uv run python -m q1.extract_features --output-dir outputs/q1_features
|
||
```
|
||
|
||
环境为 Python 3.14.7、PyTorch 2.14.0+cu130、torchvision 0.29.0,运行设备为 NVIDIA GeForce RTX 5070 Ti。具体依赖锁定在 [uv.lock](uv.lock),模型修订号、MediaPipe 资产 SHA-256、特征规则和运行参数记录在 `run_manifest.json`。
|
||
|
||
## M1–M4 方法比较
|
||
|
||
### 实验协议
|
||
|
||
- M1 使用 CTC 强制词时间;M2 把每条视频分成 50 个等长时间窗;M3 以文本顺序槽查询音频和视频;M4 使用 50 个共享潜在槽分别查询三个模态。
|
||
- M3/M4 采用相同的自监督目标:连续块跨模态重构、跨模态对比损失和时间单调性损失。情绪标签不进入对齐模型训练。
|
||
- 100 条样本按 37 个 `video_id` 分成 5 折;同一原始视频的片段不会跨训练/验证集。M3/M4 各用 3 个随机种子,所有特征归一化参数只由当前训练折估计。
|
||
- 在每折验证集上冻结对齐,再训练相同结构的检索投影、连续块重构和轻量情绪 Probe。情绪 Probe 使用五段时间池化后的正则化线性分类器/回归器,适合小样本诊断,不代表大型数据集上的最终模型。
|
||
|
||
### 主要发现
|
||
|
||
| 方法 | Audio 熵 ↓ | Vision 熵 ↓ | Audio 时间跨度比例 ↑ | Vision 时间跨度比例 ↑ | T→A R@1 ↑ | Audio 重构 MAE ↓ | 情绪宏 F1 ↑ | 情绪 Pearson ↑ |
|
||
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
||
| M1 强制时间 | 0.358 | 0.021 | 0.894 | 0.896 | 0.0012 | 0.691 | 0.437 | 0.531 |
|
||
| M2 固定窗口 | 0.392 | 0.016 | 0.968 | 0.974 | 0.0014 | 0.662 | 0.343 | 0.508 |
|
||
| M3 文本锚定注意力 | 0.992 | 0.983 | -0.002 | -0.005 | 0.0197 | 0.384 | 0.438 | 0.546 |
|
||
| M4 共享潜轴 | 1.000 | 1.000 | 0.000 | 0.000 | 0.0071 | 0.378 | 0.414 | 0.507 |
|
||
|
||
时间跨度比例是每条样本“最后槽的期望时间减第一槽的期望时间”,再除以片段时长。接近 1 表示大致走过整段视频;接近 0 表示所有槽都落在同一时间附近。熵接近 1 表示注意力近似平均分布。检索使用训练折拟合的相同线性投影,正样本是同片段、同共享槽,因此只是表示一致性探针,不是人工对齐真值。
|
||
|
||
当前结果清楚暴露了学习型方法的问题:M3 的音频/视觉注意力接近均匀,时间跨度接近零;M4 的三种模态注意力几乎完全均匀。M4 的 MVR 虽然为 0,但这是因为平坦轨迹没有“向后走”;所以 MVR 必须与时间跨度和注意力熵一起看。重构误差更低也不能单独证明对齐更好,因为全局平均表示本身容易被重构。冻结情绪 Probe 的折间波动也较大,不能据此断言 M3 的细小优势稳定存在。
|
||
|
||
因此第一轮结论是:M1/M2 提供了可解释、覆盖完整的时间基线;v1 的 M3/M4 没有学到可信的细粒度跨模态对齐。没有人工事件时间标注,第一轮不报告 IoU/MATE,也不声称有直接对齐准确率。
|
||
|
||
### v2 对齐塌缩复查
|
||
|
||
按顺序只改变 M3/M4 的损失项,原始特征、提取器、M1/M2、五折 `video_id` 分组、三个随机种子和训练预算均保持不变。三阶段共训练 90 个 M3/M4 模型,使用 CUDA RTX 5070 Ti,完整运行耗时约 18 分钟。
|
||
|
||
| 阶段 | 新增约束 | 固定设置 |
|
||
| --- | --- | --- |
|
||
| v2-a | Span | 最小轨迹跨度 0.7,权重 5.0 |
|
||
| v2-b | Span + Diversity | 另加相隔至少 6 个槽的注意力行余弦相似度,权重 0.5 |
|
||
| v2-c | Span + Diversity + Band | 另加弱时间带约束,容许偏差 0.10,权重 10.0 |
|
||
|
||
所有阶段继续使用相同的重构、对比和单调性损失。M3 的时间带目标取文本词时间;M4 使用 50 个均匀槽中心。另记录 `C_row`,即不同槽位注意力行的平均余弦相似度;它越接近 1,槽位关注的位置越相似。
|
||
|
||
| 阶段/方法 | Audio 跨度 | Vision 跨度 | C_row Audio | C_row Vision | T→A R@1(±1 槽) | T→A 精确 R@1 | T→A MASE(槽) | Audio 重构增益 |
|
||
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
||
| 固定 M1 | 0.894 | 0.896 | 0.000 | 0.028 | 0.067 | 0.025 | 16.28 | 0.012 |
|
||
| 固定 M2 | 0.968 | 0.974 | 0.000 | 0.016 | 0.077 | 0.028 | 16.00 | 0.016 |
|
||
| v2-a M3 | 0.025 | -0.014 | 0.847 | 0.979 | 0.175 | 0.074 | 14.14 | 0.036 |
|
||
| v2-b M3 | 0.030 | -0.016 | 0.777 | 0.961 | 0.191 | 0.083 | 13.59 | 0.060 |
|
||
| v2-c M3 | 0.030 | -0.017 | 0.784 | 0.964 | 0.185 | 0.080 | 13.55 | 0.057 |
|
||
| v2-a M4 | 0.001 | -0.002 | 0.994 | 0.999 | 0.060 | 0.024 | 17.94 | 0.002 |
|
||
| v2-b M4 | 0.002 | -0.001 | 0.983 | 1.000 | 0.061 | 0.025 | 17.90 | 0.005 |
|
||
| v2-c M4 | 0.005 | -0.001 | 0.965 | 0.999 | 0.069 | 0.029 | 15.09 | 0.010 |
|
||
|
||
跨度是验证样本上的平均“末槽期望时间减首槽期望时间”除以片段时长;负值表示两端略有倒退,仍属于未覆盖时间轴。检索用训练折拟合的投影,在每条留出片段自己的 50 个槽中找匹配位置;R@1 允许误差 ±1 槽,精确 R@1 要求同槽,MASE 是 top-1 的平均绝对槽位误差。随机猜测时 ±1 槽 R@1 约为 0.06。重构增益为 `MAE_shuffled - MAE_aligned`,正值表示保留跨模态槽位关系后误差下降。各均值汇总了折、种子和样本,样本量不应被当作独立视频数。
|
||
|
||
结果表明,Diversity 让 M3 的 Audio 注意力行有所分化,Audio 重构增益也从 v2-a 的 0.036 增至 v2-b 的 0.060;但 M3 Audio 时间跨度仍只有约 0.03,Vision 跨度接近零且 `C_row` 仍高。M4 的弱 Band 约束只带来有限改善,Audio/Vision 注意力仍接近塌缩,重构增益也很小。典型样本图同样显示 M3 Audio/Vision 近似水平轨迹,M4 三模态轨迹近乎平坦。因此这些阶段没有达到“沿时间移动的局部带状对齐”,也不足以证明 M3/M4 学到了可靠对齐;本轮不继续 RoPE、Gaussian Bias 或 latent 长度消融。下一步应先检查学习型注意力为何难以利用时间监督,并调整对齐目标或优化策略,再用相同探针复核。
|
||
|
||

|
||
|
||

|
||
|
||
### 文件与复现
|
||
|
||
- [对比总表](outputs/method_comparison/comparison_summary.csv)
|
||
- [逐样本对齐指标](outputs/method_comparison/alignment_metrics.csv) 与 [按方法汇总](outputs/method_comparison/alignment_summary.csv)
|
||
- [检索探针](outputs/method_comparison/retrieval_summary.csv)、[重构探针](outputs/method_comparison/reconstruction_summary.csv)、[情绪 Probe](outputs/method_comparison/emotion_summary.csv)
|
||
- [折分清单](outputs/method_comparison/splits.json)、[训练记录](outputs/method_comparison/training_summary.csv)、[运行清单](outputs/method_comparison/run_manifest.json)
|
||
- [典型样本对齐热图](outputs/method_comparison/typical_alignment_heatmaps.png) 与 [时间轨迹图](outputs/method_comparison/typical_alignment_trajectories.png)
|
||
- [v2 三阶段对比总表](outputs/alignment_v2/v2_c/comparison_summary.csv)、[v2-c 注意力指标](outputs/alignment_v2/v2_c/alignment_summary.csv)、[v2-c 检索摘要](outputs/alignment_v2/v2_c/retrieval_summary.csv) 与 [v2-c 重构摘要](outputs/alignment_v2/v2_c/reconstruction_summary.csv)
|
||
- [v2-c 典型样本热图](outputs/alignment_v2/v2_c/typical_alignment_heatmaps.png)、[v2-c 时间轨迹图](outputs/alignment_v2/v2_c/typical_alignment_trajectories.png)、[逐 epoch 训练记录](outputs/alignment_v2/v2_c/training_history.csv) 与 [运行日志](outputs/alignment_v2/experiment.log)
|
||
- [v2 轻量结果包](outputs/alignment_v2/report_bundle/README.md),约 4.6 MB;不含检查点和逐样本矩阵
|
||
|
||
复现命令:
|
||
|
||
```bash
|
||
cd Q1
|
||
uv sync
|
||
uv run python -m q1.compare_methods
|
||
uv run python -m q1.train_alignment_variants
|
||
uv run python -m q1.alignment_debug
|
||
uv run python -m q1.synthetic_alignment_sanity
|
||
uv run python -m q1.alignment_key_position_debug
|
||
uv run python -m q1.alignment_heldout_debug
|
||
uv run python -m q1.summarize_alignment_debug
|
||
```
|
||
|
||
本机的 GPU Triton 路径还需要系统 GCC 和 Python 开发头文件;Fedora WSL 可用 `sudo dnf install gcc python3-devel` 安装。完整方法比较目录约 119 MB,其中 30 个折/种子检查点约 53.5 MB;它们是本地研究复现材料,不应和必须提交的特征文件一起全部打包到 50 MB 附件中。可提交/分享的轻量结果包位于 [report_bundle](outputs/method_comparison/report_bundle/),约 1.18 MB;全量训练检查点和 800 个逐样本矩阵仍保存在其上一级目录。
|
||
|
||
v2 塌缩复查的完整材料位于 `outputs/alignment_v2/`,约 348 MB;其中检查点和 1,800 个逐样本矩阵只用于本地研究复现。分享时使用 [v2 report_bundle](outputs/alignment_v2/report_bundle/README.md),约 4.6 MB。完整比较运行清单在 [alignment_v2/run_manifest.json](outputs/alignment_v2/run_manifest.json)。
|
||
|
||
### M3/M4 可学习性诊断(D0–D5 与 D1-S)
|
||
|
||
v2 后先做小规模诊断,再决定是否增加位置编码或结构消融。本轮复用现有的 100 条特征,没有修改提取器、M1 或 M2;在 Fedora WSL 中通过 `uv` 使用 RTX 5070 Ti 运行,耗时 103.7 秒,环境为 Python 3.14.7、PyTorch 2.14.0+cu130。
|
||
|
||
| 编号 | 数据与目标 | M4 位置编码 | 目的 |
|
||
| --- | --- | --- | --- |
|
||
| D0 | 单样本 `-tPCytz4rww/12`,`5 × span + 10 × band`,1,000 步 | 无 | 检查时间损失是否能推动注意力 |
|
||
| D1 | 同一样本,仅 Gaussian target KL,1,000 步 | 无 / 固定正弦位置编码 | 检查直接注意力监督与槽位对称性 |
|
||
| D1-S | 只用合成时间输入 `[t, t², 1]`,Gaussian target KL,1,000 步 | M4 无 PE / 有 PE | 极简验证注意力实现能否拟合已知时间带 |
|
||
| D2 | 全部 100 条,仅 Gaussian target KL,500 步 | 固定正弦位置编码 | 检查全数据下直接时间目标是否可优化 |
|
||
| D3 | 全部 100 条,Gaussian KL + 遮挡重构 + 跨模态对比,500 步 | 固定正弦位置编码 | 检查内容损失是否干扰时间监督 |
|
||
| D4 | 单样本 Gaussian KL,1,000 步;对照显式时间身份 | M4 保留 absolute PE | 检查真实特征加入时间码后能否形成局部带 |
|
||
| D5 | 按 `video_id` 分组 fold 1:80 条训练、20 条留出,纯 Gaussian KL,500 步 | 对照无时间码 / 有时间码 | 检查时间码能否迁移到未见原视频 |
|
||
|
||
Gaussian target 是根据时间戳构造的弱时间先验,归一化时间上的 `sigma=0.10`;它**不是人工对齐真值**。D0/D1 是单样本过拟合诊断;D2/D3 在相同 100 条数据上训练并评价、每种方法仅一个随机种子,因此只反映优化情况,不表示泛化表现。每 20 步记录损失分量以及注意力 Q/K 投影和 M4 latent slots 的梯度。
|
||
|
||
| 诊断 | 结果 |
|
||
| --- | --- |
|
||
| D0 时间损失 | M3/M4 的最终 span loss 均为 0;band loss 分别为 `1.28e-5`、`7.10e-5`。损失对 Q/K 有梯度,M4 slots 也有非零梯度。 |
|
||
| D1 真实特征的逐模态 KL | M3:Audio `0.5254`,Vision `0.0001`;M4 无 PE:Text/Audio/Vision `0.000009/0.5496/0.000075`;M4 有 PE:`0.000026/0.5452/0.000065`。总体均值掩盖了 Audio 目标拟合失败,PE 几乎没有改善 Audio。 |
|
||
| D1-S 合成时间输入 | M3 Audio/Vision KL `0.000098/0.000103`、轨迹跨度 `0.836/0.840`;M4 无 PE 的三模态 KL 均约 `0.000025–0.000032`,有 PE 约 `0.000024–0.000035`。轨迹跨度约 `0.835–0.845`,中心时间误差约 `0.012–0.014`。 |
|
||
| D2 全量训练最终 KL | M3 `0.5194`;M4 `0.6222`。Q/K 梯度非零,M4 slots 梯度也非零。 |
|
||
| D3 最终损失 | M3:total `2.3617`、align KL `0.8575`、reconstruction `0.0652`、contrastive `1.4390`。M4:total `2.5226`、align KL `0.7414`、reconstruction `0.0345`、contrastive `1.7467`。Q/K 与 M4 slots 梯度非零。 |
|
||
| D4 单样本时间码 | Audio KL:M3 `0.5254 → 0.0012`,M4 `0.5452 → 0.0011`;Audio 轨迹跨度:M3 `0.426 → 0.803`,M4 `0.439 → 0.824`。两者 Vision KL 均低于 `0.00013`。 |
|
||
| D5 留出 20 条、6 个未见 video_id | M4 时间码版 Audio/Vision KL `0.0035/0.0135`、跨度 `0.814/0.822`、中心误差 `0.017/0.017`;无时间码版 KL `0.994/1.359`、跨度 `0.010/-0.077`。M3 时间码版有改善,但留出 KL 仍为 `0.491/0.479`、跨度 `0.716/0.712`、中心误差约 `0.09`。 |
|
||
|
||
KL 的取平均模态数不同:M3 只对 Audio/Vision 计算 Gaussian target,M4 对 Text/Audio/Vision 都计算。因此 D1–D3 的 KL 数值用于看各自能否下降,不能直接作为 M3 对 M4 的胜负排名;D1 更应看逐模态值,而不是整体均值。
|
||
|
||
D1-S 使用实际 M3/M4 注意力层,但输入不含真实内容,只含合成时间坐标。它把 Gaussian 时间带拟合到约 `1e-4` KL,说明这套注意力计算和优化在输入携带时间位置时可以学出局部带状结构。结合 D1 真实特征上的 Audio 失败,问题更可能在真实 Audio 表示/时间线索与注意力目标的衔接,而非完全断开的 Q/K 梯度。代码检查也确认当前真实 M3/M4 注意力把投影后的源特征直接作为 key/value,没有显式把源时间戳编码进 key;这使“Audio key 缺少足够时间身份”成为优先验证的假设,但还不是已证实的唯一原因。
|
||
|
||
D4 为 source key 加固定 Fourier 时间码,value 保留投影后的真实特征;M3 query 同时加文本词时间中心码,M4 query 保留 absolute PE 并加对应网格时间码。真实单样本上两者都形成局部带。首次 D5 只跑了 fold 1:训练集 80 条、31 个 `video_id`,留出集 20 条、6 个 `video_id`,两侧无组重叠;归一化参数只用训练集拟合。该折支持 M4 的 Audio/Vision 时间带可迁移到未见视频;M3 优于无时间码基线,但仍有明显泛化差距。M4 Text 分支也仍弱,留出平均 Gaussian KL 为 `0.477`。后续新增的五折 D5 汇总见“Q1-Correspondence Evaluation”。D5 仍只有一个训练随机种子,Gaussian target 又来自源时间戳,因此这不是人工对齐准确率或多种子稳定性结论。
|
||
|
||
汇总 100 条样本的逐样本诊断,D2 的 M3 Audio 注意力仍较分散(归一化熵 `0.965`,平均轨迹跨度 `0.152`);Vision 更随时间变化(熵 `0.781`,跨度 `0.601`),但热图仍未清晰贴合目标。D2 的 M4 Audio 几乎均匀(熵 `0.997`,跨度 `0.011`),Vision 时间覆盖也有限(熵 `0.937`,跨度 `0.199`)。D3 加入重构和对比损失后,Audio 塌缩更明显:M3 熵/跨度为 `0.995/0.016`,M4 为 `0.999/0.002`;M4 Vision 跨度也从 D2 的 `0.199` 降至 `0.061`。因此重构误差降低不能单独视为对齐改善。
|
||
|
||
这组诊断排除了“注意力计算图完全断开或没有梯度”这一简单解释:D0 时间损失可优化,D1-S 可拟合合成时间带,全数据训练时 Q/K(以及 M4 slots)也有非零梯度。D4/D5 显示显式时间身份能解决 M4 Audio/Vision 的塌缩,但 M3 和 M4 Text 还未达到同样水平。后续优先检查 M3 文本查询时间身份和 M4 Text 分支,再考虑其他结构;暂不恢复大规模 RoPE 或 latent 长度扫参。可以先在其余 grouped folds 上复核 M4 音视频,再单独改进 M3/Text 时间条件化。
|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||
诊断产物见 [逐方法汇总指标](outputs/alignment_debug/metric_summary.csv)、[训练及梯度汇总](outputs/alignment_debug/debug_summary.csv)、[运行清单](outputs/alignment_debug/run_manifest.json)、[合成控制指标](outputs/alignment_debug/synthetic/metrics.csv)、[D4 时间码指标](outputs/alignment_debug/source_time/per_sample_metrics.csv)、[D5 留出汇总](outputs/alignment_debug/heldout/heldout_summary.csv) 和 [D5 运行清单](outputs/alignment_debug/heldout/run_manifest.json)。可分享的轻量结果包在 [report_bundle](outputs/alignment_debug/report_bundle/README.md);逐方法训练历史、指标、热图、轨迹及检查点保存在 `outputs/alignment_debug/`。
|
||
|
||
### Q1-Correspondence Evaluation:同槽与时间错位
|
||
|
||
为区分“注意力找到了时间”与“同一槽中的模态内容确实可匹配”,新增冻结特征上的对应性探针。M1、M2、M3、M4 共六个设置(M3/M4 各含有/无 source-time code)都使用同一套评估。每个方法的线性投影只在训练折上用同一片段内的同槽正样本和错槽负样本训练;再在完全留出的 `video_id` 上评价。投影维度为 64,训练 40 个 epoch,不使用情绪标签,也不按留出分数挑选模型。M3/M4 的 D5 时间定位模型在 5 个既有分组折上各训练 500 步、随机种子 42;每折 80 条训练片段和 20 条留出片段,100 条留出预测合计覆盖 37 个 `video_id`。
|
||
|
||
三项核心测量为:
|
||
|
||
1. **时间偏移曲线**:计算 `sim(z_i^m, z_(i+Δ)^n)`,`Δ=-10…10`;若同槽内容关系具有迁移性,曲线应在零偏移附近出现峰。
|
||
2. **片段内时序检索**:每个查询只能在同一留出片段的 50 个槽中检索,报告精确 R@1、±1 槽 R@1 和 MASE。
|
||
3. **匹配/错位 AUC**:正样本为同槽配对,负样本来自同一片段且 `|i-j|>2` 的错槽配对。AUC `0.5` 表示无法区分。表中置信区间以 `video_id` 为单位做 2,000 次 bootstrap,避免把同视频片段或时间槽当成独立样本。
|
||
|
||
| 冻结表示 | T–A AUC(95% CI) | T–V AUC | A–V AUC | T→A 精确 R@1 | T→A ±1 R@1 | T→A MASE(槽) |
|
||
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
||
| M1 强制时间 | 0.524 [0.510, 0.538] | 0.499 | 0.499 | 0.028 | 0.075 | 16.35 |
|
||
| M2 固定窗口 | 0.531 [0.518, 0.545] | 0.499 | 0.503 | 0.029 | 0.078 | 15.95 |
|
||
| M3 无时间码 | **0.728 [0.706, 0.751]** | 0.531 | 0.512 | **0.135** | **0.275** | **9.94** |
|
||
| M3 有时间码 | 0.542 [0.527, 0.557] | 0.500 | 0.505 | 0.036 | 0.088 | 16.60 |
|
||
| M4 无时间码 | 0.621 [0.602, 0.641] | 0.560 | 0.541 | 0.046 | 0.114 | 11.21 |
|
||
| M4 有时间码 | 0.546 [0.517, 0.573] | 0.490 | 0.500 | 0.029 | 0.076 | 17.11 |
|
||
|
||
50 槽下,随机检索参考值为精确 R@1 `0.020`、±1 R@1 `0.059`、MASE `16.66`。最清晰的偏移曲线峰出现在 **M3 无时间码的 T–A**:同槽相似度高于错开位置,T→A 检索也优于随机参考。M4 无时间码在三组配对上都有高于机会水平的 AUC,但效应较小;M1/M2 的 T–A 也有较弱的同槽信号。M3/M4 有时间码的结果没有显示同等强度的内容匹配,尤其 M4 有时间码的 T–V 与 A–V 接近机会水平。
|
||
|
||
这个结果必须和时间定位指标一起读。下表是五折 D5 验证片段按 `video_id` 宏平均的时间跨度;置信区间也按原视频分组。KL 越低越符合弱 Gaussian 时间目标。
|
||
|
||
| D5 变体 | Audio 跨度(95% CI) | Vision 跨度(95% CI) | Audio KL | Vision KL |
|
||
| --- | ---: | ---: | ---: | ---: |
|
||
| M3 无时间码 | 0.007 [-0.005, 0.018] | -0.052 [-0.092, -0.017] | 1.270 | 1.931 |
|
||
| M3 有时间码 | 0.708 [0.664, 0.738] | 0.710 [0.678, 0.737] | 0.618 | 0.592 |
|
||
| M4 无时间码 | 0.006 [0.001, 0.010] | -0.068 [-0.103, -0.033] | 1.013 | 1.550 |
|
||
| M4 有时间码 | 0.816 [0.815, 0.817] | 0.822 [0.819, 0.824] | 0.004 | 0.022 |
|
||
|
||
M4 有时间码的 Audio/Vision 时间带清晰,但其 Text 分支 Gaussian KL 仍为 `0.608`,T–A/T–V/A–V 内容对应性也弱。反过来,M3 无时间码的 Audio/Vision 时间轴没有覆盖整段片段,却在 T–A 匹配探针上表现最好。M4 无时间码的 Audio/Vision 轨迹同样塌缩,但三组 AUC 均有一定高于机会水平的统计信号。也就是说,**时间定位与跨模态可匹配性确实是两件不同的事**:零偏移匹配不等于整段视频已经正确对齐;时间带漂亮也不保证槽内内容可匹配。
|
||
|
||
因此目前最稳妥的结论是:M3 无时间码的文本—音频表示具有可迁移的同槽可匹配性,但它没有形成完整时间覆盖;M4 有时间码建立了更好的 Audio/Vision 时间定位,却还没有证明三模态内容对应;M4 无时间码的内容探针结果值得跟进,但其时间轨迹塌缩,不能称为完整时序对齐。投影头本身使用了训练视频的同槽标签,所以这些结果是“冻结表示可被简单探针匹配”的证据,不是无监督模型独立发现的真值,也不证明模态间语义相同。还需要多随机种子和人工事件标注确认。
|
||
|
||

|
||
|
||
逐片段结果、视频组 bootstrap 汇总、偏移曲线数据、五折 D5 时间定位汇总、探针训练记录、探针检查点和运行清单分别保存在 [correspondence_clip_metrics.csv](outputs/correspondence_eval/correspondence_clip_metrics.csv)、[metric_summary.csv](outputs/correspondence_eval/metric_summary.csv)、[shift_curve_summary.csv](outputs/correspondence_eval/shift_curve_summary.csv)、[time_localization_summary.csv](outputs/correspondence_eval/time_localization_summary.csv)、[probe_training_history.csv](outputs/correspondence_eval/probe_training_history.csv)、[probe_checkpoints.pt](outputs/correspondence_eval/probe_checkpoints.pt) 和 [run_manifest.json](outputs/correspondence_eval/run_manifest.json)。
|
||
|
||
完整复现(Fedora WSL,Python 环境由 `uv` 管理):
|
||
|
||
```bash
|
||
cd Q1
|
||
uv run python -m q1.alignment_heldout_debug --device cuda --seed 42 --fold 1 --output-dir outputs/alignment_debug/heldout
|
||
uv run python -m q1.alignment_heldout_debug --device cuda --seed 42 --fold 2 --output-dir outputs/alignment_debug/heldout/fold_02
|
||
uv run python -m q1.alignment_heldout_debug --device cuda --seed 42 --fold 3 --output-dir outputs/alignment_debug/heldout/fold_03
|
||
uv run python -m q1.alignment_heldout_debug --device cuda --seed 42 --fold 4 --output-dir outputs/alignment_debug/heldout/fold_04
|
||
uv run python -m q1.alignment_heldout_debug --device cuda --seed 42 --fold 5 --output-dir outputs/alignment_debug/heldout/fold_05
|
||
uv run python -m q1.correspondence_eval --device cuda --epochs 40 --seed 42
|
||
```
|
||
|
||
### M4 Shared Latent Timeline:结构与功能复核
|
||
|
||
M4 的判断不再以三张注意力图是否像对角线为依据,而分三层复核:先比较同一模态中 latent slots 的注意力相似度 (G^m=\hat A^m\hat A^{mT}),再由 (C^{m\to n}=\operatorname{ColNorm}(A^m)^T A^n) 生成模态到模态的转移图,最后用只看聚合内容的对应探针、内容打乱和错位重构检查这些关系是否有功能。此轮复用了五折 D5 `M4_sourceTime` 检查点,没有重新训练 M4 对齐模型。内容对应投影与小型重构器只在各折训练 video_id 上训练,再在留出组上打分;不使用情绪标签。全部 100 个片段各作为一次留出样本,分组覆盖 37 个 video_id。
|
||
|
||
结构指标按 video_id 做宏平均;95% 区间使用 2,000 次视频组 bootstrap。`near_similarity` 按定义包含自身对角线;`near_similarity_offdiag` 和 `d_self_offdiag` 排除自身,以免自相似度 1 掩盖邻近 slot 之间的结构。
|
||
|
||
| 模态 | 近邻相似(排除自身)↑ | 远邻相似 ↓ | (D_{self})(排除自身)↑ | Gram 目标误差 ↓ | 远槽泄漏 ↓ |
|
||
| --- | ---: | ---: | ---: | ---: | ---: |
|
||
| Text | 0.985 | 0.122 | 0.863 | 0.733 | 0.192 |
|
||
| Audio | 0.983 | 0.069 | 0.914 | 0.544 | 0.126 |
|
||
| Vision | 0.983 | 0.073 | 0.910 | 0.543 | 0.133 |
|
||
|
||
三种模态的 Gram 矩阵都有清晰的局部带:相邻 slots 会看相似区域,远距离 slots 的相似度明显更低。这说明 latent timeline 在各模态内部形成了平滑的时间结构;Text 的远槽相似和 Gram 目标误差仍高于 Audio/Vision。
|
||
|
||
| Pairwise 方向 | 物理时间 MAE ↓ | 时间相关 ↑ |
|
||
| --- | ---: | ---: |
|
||
| Text → Audio | 0.0841 | 0.928 |
|
||
| Text → Vision | 0.0843 | 0.928 |
|
||
| Audio → Vision | 0.0248 | 0.996 |
|
||
|
||
时间 MAE 使用归一化片段时间,描述由 pairwise map 得到的期望时间是否接近;它不是语义或事件级对齐准确率。完整六个方向见 [pairwise_summary.csv](outputs/m4_shared_latent_eval/pairwise_summary.csv)。回环到 band target 的相对误差分别为 Text–Audio–Text `0.865`、Text–Vision–Text `0.864`、Audio–Vision–Audio `0.719`;对应回环时间 MAE 为 `0.096`、`0.099`、`0.050`。Triangle (T\to A\to V) 与 (T\to V) 的相对 Frobenius 残差为 `0.226`。所以时间轨迹较一致,但 cycle 回环还没有恢复到期望的局部时间带,pairwise 结构尚未完全自洽。
|
||
|
||
功能验证的结果进一步收紧了结论。Content-only probe 输入仅为 M4 的注意力加权 Value 表示;不把 latent query、位置向量或 slot 编号拼入 probe。需要注意,source-time code 仍会影响注意力权重 (A^m),所以时间信息可能通过“选中了哪些 Value”间接保留;内容 shuffle 用来检验槽内内容顺序是否贡献了可匹配信号。探针使用训练折的同槽正例训练,留出时的负例是同片段中相隔超过 2 槽的位置。
|
||
|
||
| 配对 | 匹配/错位 AUC(95% CI) | 左到右精确 R@1 | ±1 槽 R@1 | MASE(槽) |
|
||
| --- | ---: | ---: | ---: | ---: |
|
||
| Text → Audio | **0.616 [0.583, 0.650]** | 0.037 | 0.108 | 13.64 |
|
||
| Text → Vision | 0.504 [0.494, 0.514] | 0.025 | 0.069 | 17.83 |
|
||
| Audio → Vision | 0.513 [0.500, 0.530] | 0.024 | 0.062 | 17.66 |
|
||
|
||
50 槽随机检索的参考值为精确 R@1 `0.020`、±1 R@1 `0.059`、MASE `16.66`。Text–Audio 的同槽相似曲线在零偏移处达到峰值,AUC 也高于机会水平;打乱槽内内容后 AUC 从 `0.616` 降至 `0.500`,说明这项有限信号依赖实际内容顺序。Text–Vision 与 Audio–Vision 的 AUC 均接近 `0.5`,打乱前后没有实质差别。因此内容层证据只支持较弱的 Text–Audio 对应,没有支持完整三模态内容对齐。
|
||
|
||
Aligned-vs-shifted reconstruction 的目标是另一个模态的 M4 聚合内容向量,而不是原始波形或视频像素;每次只将一个输入伙伴错开,且比较相同目标槽。下表为绝对位移 10 槽时 `MAE_shifted - MAE_aligned` 的估计和视频组 95% 区间:
|
||
|
||
| 重构目标 | 增益 (G(10))(95% CI) |
|
||
| --- | ---: |
|
||
| Audio | 0.000049 [-0.000150, 0.000260] |
|
||
| Vision | 0.000176 [-0.000229, 0.000624] |
|
||
| Text | 0.000675 [-0.000249, 0.001793] |
|
||
|
||
三个区间都包含 0;在 `|Δ|=1,2,5` 时同样没有排除 0。错位越远时 Text/Vision 目标的增益均值略有上升,但这项探针尚未给出稳定的正向重构证据。
|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||
**当前结论:** M4 有明显的 latent 自身时间结构,且 Audio–Vision pair map 在物理时间上接近一致;这与 D5 的 source-time 先验结果相符。可是 cycle band 误差仍大,内容对应主要只在 Text–Audio 上表现为中等信号,Text–Vision/Audio–Vision 接近机会水平,错位重构增益的区间包含 0。由此不能写成“M4 已学到可信的三模态共享语义对齐”。更稳妥的表述是:它建立了时间定位和部分 Text–Audio 内容可匹配性,但现有结果尚未证明完整、可靠的三模态跨模态对应。source-time D5 检查点只用一个对齐训练种子,而且训练中的 Gaussian 时间目标来自时间戳;本轮 bootstrap 只描述视频组采样不确定性,不覆盖训练种子不确定性。人工事件 IoU/中心误差仍需先标注 10–15 条视频的事件区间。
|
||
|
||
逐片段数据、汇总、探针训练记录和权重,以及可直接复查的典型样本矩阵保存在 [outputs/m4_shared_latent_eval](outputs/m4_shared_latent_eval/)。关键文件包括 [self_structure_summary.csv](outputs/m4_shared_latent_eval/self_structure_summary.csv)、[pairwise_summary.csv](outputs/m4_shared_latent_eval/pairwise_summary.csv)、[cycle_triangle_summary.csv](outputs/m4_shared_latent_eval/cycle_triangle_summary.csv)、[content_only_metrics_summary.csv](outputs/m4_shared_latent_eval/content_only_metrics_summary.csv)、[content_shuffle_summary.csv](outputs/m4_shared_latent_eval/content_shuffle_summary.csv)、[shifted_reconstruction_summary.csv](outputs/m4_shared_latent_eval/shifted_reconstruction_summary.csv) 和 [run_manifest.json](outputs/m4_shared_latent_eval/run_manifest.json)。
|
||
|
||
Fedora WSL 复现(复用已有五折 D5 检查点):
|
||
|
||
```bash
|
||
cd Q1
|
||
uv run python -m q1.m4_shared_latent_eval --device cuda --seed 42 --probe-epochs 40 --decoder-epochs 40 --shuffle-repeats 20
|
||
```
|
||
|
||
### TSFA:冻结时间候选范围与局部内容选择
|
||
|
||
在上述 D5/M4 结果之上,本轮验证“先用时间确定候选范围,再在范围内按内容选择”能否同时改善时间定位和跨模态内容对应。五折 `M4_sourceTime` 检查点保持冻结;每个共享槽的 M4 注意力期望时间作为候选中心,主方案在归一化时间 `±0.10` 的范围内,用文本内容查询音频和视觉内容。局部语义分支只用训练折的同槽正例和相隔 `±2、±3、±5` 槽的难负例训练 40 个 epoch。它的 Q/K 不显式接收源时间码、位置编码或槽编号;M4 选中的内容仍可能间接携带时间。情绪标签没有进入训练。原有 BERT 文本、eGeMAPS 音频和 DeiT 视觉特征均保持不变。当前语义分支只有 `T→A` 和 `T→V` 两条边,准确地说是“M4 时间定位 + 文本条件化的音视频内容细化”,尚不包含直接的 A–V 语义交互。
|
||
|
||
比较包括 M3 无/有时间码、冻结 M4、有时间候选的 TSFA 主方案、乘以 M4 时间注意力的变体、20 次同宽度随机候选窗口,以及允许搜索全部源位置的全局变体。全部方法复用相同的 5 个 `video_id` 分组折、训练折归一化、每折相同的评估探针随机种子。100 条样本各作一次留出预测,涉及 37 个原视频。表中 AUC 是 Text–Audio、Text–Vision、Audio–Vision 三组“同槽对错槽”AUC 的逐样本平均,再按 `video_id` 宏平均;`0.5` 为机会水平。时间 MAE 是三个正向跨模态映射在归一化视频时间上的平均,越低越好。
|
||
|
||
| 方法 | 模型输出 AUC ↑ | 统一原始特征 AUC ↑ | 时间 MAE ↓ |
|
||
| --- | ---: | ---: | ---: |
|
||
| M3 无时间码 | 0.708 | 0.592 | 0.251 |
|
||
| M3 有时间码 | 0.565 | 0.516 | 0.099 |
|
||
| M4 有时间码 | 0.544 | 0.517 | **0.064** |
|
||
| TSFA 主方案 | 0.627 | 0.553 | 0.070 |
|
||
| TSFA 乘时间权重 | 0.627 | 0.551 | 0.068 |
|
||
| TSFA 随机窗口 | 0.632 | 0.571 | 0.251 |
|
||
| TSFA 全局候选 | **0.685** | **0.608** | 0.243 |
|
||
|
||
时间轴诊断进一步说明候选范围的作用。MVR 使用相邻槽期望时间倒退超过 `0.02` 的比例;跨度是末槽减首槽的归一化时间。熵只作分布诊断,不能单独排名。
|
||
|
||
| 方法 | Audio MVR ↓ | Vision MVR ↓ | Audio 跨度 ↑ | Vision 跨度 ↑ | Audio 熵 | Vision 熵 |
|
||
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
||
| M4 有时间码 | 0.0000 | 0.0000 | 0.816 | 0.822 | 0.846 | 0.720 |
|
||
| TSFA 主方案 | 0.0025 | 0.0004 | 0.796 | 0.821 | 0.538 | 0.510 |
|
||
| TSFA 随机窗口 | 0.4650 | 0.4745 | -0.017 | 0.010 | 0.533 | 0.500 |
|
||
| TSFA 全局候选 | 0.1406 | 0.0645 | 0.011 | 0.008 | 0.701 | 0.902 |
|
||
|
||
主方案的注意力更集中,且仍覆盖约 `99.9%` 的有效源位置;因此时间 MAE 的对照没有靠删除大批难对齐源位置取得优势。随机窗口同样能给出较低的熵,却有严重倒序和近零跨度,再次说明熵低不等于对齐正确。
|
||
|
||
“模型输出”沿用各方法自己的 Value/输出投影;“统一原始特征”把同一折中归一化后的 BERT、音频和 DeiT 源特征分别乘以各方法的对齐矩阵,再训练相同的线性对应探针。后者隔离了“选中哪些源位置”的贡献,更适合判断对齐矩阵本身。两者都只用训练视频拟合探针,留出视频打分。M3 无时间码的模型输出 Text–Audio AUC 达 `0.956`,统一原始特征后为 `0.725`;这说明原生注意力输出的查询相关变换也对它的高分有贡献,不能把原生输出 AUC 全部解释为正确的时间选择。
|
||
|
||
成对比较同一留出样本,并按 `video_id` 做 2,000 次 bootstrap:TSFA 主方案相对 M4 的统一原始特征 AUC 增加 `0.035`,95% 区间 `[0.023, 0.047]`;时间 MAE 增加 `0.0059`,区间 `[0.0053, 0.0065]`,即时间精度略有下降。它的统一原始特征 Text–Audio AUC 为 `0.639`,M4 为 `0.539`;Text–Vision `0.507`、Audio–Vision `0.511` 仍接近机会水平。原生输出的 Text–Audio AUC 为 `0.844`,M4 为 `0.616`;独立打乱留出片段内各模态槽顺序后,TSFA Text–Audio AUC 降至 `0.500`,说明该探针确实依赖槽顺序。
|
||
|
||
随机窗口相对主方案的统一原始特征 AUC 高 `0.018`,全局候选高 `0.055`;同时二者的时间 MAE 分别升至 `0.251` 和 `0.243`。随机窗口使用相同 `δ`,但边界截断使 Audio 平均候选比例为 `19.3%`,主方案为 `20.3%`;这一对照并未做到逐槽候选数量完全相等。因此局部 M4 候选范围的作用主要是**约束时间位置**,现有实验没有证明它能提高内容 AUC。乘时间权重比硬候选主方案把时间 MAE 从 `0.070` 降至 `0.068`,但统一原始特征 AUC 从 `0.553` 降至 `0.551`。这是一条可描述的时间—内容权衡,不宜合成为一个总分。
|
||
|
||
错位重构也只给出有限支持:错开 10 槽时,TSFA 的 Vision 内容重构误差增加 `0.00148`,95% 区间 `[0.00050, 0.00240]`;Audio 和 Text 目标的对应区间都包含 0。重构对象是聚合特征,不是波形或像素。当前最稳妥的判断是:**TSFA 比冻结 M4 保留了更多可匹配的 Text–Audio 内容,且维持了大部分时间结构;它尚未证明可靠的三模态语义对齐。**训练折的同槽标签来自时间/槽约定,M4 的时间先验来自时间戳,均不是人工事件真值;直接的事件 IoU/MATE 仍需人工标注。此轮只有一个对齐训练种子,视频组区间不包含训练种子波动。基于这轮七方法结果,暂不把 `δ`、RoPE 或 latent 长度消融写成已完成实验。
|
||
|
||

|
||
|
||

|
||
|
||
完整的逐片段指标、训练记录和探针检查点位于 [outputs/tsfa](outputs/tsfa/);可分享的汇总与图在 [report_bundle](outputs/tsfa/report_bundle/)。重点文件为 [七方法主表](outputs/tsfa/ablation_summary.csv)、[统一原始特征主表](outputs/tsfa/alignment_only_ablation_summary.csv)、[统一特征成对差值](outputs/tsfa/alignment_only_paired_contrasts.csv)、[三组配对和双向检索](outputs/tsfa/alignment_only_content_summary.csv)、[MVR/熵/覆盖率汇总](outputs/tsfa/tsfa_temporal_diagnostics_summary.csv)、[随机窗口统计](outputs/tsfa/candidate_window_stats.csv)、[运行清单](outputs/tsfa/run_manifest.json) 与 [统一特征运行清单](outputs/tsfa/alignment_only_run_manifest.json)。
|
||
|
||
Fedora WSL 复现(在 `deep_learning/Q1` 中执行,Python 环境由 `uv` 管理):
|
||
|
||
```bash
|
||
uv run python -m q1.tsfa_experiment --device cuda --seed 42
|
||
uv run python -m q1.tsfa_alignment_only_eval --device cuda --seed 42
|
||
```
|
||
|
||
### TSFA 的情感标签探针
|
||
|
||
为了和已有的情感探针口径对照,额外用连续 `label` 的符号生成三类标签:小于 0 为 Negative,等于 0 为 Neutral,大于 0 为 Positive。100 条样本的类别数是 18/25/57;因此恒预测 Positive 的 Accuracy 为 `0.57`,固定三类计算的 Macro-F1 为 `0.242`。分类用 `StandardScaler` + 逻辑回归 (`C=0.05`);连续分数回归用 `StandardScaler` + Ridge (`alpha=25`)。二者的 scaler 和预测器都只在每折 80 条训练样本上拟合,按 `video_id` 分组的 20 条留出样本只用于预测。对齐后的 50 个槽按顺序切成 5 段,每段平均,再拼接作为探针输入。Ridge 的折外预测按相同报告口径限幅到 `[-3, 3]` 后计算 MAE/Pearson;未限幅预测另存以供诊断。情感标签没有用于训练 TSFA 对齐分支。
|
||
|
||
同时报告 M3/M4 冻结表示作为参照。每种方法分别测试 Text、Audio、Vision 单模态以及三模态拼接;指标汇总全部 100 条折外预测。Macro-F1 固定包含三类,未预测到的类别按 0 计。折均值和标准差按每折 20 条留出预测计算,标准差使用样本标准差。
|
||
|
||
| 表示 | 视图 | Accuracy ↑ | OOF Macro-F1 ↑ | 折 Macro-F1 均值 ± SD | 限幅 MAE ↓ | 限幅 Pearson ↑ |
|
||
| --- | --- | ---: | ---: | ---: | ---: | ---: |
|
||
| M3 无时间码 | 三模态 | 0.56 | 0.385 | 0.347 ± 0.098 | 0.698 | 0.225 |
|
||
| M3 有时间码 | 三模态 | **0.60** | 0.411 | **0.367 ± 0.094** | 0.761 | 0.117 |
|
||
| M4 有时间码 | 三模态 | 0.52 | 0.351 | 0.327 ± 0.035 | **0.736** | **0.239** |
|
||
| TSFA 主方案 | 三模态 | 0.54 | **0.431** | 0.363 ± 0.091 | 0.820 | 0.104 |
|
||
| 恒预测 Positive | 基线 | 0.57 | 0.242 | — | — | — |
|
||
|
||
TSFA 的 Accuracy 低于 `0.57` 多数类基线,但 Macro-F1 高于该基线,说明它确实预测了一部分 Negative 和 Neutral;混淆矩阵中分别正确识别 5/18 和 7/25。相对 M4,TSFA 的 OOF Macro-F1 从 `0.351` 升至 `0.431`,但五折 Macro-F1 均值只从 `0.327` 升至 `0.363`,二者折间波动范围较大;Accuracy 从 `0.52` 升至 `0.54`,仍低于多数类基线。TSFA 的限幅 MAE 为 `0.820`,Pearson 为 `0.104`,均未超过 M4。M3 有时间码的三模态 Accuracy 最高,为 `0.60`。Text 单模态中 TSFA 和 M4 完全相同,因为两者共用冻结 M4 文本表示;TSFA 的 Vision 单模态表现较弱(Accuracy `0.34`、Pearson `-0.232`)。
|
||
|
||
#### 与 math 报告中 B0–B4 的参照
|
||
|
||
下表的 B0–B4 数字来自 math 的 OOF 预测文件;TSFA 行来自本目录这次按相同分类器/回归器参数、五段池化、训练折标准化、五折 `GroupKFold` 重新运行的结果。已逐一核对 `sample_id`:100 条样本全部相同,且 math 的 `split_assignments.csv` 与 TSFA 的 fold 完全一致。因此下面进一步按相同样本做配对比较。
|
||
|
||
| 方法 | OOF Accuracy | OOF Macro-F1 | Macro-F1 折均值 ± SD | MAE(限幅) | Pearson(限幅) |
|
||
| --- | ---: | ---: | ---: | ---: | ---: |
|
||
| B0(math) | 0.600 | 0.361 | 0.337 ± 0.098 | **0.564** | **0.346** |
|
||
| B1(math) | **0.610** | 0.387 | 0.349 ± 0.119 | 0.599 | 0.238 |
|
||
| B2(math) | 0.580 | 0.331 | 0.313 ± 0.087 | 0.588 | 0.279 |
|
||
| B3(math) | 0.590 | 0.359 | 0.333 ± 0.096 | 0.600 | 0.230 |
|
||
| B4(math) | 0.600 | 0.422 | **0.398 ± 0.089** | 0.593 | 0.199 |
|
||
| TSFA 主方案(三模态) | 0.540 | **0.431** | 0.363 ± 0.091 | 0.820 | 0.104 |
|
||
|
||
对相同 `sample_id` 的预测按 `video_id` 成组进行 2,000 次配对 bootstrap,报告 TSFA 减去各基线的 95% 百分位区间。表中区间未作多重比较校正;正的 MAE 差表示 TSFA 误差更大。
|
||
|
||
| 对照 | Δ Accuracy [95% CI] | Δ Macro-F1 [95% CI] | Δ MAE [95% CI] | Δ Pearson [95% CI] |
|
||
| --- | ---: | ---: | ---: | ---: |
|
||
| B0 | -0.060 [-0.181, 0.063] | +0.070 [-0.099, 0.211] | +0.256 [0.154, 0.369] | -0.241 [-0.447, -0.048] |
|
||
| B1 | -0.070 [-0.188, 0.053] | +0.044 [-0.129, 0.191] | +0.221 [0.112, 0.337] | -0.133 [-0.356, 0.097] |
|
||
| B2 | -0.040 [-0.165, 0.081] | +0.100 [-0.048, 0.220] | +0.232 [0.123, 0.346] | -0.175 [-0.382, 0.035] |
|
||
| B3 | -0.050 [-0.172, 0.076] | +0.072 [-0.087, 0.205] | +0.220 [0.111, 0.334] | -0.126 [-0.349, 0.103] |
|
||
| B4 | -0.060 [-0.186, 0.065] | +0.009 [-0.155, 0.165] | +0.228 [0.108, 0.357] | -0.094 [-0.338, 0.144] |
|
||
|
||
TSFA 的 OOF Macro-F1 点估计略高于 B4(`+0.009`),但所有五个分类 Macro-F1 差值区间都跨过 0;因此没有证据说明 TSFA 的分类表现稳定优于任一 B0–B4。TSFA 的折均值 Macro-F1(`0.363 ± 0.091`)也低于 B4(`0.398 ± 0.089`)。五个回归 MAE 差值点估计均为正,Pearson 点估计均低于对应基线。最清楚的差异是 TSFA 相对 B0 的 Pearson 较低(未校正区间 `[-0.447, -0.048]`);该结果仍需考虑多重比较和仅 37 个视频组的限制。整体而言,TSFA 没有显示比 B0–B4 更好的情感探针表现。
|
||
|
||
折外逐样本预测、指标、混淆矩阵和复现配置保存在 [emotion_probe_predictions.csv](outputs/tsfa_emotion_probe/emotion_probe_predictions.csv)、[emotion_probe_metrics.csv](outputs/tsfa_emotion_probe/emotion_probe_metrics.csv)、[emotion_probe_confusion_matrix.csv](outputs/tsfa_emotion_probe/emotion_probe_confusion_matrix.csv) 和 [emotion_probe_manifest.json](outputs/tsfa_emotion_probe/emotion_probe_manifest.json)。配对比较的区间表和折分核验记录见 [paired_math_comparison.csv](outputs/tsfa_emotion_probe/paired_math_comparison.csv) 与 [paired_math_comparison_manifest.json](outputs/tsfa_emotion_probe/paired_math_comparison_manifest.json);比较程序在 [compare_emotion_probes.py](q1/compare_emotion_probes.py)。该程序只读取 math 的预测和分折 CSV,所有输出写在本目录。
|
||
|
||
复现命令:
|
||
|
||
```bash
|
||
uv run python -m q1.tsfa_emotion_probe --device cuda --seed 42
|
||
uv run python -m q1.compare_emotion_probes --bootstrap-repeats 2000 --seed 42
|
||
```
|
||
|
||
### TSFA 的 A–V 局部边 × 原模态残差消融
|
||
|
||
针对 TSFA 的情感强度回归短板,在相同的 M4 冻结时间定位、`δ=0.10` 候选范围、BERT/eGeMAPS/DeiT 原始提取结果、五折 `video_id` 切分、40 epoch 局部 T–A/T–V 对比目标和轻量情感探针下,只改变两个因素:是否增加双向 Audio–Vision 局部语义边,以及是否把未经语义选择的三个模态特征送入探针。A–V 边的两个方向都使用原有 M4 对应源模态的候选掩码;原模态残差由训练折标准化后的原始模态特征经冻结 M4 时间权重池化到 50 槽,再作相同的五段池化。A–V 分支训练不使用情感标签。原版 `TSFA-T` 的 100 条分类与回归预测已逐样本核对,和上节 `TSFA-main` 完全一致。
|
||
|
||
| 结构 | A–V 边 | 原模态残差 | OOF Accuracy | OOF Macro-F1 | 折 Macro-F1 均值 ± SD | 限幅 MAE | 限幅 Pearson |
|
||
| --- | :---: | :---: | ---: | ---: | ---: | ---: | ---: |
|
||
| TSFA-T | 无 | 无 | 0.540 | **0.431** | 0.363 ± 0.091 | 0.820 | 0.104 |
|
||
| TSFA-AV | 有 | 无 | 0.520 | 0.413 | 0.359 ± 0.105 | 0.803 | 0.101 |
|
||
| TSFA-T+Private | 无 | 有 | **0.590** | 0.390 | 0.357 ± 0.118 | **0.572** | **0.368** |
|
||
| TSFA-AV+Private | 有 | 有 | 0.550 | 0.317 | 0.306 ± 0.113 | 0.579 | 0.366 |
|
||
|
||

|
||
|
||
按相同留出样本配对,并以 37 个 `video_id` 为单位做 2,000 次 bootstrap。下表差值为左侧结构减右侧结构;负的 MAE 差表示回归改善,区间均为未作多重比较校正的 95% 百分位区间。
|
||
|
||
| 结构差异 | Δ Macro-F1 [95% CI] | Δ MAE [95% CI] | Δ Pearson [95% CI] |
|
||
| --- | ---: | ---: | ---: |
|
||
| 加 A–V,无残差 | -0.018 [-0.085, 0.044] | -0.017 [-0.102, 0.065] | -0.003 [-0.165, 0.205] |
|
||
| 加残差,无 A–V | -0.041 [-0.146, 0.080] | **-0.249 [-0.356, -0.155]** | **+0.263 [0.111, 0.434]** |
|
||
| 加 A–V,已有残差 | -0.073 [-0.129, -0.013] | +0.008 [-0.015, 0.028] | -0.002 [-0.059, 0.065] |
|
||
| 加残差,已有 A–V | -0.096 [-0.219, 0.054] | **-0.224 [-0.342, -0.124]** | **+0.264 [0.038, 0.464]** |
|
||
| A–V × 残差交互效应 | -0.055 [-0.128, 0.031] | +0.025 [-0.048, 0.096] | +0.001 [-0.145, 0.120] |
|
||
|
||
这次最明确的结果是原模态残差:在没有 A–V 边时,MAE 降低 `0.249`,Pearson 提高 `0.263`,两个配对区间均不跨 0;加入 A–V 后同样出现明显回归改善。单独增加 A–V 边只使 MAE 从 `0.820` 到 `0.803`,区间跨 0;在已有残差时,A–V 边的 Macro-F1 点估计反而下降 `0.073`(未校正区间 `[-0.129, -0.013]`)。当前证据支持“保留未经语义筛选的模态信息”比增加这条 A–V 边更能修复回归问题,尚不支持 A–V 边能稳定改善情感强度。A–V 注意力在候选范围内归一化,时间中心诊断见下方文件;这本身不能证明它学到了正确的语义对应。
|
||
|
||
`TSFA-T+Private` 的 MAE 为 `0.572`,接近 math B0 的 `0.564` 和 B4 的 `0.593`。同样本的配对比较中,它相对 B0 的 MAE 差为 `+0.007`,区间 `[-0.027, 0.039]`;相对 B4 为 `-0.021`,区间 `[-0.075, 0.027]`。这些区间说明本轮未观察到稳定差异,不能把它们解释成统计等价。它相对 B4 的 Pearson 差为 `+0.169`,未校正区间 `[0.012, 0.318]`;Macro-F1 差为 `-0.032`,区间 `[-0.208, 0.112]`。
|
||
|
||
原模态残差同时包含 Text、Audio、Vision,当前四格结果不能把回归增益单独归因于音频或视觉;加入残差也使探针输入从 1,920 维增至 6,845 维。A–V 边增加了可训练参数,单种子实验也不能证明模型已经学到真实的 Audio–Vision 语义关系。实验仅有 100 条样本和 37 个来源视频,所有配对区间未作多重比较校正。
|
||
|
||
四格的 [OOF 指标](outputs/tsfa_av_private_ablation/metrics.csv)、[逐样本预测](outputs/tsfa_av_private_ablation/predictions.csv)、[配对区间](outputs/tsfa_av_private_ablation/paired_contrasts.csv)、[A–V 局部注意力诊断](outputs/tsfa_av_private_ablation/av_attention_diagnostics.csv)、[残差版本对 math 的配对比较](outputs/tsfa_av_private_ablation/private_vs_math.csv) 和 [运行清单](outputs/tsfa_av_private_ablation/run_manifest.json) 均位于 `deep_learning/Q1`。复现命令:
|
||
|
||
```bash
|
||
uv run python -m q1.tsfa_av_private_ablation --device cuda --seed 42
|
||
uv run python -m q1.compare_emotion_probes --tsfa-predictions outputs/tsfa_av_private_ablation/predictions.csv --candidate-method TSFA-T+Private --output-dir outputs/tsfa_av_private_ablation --output-stem private_vs_math --bootstrap-repeats 2000 --seed 42
|
||
```
|
||
|
||
### TSFA-SPR:时序—共享—私有分解
|
||
|
||
这轮检验一个具体假设:TSFA 的强度回归短板是否主要来自缺少模态私有信息,以及学习式 shared/private 分解能否优于简单保留原始源特征。实验使用既有五折 `M4_sourceTime` checkpoint,全部冻结;先用各训练折统计量标准化原始 BERT、eGeMAPS、DeiT 特征,再用 M4 attention 权重池化到 50 个 latent slots。每种模态经过独立 adapter,再进入参数共享的 shared MLP 和各自的 private MLP,最后用每模态 decoder 重构输入。表示训练没有使用情感标签、时间编码或显式 slot index。
|
||
|
||
训练对照为 `SP-noOrth-noRec`、`SP+Orth`、`SPR`、`SPR-noSharedContrastive`;主损失为共享同槽 InfoNCE、同模态 shared/private 归一化正交项、逐模态均衡的重构项。固定 5-fold `GroupKFold(video_id)`、seed 42、40 epochs。情感 probe 沿用 `StandardScaler + LogisticRegression(C=0.05)`、`StandardScaler + Ridge(alpha=25)`、50 槽到五个连续时间段的均值池化,回归限幅 `[-3,3]`。所有拟合只用训练折,100 条样本均作一次 OOF 预测。
|
||
|
||
| 表示 / probe 视图 | 特征维数 | Accuracy | OOF Macro-F1 | Macro-F1 折均值 ± SD | MAE | Pearson |
|
||
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
||
| TSFA-old / 三模态 | 1920 | 0.540 | **0.431** | 0.363 ± 0.091 | 0.820 | 0.104 |
|
||
| TSFA+RawPrivate / 三模态 | 6845 | **0.590** | 0.390 | 0.357 ± 0.118 | 0.572 | **0.368** |
|
||
| SPR / shared-unfused + 全部 private | 1920 | 0.560 | 0.389 | 0.341 ± 0.094 | 0.697 | 0.071 |
|
||
| SPR-dim-matched / fused shared + 全部 private | 1280 | 0.550 | 0.318 | 0.315 ± 0.084 | 0.701 | 0.059 |
|
||
| RawPrivate-PCA / 训练折 PCA | 1280 | 0.560 | 0.297 | 0.281 ± 0.068 | **0.559** | 0.251 |
|
||
|
||
四种因子器损失配置都使用 `shared-unfused + private-all` 作为同一 probe 视图:
|
||
|
||
| 因子器 | Accuracy | OOF Macro-F1 | Macro-F1 折均值 ± SD | MAE | Pearson |
|
||
| --- | ---: | ---: | ---: | ---: | ---: |
|
||
| SP-noOrth-noRec | 0.530 | 0.392 | 0.355 ± 0.090 | 0.724 | 0.085 |
|
||
| SP+Orth | 0.470 | 0.298 | 0.290 ± 0.074 | 0.719 | 0.031 |
|
||
| SPR | 0.560 | 0.389 | 0.341 ± 0.094 | 0.697 | 0.071 |
|
||
| SPR-noSharedContrastive | 0.540 | 0.347 | 0.326 ± 0.100 | **0.670** | **0.248** |
|
||
|
||
这四行的点估计没有配对区间;不能由其排序认定某个 loss 有统计优势。去掉 shared contrastive 后回归点估计反而更好,与 shared 同槽对应指标接近机会水平相符,但仍需独立数据验证。
|
||
|
||
`RawPrivate-PCA` 把每个 slot 的 985 维原始私有源特征用训练折 slots 拟合 PCA 压到 256 维;与 `SPR-dim-matched` 同为 256 维/slot、1280 维/clip。它的 MAE `0.559` 低于维度匹配 SPR 的 `0.701`,而 Macro-F1 和 Pearson 较低。SPR 主视图相对 RawPrivate-PCA 的 MAE 差为 `+0.138`,按 37 个 `video_id` 做 2,000 次 paired bootstrap 的 95% CI 为 `[+0.062, +0.216]`,区间未作多重比较校正。维度压缩后的原始特征保留了强度预测信息,但 learned decomposition 没有带来更好的回归效果。
|
||
|
||
直接比较两个同维视图时,`SPR-dim-matched − RawPrivate-PCA` 的 MAE 差为 `+0.142`,95% CI `[+0.076, +0.214]`;Macro-F1 差 `+0.020`,CI `[-0.094, +0.119]`;Pearson 差 `-0.192`,CI `[-0.412, +0.026]`。因此维度匹配以后,SPR 没有在强度回归上胜过 raw-source PCA;分类差异区间跨 0。
|
||
|
||
SPR 主视图相对 `TSFA+RawPrivate` 的 Macro-F1 差为 `-0.002`,95% CI `[-0.130, +0.114]`;MAE 差为 `+0.125`,CI `[+0.055, +0.197]`;Pearson 差为 `-0.297`,CI `[-0.555, -0.066]`。相对 math B0,Macro-F1 差 `+0.027` 的区间跨 0,MAE 差 `+0.132` `[+0.060, +0.204]`;相对 B4,Macro-F1 差 `-0.034` 的区间跨 0,MAE 差 `+0.104` `[+0.024, +0.188]`。因此情感分类没有显示出稳定优势,强度回归明显弱于 TSFA+RawPrivate 和 B0/B4 点估计。Pearson 也没有随 MAE 改善而同步提高。
|
||
|
||
#### shared/private 是否分开
|
||
|
||
| 诊断 | SPR 结果 | 解释 |
|
||
| --- | ---: | --- |
|
||
| modality probe accuracy:shared / private | 0.729 / 0.999 | private 可识别来源;shared 仍带有来源信息 |
|
||
| SP-noOrth-noRec(没有 private 训练损失)private source accuracy | 1.000 | 私有来源分类器即使在随机、未受训练的 private 支路上也饱和,因此不能将 private probe 高分解释为学到了私有语义 |
|
||
| T–A / T–V / A–V matched-vs-shifted AUC | 0.512 / 0.499 / 0.498 | 跨模态同槽匹配近似机会水平 |
|
||
| slot shuffle 后的对应 AUC | 0.499 / 0.498 / 0.496 | 打乱 slots 几乎没有破坏 shared correspondence |
|
||
| shared-only / private-only / both 重构 MSE | 0.563 / 0.442 / 0.422 | 合并略优于单支,但改善幅度有限 |
|
||
|
||
private 分支能够从输出识别来源 modality,但无 private 训练损失的 `SP-noOrth-noRec` 控制也达到 `1.000`;因此这个 probe 很可能部分读出了模态专属 adapter/encoder 或输入分布特征,不足以证明学到了有用的 private 语义。合并重构误差最低,但只比 private-only 略低;shared 的对应 AUC 接近 `0.5`,shuffle 控制几乎不变,shared/private 归一化 cross-covariance 仍在 `0.582–0.732`。综合判定为**没有证据支持成功实现 shared/private 语义解耦或跨模态共享对齐**。这里的 `0.60 AUC` 和 `0.05` shuffle drop 只用于首轮描述性判读,并非显著性阈值或人工对齐真值。不能仅凭私有来源 probe 高分宣称完成解耦。
|
||
|
||
#### private 来源 probe
|
||
|
||
单模态 private probe 中,Audio 的 Macro-F1 点估计最高(`0.445`),Vision 的 MAE 点估计最低(`0.657`);Audio 的 MAE 为 `0.664`。Audio 对极性分类和 Vision 对强度回归分别是当前点估计领先者,但两两 video-group bootstrap 区间均跨 0,且不同 view 的维数不同,因此不足以断言某个模态贡献最大。Audio+Vision 与三模态 private 拼接也没有稳定超过最佳单模态 probe。
|
||
|
||
#### 结论与后续
|
||
|
||
本轮没有理由把现有 TSFA 正式升级为 TSFA-SPR。现有结果更支持“原始源特征残差保留了强度信息”这一较窄结论,而不是“shared/private 已被正确分解”。情感分类和强度回归也不是由同一私有模态驱动:Audio 的分类 Macro-F1 点估计最高,RawPrivate-PCA / Vision 的回归 MAE 点估计更低,但都仍需更多数据与种子确认。
|
||
|
||
下一步优先检查同槽对比目标为什么未能通过 slot shuffle 验证,并用独立于 M4 slot convention 的人工/弱时间事件参照验证 shared correspondence;仅当结构诊断改善后,再运行 seed `3407`、`2026` 检查稳定性。当前为 100 条 clip、37 个来源视频、单 seed;bootstrap 区间不含 seed 不确定性,所有多重比较未校正。
|
||
|
||
模型权重、逐 clip 诊断、OOF 预测、维度与来源对照、配对区间和图表均保存在 [outputs/tsfa_shared_private](outputs/tsfa_shared_private/README.md)。运行方式:
|
||
|
||
```bash
|
||
uv run python -m q1.tsfa_shared_private --device cuda --seed 42
|
||
```
|
||
|
||
## Shared Information Definition:Similarity vs Correlation vs Predictability
|
||
|
||
### 研究问题与可比设置
|
||
|
||
这轮不再调整 SPR 网络,而把“shared information”拆成三种可检验的定义:
|
||
|
||
1. **Similarity / 相似性**:复用已训练的 SPR 权重,把各模态映射到 shared branch,再检查同一时间槽的表示能否支持跨模态对应。SPR 只载入推理,没有重训。
|
||
2. **Correlation / 相关性**:在每个外层训练折内先对三模态做 PCA(Text 64、Audio 24、Vision 64 维),再拟合 ridge-regularized MAXVAR/GCCA;共享维度固定为 32。留出片段通过训练折映射投影到共同空间。
|
||
3. **Predictability / 可预测性**:以另外两种模态预测目标模态,预测值定义为线性可预测成分,残差定义为当前模型下的私有成分。比较只用同槽输入、相邻 `±1` 槽上下文、源模态偏移 `-5…+5` 槽以及片段内独立时间打乱。所有偏移控制用槽位 6–43 计分,确保偏移与局部上下文不会碰到序列边界;每个控制都使用同一个训练好的预测器。
|
||
|
||
全部方法使用各外层训练折拟合的标准化统计量和既有冻结 `M4_sourceTime` 权重,对相同的 BERT、eGeMAPS、DeiT 原始序列池化到 50 个槽。五折按 `video_id` 分组,每折约 80 条训练、20 条留出;100 条样本各产生一次 OOF 预测。情绪标签只用于冻结表示后的探针,不进入 GCCA、预测器或 SPR 表征提取。
|
||
|
||
主要表示先按槽拼接各分支,再仅用训练折槽拟合 PCA,将每槽压到 256 维;池化为五个连续时间段后得到统一的 1,280 维 clip 向量。`RawPrivate-PCA` 复用既有训练折 PCA。情绪分类和回归探针分别是 `StandardScaler + LogisticRegression(C=0.05)` 与 `StandardScaler + Ridge(alpha=25)`,连续预测限幅到 `[-3, 3]`。`TSFA+RawPrivate` 为既有 6,845 维 OOF 结果;math B0/B4 使用 math 目录中已有 OOF 预测,未改动 math 文件。它们是外部性能参照,不属于 1,280 维匹配比较。
|
||
|
||
### 主要结果
|
||
|
||
| 表示 / OOF 探针视图 | 维数 | Accuracy | Macro-F1 | 折 Macro-F1 均值 ± SD | MAE | Pearson |
|
||
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
||
| RawPrivate-PCA | 1,280 | 0.560 | 0.297 | 0.281 ± 0.068 | **0.559** | **0.251** |
|
||
| Similarity-SPR(维度匹配) | 1,280 | 0.490 | **0.298** | 0.292 ± 0.126 | 0.672 | 0.106 |
|
||
| GCCA | 1,280 | 0.550 | 0.292 | 0.276 ± 0.072 | 0.581 | 0.176 |
|
||
| Predictive-Same | 1,280 | 0.530 | 0.255 | 0.255 ± 0.080 | 0.617 | 0.127 |
|
||
| Predictive-Local1(相邻 ±1 槽) | 1,280 | 0.530 | 0.270 | 0.261 ± 0.042 | 0.616 | 0.137 |
|
||
| TSFA+RawPrivate(外部参照) | 6,845 | 0.590 | 0.390 | 0.357 ± 0.118 | 0.572 | 0.368 |
|
||
| math B0(外部参照) | 未导出 | 0.600 | 0.361 | 0.337 ± 0.098 | 0.564 | 0.346 |
|
||
| math B4(外部参照) | 未导出 | 0.600 | **0.422** | 0.398 ± 0.089 | 0.593 | 0.199 |
|
||
|
||
标签分布为 Negative 18、Neutral 25、Positive 57;恒预测 Positive 的 Accuracy 为 0.57。因此不能把 0.49–0.56 的 1,280 维方法 Accuracy 解读为超过多数类基线。维度匹配组内,Similarity-SPR 的 Macro-F1 点估计仅比 RawPrivate-PCA 高 0.001,RawPrivate-PCA 的 MAE 和 Pearson 较好;没有一个 shared-information 定义同时改善分类和强度预测。作为额外对照,Similarity-SPR 原生 `shared-unfused + private-all` 1,920 维视图为 Macro-F1 0.389、MAE 0.697、Pearson 0.071;它不能与 1,280 维行直接排名。
|
||
|
||
### 对八个问题的回答
|
||
|
||
#### 1. 三种 shared-information 定义分别检验什么?
|
||
|
||
Similarity 检验表示能否被映射到可匹配的共同空间;GCCA 检验不同视图的投影在留出数据上是否共同变化;Predictability 检验同槽跨模态特征能否互相预测,以及预测之后剩下多少不能被当前线性预测器解释的残差。它们不是同一个数学目标,也不能只凭情绪分数相互替代。
|
||
|
||
#### 2. Predictability 是否找到同槽跨模态关系?
|
||
|
||
没有清晰的时间特异性。按视频组宏平均的留出 MSE 在偏移 `-5…+5` 间大多近乎平坦,没有稳定的零偏移最低点。以 Same-slot 为基准,Audio 在同槽模型下偏移 `-5` 的 MSE 只高约 4.3%,偏移 `+5` 反而低约 0.9%;Text 和 Vision 的变化也很小。更宽的 Local1 模型中,片段内打乱后 MSE 反而低于同槽:Text 约低 1.4%、Audio 低 4.6%、Vision 低 6.8%。这表示当前线性预测结果没有显示稳定的槽位对应证据。
|
||
|
||
预测原始目标的外层折平均 R² 对 Same-slot 的 Text/Audio/Vision 分别约为 `-2.74/-2.30/-1.27`;Local1 分别约为 `-5.10/-2.72/-1.37`。负 R² 表示留出预测没有优于用训练均值作参照。该线性预测器对原始目标本身都较弱,因此不能从这里推出数据不存在非线性或局部跨模态关系。
|
||
|
||
#### 3. 预测残差是否表现为私有信息?
|
||
|
||
按这里的操作定义,残差比原始目标更难由另外两模态的线性预测器解释。Same-slot 下,原始目标到残差的外层折平均 R² 从 Text `-2.74`、Audio `-2.30`、Vision `-1.27` 降到约 `-2.95`、`-2.78`、`-2.37`;残差预测 MSE 也更高。它只能说明残差对当前线性预测器不可预测,不能说明残差包含有用的、语义独立的私有信息。
|
||
|
||
#### 4. GCCA 是否在留出视频上建立了相关的 shared 表示?
|
||
|
||
没有。三组共享投影分量的留出平均相关为 T–A `-0.021`、T–V `0.013`、A–V `0.031`,均接近零。用共同 GCCA 表示重构留出原始池化特征的折平均 R² 为 Text `-0.258`、Audio `-0.181`、Vision `-0.525`,没有解释正向留出方差。训练折 GCCA 奇异谱在五折间的有效秩约 `102.2–103.9`,解释 90% 谱能量约需 `83–85` 个分量;这个谱形在折间相对稳定,但不等于留出跨模态相关稳定。
|
||
|
||
#### 5. shared、private 与合并表示对情感探针有什么影响?
|
||
|
||
各分支的输入维数不同,这些是诊断性探针,不是维度受控的分支因果比较。点估计也没有一致模式:Similarity-SPR 的 shared-only Macro-F1 为 `0.411`,private-only 为 `0.342`,合并为 `0.389`;GCCA 为 `0.385/0.311/0.316`;Predictive-Same 为 `0.297/0.288/0.284`;Predictive-Local1 则是 `0.296/0.349/0.297`。没有证据显示“shared + private”必然优于单支。Similarity-SPR 的 private Audio 单模态 Macro-F1 点估计为 `0.445`,但单模态维数不同,且未对这些多重探针比较作校正,不能据此断言 Audio 是稳定的私有信息来源。
|
||
|
||
#### 6. 维度匹配后哪个方法占优?
|
||
|
||
没有稳定胜者。五个 1,280 维表示的 Macro-F1 在 `0.255–0.298`,MAE 在 `0.559–0.672`;RawPrivate-PCA 的回归点估计最好,Similarity-SPR 的 Macro-F1 只领先 0.001。更高维 TSFA+RawPrivate、math B0/B4 只作为 OOF 外部参照,不与 1,280 维表示声称公平的表示维数胜负。
|
||
|
||
#### 7. 按 video_id 配对 Bootstrap 支持哪些差异?
|
||
|
||
每项差值均为左侧候选减右侧参照,2,000 次按 37 个来源视频重采样;Macro-F1、Pearson 越高越好,MAE 越低越好。区间为未校正的 95% 百分位区间。
|
||
|
||
| 配对差异 | Δ Macro-F1 [95% CI] | Δ MAE [95% CI] | Δ Pearson [95% CI] |
|
||
| --- | ---: | ---: | ---: |
|
||
| Predictive-Same − RawPrivate-PCA | -0.042 [-0.144, 0.036] | +0.058 [+0.012, +0.110] | -0.124 [-0.287, 0.032] |
|
||
| GCCA − RawPrivate-PCA | -0.005 [-0.072, 0.045] | +0.022 [+0.001, +0.043] | -0.076 [-0.146, -0.002] |
|
||
| Predictive-Same − Similarity-SPR | -0.043 [-0.112, 0.031] | -0.055 [-0.131, 0.026] | +0.021 [-0.199, 0.245] |
|
||
| Predictive-Same − TSFA+RawPrivate | -0.135 [-0.232, -0.028] | +0.046 [-0.009, +0.107] | -0.240 [-0.425, -0.079] |
|
||
| Predictive-Same − math B0 | -0.106 [-0.220, 0.005] | +0.053 [-0.000, +0.109] | -0.218 [-0.384, -0.059] |
|
||
| Predictive-Same − math B4 | -0.167 [-0.290, -0.045] | +0.024 [-0.035, +0.088] | -0.071 [-0.258, 0.116] |
|
||
|
||
Predictive-Same 的 MAE 高于 RawPrivate-PCA,区间不跨零;GCCA 对 RawPrivate-PCA 的 MAE 和 Pearson 也更差。Predictive-Same 与 Similarity-SPR 的三个区间都跨零。它在 TSFA+RawPrivate 的 Macro-F1 和 Pearson 上较低,但维数不同。B0/B4 的折分已核对与 Q1 固定五折一致;跨方法比较仍是探索性结果,未作多重比较校正。
|
||
|
||
#### 8. 本轮结论与下一步是什么?
|
||
|
||
这轮不支持宣布 Similarity、Correlation 或 Predictability 中任何一个建立了可靠的共享时序对应。Predictive 的 shift/shuffle 控制没有显示稳定的同槽优势;GCCA 的留出相关近零;已有 SPR 表示可以复用,但情绪 Probe 不足以证明它的 shared branch 真正对齐。下一步应先加入少量人工标注的跨模态事件时间,直接核验对应关系;在该参照能区分正确、错位和打乱之前,不继续围绕 SPR 结构做大规模调参。
|
||
|
||
### 质量检查、产物与限制
|
||
|
||
本次通过 Fedora WSL 中的 `uv` 环境在 NVIDIA GeForce RTX 5070 Ti 上运行,seed 为 42,总运行约 809.5 秒。原始特征、固定 M4 权重与 SPR 权重哈希、折分和环境写入运行清单。共生成 6,300 条 Probe 预测,覆盖 63 个方法/视图组合;每个组合都覆盖相同的 100 个 OOF 样本,没有重复、缺失或非有限预测值。math 目录只读;本次没有写入 math 文件。
|
||
|
||
Ridge 计算期间 scikit-learn 发出少量病态矩阵警告;运行完成且保存的预测均为有限数值,但小幅指标差异应谨慎看待。逐片段 R² 对短片可能因目标方差接近零而非常负,因此 shifted/shuffle 的主汇总和图使用按 `video_id` 宏平均 MSE;逐片段 R² 只保留作诊断。研究仍只有 100 条样本、37 个来源视频和一个随机种子;Bootstrap 没有包含随机种子不确定性,也没有多重比较校正。情感探针是下游效用诊断,不是对齐真值;本轮没有人工事件标注。
|
||
|
||
- [维度匹配结果与外部参照](outputs/shared_definition_comparison/dimension_matched_summary.csv)
|
||
- [全部 OOF 探针指标和逐样本预测](outputs/shared_definition_comparison/emotion_probe_metrics.csv)、[emotion_probe_predictions.csv](outputs/shared_definition_comparison/emotion_probe_predictions.csv)
|
||
- [GCCA 相关与谱诊断](outputs/shared_definition_comparison/gcca_summary.csv)、[shared_explained_variance.csv](outputs/shared_definition_comparison/shared_explained_variance.csv)
|
||
- [预测性同槽/错位/打乱控制](outputs/shared_definition_comparison/predictive_shift_summary.csv)、[逐片段控制](outputs/shared_definition_comparison/predictive_shift_controls.csv)、[私有残差可预测性](outputs/shared_definition_comparison/private_residual_predictability.csv)
|
||
- [视频组配对 Bootstrap](outputs/shared_definition_comparison/paired_contrasts.csv)、[私有来源探针](outputs/shared_definition_comparison/private_source_ablation.csv)、[折分](outputs/shared_definition_comparison/fold_assignments.csv)、[运行清单](outputs/shared_definition_comparison/run_manifest.json)
|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||
```bash
|
||
cd Q1
|
||
uv run python -m q1.shared_definition_comparison --device cuda --seed 42
|
||
```
|
||
|
||
如果只调整结果表或诊断图,可在已有完整产物上重新汇总,不会重跑五折:
|
||
|
||
```bash
|
||
uv run python -m q1.shared_definition_comparison --finalize-existing
|
||
```
|
||
|
||
## Shared Time, Private Content:修正版验证
|
||
|
||
### 概念与实验口径
|
||
|
||
本轮把“共享”限定为**公共时间坐标**:每条视频划成 50 个归一化时间位置;Text、Audio、Vision 在各位置保留各自的内容表示。跨模态同槽乘积和差值只是情感任务可选的交互特征,不表示三种模态有相同语义,也不构造 shared semantic encoder。
|
||
|
||
使用每个固定分组折对应的冻结 `M4_sourceTime` 权重池化原始 BERT、eGeMAPS、DeiT 特征。特征标准化、PCA 和情感探针只在训练折拟合;标签只进入下游探针。五折每折 80 条训练、20 条留组预测,完整覆盖 100 条样本和 37 个来源视频。运行使用 Fedora WSL 中的 `uv` 与 NVIDIA GeForce RTX 5070 Ti。
|
||
|
||
分类标签按严格符号映射为 Negative/Neutral/Positive,样本数分别为 18/25/57,恒预测 Positive 的 Accuracy 为 0.57。分类器为 LogisticRegression(C=0.05),直接强度回归为 Ridge(α=25),连续预测限幅到 [-3,3]。双头版本仍用同一个极性分类器,另以 Ridge(α=25) 预测 |label|,限幅至 [0,3] 后乘以预测极性;Neutral 输出严格为 0。
|
||
|
||
主维度控制先在训练折的 50 个时间槽上拟合每槽至多 256 维 PCA,再按五段顺序池化为 1,280 维片段向量。输入有效秩小于 256 的子集以零填充至相同宽度。私有分支单模态 PCA 使用 Text 64、Audio 24、Vision 64 维。Audio 只有 25 个原始维度,因此交互维度设为 d=24,交互写作 `[p_m ⊙ p_n ; |p_m-p_n|]`。交互候选 I1=TA、I2=TV、I3=TA+TV、I4=AV、I5=TA+AV、I6=TV+AV、I7=TA+TV+AV;I0 不含交互。
|
||
|
||
### OOF 主结果
|
||
|
||
| 新表示 | 片段维度 | Accuracy | Macro-F1 | 直接 Ridge MAE | Pearson | 双头 MAE |
|
||
|---|---:|---:|---:|---:|---:|---:|
|
||
| M4-TimeOnly-full-raw | 4,925 | 0.590 | 0.407 | 0.574 | 0.375 | 0.578 |
|
||
| Private-PCA T64/A24/V64 | 760 | 0.530 | 0.397 | 0.854 | -0.035 | 0.667 |
|
||
| Private-DimMatched-PCA256 | 1,280 | 0.560 | 0.297 | 0.559 | 0.251 | 0.618 |
|
||
| Subset-A-PCA256 | 1,280 | 0.540 | **0.414** | 0.858 | 0.059 | 0.746 |
|
||
| Subset-TV-PCA256 | 1,280 | 0.570 | 0.301 | **0.555** | 0.271 | 0.610 |
|
||
| Subset-TAV-PCA256 | 1,280 | 0.570 | 0.301 | 0.556 | 0.269 | 0.610 |
|
||
| TAV-I0 | 1,280 | 0.530 | 0.397 | 0.854 | -0.035 | 0.667 |
|
||
| TAV-I4(AV) | 1,280 | 0.490 | 0.400 | 0.734 | 0.116 | 0.784 |
|
||
| TAV-I7(TA+TV+AV) | 1,280 | 0.450 | 0.329 | 0.736 | 0.106 | 0.713 |
|
||
|
||
作为外部历史参照,旧 OOF 结果为:TSFA-old `0.540/0.431/0.820/0.104`,TSFA+RawPrivate `0.590/0.390/0.572/0.368`,RawPrivate-PCA `0.560/0.297/0.559/0.251`,SPR private-all `0.560/0.342/0.740/0.107`,GCCA `0.550/0.292/0.581/0.176`,math B0 `0.600/0.361/0.564/0.346`,math B4 `0.600/0.422/0.593/0.199`(顺序均为 Accuracy/Macro-F1/MAE/Pearson)。这些数字从历史预测文件读取,没有重训;特征维度和个别原探针细节不同,因此作为上下文对照,不宣称完全匹配的表示维度实验。新 `Private-DimMatched-PCA256` 与旧 `RawPrivate-PCA` 的 OOF 预测和指标逐项一致,构成实现复核。
|
||
|
||
### 对本轮问题的回答
|
||
|
||
1. **时间坐标是否合理?** 冻结 M4 的平均 MVR(ε=0.02) 为 0.00027,期望时间与 50 槽坐标的相关为 0.993,模态间平均时间 MAE 为视频时长的 0.060,时间相关为 0.968。这说明估计的坐标顺序平滑、模态时间大体接近;由于 M4 使用时间先验,这些数字不能证明语义事件已跨模态对齐。
|
||
2. **情感指标是否整体优于 B0/B4?** 没有。新方法最高 Macro-F1 是 Audio-only 的 0.414,低于 B4 的 0.422;最好直接回归 MAE 是 TV 的 0.555,略低于 B0 的 0.564。两项按 37 个视频组配对的 2,000 次 Bootstrap 差值区间都跨过 0:Audio Macro-F1−B4 为 -0.008 [-0.186, 0.133];TV MAE−B0 为 -0.009 [-0.053, 0.033]。不能据此声称有稳定提升。
|
||
3. **哪种模态更有用?** Audio-only 的 Macro-F1 点估计最高,但 Accuracy 为 0.540,低于 0.570 的多数类基线,而且强度 MAE 为 0.858。Vision 单模态分类 Accuracy 0.440,强度 MAE 1.157。TV 联合视图的直接 MAE 最低为 0.555;加上 Text 后基本不变为 0.556。当前小样本结果提示分类与强度可能依赖不同特征,但组间区间和多重比较限制了结论强度。
|
||
4. **TA/TV/AV 交互是否有稳定价值?** 没有观察到稳定的极性收益。I0 Macro-F1 为 0.397,I1–I7 为 0.329–0.400;I7 相对 I0 的 Macro-F1 差为 -0.068 [-0.175, 0.041]。I7 的直接 Ridge MAE 从 I0 的 0.854 降至 0.736,但区间为 -0.119 [-0.248, 0.016],仍远高于 TV 的 0.555。交互目前只能视作待验证的任务特征候选。
|
||
5. **双头是否比单头直接 Ridge 好?** 不普遍。全量原始池化的直接 MAE 0.574,双头 0.578;TV 直接 0.555,双头 0.610;维度匹配 PCA 直接 0.559,双头 0.618。双头确实改善了 PCA 私有表示的 MAE(0.854→0.667)和 Audio-only(0.858→0.746),但未成为全局最佳的强度预测方式。
|
||
6. **降维与维度匹配影响多大?** 按模态降至 T64/A24/V64 后,Macro-F1 为 0.397,但 MAE 从全量原始表示的 0.574 升至 0.854,表明这组压缩明显损伤了当前强度探针。联合 PCA 256/槽后为 1,280 维,指标为 `0.560/0.297/0.559/0.251`,与历史 RawPrivate-PCA 完全相同。固定输出宽度控制了向量长度,但低维模态子集的有效 PCA 秩仍较低;相同列数不代表相同信息量。
|
||
7. **修正后的理论定义是什么?** 当前证据支持把 M4 描述为一个冻结的**公共时间坐标提供器**,把 BERT/eGeMAPS/DeiT 特征描述为各自的**模态私有内容**;任何乘积/差值都明确归属于具体下游任务。此实验没有证明跨模态语义等价,也没有发现交互或情感性能可反向证明语义对齐的证据。
|
||
|
||
Audio Macro-F1−B4 的 95% 视频组 Bootstrap 区间跨零;维度匹配表示相对 B0 的 Macro-F1 差为 -0.064 [-0.204, 0.076]、MAE 差为 -0.005 [-0.050, 0.036],相对 B4 的 Macro-F1 差为 -0.125 [-0.283, 0.032]、MAE 差为 -0.034 [-0.089, 0.020],均不支持稳定胜负。交互和历史对照区间同样未作多重比较校正。
|
||
|
||
### 产物与复现
|
||
|
||
所有本轮文件在 [`outputs/shared_time_private_content/`](outputs/shared_time_private_content/):
|
||
|
||
- [运行结果与限制](outputs/shared_time_private_content/RESULTS.md)
|
||
- [OOF 指标](outputs/shared_time_private_content/metrics_oof.csv)、[逐样本预测](outputs/shared_time_private_content/predictions_oof.csv)
|
||
- [按视频组 Bootstrap 差异](outputs/shared_time_private_content/group_bootstrap_contrasts.csv)
|
||
- [冻结 M4 时间诊断](outputs/shared_time_private_content/temporal_monitoring.csv)
|
||
- [PCA 折内诊断](outputs/shared_time_private_content/pca_fold_diagnostics.csv)、[折分审计](outputs/shared_time_private_content/fold_manifest.csv)
|
||
- 九张图:结构、模态子集、交互消融、极性与强度模态差异、双头与 Ridge、维度控制、时间质量与任务误差、代表样本私有内容和 M4 权重。
|
||
|
||
```bash
|
||
cd Q1
|
||
uv run python -m q1.shared_time_private_content --device cuda --seed 42 --bootstrap-draws 2000
|
||
```
|
||
|
||
本轮每折训练/验证为 80/20,五折无 `video_id` 重叠,全部 100 条 OOF 预测完整且无重复。`math` 目录只读。研究仍只有 100 条片段、37 个来源视频和一个随机种子;Bootstrap 只表示当前来源视频上的抽样不确定性,不含随机种子不确定性,也未做多重比较校正。
|