当前位置: 首页 > news >正文

抖音推荐算法深度揭秘:当你刷视频时,AI 正在用 512 维向量“刷”你

你以为你在刷抖音?不,是抖音在“刷”你。
每一秒的滑动、每一次的停留,都被折叠成高维空间里的一个数字,然后被疯狂计算。
今天,我们从算法工程师的视角,拆解一个视频是如何跨越千万级候选池,最终精准地出现在你眼前的。


一、开篇:手机在“刷”我们

每天,数千万条新视频被上传到抖音。
你的手机屏幕上,每滑一下,就有一个新的视频开始播放。
这个过程看似丝滑,背后却是海量算力在毫秒间完成的一场“数学海选”。

抖音的推荐系统,本质上是一个超大规模的个性化匹配引擎
它的核心思想可以概括为一句话:

把用户和视频都映射到同一个高维语义空间,然后用向量夹角衡量“缘分”。把用户和视频都映射到同一个高维语义空间,然后用向量夹角衡量“缘分”。

全景流程图如下:

┌─────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────┐ │ 视频上传 │ -> │ 多模态解构 │ -> │ 512维向量化 │ -> │ 存入索引 │ └─────────┘ └─────────────┘ └─────────────┘ └─────────┘ │ ┌─────────┐ ┌─────────────┐ ┌─────────────┐ │ │ 用户刷到 │ <- │ 重排(打散) │ <- │ 精排(多目标)│ │ └─────────┘ └─────────────┘ └─────────────┘ │ ▲ ▲ ▲ │ │ │ │ │ └───────────────┴──────────────────┴──────────────────────┘ (层层漏斗筛选)

二、第一步:多模态解构 —— 把一个视频变成一串数字

视频不是结构化的数据,它是一堆像素、声音和文字的混合体。
要让计算机“理解”视频,首先要把它向量化——也就是变成一组固定长度的浮点数数组。

┌─────────────────────────────────────────────────────────┐ │ 原始视频数据 │ ├─────────────┬─────────────────┬───────────────────────┤ │ 视觉帧序列 │ 音频波形 │ 标题/字幕/ASR文本 │ └──────┬──────┴────────┬────────┴───────────┬───────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Vision ViT │ │ Audio Model │ │ BERT / NLP │ │ (逐帧编码) │ │ (节奏/音色) │ │ (语义情感) │ └──────┬──────┴────────┬────────┴───────────┬───────────┘ │ │ │ └───────────────┴────────────────────┘ │ ▼ ┌─────────────────────┐ │ 跨模态融合层(Attention)│ └──────────┬──────────┘ ▼ ┌─────────────────────┐ │ 输出: 512维稠密向量 │ │ [0.12, 0.87, ...] │ └─────────────────────┘

抖音采用的是512 维向量(实际生产中可能更高或灵活,但 512 是经典维度)。
这个向量不是凭空来的,而是通过多模态大模型(类似 CLIP、ViT 等架构)从三个维度提取语义:

1. 视觉特征(逐帧提取)

  • 使用Vision Transformer(ViT)作为骨干网络,对视频的关键帧进行编码。
  • 不仅能识别出画面中的物体(猫、人、键盘),还能理解场景语义(办公室、宿舍、球场)。
  • 更进一步,通过帧间时序建模,捕捉动作动态(跳舞的节奏、运动的激烈程度)。
  • 甚至画面的色彩分布、光影对比也会被编码,用于推断情绪基调(温暖治愈、冷酷硬核)。

举个例子
一个视频里,一个程序员在深夜敲代码,屏幕反光映在眼镜上。
视觉模型会提取到“人”“电脑”“深夜”“眼镜反光”等特征,并映射到向量中某些维度的激活值。

2. 音频特征(听觉语义)

  • 抖音的前身是 Musical.ly,对音乐的节奏、鼓点、情绪有深厚的积累。
  • 通过音频模型提取音色、音量、节奏型、BPM(节拍)等特征。
  • 同时,利用ASR(自动语音识别)将视频中的对白/旁白转成文本。

3. 文本特征(NLP 语义)

  • 从 ASR 得到的文本,以及视频标题、话题标签、评论区高频词,都会被输入到BERT 类语言模型中。
  • 提取出主题、情感极性、实体词(如“世界杯”“梅西”“露营”)。

