04.01 update: 代码量很大,目前做大致梳理,后续详细展开
太长不读
推特推荐系统整体流程和业界主流类似,包括召回、粗排、精排、混排等。不过相比非社交主导的内容推荐系统,推特更加重视网络数据(图)的利用,包括图特征、图算法等。并且对负责社交网络内和网络外的模块做了显式的区分和内容控比(目前网络内和网络外占比1:1)。

业务场景
从你关注的人(网络内)和你不关注的人(网络外)中寻找候选人,再对推文、广告、Onboarding prompts综合选出最终展现内容。
推荐系统
- 特征计算
 - 社交图谱
 - Embedding嵌入(主)
 - 偏好预估
 - 声誉预估
 - 事件流
 - 图统计信息
 - Trust&Safty
 - 违规内容检测————怎么使用?
 - 候选&召回
 - 社交网络内来源(主)
 - 社交网络外来源
 - cr-mixer:用于网络外的内容召回,(应该)是一个模型化召回模块
 - follow-recommendation-service(FRS):推人服务,提供关注建议Who-To-Follow (WTF)
 - 也是一个小的推荐系统,流程基本同主系统,包括候选,排序,过滤,推荐解释
 - 其中,排序使用p(follow|recommendation) 和 p(positive engagement|follow) 的加权和
 - 过滤&产品功能
 - 可见性
 - 作者多样性
 - 内容平衡(探索利用)
 - 基于反馈的疲劳内容
 - 二跳人脉过滤
 - 替换更新的推文
 - 对话
 - 同一推文下的上下文组合
 - 粗排、精排及多目标
 - 粗排(准备重构):
 - Earlybird light ranker包括网络内和网络外两个模型,区别在于特征不同
 - LR模型;目标是预测用户参与推文的概率(互动)
 - 精排:
 - 精排条数1500
 - 基于神经网络的模型(机器学习部分展开),网络参数48M,特征6k,目标数量10个
 - 多目标
 - 10个目标,主要包括互动、时长和画风
 - 用户喜欢推文的概率
 - 用户点击进入此推文对话并回复或点赞推文的概率
 - 用户点击进入此推文对话并在那里停留至少 2 分钟的概率
 - 用户做出负面反应的概率(要求在推文或作者上“显示较少”,屏蔽或静音推文作者)
 - 用户打开推文的概率作者个人资料和喜欢或回复推文
 - 用户回复推文的概率
 - 用户回复推文并且该回复被推文作者参与的概率
 - 用户点击举报推文的概率
 - 用户将观看至少一半视频的概率(对于视频推文)
 - 简单加权求和(权重看起来像手拍的)
 - 主页混排(Homepage Mixer)
 - 负责For you, Following, Lists的混排
 - 广告、关注推荐Onboarding prompts(?)
 - 框架基建
 - 推荐流程开销
 
上面的流程每天运行大约 50 亿次,平均完成时间不到 1.5 秒。单个管道执行需要 220 秒的 CPU 时间,几乎是在应用程序上看到的延迟的 150 倍。
机器学习模块
- 实体抽取
 - 基于TransE抽取表征
 - 召回模型
 - 粗排模型
 - LR: 非常朴素的逻辑回归
 - 目标
 

- 数据流
 
产品迭代方向
- 为创作者提供更好的 Twitter 分析平台,提供更多关于影响力和参与度的信息
 - 提高应用到推文或帐户的任何安全标签的透明度
 - 更好地解释推文出现在你的时间线上的原因