菜单

主页时间线生成

相关源文件

本文详细介绍了在Twitter推荐系统中生成用户主页时间线(也称为“为你推荐”信息流)的端到端流程。它解释了推文如何从各种候选源获取,经过排序、过滤,最终组装成呈现给用户的时间线。有关具体的非关注内容推荐信息,请参阅内容推荐;有关底层机器学习基础设施的详细信息,请参阅ML服务基础设施

主页时间线生成概述

主页时间线生成过程遵循以下主要步骤:

  1. 用户请求处理:请求由Home-Mixer接收,Home-Mixer负责协调整个过程。
  2. 候选推文来源:推文从多个来源收集。
  3. 特征补充:推文和用户特征被填充用于排名。
  4. 排名:推文使用轻量级和重量级排名模型进行评分。
  5. 过滤:应用内容审核规则。
  6. 时间线组装:最终时间线被构建并返回给用户。

来源:README.md29-49 home-mixer/server/src/main/scala/com/twitter/home_mixer/functional_component/feature_hydrator/RequestQueryFeatureHydrator.scala1-121

候选来源

主页时间线生成系统从多个候选来源获取推文:

候选来源描述贡献
搜索索引查找并排名用户关注账户的推文约占时间线内容的50%
CR-Mixer用于获取非关注推文候选的协调层提供来自用户关注网络之外的推荐
用户-推文-实体图 (UTEG)维护一个内存中的用户与推文交互图基于图遍历查找候选推文
关注推荐服务 (FRS)提供账户推荐推荐关注的账户以及这些账户发布的推文

来源:README.md39-44

特征提取

特征补充是时间线生成过程中的关键步骤。它涉及收集和计算有关推文、用户和请求上下文的各种特征,这些特征将用于排名和过滤决策。

RequestQueryFeatureHydrator 收集有关请求上下文的基本信息,包括:

  • 客户端信息(应用程序ID、设备语言)
  • 请求类型(初始加载、新内容、旧内容)
  • 用户身份(查看者ID、访客ID)
  • 请求元数据(时间戳、前台/后台状态)
  • 交互上下文(轮询、下拉刷新)

这些特征用于个性化时间线内容,并确定要应用的算法和过滤器。

来源:home-mixer/server/src/main/scala/com/twitter/home_mixer/functional_component/feature_hydrator/RequestQueryFeatureHydrator.scala32-121 home-mixer/server/src/main/scala/com/twitter/home_mixer/model/HomeFeatures.scala39-307

数据模型与特征

主页时间线生成系统依赖丰富的特征集来进行有效的内容选择和排名决策。HomeFeatures 类定义了核心特征集,可分类如下:

功能类别描述示例
候选特征单条推文的属性作者ID、内容类型、指标、社交上下文
查询特征用户请求的属性设备信息、请求类型、用户设置
结果特征已组装时间线的属性大小、构成、展示上下文

这些特征在整个管道中用于候选选择、评分、过滤以及时间线的最终组装。

来源:home-mixer/server/src/main/scala/com/twitter/home_mixer/model/HomeFeatures.scala39-325

排序系统

主页时间线生成过程采用两阶段排名方法:

轻量级排序器

  • 使用计算效率高的模型对推文进行初始评分
  • 由搜索索引 (Earlybird) 用于执行首轮排名
  • 将候选池缩小到可管理的大小,以便进行更密集的处理

重量级排序器

  • 提供预过滤候选推文详细评分的神经网络模型
  • 使用关于推文、作者和查看者的全面特征集
  • 最终推文选择中使用的主要信号之一

来源:README.md45-46

时间线构建与过滤

主页时间线生成的最后阶段涉及组装时间线并应用可见性过滤器:

Home-Mixer

  • 构建和提供主页时间线的主要服务
  • 基于product-mixer框架构建
  • 协调从候选选择到最终时间线组装的整个过程

可见性过滤器

  • 负责根据各种标准过滤Twitter内容
    • 法律合规性
    • 产品质量
    • 用户信任
    • 收入保护
  • 过滤方法包括:
    • 硬过滤(移除内容)
    • 可见的产品处理(警告、插页广告)
    • 粗粒度降权(降低可见性)

来源:README.md47-49

与其他系统集成

主页时间线生成过程与Twitter推荐架构中的其他几个组件集成:

关键集成点

  • Tweetypie: 提供推文数据的核心推文服务
  • 用户信号服务: 提供用户行为数据
  • 表示管理器: 为用户和推文提供嵌入(embeddings)
  • Navi: 为排名提供机器学习模型
  • 时间线服务: 时间线交付基础设施

来源:README.md5-21 home-mixer/server/src/main/scala/com/twitter/home_mixer/param/HomeMixerInjectionNames.scala1-46

结论

主页时间线生成系统是一个复杂的多阶段管道,它结合了各种候选来源,应用了复杂的排名算法,并实施了过滤规则,为每个用户创建个性化时间线。通过利用机器学习模型和实时用户信号,它旨在从关注和非关注来源中呈现最相关和最吸引人的内容。