日期:2026-07-21
UGC 和商家素材的爆发,让内容审核从"人力够用"变成了"系统瓶颈"。我们当时服务的某头部美妆品牌商,大促期间一天要过审上万条图文与短视频,人工队列积压、违规漏放、版权投诉齐飞。本文复盘我们如何用"分模态—再融合"的多模态审核管线,把这件事做成可闭环、可灰度、可追责的工程系统。
电商平台 UGC 与商家素材持续增长,违规图文视频靠人工审核有三个绕不开的问题:一是慢,大促期间审核队列动辄积压数小时,商家投诉上架慢;二是漏,单纯靠人眼,涉黄、涉政、夸张宣传、医疗违禁词这类内容容易在疲劳时漏放,合规风险高;三是误杀,标准松了漏放、紧了一刀切误伤正常内容,用户体验和商家关系都受损。
更麻烦的是版权。商家素材里混用未授权图片、影视截图、明星肖像的情况很普遍,人工几乎没法逐帧比对。我们这个项目里,目标是建立一条覆盖图文、视频的多模态审核链路:先分模态识别违规,再把跨帧、跨模态证据融合做最终判定,最后留一条人工抽检闭环。底层同样跑在我们采用的 AI 私有化部署底座上(推理一体机形态,GPU 资源池化,满足版权库不出域的要求),调用统一经 AI 网关编排与计量。
系统覆盖四类核心场景:
第一,图文违规识别。对商品图、买家秀、Banner 做违规检测:涉黄涉政、违禁词(医疗/绝对化用语)、二维码导流、水印广告等,输出违规定类与命中区域。
第二,视频帧抽审。长视频按关键帧抽取,对抽出的帧做图文同款违规检测,避免"只在某一秒出现违规"漏过。
第三,版权与敏感检测。把素材指纹与内部版权库(已授权素材、品牌自有图、明星肖像白名单)做比对,识别未授权搬运、影视截图、肖像侵权。
第四,人工抽检闭环。模型判定的"高风险"直接拦截,"中风险"进人工队列,"低风险"放行但按固定比例抽检,抽检结果回流反哺模型阈值。
挑战一:多模态违规识别。 图文和视频本质是不同的模态,硬用一个端到端模型既贵又难调。我们的思路是先分模态:图像走视觉模型做目标/文字区域检测(OCR 取图上文字),文本走 NLP 模型做违禁词与语义判定,两者各自出"单模态分数",再融合。融合不是简单加权平均,而是按类目加权——涉黄以视觉分主导,违禁词以文本分主导。我们用网关的编排层实现"视觉模型并行 + 文本模型并行 + 融合函数":
orchestration:
parallel:
- vision_model: { endpoint: vm-nsfw, weight: 0.7, for: [porn, politics] }
- text_model: { endpoint: tm-banword, weight: 0.9, for: [ad, medical] }
fuse: weighted_max # 按类目取主导模态
fallback: human_queue # 任一模型超时则转人工挑战二:视频抽帧与跨帧关联。 一秒 25 帧全检成本爆炸,抽少了又漏。我们做法是"关键帧 + 场景切换检测":先用镜头边界检测(shot boundary)只在场景切换点抽帧,平均把帧数压到原来的约 1/20;再对连续命中做跨帧关联——单帧命中可能是误判(如正常皮肤特写),同一镜头连续 3 帧命中才升级为视频级违规。抽帧配置如下:
{
"shot_detection": "histogram_diff",
"threshold": 0.32,
"max_fps": 1,
"consecutive_hit": 3,
"rule": "same_shot_3hit => video_level_violation"
}挑战三:版权与敏感检测。 这是最容易被忽略、出问题最贵的环节。我们把版权检测前置到审核链路最前端,而不是事后补救。做法是对素材做感知哈希(pHash)+ 局部特征(SIFT)双路指纹,入库时和版权库做近邻检索;命中未授权库直接判"版权风险"并附带相似度证据,供人工确认。版权库本身用 Milvus 存向量,闭源不出域。检索示意:
fp = extract_fingerprint(media) # pHash + SIFT
hit = copyright_index.search(fp, topk=5)
if hit[0].similarity >= 0.91: # 高相似直接标版权风险
verdict = "COPYRIGHT_RISK"
evidence = f"match={hit[0].asset_id} sim={hit[0].similarity:.3f}"挑战四:误杀与体验权衡。 审核最难的不是检出率,是别误伤。我们的工程实践是"三级分流 + 抽检回流":高置信直接处置,低置信直接放行,中间地带进人工,且人工结果按类目统计误杀率,定期回写阈值。当某类目误杀率超过约 2% 时,自动放宽该类目阈值并告警。这条闭环靠网关计量层沉淀每类目的处置分布,运营可在管控台调参而不动模型。
案例片段(已脱敏): 某头部美妆品牌商大促期间,一条 38 秒口红试色视频被初版规则误杀,原因:第 12 秒出现"最"字口播被绝对化用语规则拦截。我们查看抽帧与跨帧关联日志:
shot#4 @12.3s: ocr="这款颜色最显白" -> BANWORD_HIT(abs) cross_frame: only 1/3 consecutive -> NOT upgraded final: PASS (单帧命中未达跨帧升级阈值) 调整后该 SKU 误杀率由 3.1% 降至 0.8%另一条商家图因混入未授权影视截图被版权检测前置拦截,证据相似度 0.94,人工复核确认后驳回,避免了一次潜在版权投诉。
以下为脱敏示意数据,口径为某头部美妆品牌商大促周期(约 2 周)上线前后对比:
| 指标 | 改造前 | 改造后 | 说明 |
|---|---|---|---|
| 违规拦截率 | 约 82% | 约 98% | 漏放显著下降,含视频跨帧命中 |
| 审核时效 | 平均约 3.5 小时 | 降至约 8 分钟 | 低风险自动放行,高风险秒级处置 |
| 误杀率 | 约 4.2% | 降至约 0.9% | 三级分流 + 抽检回流调参 |
| 人工抽检比例 | 约 100% 全量 | 降至约 12% | 仅中风险与抽检样本进人工 |
需要说明,拦截率提升主要来自视频跨帧关联和版权前置,时效提升来自低风险自动放行;约 12% 的人工抽检比例是为了维持可控误杀率而保留的"安全阀",并非越高越好。
第一,多模态先分模态再融合。别迷信一个万能端到端模型,分模态各自出分、按类目加权融合,工程上更好调参、更好排错,单模态故障也能降级。
第二,版权检测前置。版权问题的代价远高于普通违规,把它放在链路最前端拦截,比事后投诉处理成本低一个数量级。指纹 + 向量近邻检索是成熟可靠的组合。
第三,视频审核靠抽帧不靠全检。镜头边界检测把成本压到可接受区间,跨帧关联解决"单帧误判",这条规则直接决定了系统能不能跑在大促流量下。
第四,用"三级分流 + 抽检回流"平衡误杀与体验。判定不是非黑即白,把置信度中间地带交给人、把结果回流成阈值,系统才会越用越准。我们这个项目里,网关计量层沉淀的处置分布,是运营调参的唯一可信依据——没有数据支撑的"收紧规则"只会带来更多误杀投诉。