菜单

CR-Mixer

相关源文件

目的与范围

CR-Mixer 是一个协调层,负责从 Twitter 推荐系统中的底层计算服务获取非关注推文候选。它提供了用户“为你推荐”时间线中大约 50% 的推文。本文档涵盖了 CR-Mixer 的架构、候选推文来源机制及其与 Twitter 推荐系统其他组件的集成。

有关这些候选推文如何并入最终时间线的信息,请参阅主页时间线生成

来源:README.md41-43

系统概览

在 Twitter 的推荐管道中,CR-Mixer 位于数据源/ML 模型和 Home-Mixer 之间。它的主要功能是发现和检索用户在其常规时间线中未看到(因为他们未关注作者)但基于各种相似性和相关性信号可能会感兴趣的推文候选。

推荐管道中的 CR-Mixer

CR-Mixer 在整体架构中的位置

来源:README.md35-43

架构和组件

CR-Mixer 包含多个相似性引擎,它们通过不同的机制识别推文候选。其中一个关键的相似性引擎是 EarlybirdTensorflowBasedSimilarityEngine,它利用 Twitter 的搜索基础设施 (Earlybird) 和基于 TensorFlow 的排名来查找相关推文。

相似性引擎组件

来源:cr-mixer/server/src/main/scala/com/twitter/cr_mixer/similarity_engine/EarlybirdTensorflowBasedSimilarityEngine.scala29-138

Earlybird TensorFlow 集成

CR-Mixer 的一个关键能力是它与 Earlybird(Twitter 的搜索索引)和基于 TensorFlow 的排名模型的集成。这使其能够使用机器学习技术从用户未关注的账户中找到相关推文。

EarlybirdTensorflowBasedSimilarityEngine

EarlybirdTensorflowBasedSimilarityEngine 负责

  1. 创建搜索查询以查找推文候选
  2. 对这些候选推文应用基于 TensorFlow 的排名
  3. 基于相关性过滤和排序结果

Earlybird 搜索的查询参数包括

参数目的
seedUserIds用于查找推文的用户 ID
searcherUserId将看到推荐的用户 ID
maxNumTweets返回的最大推文数量
filterOutRetweetsAndReplies用于过滤非原创内容的布尔值
useTensorflowRanking启用基于 TensorFlow 排名功能的布尔值
maxNumHitsPerShard控制每个分片(shard)的搜索终止

来源

TensorFlow 排名配置

CR-Mixer 中的 TensorFlow 排名使用特定参数对推文进行评分

相关性选项包括

选项目的
proximityScoringtrue提高短语查询的相关性
maxConsecutiveSameUser2防止来自同一用户的过多推文
maxHitsToProcess500限制处理以优化性能
maxUserBlendCount3控制用户多样性
proximityPhraseWeight9.0临近度评分的权重
returnAllResultstrue确保返回所有匹配结果

来源

与 Home-Mixer 集成

CR-Mixer 生成推文候选后,它们被发送到 Home-Mixer,Home-Mixer 将

  1. 结合来自多个来源(CR-Mixer、搜索索引、UTEG 等)的候选
  2. 进行进一步排名和过滤
  3. 为用户构建最终的“为你推荐”时间线

这种无缝集成使得 Twitter 能够向用户展示其关注账户的推文和可能感兴趣的推荐内容的混合。

来源:README.md41-49

候选推文质量特性

CR-Mixer 的结果使用元数据选项来增强推荐的质量

这些选项确保推文具有适当的上下文,并且系统有足够的信息来提供高质量的推荐。

来源:home-mixer/server/src/main/scala/com/twitter/home_mixer/util/earlybird/RelevanceSearchUtil.scala12-25

总结

CR-Mixer 是 Twitter 推荐系统中的一个关键组件,提供非关注推文推荐。它利用相似性引擎,特别是带有基于 TensorFlow 排名功能的 Earlybird 搜索基础设施,从用户未关注的账户中查找相关内容。该组件贡献了用户“为你推荐”时间线中大约一半的推文,这使其成为平台内容发现不可或缺的一部分。

来源:README.md41-43