Twitter开源推荐算法组件
Twitter最近开源了其用户时间线推文推荐系统的多个组件。此次发布包括运行算法的多个服务和任务的代码,以及用于嵌入和排名推文的机器学习模型的训练代码。
推荐系统的主要步骤
Twitter的推荐过程分为三个主要步骤:
- 候选推文来源:从用户关注的人(网络内)和未关注的人(网络外)中选择约1500条候选推文。
- 推文排名:使用48M参数的神经网络模型(基于MaskNet)对候选推文进行排名。
- 启发式/过滤:应用启发式规则和过滤器,确保时间线的平衡性和多样性。
开源内容
此次发布包含以下代码:
- 机器学习模型服务器和流事件处理器等系统组件服务。
- 从推文、用户和互动(如点赞和转发)原始数据中提取特征和模型的代码。
Twitter表示,此次开源是为了提高透明度,但排除了广告推荐代码和可能危及用户隐私的代码。
推荐系统的具体实现
- 网络内推文:使用基于RealGraph算法的逻辑回归模型进行排名,预测两个用户之间的互动可能性。
- 网络外推文:通过社交图找到用户关注的人互动的推文,并使用SimClusters嵌入空间选择推文。SimClusters使用矩阵分解算法识别145,000个虚拟用户社区,推文根据社区用户的喜好进行关联。
启发式规则和过滤
在排名后,Twitter应用启发式规则和过滤器,平衡网络内和网络外推文,将回复推文与原始推文串联,并移除NSFW内容。
开源引发的讨论
- Hacker News:用户指出源代码中包含用于A/B测试算法更改的标签,如
author_is_elon、author_is_power_user、author_is_democrat和author_is_republican。 - Twitter:机器学习工程师Vicki Boykis称赞此次开源为推荐系统爱好者提供了宝贵的资源。
- Reddit:用户认为此次开源为机器学习专业人士提供了极好的教育内容,展示了世界级的复杂推荐和排名系统。
代码获取
Twitter的推荐系统代码和两个机器学习模型的训练代码均可在GitHub上获取:
此次开源不仅提升了Twitter的透明度,也为推荐系统研究和开发提供了丰富的资源和学习机会。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。