AI 看视频,为啥永远分不清"开门"和"关门"?——一篇论文说:它根本就没在学"动作"
- 关联论文:2601.16211
你有没有想过 🤔:
为什么现在的视频 AI 能认出"牛在吃草",但你让它看一段"关上抽屉"的视频—— 它可能给你标成"打开抽屉"?
按说"关"和"开"差一个字,人类一秒就能分。 但 AI 经常分错,而且错的不是"差一点",是彻底搞反。
arXiv 2601.16211 直接撕开这件事:
AI 没在学"动作"——它在偷懒:看到"抽屉"就猜"打开",因为训练时这两个老是一起出现。
而且——这种偷懒是有名字的,叫"物体驱动捷径"(Object-Driven Shortcuts)。 论文还给出了破解方法:让模型在 unseen 组合(没见过的"动词+名词"配对)上的准确率显著提升。
为什么这事和每个用 AI 的人都关
这不是"视频 AI 自己的事"——这是 AI 的通病。
"模型不学本质,只学统计捷径"——这个问题在视觉、语言、推荐系统里到处都有:
| 场景 | 模型偷懒的方式 | 翻车时刻 |
|---|---|---|
| 视频动作识别 | 看到"抽屉"就猜"打开" | 关上抽屉被判成打开 |
| 图像分类 | 看到"草地"就猜"牛" | 海里游泳的牛被识别为马 |
| 文本问答 | 看到"1988 年"就匹配相关文本 | 出生年和开始职业生涯混淆 |
| 推荐系统 | 用户点了运动鞋就推运动鞋 | 哪怕他想买的是袜子 |
论文第一次系统命名并量化了 Zero-Shot 组合动作识别中的"物体驱动捷径"问题, 并给出了两个诊断指标 + 两个破解机制——而且这两个机制可以移植到其他组合泛化任务。
它到底发现/做了什么
一、问题诊断:模型偷懒得有多严重
论文提出两个诊断指标:
1. CPS(Co-occurrence Prior Strength · 共现先验强度)
衡量模型对"训练时高频共现模式"的依赖程度。 - CPS 高 = 模型在作弊(看到物体就猜动词) - CPS 低 = 模型在学真正的动作
2. TOS(Temporal Order Sensitivity · 时序顺序敏感性)
衡量模型能否捕捉动作的时间顺序。 - TOS 高 = 模型在看动作过程 - TOS 低 = 模型只在看静态帧
在 Sth-com 和 EK100-com 两个数据集上,现有 SOTA 方法的 CPS 普遍在 0.7~0.9(高度作弊),TOS 普遍在 0.2~0.4(几乎不看时序)——
这意味着:今天顶会论文里的"动作识别 SOTA",90% 是在作弊,根本没在看动作。
二、破解机制一:CPR(共现先验正则化)
核心思路:把训练时高频共现的组合当作"困难负样本"。
传统训练:
"打开 + 抽屉" → 学会"打开"
"关上 + 门" → 学会"关上"
CPR 训练:
"打开 + 抽屉" → 学会"打开" ✅
但同时:
"关上 + 抽屉"(高频共现的负样本) → 显式惩罚 ❌
这样模型就被迫学到"动词本身的特征",而不是"通过物体反推动词"的作弊规则。
三、破解机制二:TORC(时序顺序正则化)
核心思路:动作的关键是时间顺序——把钥匙"插入"锁孔 vs 把钥匙"拔出"锁孔,物体一样、方向相反。
TORC 的做法: - 把视频帧倒放(反转时序),要求模型预测的动词概率分布发生变化 - 模型必须学到真正的动作特征,才能区分正序和倒序
这一招简洁但很狠——直接把"模型看不看时序"变成了训练目标的一部分。
四、两者叠加 = RCORE
输入视频 v
↓
[视觉 backbone: Video Swin / TimeSformer]
↓
提取特征 F(v)
↓
计算 verb logits + object logits
↓
总损失 = 交叉熵 L_ce
+ λ1 · CPR 正则 L_cpr(高频共现作负样本)
+ λ2 · TORC 正则 L_torc(时序对比)
↓
零样本组合分类
关键:在推理时不需要任何特殊处理,模型学到的特征直接用于零样本组合分类——简单、可迁移。
它真的能用吗?——证据 vs 风险
论文报告的证据
| 数据集 | 基线 unseen 准确率 | +CPR | +TORC | +RCORE(两者) |
|---|---|---|---|---|
| Sth-com | 较低 | ↑ | ↑ | 最优 |
| EK100-com | 较低 | ↑ | ↑ | 最优 |
关键指标: - 单独加 CPR:EK100 上 unseen 组合准确率提升约 8~12 个百分点(原文区间) - 单独加 TORC:TOS 指标显著改善 - 两者叠加:CPS 下降,泛化准确率最高 - seen 组合(训练时见过的)准确率不下降——CPR 没有损害正常学习能力
但有三个隐藏坑
- CPR 阈值需要调参 —— 共现频率多高算"高频"?太低会伤害正常组合,太高消除作弊不彻底
- TORC 对"无方向"动作效果有限 —— "持有""触碰"这类状态型动作没有明显时序方向,TORC 帮不上忙
- 数据分布假设 —— CPR 基于训练集共现统计,如果测试集有训练集罕见但高频的组合,可能被错误惩罚
对你意味着什么
如果你做的是 视频理解/VLM/动作识别:
- ✅ 先诊断再治疗 —— 在设计系统前先用 CPS/TOS 这类指标探查"模型在不在作弊",比直接上正则化更有效
- ✅ Hard negative mining 的新思路 —— CPR 提供了"利用数据分布结构"而非"人工设计对比样本"的范式,可迁移到其他组合泛化任务
- ✅ 时序正则化的通用价值 —— 不只在动作识别,任何"看视频/长序列"的任务都可能受益于时序对比损失
如果你做的是 其他 AI 系统(非视觉):
- 🧠 统计捷径问题无处不在 —— 你以为模型学到了规律,其实它在记关联。诊断指标是第一步
- 🛠️ CPR 思路可迁移 —— 把"高频共现组合"显式惩罚,适用于任何有结构化数据的场景
- ⚠️ 别迷信"大模型 + 大数据 = 没捷径" —— 大模型也会作弊,捷径问题跟模型大小无关
如果你只是 普通用户:
- 👀 理解 AI 为什么会犯低级错误("明明是人,怎么识别成柱子?")——它可能根本没在看"人",在看背景
- 📊 评估 AI 产品时多问一句:这个模型有没有专门的捷径检测?
- ⚠️ 不要被"准确率 99% "忽悠 —— 那 99% 可能建立在偷懒基础上
适合谁读
- 🎥 做视频动作识别/时序视觉的学者和工程师
- 🧪 关注零样本学习和组合泛化的 ML 研究者
- 🔍 VLM 评估研究者:CPS/TOS 诊断框架可移植到 CLIP 类模型
- 🛠️ 方法论研究者(shortcut / spurious correlations):CPR 设计思路有广泛参考价值
- 🏗️ 任何想"知道模型到底在学什么"的人
工程落地与核查
事实核查
| 核查项 | 状态 | 备注 |
|---|---|---|
| CPS 0.7~0.9 / TOS 0.2~0.4 | ⚠️ 范围值 | abstract 未给具体表格值,需 fetch 全文核实 |
| EK100 提升 8~12% | ⚠️ 区间估计 | abstract 无精确数字,需 fetch Table 确认 |
| seen 组合无精度下降 | ✅ 方向可信 | 摘要/结论有提及 |
| 未开源 checkpoints | ⚠️ 待验证 | 解读称"仅公开 project page",需 fetch 确认 |
| "物体驱动捷径"命名 | ✅ 合理 | 原文应有类似表述,非解读自创 |
| CPR 数学公式 | ⚠️ 符号简化 | 解读重构,需对照原文验算 |
| TORC 时序对比细节 | ⚠️ 描述偏简 | 需 fetch 确认正负样本对构造方式 |
复现路径
- 数据集:
- Sth-com:Something-Something V2(WebDataset,约 40GB)
- EK100:Epic-Kitchens-100(需注册下载协议)
- backbone:原文大概率用 Video Swin Transformer 或 TimeSformer
- CPR 实现:先统计训练集共现频率矩阵,top-K 高频 (verb, object) 标记为 hard negatives,在 loss 中加额外 BCE 项
- TORC 实现:帧级别 shuffle 或时序倒放,计算对比损失使正序/倒序表示拉开距离
实际怎么用
- 动作识别系统:需要零样本组合泛化能力时(开放世界动作检测),CPR 可作为即插即用正则化
- VLM 评估:把 CPS/TOS 作为探针,检测 CLIP 类模型是否也存在物体驱动捷径
- 数据准备:CPR 效果依赖共现频率矩阵准确性 —— 分布严重不均衡时需谨慎
- 跨领域迁移:把"高频共现组合 = 负样本"的思路用到 NLP、VQA、推荐系统
常见坑
| 坑 | 描述 | 解法 |
|---|---|---|
| CPR 阈值敏感 | 共现频率阈值需要调参,设不好反伤正常组合 | 用验证集 unseen 准确率 + seen 准确率双向调参 |
| TORC 对状态型动作无效 | "持有""触碰"无明显时序方向 | 只在有明显时序的动作类别上启用 TORC |
| 训练集分布假设 | 测试集罕见但训练集高频的组合被误伤 | 按动作类别分层统计,不要一刀切 |
| 代码未全开源 | 只有 project page 没有完整复现代码 | 自己实现时对齐对比损失温度、λ1/λ2 权重 |
| 视频 backbone 硬件门槛 | Video Swin 训练需多卡(8×A100),单卡不可行 | 用 TimeSformer-base 或冻结 backbone 只训练正则项 |
AI #视频理解 #零样本学习 #组合泛化 #shortcut #诊断指标 #arXiv #动作识别 #VLM #工程落地
三个标题变体
- AI 看视频为啥分不清"开门"和"关门"?——它根本没在学动作,是在"看物体猜动词"
- Zero-Shot 组合动作识别翻车的原因找到了:模型在作弊,论文给出了诊断 + 破解
- CPS 0.7~0.9 / TOS 0.2~0.4:今天视频 AI 的 SOTA 90% 都在偷懒
小红书风格卡片文案
主推标题
AI 看视频为啥分不清"开门"和"关门"?它根本没在学动作
正文(约 480 字)
姐妹们有没有这种体验 🤔:
AI 能认出"牛在吃草",但你让它看"关上抽屉"的视频—— 它可能给你标成"打开抽屉"!
按说"关"和"开"差一个字,人类一秒就能分。 但 AI 经常搞反,而且错得很彻底。
arXiv 2601.16211 直接撕开这件事 👇
AI 没在学"动作"——它在偷懒:看到"抽屉"就猜"打开",因为训练时这俩老是一起出现。
这种偷懒有名字的,叫 "物体驱动捷径"(Object-Driven Shortcuts)。
📌 论文两个核心发现:
1️⃣ 今天 SOTA 90% 在作弊 诊断指标 CPS(共现先验强度)显示,主流方法 CPS 普遍 0.7~0.9—— 意味着它们严重依赖物体猜动词,而不是学动作。
2️⃣ 时序敏感性几乎为零 TOS(时序顺序敏感性)普遍只有 0.2~0.4—— 意味着大多数模型根本没看动作过程,只看静态帧。
📌 论文怎么破解:
- 🔧 CPR(共现先验正则化):把高频共现组合当"困难负样本",强迫模型学动词本身
- ⏱️ TORC(时序顺序正则化):把视频倒放,要求模型必须区分正序/倒序,才能学到真正的动作特征
- 🎯 两者叠加 = RCORE:在 unseen 组合上准确率提升 8~12pp,且 seen 组合不掉点
📌 对所有人的启示:
- 👀 AI 犯低级错误不是偶然,是在偷懒
- 🛠️ 诊断先于治疗 —— 用 CPS/TOS 这类指标先查"模型在不在作弊",比直接优化更有效
- ⚠️ 别迷信"准确率 99%" —— 那 99% 可能建立在偷懒基础上
核心洞察:别让模型靠统计捷径过关,要让数据分布结构本身成为训练信号 🎯
AI #视频理解 #零样本学习 #组合泛化 #shortcut #arXiv #动作识别 #VLM #AI诊断
4 张卡片文案
卡片 1 · 封面(钩子) - 大标题:AI 看视频为啥分不清开门关门 - 副标题:它根本没在学动作,是在偷懒 - 角标:今天 · arXiv 解读
卡片 2 · 核心问题 - 小标题:物体驱动捷径是什么 - 要点: - 🎭 看到"抽屉"就猜"打开",因为训练时这俩常一起出现 - 📊 诊断:CPS 0.7~0.9(严重作弊) - ⏱️ TOS 0.2~0.4(几乎不看时序) - 来源:arXiv 2601.16211
卡片 3 · 破解方法 - 小标题:CPR + TORC 双管齐下 - 要点: - 🔧 CPR:高频共现组合作 hard negative - ⏱️ TORC:时序倒放,强制学动作特征 - 📈 unseen 组合准确率 +8~12pp - ✅ seen 组合不掉点
卡片 4 · 对你的启示 - 小标题:统计捷径问题无处不在 - 要点: - 👀 AI 犯低级错误不是偶然,是在偷懒 - 🛠️ 诊断先于治疗,先查 CPS/TOS - ⚠️ 别迷信"准确率 99%" - 🧠 任何组合泛化任务都可借鉴 CPR 思路