最终,以上三个模态的特征经过跨模态融合层(比如交叉注意力),压缩成一个512 维的稠密向量
这个向量就是视频的“数字身份证”——它不再是像素或音频,而是语义空间中的一个点


三、第二步:推荐漏斗 —— 从千万候选到眼前一条

当你在抖音首页下拉刷新时,推荐系统会从上千万的候选视频池中,为你挑选出最可能让你停留的那一条。
这个过程不是一步到位的,而是层层过滤的漏斗(类似搜索中的召回→粗排→精排→重排)。

┌──────────────────────┐ │ 全量视频池 (1000万+) │ └──────────┬───────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ ① 召回 (双塔模型 + ANN索引) │ │ → 广撒网,快速筛选近似匹配 │ │ → 候选量: 1000万 → 1000条 │ └──────────────────────────────┬──────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ ② 粗排 (轻量机器学习模型) │ │ → 用简单特征预估 CTR / 完播率 │ │ → 候选量: 1000条 → 300条 │ └──────────────────────────────┬──────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ ③ 精排 (多目标深度网络 MMoE) │ │ → 同时预测 点击、完播、点赞、评论、分享 概率 │ │ → 加权融合打分 → 候选量: 300条 → 50条 │ └──────────────────────────────┬──────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ ④ 重排 (多样性打散 + 探索插队) │ │ → 避免同质化,插入探索内容 │ │ → 最终输出: 10~20条 (呈现在你手机上) │ └─────────────────────────────────────────────────────────────┘

第一层:召回(Recall)—— 双塔模型的“广撒网”

召回层的目标是快速从海量视频中筛出几百到一千个候选
这里最经典的架构就是双塔模型(Two-Tower)

  • 用户塔(User Tower):输入你的用户画像(年龄、性别、历史观看序列、长期兴趣标签),输出一个 512 维的用户向量。
  • 视频塔(Item Tower):输入视频的 512 维特征向量(就是上一步多模态模型产出的)。

然后,计算用户向量每一个视频向量点积(Dot Product),或者余弦相似度(Cosine Similarity)。
点积结果越大,表示两个向量在空间中越“接近”,也就是用户与视频的匹配度越高。

数学直觉:两个向量的夹角余弦值越接近 1(即夹角接近 0°),说明它们在语义空间中的方向一致。
比如,喜欢“科技+幽默”的用户向量,会与同样富含“科技+幽默”语义的视频向量产生高内积。

这一层,系统会从 1000 万个视频中,通过近似最近邻(ANN)索引(如 Faiss),快速检索出相似度最高的前 1000 条,交给下一层。

用户塔 视频塔 ┌───────────┐ ┌───────────┐ │ 年龄/性别 │ │ 512维向量 │ │ 历史观看 │ │ (多模态) │ │ 兴趣标签 │ │ │ └─────┬─────┘ └─────┬─────┘ │ │ ▼ ▼ ┌───────────┐ ┌───────────┐ │ 用户向量 U │ │ 视频向量 V │ │ [0.8,...] │ │ [0.3,...] │ └─────┬─────┘ └─────┬─────┘ │ │ └──────────┬───────────────────┘ │ ▼ ┌─────────────────────┐ │ 点积: U · V │ │ = |U||V|cosθ │ │ 夹角越小 → 越匹配 │ └─────────────────────┘

第二层:粗排(Coarse Ranking)—— 轻量模型初筛

从 1000 条缩减到 300 条左右。
粗排用的模型相对轻量(比如简单的 DNN 或 GBDT),特征也比召回更丰富一些(但不至于太复杂)。

这个阶段会引入一些基础业务指标的预估:

  • 点击率(CTR)的粗略估计
  • 完播率的粗略估计

但粗排不用太精确,只要能把明显不相关的再筛掉一波即可。


第三层:精排(Fine Ranking)—— 多目标预测的“决策层”

这是整个漏斗中最关键的一环。
精排模型是一个多任务学习网络(MMoE 或 PLE),它会同时预测多个用户行为概率:

  • 点击概率(会不会点进去看)
  • 完播概率(会不会看完)
  • 点赞概率
  • 评论概率
  • 分享概率
  • 甚至关注、收藏等更深度的互动

最终的排序分数不是单一指标,而是加权融合

score = w1 * p_click + w2 * p_finish + w3 * p_like + w4 * p_comment + w5 * p_share

