前几天,抖音弄了个算法公开日,首度把它们神秘莫测的算法公开了,还公布在自家的安全官网上,入口:
http://95152.douyin.com
这是抖音第一次敞开聊自己的「算法黑盒」。
里面很多内容,非常值得一看!
我把它们从头到尾过了一遍,虽然官方写的很清晰,但普通小伙伴想要弄懂仍然会比较吃力,于是专门调了个 Prompt,让 AI 帮忙翻译。
效果竟然出奇的好。
接下来,就让我们一起揭开抖音「算法黑盒」的神秘面纱。
一切的起点:为什么需要算法推荐?
因为:信息太多,看不过来!
我们现在生活在一个信息的“海洋”里,每天都有无数的新闻、视频、商品涌出来(文章里提到,2025年全球数据量大到一个人下载需要18亿年!)。
抖音这种平台,每天新增的内容也是天文数字。
抖音面临的第一个问题:
怎么能在这个“信息海洋”里,让你(用户)不觉得无聊、迷茫,能快速、精准地找到用户可能喜欢的那几条视频,让TA刷得停不下来?
而这,就是推荐系统要干的活儿。
它就像一个为你量身定制的、超级聪明的“信息快递员”,只把“你可能感兴趣”的包裹送到你面前。
早期方法:协同过滤 (Collaborative Filtering, CF)
这是推荐算法里的“老前辈”了,思路很朴实,但很有效。
主打一个:“物以类聚,人以群分”。
用大白话讲,就是找到和你“臭味相投”的人,看看他们喜欢啥,然后推荐给你。
算法怎么操作?
⬇️ 系统扫描大量用户行为数据(比如点赞、观看时长、评论等);
⬇️ 找到那些和你行为模式很像的用户(比如你们都给同一批萌宠视频点过赞);
⬇️ 看看这些“同好”们还喜欢了哪些你没看过的视频;
➡️ 把这些视频推荐给你。
给它做一个生活化比喻
就像你去餐厅
服务员说:“点这道菜的客人,通常也喜欢我们店的XX汤。”
或者你问朋友:“咱俩口味差不多,最近有啥好剧推荐?”
关键是:这种方法不需要“理解”视频内容!
它不管视频里是猫是狗,是唱歌跳舞,它只关心“谁 (User)” 对 “什么 (Item)” 做了 “什么行为 (Action)”。纯粹基于用户行为的模式匹配。
文章里的图 (Page 2):
这个示意图表达的是:
系统发现你(橙色小人)和另一个用户(蓝色小人)有共同观看历史(watched by both users),于是就把那个用户看过的其他内容(watched by her)推荐给你(recommend to him)。
“高级”一点的协同过滤:矩阵分解
文章提到了“矩阵分解”和“余弦相似度”。
别被这些名词吓跑!
你可以理解为:这是协同过滤里,用来更精确计算“谁和谁像”、“哪个视频和哪个视频像”的数学工具。
矩阵分解
想象一个巨大的表格,行是用户,列是视频,格子里是用户的行为(看过/点赞/评分等)。
矩阵分解就是用数学方法,把这个大表格“拆解”成两个小表格:
一个代表用户的“口味向量”(比如你对搞笑、萌宠、科技的偏好度);一个代表视频的“属性向量”(比如这个视频包含搞笑、萌宠、科技的程度)。
这样就能更深入地理解用户和视频的潜在联系。
余弦相似度 (Cosine Similarity)
就是一种计算两个“向量”(比如两个用户的口味向量,或者两个视频的属性向量)在方向上有多接近的方法。
夹角越小,越相似。
现阶段:你只需要知道,这些是让“找同好”、“找相似内容”这个过程更精准的数学魔法,暂时不用深究具体公式。
协同过滤的“坎”:光靠“人以群分”还不够
协同过滤虽然经典,但也有它的局限:
-
泛化能力弱 (Generalization):它倾向于推荐那些已经被很多人喜欢的“大众情人”型内容(头部效应),很难挖掘出冷门但你可能很喜欢的“小众宝藏”。也就是不太会给你惊喜。
-
信息茧房:容易让你越看越窄,总在自己熟悉的小圈子里打转。
-
冷启动问题:新用户刚来,没啥行为数据,系统不知道你喜欢啥,就很难推荐;新视频刚发布,没人看过,也很难被推荐出去。
更强大的武器:深度学习 & 神经网络
为了解决上面这些问题,更聪明的武器登场了——深度学习,它的核心是模仿人脑的神经网络。
神经网络 (ANN) 是什么?
简单比喻:把它想象成一个由很多“神经元”(节点)连接成的网络,像一个简化版的“人造大脑”。
结构:通常有三层:
⭕️ 输入层 (Input Layer):接收原始信息,比如视频的基本标签、用户的基本信息。
⭕️ 隐藏层 (Hidden Layers):这是“大脑”的核心处理区域。可以有很多层(这就是“深度”学习的“深”的来源)。每一层都会对上一层传来的信息进行加工、组合、提炼,发现更复杂、更抽象的特征。
⭕️ 输出层 (Output Layer):给出最终的判断或预测,比如“这个用户有多大概率会点赞这个视频?”。
深度学习的“深度”:指的就是隐藏层很多。层数越多,理论上就能学习到越复杂、越微妙的模式。
文章里提到的“破案抓小偷”:这个比喻非常形象!
输入层 (小区保安):只记录最基础的信息(黑帽子、红衣服、双肩包)。这些是原始特征。
隐藏层 (多组侦探):
✅ 第一组侦探:把“黑帽子+红衣服”组合,发现这经常出现在便利店盗窃案(提炼出组合特征)
✅ 第二组侦探:把“双肩包+上午8点”组合,发现这对应小区快递被偷案(提炼出另一种组合特征)。
✅ 更深的侦探:综合上面的线索,“黑帽子+红衣服+双肩包+多次出现在案发地”,锁定惯犯特征(提炼出更高级、更抽象的特征)。
输出层 (警长):
拿到所有侦探(隐藏层)处理后的高级情报,对比数据库,做出最终判断:“就是上周那个连环盗窃案的A!”(输出预测结果)。
训练过程 (侦探队长复盘):
❎ 一开始侦探们可能老抓错人。
❎ 队长(算法)就会总结:“上次把戴黑帽子的外卖员当小偷,是因为没考虑时间特征!”
🔁 于是调整策略,让侦探们下次更关注“黑帽子+非工作时间”这样的组合(调整模型参数/权重)。
✅ 通过不断地“试错-学习-调整”,侦探队(模型)就越来越厉害。
这种方法的优势:
深度学习能自动从数据中学习到非常复杂的模式和特征组合,而不需要人手动去定义所有规则。它能更好地理解数据里的“潜台词”。
核心:抖音的主力模型
官方文章重点介绍了抖音(可能)使用的两种基于深度学习的模型:
Wide & Deep 模型
顾名思义:
“Wide”代表“宽度”(广度)“Deep”代表“深度”
它想结合两种能力:
Wide 部分 (像增强版CF):负责“记忆”。
它能很好地记住那些常见的、明显的关联规则,比如“看了A视频的人,大概率也看B视频”。
这部分能保证推荐不出大错,比较稳。类似于协同过滤的思路,处理“共现”频率高的特征。
Deep 部分 (纯神经网络):负责“泛化”和“探索”。
它利用神经网络的强大能力,去挖掘那些不那么明显、更隐藏的特征组合和用户兴趣。
比如,你最近看了科技视频,又点赞了一个旅行vlog,Deep部分可能会尝试推给你“科技博主的旅行体验”这类你之前没接触过但可能感兴趣的新内容。它能带来惊喜。
两者结合的优势:
把Wide的“强记忆力”和Deep的“强理解力/探索力”结合起来,既能推荐你熟悉的,也能发现你潜在的兴趣,从而提高推荐的精准度和新颖度。弥补了传统CF泛化能力差的缺点。
看图 (Page 6):图示就是把输入的原始特征(稀疏向量输入层)
一部分直接送到Wide部分(可以想象成一个简单的逻辑回归层)
另一部分经过Embedding层(后面会讲)送到多层神经网络(Deep部分)最后把两部分的结果结合起来,输出最终的推荐分数。
双塔召回模型 (Two-Tower Recall Model)
它发挥作用的阶段 ——“召回 (Recall)”
在推荐的第一步使用。
推荐系统面对的是亿级的视频库,不可能对每个视频都进行复杂计算。召回模型的任务就是快速地从海量视频中,捞出几百或几千个“可能有戏”的候选视频,大大缩小范围,交给后续更精细的模型(比如排序模型)处理。
它是“海选”阶段。
“双塔”是什么?
想象成两个独立的“处理塔楼”:
用户塔 (User Tower)
输入用户的各种特征(年龄、性别、历史行为、点赞记录等),通过一个神经网络,最终输出一个浓缩的“用户向量”(User Embedding)。
这个向量就像是用户的“数字指纹”,代表了用户的兴趣。
内容塔 (Item Tower/Video Tower)
输入视频的各种特征(标签、分类、音乐、作者信息等),通过另一个神经网络,输出一个“视频向量”(Item Embedding)。
这个向量就像是视频的“数字身份证”,代表了视频的内容和属性。
核心算法:向量化/表征学习 (Embedding)
这是深度学习推荐中的关键技术。
它的目标是把用户和视频,都映射(转换)到同一个高维的“数学空间”里,变成一个个的点(向量)。
厉害之处在于:通过模型训练,要让这个空间具有“魔力”——用户点会和他可能喜欢的视频点在空间中的距离很近。
文章例子 (Page 7)
比如,展示小猫的视频可能被表示成向量(0, 1),展示小狗的是(1, 0) (实际维度远高于2维)。用户塔和内容塔学习的就是如何生成这些向量。
如何推荐?
⭕️ 用训练好的“用户塔”计算出当前用户的“用户向量”(你的数字指纹)。
⭕️ 系统里存着所有视频的“视频向量”(所有视频的数字身份证)。
⭕️ 快速计算你的“用户向量”和所有“视频向量”之间的距离(通常用余弦相似度或点积)。
⭕️ 找出距离最近(最相似)的那些视频向量。
⭕️ 这些视频就是“召回”阶段选出的候选视频。
比如
想象一个巨大的图书馆,每个读者(用户)和每本书(视频)都有一个独特的“兴趣坐标”。
图书馆管理员(召回模型)只需要找到和你“兴趣坐标”最接近的那些书,推荐给你就行了,而不需要一本本翻开看内容。
它的优点
计算效率极高!
因为用户向量和视频向量可以提前算好存起来,匹配时只需要做快速的向量距离计算,非常适合处理海量数据。
最后:算法到底厉害在哪?
文章最后总结了推荐算法的核心突破:
-
从“理解内容”到“理解行为模式”:传统方法可能需要人去给内容打标签(比如“搞笑”、“美食”),而现代推荐算法,特别是基于深度学习的,更侧重于从用户的海量行为数据中自动学习用户和内容之间的复杂关系。
-
抽象化能力:它把用户的点赞、观看、评论等具体行为,以及视频的各种特征,都转换成了高维空间中的数学向量。算法不需要“理解”什么是“开心”或“难过”,它只需要在数学空间中计算这些向量之间的关系(比如距离、相似度),就能预测你“是否会看”、“是否会点赞”。
-
“知其然,不必知其所以然”:算法通过学习海量数据,知道了“什么样的用户-内容组合会有高概率产生互动”,但它不一定知道符合人类逻辑的“为什么”。它是一种基于数据关联和模式匹配的强大预测能力。
简单来说,抖音的推荐算法就像一个:
-
超级数据分析师:能处理难以想象的海量用户行为数据;
-
高级模式识别器:能发现极其复杂和隐藏的用户兴趣模式与内容关联;
-
高效数学计算器:能用向量和距离计算,快速匹配用户和可能喜欢的内容;
-
不断进化的学习者:通过用户的实时反馈(你看什么、点赞什么),持续优化模型,越来越懂你。
最终目的:让你在信息海洋中,总能高效地看到自己感兴趣的内容,从而提升用户体验和使用时长。
呼!一口气讲完了。
这篇内容从整理、排版到核对,肝了了近 5 个小时。
感觉怎么样?
很多老粉丝可以能都是因为“抖音”和我结缘的,这篇内容我觉得对现在做抖音、玩抖音的人,仍然会有不小的帮助。