题目重点:利用已有 caption/embedding 快速找相关视频,设计过滤、索引更新与水印幂等。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 已有caption与embedding;“打水印”是后续授权处理任务,不假定全库可任意修改。
解题路线
- 品牌query先解析实体与硬过滤,embeddingANN召回,再结合caption文本、品牌安全、版权和业务特征精排。早期多路召回防单向量漏重要关键词。
- 检索返回videoID和版本,不在查询主路径重编码或重新写全视频;水印任务进入独立队列,产生衍生asset而非直接覆盖原始内容。
- schema保留videoID/contentVersion/embeddingVersion/permissions/captionTimestamp;索引更新与视频删除授权变化都需要及时失效,防召回不可用或不合规项。
- 幂等key可由视频版本+watermark规格+广告任务构成,任务状态与输出对象一致提交;失败重试不生成重复资产。
手动走一遍
“某品牌跑鞋”ANN召回语义近的视频,过滤竞品/权限不足项,精排挑相关片段,再异步生成水印版。原视频删除后索引残留,结果读取仍需最终权限/存在性校验;不能只相信索引快照。
规模与取舍
向量存储O(Nd),查询成本依ANN参数与候选K,rerank与视频转码另计。队列任务吞吐不应拖慢检索P95。
易错点与追问
容易失分的边界
- 每次query扫描编码全部视频。
- 只用相似度忽略硬条件。
- 重复水印直接覆盖原视频。
继续深挖
- 多样性和品牌安全怎么进入精排?
- 索引回滚与衍生资产版本怎样关联?