这里的权重w1~w5是经过大量 A/B 测试调优的,不同阶段可能动态调整。
例如,新用户冷启动时,会提高完播和点赞的权重;成熟期用户则会侧重分享和评论。

精排模型会从 300 条中选出最有可能让你产生互动的 Top 50,送进最后一层。 text

输入: 用户向量 + 视频向量 + 上下文特征 │ ▼ ┌─────────────────────┐ │ 多任务网络 (MMoE) │ └──┬──┬──┬──┬──┬──┬───┘ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ ▼ p点击 p完播 p点赞 p评论 p分享 │ │ │ │ │ │ └──┴──┴──┴──┴──┘ │ ▼ score = w1·点击 + w2·完播 + w3·点赞 + w4·评论 + w5·分享 │ ▼ (排序取 Top 50)

第四层:重排(Re-ranking)—— 用户体验的最后一道保险

即使精排选出了 50 个“最高分”视频,直接按分数降序推给你也未必是最佳体验。
因为连续看 5 个硬核科技解析,你可能会累;连续看 5 个跳舞小姐姐,你也可能审美疲劳。

重排阶段会做两件事:

1.多样性打散(Diversity)

  • 利用视频的类别标签、作者 ID、内容风格,确保推送序列中不会连续出现过于相似的内容。
  • 比如:每两个科技视频之间,强制插入一个娱乐或生活类视频。
  • 这背后通常用MMR(最大边际相关性)DPP(行列式点过程)算法,在分数和多样性之间做平衡。
精排输出 (按分数高低) 重排打散后 (穿插不同类目) ┌───────────────┐ ┌───────────────┐ │ 科技 A (高分) │ │ 科技 A │ │ 科技 B (高分) │ ====> │ 舞蹈 C (插入) │ │ 科技 C (高分) │ │ 科技 B │ │ 舞蹈 D (中分) │ │ 美食 E (插入) │ │ 美食 E (中分) │ │ 科技 C │ └───────────────┘ └───────────────┘

2.探索与利用(Explore & Exploit)

  • 80% 的流量用于推荐系统已经“确信”你喜欢的内容(利用)。
  • 20% 的流量用于试探你的潜在兴趣(探索)。
  • 比如,你平时只看 NBA,但今天系统给你推了一个“野外求生”视频,你多停留了 3 秒,这个信号就会被捕捉,一个新的兴趣标签可能就此诞生

重排结束后,最终的10~20 条视频会返回给客户端,呈现在你的信息流里。

┌──────────────────────────────────┐ │ 每次推荐流量分配 │ ├──────────────────────────────────┤ │ ████████████████████░░░░░░░░░░ │ │ 80% (利用) 20% (探索) │ │ 推你爱看的 推潜在新兴趣 │ │ (篮球/科技) (野外求生) │ └──────────────────────────────────┘

四、更深一层:点积操作和 512 维向量的“魔力”

你可能会好奇:为什么是 512 维?点积为什么能代表“喜好”?

  • 维度选择:512 是工程与效果的平衡点。维度太低,语义表达能力不够;维度太高,存储和计算成本剧增。
    在实际中,YouTube、TikTok 等都会采用 256~1024 之间的维度。
  • 点积的物理意义:点积可以看作两个向量在方向上的“一致性”度量。
    如果用户向量U和视频向量V都是单位向量,那么U·V = cos(θ)
    当 θ 接近 0,说明用户和视频在语义空间中的“兴趣方向”完全一致。
    训练时,我们通过对比学习(如 InfoNCE Loss)让匹配的用户-视频对点积尽可能大,不匹配的对尽可能小。
  • 为什么能泛化?
    因为向量是语义的压缩表示,即使你从没看过某个视频,只要它的向量与你的用户向量相似度高,系统就会认为你很可能喜欢。
    这解决了冷启动长尾内容的推荐难题。

五、用户画像:不只是“标签”,更是动态向量

笔记中提到的“唱跳、NBA、新闻”是传统的离散标签。
但在现代推荐系统中,用户画像早已升级为动态向量(即用户塔的输出)。

这个向量会随着你每一次的观看、点赞、评论而实时更新(在线学习)。
比如:

  • 你刚看完一个“梅西世界杯集锦”,用户向量会短暂地向“足球”“高光时刻”方向偏移。
  • 第二天你又刷了很多“编程教学”,向量又会向“科技”“代码”方向移动。

