187 lines
12 KiB
Markdown
187 lines
12 KiB
Markdown
# 素材卡召回能力实测报告 V1.0
|
||||
|
|
|
|||
|
|
> 日期:2026-09-28|样本:5 条视频 / 15 张卡(戏剧类)+ **感官类全量 101 卡**|方法:以视频原始画面/台词为独立查询源
|
|||
|
|
|
|||
|
|
## 一、为什么做这次实验(前两轮作废原因)
|
|||
|
|
|
|||
|
|
| 轮次 | 查询源 | 问题 | 结论 |
|
|||
|
|
|:--|:--|:--|:--|
|
|||
|
|
| 第 1 轮 | 库内 `standard_question` 原文 | 查询即答案,开卷考试 | 作废(R@1 全 100%) |
|
|||
|
|
| 第 2 轮 | 卡片内「极致内容」字段 | **与 `standard_question` 同源**,语义泄漏 | 作废 |
|
|||
|
|
| **第 3 轮(本轮)** | **视频脚本的场次画面 + 台词原话** | 信息源完全隔离 ✅ | **有效** |
|
|||
|
|
|
|||
|
|
**隔离性验证**:抽查卡片正文(`answers`),全程为抽象结构描述,**不含具体场景名/品牌名/人名**(如 21728 卡正文只写"第一排绿色分类垃圾桶""两团发绿的臭气",无"垃圾站"字样)。视频原文与卡片文字在**语言层完全不同** → 实验有效。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 二、结论 A:查询源怎么拼(入库端无关,纯检索端)
|
|||
|
|
|
|||
|
|
5 条样本 × 6 种查询构造,命中率:
|
|||
|
|
|
|||
|
|
| 查询构造 | R@1 | R@3 | 均分 | 判断 |
|
|||
|
|
|:--|:--|:--|:--|:--|
|
|||
|
|
| **V1 全量原文**(画面+台词全带走) | **5/5** | 5/5 | **0.7187** | 🥇 最佳 |
|
|||
|
|
| **V5 原文截断 800 字** | **5/5** | 5/5 | **0.7187** | 🥇 并列最佳,**成本更低** |
|
|||
|
|
| V2 画面+场次标记 | 5/5 | 5/5 | 0.7089 | 🥈 接近最佳 |
|
|||
|
|
| V3 仅画面描述行(剥掉台词) | 5/5 | 5/5 | 0.7090 | 🥈 接近最佳 |
|
|||
|
|
| V4 仅台词 | **3/5** | 5/5 | 0.6641 | ⚠️ 明显下降 |
|
|||
|
|
| V6 仅场次标记(【景别|场景】) | 2/4 | 3/4 | 0.6184 | ❌ 几乎无效 |
|
|||
|
|
|
|||
|
|
### 三条硬结论
|
|||
|
|
|
|||
|
|
1. **画面信息 > 台词信息**。剥掉台词只留画面(V3)不掉分(0.709 vs 0.719);剥掉画面只留台词(V4)**R@1 从 5/5 掉到 3/5**。→ 印证素材卡"以画面内容为核心"的定位正确。
|
|||
|
|
2. **800 字截断即够**。V5 与 V1 分数完全相同(0.7187),说明**前 800 字已覆盖关键信息**,无须全文。
|
|||
|
|
3. **场次标记本身无效**("【特写镜头|手机屏幕】"这类),剔除。**须与画面描述句合并使用**。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 三、结论 B:检索时怎么拼(编导真实使用场景)
|
|||
|
|
|
|||
|
|
模拟编导「想找夫妻因生活小物吵架的开场」的真实检索,4 种问法:
|
|||
|
|
|
|||
|
|
| 问法 | R@1 分数 | 第1-2名间隔 | 判断 |
|
|||
|
|
|:--|:--|:--|:--|
|
|||
|
|
| 纯口语需求「夫妻因为家里的小东西吵架,怎么开场」 | 0.6986 | 0.0545 | ✅ 能召回,但**间隔过小易误召** |
|
|||
|
|
| 需求 + **结构词**(+反差/痛点) | 0.7169 | **0.1468** | ✅✅ 间隔放大 2.7 倍 |
|
|||
|
|
| 需求 + **画面词**(+老公被吵到发火/老婆委屈) | 0.7135 | **0.1605** | ✅✅ 间隔最大 |
|
|||
|
|
| 需求 + **检索后缀**("有没有…用来…?"完整句式) | **0.7326** | 0.1526 | ✅✅ 分数最高 |
|
|||
|
|
|
|||
|
|
### 结论
|
|||
|
|
|
|||
|
|
- **纯口语问法可用但不够**:第 1 命中没问题,但第 1、2 名只差 0.05,接近并列 → 实际使用会"翻错页"。
|
|||
|
|
- **推荐拼法(按性价比排序)**:
|
|||
|
|
1. **需求句 + 结构词**(如「…的开场 反差 痛点」)— 一句话成本,间隔拉大 2.7 倍
|
|||
|
|
2. **需求句 + 画面词**(补一句具体画面,如"老公被吵到发火、老婆委屈")— 间隔最大
|
|||
|
|
3. **完整检索后缀句式**(照卡片问法写)— 分数最高,但编导写起来最累
|
|||
|
|
- ⚠️ **关键词堆叠无效**(如只丢"吵架 噪音 开场 反差"),须**成句**。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 四、结论 C:入库问法**不是两类,而是 5 种形态**
|
|||
|
|
|
|||
|
|
> ⚠️ 本节为 **V1.1 修订**。初版曾把入库问法粗分为「戏剧类 vs 感官类」**两类分叉** —— **实测推翻**:形态与标签不一一对应,**同一标签内也混杂多种形态**(如 `视觉冲击` 67 条含 F1/F2/F3/F4 四种)。真实决定因素是**批次模板时代**,不是标签。
|
|||
|
|
|
|||
|
|
### 5 种形态分布(全库 631 条实测)
|
|||
|
|
|
|||
|
|
| 形态 | 模板 | 条数 | 占比 | 典型 |
|
|||
|
|
|:--|:--|--:|--:|:--|
|
|||
|
|
| **F3 需求壳句** | `有没有「{抽象结构}」…?` / `想找一条「…」` / `我需要一个「…」` | **318** | **50.4%** | `有没有「内行人一口尝出食材被掉包」的悬念开场钩子?` |
|
|||
|
|
| **F4 白描事件陈述** | 纯事件描述,**无发问壳** | **202** | **32.0%** | `账单金额超高但客人毫无反应的反差` |
|
|||
|
|
| **F1 编号+呈现后缀** | `{id}-{n}|{事件名} —— 这条素材里的极致事件具体是怎么呈现的?` | **75** | **11.9%** | `34020-3|陪诊推老人回家,老伴转身烙饼塞进怀里 —— …` |
|
|||
|
|
| **F2 事件+复用后缀** | `{事件名},这个极致事件怎么复用到短视频里?` | **30** | **4.8%** | — |
|
|||
|
|
| **F5 结论判据式** | 讲道理不讲事件(判据/结论句) | **6** | **1.0%** | — |
|
|||
|
|
|
|||
|
|
### 按标签交叉:同标签内多形态并存
|
|||
|
|
|
|||
|
|
| 标签 | n | F1 | F2 | F3 | F4 | F5 | 主形态 |
|
|||
|
|
|:--|--:|--:|--:|--:|--:|--:|:--|
|
|||
|
|
| 反差 | 175 | 14 | 12 | **94** | 54 | 1 | F3 |
|
|||
|
|
| 反常识 | 119 | 0 | 3 | **75** | 41 | 0 | F3(**全无编号前缀**) |
|
|||
|
|
| 价值观冲击 | 93 | 4 | 1 | **56** | 32 | 0 | F3 |
|
|||
|
|
| 视觉冲击 | 67 | 2 | 2 | **36** | 25 | 2 | F3(**4 种形态并存**) |
|
|||
|
|
| 自嘲反差 | 44 | 3 | 3 | **27** | 11 | 0 | F3 |
|
|||
|
|
| 细节专业 | 32 | 6 | 2 | 13 | 10 | 1 | F3(接近五五) |
|
|||
|
|
| 感官沉浸 | 26 | **12** | 0 | 6 | 7 | 1 | **F1** |
|
|||
|
|
| 氛围沉浸 | 25 | **16** | 2 | 0 | 7 | 0 | **F1(最纯)** |
|
|||
|
|
| 预见式服务 | 20 | **9** | 1 | 5 | 5 | 0 | **F1** |
|
|||
|
|
| 品质对比 | 19 | **9** | 3 | 3 | 4 | 0 | **F1** |
|
|||
|
|
| 食材极致 | 9 | 0 | 1 | 1 | **6** | 1 | F4 |
|
|||
|
|
| 难度极限 | 2 | 0 | 0 | **2** | 0 | 0 | F3 |
|
|||
|
|
|
|||
|
|
**关键规律**:F1 集中出现在**后期补采批次**(氛围沉浸/感官沉浸/预见式服务/品质对比),F3/F4 集中在早期批次。
|
|||
|
|
→ 那 **75 条 `{video_id}-{序号}|` 前缀全部落在 F1 型上**,是后期批次模板的产物,**不是"感官类专属"**。
|
|||
|
|
|
|||
|
|
### 结论 C-2:感官类全量扩测(101 卡 / 97 有效)
|
|||
|
|
|
|||
|
|
| 查询构造 | n | R@1 | R@3 | 均分 | 均间隔 |
|
|||
|
|
|:--|--:|:--:|:--:|:--:|:--:|
|
|||
|
|
| `事件名`(最简) | 97 | **97** | 97 | 0.7739 | 0.1686 |
|
|||
|
|
| `事件名 + 意图句` | 97 | **97** | 97 | 0.7727 | 0.1690 |
|
|||
|
|
| `事件名 + 结构词` | 97 | **97** | 97 | **0.7809** | 0.1601 |
|
|||
|
|
|
|||
|
|
| 标签 | n | R@1 | 均分 |
|
|||
|
|
|:--|--:|:--:|--:|
|
|||
|
|
| 品质对比 | 19 | 19/19 | 0.7905 |
|
|||
|
|
| 感官沉浸 | 26 | 26/26 | 0.7886 |
|
|||
|
|
| 氛围沉浸 | 25 | 25/25 | 0.7802 |
|
|||
|
|
| 预见式服务 | 19 | 19/19 | 0.7668 |
|
|||
|
|
| 食材极致 | 8 | 8/8 | 0.7681 |
|
|||
|
|
|
|||
|
|
### 三条洞察
|
|||
|
|
|
|||
|
|
1. **感官类召回率 100%,且加不加意图/结构词几乎无差异**(三种查询均分差 < 0.01)—— 与戏剧类(结论 B:纯口语间隔仅 0.054,补词后 ×2.7)**结论相反**。
|
|||
|
|
**原因**:F1 型问法**本身即完整事件描述**,查询信息量已饱和;F3 型是**抽象结构**,必须外部补词才有区分度。
|
|||
|
|
2. **召回率由「入库问法形态」决定,不由标签决定** → 想提升某类召回,应改**该批次的入库模板**,而非改标签。
|
|||
|
|
3. **同源卡会聚团**:感官类第 2 名常是同视频的其他卡(21728-1 的第 2 名是 21728-3)→ 利于"找一个事件带出同源素材"。
|
|||
|
|
|
|||
|
|
### 反例:4 条「无效查询卡」(仅存于感官类)
|
|||
|
|
|
|||
|
|
`100000019 / 100000020 / 100000021 / 100000026` —— 形如 `找一条低成本做出硬菜的极致美食事件素材`,**整句无「」包裹的事件名**,剥壳后为空。
|
|||
|
|
属 **F3 壳句的退化写法**(只有需求没有具体事件),**是入库模板缺陷,不是检索问题**;已从 97 卡统计中剔除(无有效查询可比)。
|
|||
|
|
|
|||
|
|
> 🔎 **副产品**:本轮沉淀的剥壳函数 `extract_name()`(`15_sensory_recall.py`)对 **97 条壳句全部剥壳成功** → 壳句模板是**规则化**的,批量改造成本低。
|
|||
|
|
|
|||
|
|
> 另注:初版猜测"75 条前缀集中在感官类" **已被推翻** —— 实际是**集中在 F1 型**(跨感官/戏剧标签)。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 五、附带发现
|
|||
|
|
|
|||
|
|
1. **卡片 `standard_question` 带 `{video_id}-{序号}|` 前缀**:631 条中 75 条带前缀,**全部落在 F1 型**(后期补采批次)。→ 前缀会占用向量语义空间,若确认无检索价值可考虑去掉(**待评估,见待办**)。
|
|||
|
|
2. **V6 触发 HTTP 400**:查询文本过短时接口报错 → **查询需设 ≥40 字最短长度保护**(已写入 RUNBOOK 红线 14)。
|
|||
|
|
3. **样本代表性已补齐**:戏剧类 5 条 + **感官类全量 101 卡**,两类均已实测。
|
|||
|
|
4. **库内总量核对(2026-09-28 实测)**:**631 条**(此前记忆"480 条"已过时)。12 标签真实分布:
|
|||
|
|
|
|||
|
|
| 标签 | 数量 | 标签 | 数量 |
|
|||
|
|
|:--|:--|:--|:--|
|
|||
|
|
| 反差 | 175 | 感官沉浸 | 26 |
|
|||
|
|
| 反常识 | 119 | 氛围沉浸 | 25 |
|
|||
|
|
| 价值观冲击 | 93 | 预见式服务 | 20 |
|
|||
|
|
| 视觉冲击 | 67 | 品质对比 | 19 |
|
|||
|
|
| 自嘲反差 | 44 | 食材极致 | **9** |
|
|||
|
|
| 细节专业 | 32 | 难度极限 | **2** |
|
|||
|
|
|
|||
|
|
→ **修正**:`难度极限`/`食材极致` **不是 0 覆盖**(此前记忆有误),定向补采(批次 32 起)已见效。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 六、待办
|
|||
|
|
|
|||
|
|
- [x] ✅ **结论 A/B/C 已写入 RUNBOOK**(2026-09-28):新增 §2.4「检索与召回最佳实践」;红线区新增 13(`vector_threshold=0.0` 陷阱)、14(查询过短 400);步骤 6/7 已加交叉引用
|
|||
|
|
- [x] ✅ **临时脚本已正式化**:`13_recall_map/parse/bench/summary.py` + `14_form_audit.py` + `15_sensory_recall.py` + `recall_cache/`
|
|||
|
|
- [x] ✅ **结论 C 已修订为 5 形态**(原"两类分叉"表述已推翻并替换)
|
|||
|
|
- [x] ✅ **感官类扩测已完成**:101 卡(97 有效),R@1 = 100%
|
|||
|
|
- [x] ✅ **75 条编号前缀已评估完成**(见下节「八、编号前缀专项评估」)
|
|||
|
|
- [ ] **入库问法是否统一为 F1 型**(待决策):F1 型实测召回 100% 且查询无需补词;F3/F4 型(占 82.4%)为早期批次遗留 → **是否批量回炉改造,需按使用场景决策**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 八、编号前缀专项评估(任务 3,仅评估不清理)
|
|||
|
|
|
|||
|
|
**评估对象**:75 条 `{video_id}-{序号}|` 前缀(如 `25106-1|一把扯下整排厚重假睫毛…`)
|
|||
|
|
**分布**:全库 631 条中 75 条带前缀,**全部落在 F1 型**(后期补采批次),分属 9 个标签:
|
|||
|
|
`氛围沉浸 16 / 反差 14 / 感官沉浸 12 / 品质对比 9 / 预见式服务 9 / 细节专业 6 / 价值观冲击 4 / 自嘲反差 3 / 视觉冲击 2`
|
|||
|
|
|
|||
|
|
### 五个判据
|
|||
|
|
|
|||
|
|
| # | 判据 | 实测结果 | 结论 |
|
|||
|
|
|:--|:--|:--|:--|
|
|||
|
|
| 1 | **是否稀释语义** | 用不含编号的纯语义查询("抽出一整排厚重的假睫毛,卸妆棉整块糊上来")→ 带前缀卡仍 **R@1=0.7471** | ✅ 未稀释 |
|
|||
|
|
| 2 | **是否造成同源污染** | 单独搜纯编号 `25106` / `21728` → **返回空**(未达 0.5 阈值) | ✅ 无污染 |
|
|||
|
|
| 3 | **是否影响召回率** | 带前缀 46 卡均分 **0.7984** vs 不带前缀 51 卡 **0.7650** | ✅ 无负作用(差值来自批次差,非编号) |
|
|||
|
|
| 4 | **是否重复冗余** | 编号同时出现在 `standard_question` 与 `answers` 头部 | ⚠️ 冗余,但不影响召回 |
|
|||
|
|
| 5 | **是否影响展示** | 检索结果列表中前缀占**前 6 个字符**,编导扫列表先看到编号而非事件名 | ⚠️ **唯一的实际影响** |
|
|||
|
|
|
|||
|
|
### 评估结论
|
|||
|
|
|
|||
|
|
> ✅ **建议保留,不必清理。**
|
|||
|
|
> 编号对**检索能力零危害**(判据 1-3 全部通过),且它是**卡片与源视频的可追溯锚点**(编导看到 `25106-1` 可回查原视频)。
|
|||
|
|
> ⚠️ 唯一问题在**展示层**:列表里前缀占据视觉首位。若将来要优化,**推荐做法是「保留入库、仅在做 UI 展示时前端剥离前缀」**——而不是从库里删掉(删掉会丧失溯源能力)。
|
|||
|
|
|
|||
|
|
**风险评估**:清理成本 ≈ 75 次 DELETE + 重导(RUNBOOK §2.5 回炉链路),且**重导后索引重建、有召回波动风险** → **为纯展示收益不值得付这个成本**。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 七、一句话总结
|
|||
|
|
|
|||
|
|
**素材卡语义表达是有效的**:仅凭视频原始画面/台词(信息源完全隔离),即可在 631 条库中把对应卡召回至**第 1 名** —— 戏剧类需"画面 + 结构词"补词(区分度 ×2.7),**感官类(F1 型入库)裸事件名即 100% 命中**。**召回率的决定变量是「入库问法形态」(F1 优于 F3),不是标签。**
|