news 2026/6/19 1:12:07

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
抖音推荐算法深度揭秘:当你刷视频时,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 万播放的二次元视频,也不会把广场舞爆款强塞给你。“个性化”优先级永远高于“热门”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/19 1:11:27

终极个性化:Office Custom UI Editor重塑你的办公界面工作流

终极个性化&#xff1a;Office Custom UI Editor重塑你的办公界面工作流 【免费下载链接】office-custom-ui-editor Standalone tool to edit custom UI part of Office open document file format 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor …

作者头像 李华
网站建设 2026/6/19 12:31:20

广州港口劳务外包:专业可靠的港口人力解决方案

核心摘要 广东大贵人商务服务有限公司&#xff08;简称“大贵人”&#xff09;专注广州港口劳务外包&#xff0c;提供港口机手外包、码头作业服务、场内货柜拖运、海关查验等全链条人力支持。公司成立于2016年11月&#xff0c;团队规模2000人&#xff0c;累计服务超百个项目&…

作者头像 李华
网站建设 2026/6/19 12:32:23

XNBCLI:星露谷物语模组开发者的终极XNB资源处理利器

XNBCLI&#xff1a;星露谷物语模组开发者的终极XNB资源处理利器 【免费下载链接】xnbcli A CLI tool for XNB packing/unpacking purpose built for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/xn/xnbcli 你是否曾为《星露谷物语》模组开发中的XNB文件处…

作者头像 李华
网站建设 2026/6/19 12:32:55

深度解析MainsailOS:构建高性能3D打印控制系统的完整方案

深度解析MainsailOS&#xff1a;构建高性能3D打印控制系统的完整方案 【免费下载链接】MainsailOS This Raspberry Pi distribution for managing Klipper 3D printers with Mainsail provides all you need. 项目地址: https://gitcode.com/gh_mirrors/ma/MainsailOS 在…

作者头像 李华
网站建设 2026/6/19 12:32:19

DPA IPSec API实战:SA管理与策略配置详解与性能优化

1. 项目概述在嵌入式网络设备开发&#xff0c;尤其是网关、防火墙这类对性能和安全性要求极高的场景里&#xff0c;IPSec&#xff08;Internet Protocol Security&#xff09;的实现效率直接决定了设备的吞吐量和延迟表现。传统的纯软件IPSec栈虽然灵活&#xff0c;但在处理高速…

作者头像 李华
网站建设 2026/6/19 12:32:30

【课程设计/毕业设计】基于 JavaWeb 的高校房屋租赁业务管控系统设计研发 面向校园场景的租房信息交互管理系统设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华