所以,抖音推荐不是一层不变的,它每时每刻都在追踪你的兴趣漂移


六、从端到端:一个视频的“推荐之旅”完整案例

假设你是一个 25 岁的男性,平时喜欢看篮球、科技测评、搞笑段子。
现在有一个新的视频上传,内容是一个程序员用 Python 爬取 NBA 数据并做可视化分析。

  1. 多模态解构

    • 视觉:识别到电脑屏幕、代码、篮球图表。
    • 音频:ASR 识别出“爬虫”“Matplotlib”“詹姆斯”等词。
    • 融合后生成 512 维向量,其中“科技”维度激活 0.9,“篮球”维度激活 0.7,“幽默”维度激活 0.2。
  2. 召回
    你的用户向量在“科技”和“篮球”维度也有高激活。点积计算后,这个视频进入你的候选池(1000 条内)。

  3. 粗排 + 精排
    模型预测你对它的点击概率很高,完播概率也不错(因为契合双重兴趣),加权得分进入 Top 50。

  4. 重排
    你刚看过一个纯篮球集锦,为了避免重复,系统把这个“科技+篮球”混搭视频插入到两个搞笑视频之间,最终出现在你第 7 个位置。

  5. 你刷到了它,停留了 15 秒,点了赞,还评论了一句“代码能分享吗?”
    这个行为立即反馈回系统,你的用户向量被更新,未来类似的“交叉领域”内容会获得更高权重。


七、结语:推荐算法的终极哲学

抖音的推荐算法,本质是一套高维空间的匹配与演化系统
它不关心视频本身是美是丑,只关心它在 512 维空间中的位置,以及你的位置。
每一次交互,都是对空间坐标的一次微调。

作为技术人员,我们不仅要知道“怎么做”,更要知道“为什么这么做”——
因为向量不是冷冰冰的数字,它是人类兴趣的数学投影;
而推荐漏斗,则是效率与体验的优雅博弈。

希望这篇文章能帮你拨开推荐系统的迷雾。
下次刷抖音时,不妨想一想:此刻,又有一个 512 维的向量,正在为你而跳动。

💡更多疑问解答:你关心的那些算法“玄学”

除了算力和兴趣漂移,大家平时刷抖音时肯定还积攒了不少“玄学”疑问。

1. 我是一个新用户(冷启动),抖音没我的任何数据,为什么推荐得还挺准?

答:系统不会让你“裸奔”。它有三板斧:

  • 基础属性画像:你的手机型号(用高端机可能推科技/汽车)、地域(在北京推故宫攻略,在成都推美食)、年龄(通过手机号段或注册信息推断)。
  • 社交关系破冰:如果你授权了通讯录,它会参考你朋友的喜好(物以类聚);如果你从微信分享了链接,它会抓取源头信息。
  • 首次交互试探:你点开的第一个视频、停留的前几秒,会立刻触发试探性投放,系统像“撒网”一样给你推几类完全不同的大类内容,看你对哪一类反应最强烈。

2. 为什么我白天刚跟朋友聊了“想买帐篷”,晚上抖音就给我推露营装备?抖音在“偷听”我说话吗?

答:大概率不是麦克风偷听(成本极高,且有法律红线,手机系统权限也管得严)。真正的罪魁祸首是“行为联想”和“画像共享”

  • 你可能在微信/淘宝搜过“帐篷”,这些平台的广告联盟把标签共享给了抖音。
  • 或者,和你连过同一个 WiFi、在同一个地理位置待过的朋友搜了露营,系统推测你们有共同需求。
    这让你产生了“被监听”的错觉,其实是你的数字足迹被拼凑起来了。

3. 我辛辛苦苦剪的视频,如果一开始点赞很少,算法是不是就直接“埋葬”我,再也不给流量了?

答:不会一棍子打死。算法没感情,它只看相对值
系统会先给你的视频推一个“小流量包”(比如 500 次曝光)。它不看绝对点赞数,而是拿你的完播率互动率,去跟同时段、同赛道(比如都是萌宠类)的平均水平做对比。
如果你的指标高于赛道平均值,系统就认为这是“潜力股”,会送入下一个更大的流量池;如果低于平均值,流量才会变缓。所以,重点不是点赞数,而是能否让观众“停下来多看几秒”。


4. 我疯狂点“不感兴趣”,为什么偶尔还是会刷到类似的内容?这按钮是不是糊弄人的?

