你刷的不是抖音,是512维向量——一条视频的推荐算法之旅

0 阅读4分钟

从多模态拆解到三层漏斗,拆解那个让你停不下来的推荐引擎


开场:凌晨三点,你还在刷

凌晨三点,你告诉自己"看完这条就睡"。然后你看了三十条。你以为是自制力的问题,但真相是——你对面坐着的不是手机屏幕,是一套把你看透了的推荐系统。它比你妈还了解你的笑点,比你前任还清楚你会为哪种视频多停留三秒。

而你,就是那个被 512 个维度的向量温柔地困在信息茧房里的人。


第一幕:视频不是视频,是向量——多模态解构

抖音每天几千万条新视频涌进来。人工分类?不存在的。抖音做的第一件事,是把每条视频变成一串数字。具体来说,是一个 512 维的向量。

    一段视频
        │
        ▼
┌─────────────────────────────────────┐
│            多模态解构               │
├─────────────────────────────────────┤
│                                     │
│  ┌──────────┐     ┌──────────┐     │
│  │ 视觉特征  │     │ 音频特征  │     │
│  │ ViT 逐帧 │     │ ASR→文本 │     │
│  │ 提取     │     │ NLP情感  │     │
│  └──────────┘     └──────────┘     │
│        │               │           │
│        └───────┬───────┘           │
│                ▼                   │
│        512 维向量                  │
│   [0.85科技, 0.05幽默...]         │
└─────────────────────────────────────┘

视觉侧,用的是 Vision Transformer(ViT)——把每一帧画面送进 Transformer 里,它能认出一只猫、一个程序员、一寝室人围着看世界杯,甚至通过画面的色彩光源判断视频的情绪基调:温暖治愈,还是冷酷硬核。

音频侧也不闲着。通过 **ASR(自动语音识别)**把语音转成文字,再用 **NLP(自然语言处理)**做语义分析——这首歌是欢快的还是伤感的?这个口播的情绪是激动的还是平和的?声音的大小、节奏的快慢,全被量化成向量里的一个维度。

最终,每个视频被压缩成类似这样的东西:

[0.85 科技, 0.05 幽默, 0.03 西语, 0.12 编程, ...]  ← 512

这就是后续一切推荐的基础语言。没有标题党,没有热搜,只有向量和向量之间的距离。


第二幕:三层漏斗——从1000万到你的屏幕

有了向量,问题就变成了:这 1000 万条视频,哪几条应该出现在你的屏幕上?答案是一个层层缩圈的漏斗。

┌──────────────────────────────────────────────┐
              抖音推荐漏斗                     
├──────────────────────────────────────────────┤
                                              
  ┌─────────────────────────────────────┐     
          1000 万条视频                     
  └─────────────────────────────────────┘     
                                             
      召回:双塔模型,cosine 点积运算         
                                             
         ┌──────────────────┐                
             1000                        
         └──────────────────┘                
                                             
      粗排:轻量 ML 模型,粗筛内部特征        
                                             
              ┌──────────┐                   
                300                      
              └──────────┘                   
                                             
      精排:预测点击、完播、点赞、评论、分享  
                                             
              ┌──────────┐                   
                TOP N                      
              └──────────┘                   
                                             
      重排:打散同类内容,注入多样性           
                                             
           ┌───────────────────┐             
              你的手机屏幕                 
           └───────────────────┘             
                                              
└──────────────────────────────────────────────┘

第一步——召回(双塔模型)

这是漏斗最宽的一层,要把 1000 万条缩减到约 1000 条。核心技术叫"双塔模型"——一个塔是你(用户画像向量),一个塔是视频(内容向量)。计算两个向量的 cosine 夹角(余弦相似度),夹角越小,你们越投缘。这一步粗但快,目的是广撒网,不漏鱼。

第二步——粗排

从 1000 条到 300 条。用相对轻量的机器学习模型,根据用户的粗粒度特征再筛一轮。快,但比双塔模型稍微仔细一点。

第三步——精排

这才是真正的重头戏。模型要预测你对每条视频的:点不点击、会不会完播、点不点赞、评不评论、分不分享。最后打一个总分:

score = w1 × 点击率 + w2 × 完播率 + w3 × 点赞率 + w4 × 评论率 + w5 × 分享率

每条视频都被算出一个分,排名前几的进入你的推荐流。

最后——重排

如果前十名全是 AI 教程,你会审美疲劳。重排机制会强制打散:每两个硬核内容之间,塞一条跳舞小姐姐。这不是偶然,是设计。


第三幕:80%喂饱你,20%偷袭你——Explore & Exploit

推荐系统有一个经典两难:是给你你确定喜欢的东西(Exploit:利用),还是给你你没见过、但可能喜欢的东西(Explore:探索)?

抖音的策略是 80/20。80% 的内容是你已知爱好的延续——科技、编程、搞笑段子。剩下 20%,是系统在"试探"你的边界。给你推一条野外求生,你多停了 3 秒——好,一个新的兴趣标签就这样被记录下来,下次就多给你推一点。

这 20% 的"偷袭",就是为什么你经常发现自己的抖音从编程教程变成了赶海视频,而你甚至不记得什么时候点过赞。

┌─────────────────────────────────────────┐
│         推荐内容分配策略                 │
│                                         │
│   80% exploit:已知爱好                 │
│   ┌──────────────────────────────┐      │
│   │ 科技│编程│搞笑│游戏│美食    │      │
│   └──────────────────────────────┘      │
│                                         │
│   20% explore:探索潜在兴趣             │
│   ┌───────────────────────┐             │
│   │ 野外求生│手工│钓鱼    │             │
│   └───────────────────────┘             │
│                                         │
│   多停留 3 秒 → 新标签被记录            │
└─────────────────────────────────────────┘

结尾:你在刷手机,手机也在刷你

你每多滑一屏,每多停顿一秒,每次不经意的点赞,都在精准地向抖音服务器报告:"这条好,再来。"你的用户画像是被你自己一笔一笔画出来的——只不过画笔是你自己的拇指。

下次凌晨三点再告诉自己"最后一条"的时候,你可以选择关掉手机,也可以选择坦然接受:你刷的不是抖音,你刷的是 512 维向量里那个被解剖了的自己。