整理 Q1-Q3 实验代码与结果
This commit is contained in:
+309
-1
@@ -309,7 +309,7 @@ uv run python -m q1.m4_shared_latent_eval --device cuda --seed 42 --probe-epochs
|
||||
|
||||
### TSFA:冻结时间候选范围与局部内容选择
|
||||
|
||||
在上述 D5/M4 结果之上,本轮验证“先用时间确定候选范围,再在范围内按内容选择”能否同时改善时间定位和跨模态内容对应。五折 `M4_sourceTime` 检查点保持冻结;每个共享槽的 M4 注意力期望时间作为候选中心,主方案在归一化时间 `±0.10` 的范围内,用文本内容查询音频和视觉内容。局部语义分支只用训练折的同槽正例和相隔 `±2、±3、±5` 槽的难负例训练 40 个 epoch。它的 Q/K 不显式接收源时间码、位置编码或槽编号;M4 选中的内容仍可能间接携带时间。情绪标签没有进入训练。原有 BERT 文本、eGeMAPS 音频和 DeiT 视觉特征均保持不变。
|
||||
在上述 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 是三个正向跨模态映射在归一化视频时间上的平均,越低越好。
|
||||
|
||||
@@ -354,3 +354,311 @@ Fedora WSL 复现(在 `deep_learning/Q1` 中执行,Python 环境由 `uv` 管
|
||||
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 只表示当前来源视频上的抽样不确定性,不含随机种子不确定性,也未做多重比较校正。
|
||||
|
||||
Reference in New Issue
Block a user