答:这个按钮绝对有用,但它更像“减分项”而不是“屏蔽词”。
你点“不感兴趣”,系统会把这条视频的向量特征在你的权重里大幅扣分。但是,如果后续视频的向量和它的向量极其相似(比如同个作者、同首 BGM、同个拍摄场景),由于向量空间中的“近邻”效应,它们还是可能因为总分达标而漏网。
不过放心,只要同一个类目下你连续点过 3~5 次“不感兴趣”,系统就会把这个大类标签从你的候选池里彻底拉黑,很长一段时间都不会再出现。


5. 为什么我朋友和我刷到的“热门视频”不一样?难道热门不是全量推送吗?

答:哪怕是一个千万播放的“爆款”,也不是一次性推给所有人的。
真正的热门视频,走的是“阶梯式放量”路径。比如一条视频达到 1000 万播放,它其实被划分成了成千上万个“兴趣切片”。系统只会把这个爆款推给“用户向量与该视频向量契合”的那部分人。
如果你的画像和这个爆款完全不搭边(比如爆款是广场舞,你是二次元死宅),系统宁可让你刷一条只有 10 万播放的二次元视频,也不会把广场舞爆款强塞给你。“个性化”优先级永远高于“热门”

http://www.gsyq.cn/news/1540985.html

相关文章:

  • 北京东城区黄金回收避坑指南 当前金价下如何安全变现 - 上门黄金回收
  • 2026年合肥中科信息工程学校秋季入学报招生简章|收费标准|报名方式 - 小途xt
  • 抖音直播录制工具完全指南:40+平台自动值守录制方案
  • 精密机械装备制造行业PLM:多品种小批量的研发数据管理为什么这么难
  • 巨有科技|深耕十年,复盘文旅智慧化三大发展阶段与未来趋势
  • 广州找装修公司哪个更值得信赖 - GrowthUME
  • Text-to-SQL with llama-index
  • 2026年6月九江市民卖黄金指南 行情价格与避坑完整教程 - 润富黄金回收
  • 采购必看!口碑好、质量靠谱的知名生物安全柜企业,优质国产生物安全柜厂家汇总 - 品牌推荐大师1
  • 宠物营养品怎么选不踩雷?拥有10000+上市测试的研发体系揭秘 - 资讯报道
  • 2026宁波黄金回收实测|节假日变现不加价、无加急费攻略 - 奢侈品回收测评
  • 5 项实测、12 组数据:Cube Sandbox 核心操作性能基准测试公开
  • Boomi在2026年6月Gartner®无代码智能体构建器新兴市场象限中被评为“先驱”
  • 从SPI到航电总线:HI3593 ARINC429协议芯片的实战配置与深度解析
  • Path of Building终极指南:流放之路最强Build规划工具深度解析
  • 2026视频转文字工具保姆级教程!免费电脑手机、在线无水印转换方法全解 - AI测评专家
  • Qwen3.5 122B本地部署实战:硬件门槛、量化取舍与业务适配边界
  • 高通平台TE GPIO选择和配置说明
  • 2026普洱黄金回收价格表 避坑技巧与靠谱商家推荐 - 余生黄金回收
  • 脉冲雷达实战:多重频解模糊原理与工程实现
  • 2026避坑预警!青岛 6 家本地包包回收店亲测整理 - 讯息早知道
  • 2026西藏纯玩7日游靠谱服务商排行|实地抽检避坑指南 - 互联网科技品牌测评
  • 深入解析计算机系统:从编译链接到并发内存的工程实践指南
  • 2026年6月环保水处理管段式超声波流量计市场价格洞察与技术选型白皮书——基于国产头部品牌竞争力与全场景应用分析 - 水质仪表品牌排行榜
  • 东莞莞城街道黄金回收三个硬指标与六家机构对比 - 上门黄金回收
  • 营业执照注销需要准备哪些材料?线上注销营业执照需要多久? - 慧办好
  • 佛山制造业企业微信开通全攻略!广东企拓官方授权服务商一站式上门服务! - GrowthUME
  • 冈兴电容储能点焊机生产厂家常见问题解答 - 速递信息
  • 2026年要找靠谱大溪地珍珠项链供应商?这些筛选要点值得你收藏 - 热点速览
  • 会议一体机厂家选购指南:如何选到靠谱高性价比产品 - 速递信息