让我们探索这个系统的关键部分,大致按照它们在单个时间线请求期间被调用的顺序,从从Candidate Sources检索候选人开始。
候选来源
Twitter 有几个候选源,我们用它们来为用户检索最近和相关的推文。对于每个请求,我们尝试通过这些来源从数亿推文中提取最佳的 1500 条推文。我们从您关注的人(网络内)和您不关注的人(网络外)中寻找候选人。如今,For You 时间轴平均包含 50% 的网络内推文和 50% 的网络外推文,尽管这可能因用户而异。
网内资源
网络内来源是最大的候选来源,旨在提供您关注的用户的最相关、最新的推文。它使用逻辑回归模型根据推文的相关性对您关注的推文进行有效排名。然后将热门推文发送到下一阶段。
对网络内推文进行排名的最重要组成部分是Real Graph。Real Graph 是一种预测两个用户之间参与可能性的模型。您和推文作者之间的 Real Graph 得分越高,我们将包括的他们的推文就越多。
网络内源一直是 Twitter 最近工作的主题。我们最近停止使用 Fanout Service,这是一项已有 12 年历史的服务,以前用于从每个用户的推文缓存中提供网络内推文。我们还在重新设计几年前最后一次更新和训练的逻辑回归排名模型!
网络外资源
在用户网络之外查找相关推文是一个更棘手的问题:如果您不关注作者,我们如何判断某个推文是否与您相关?Twitter 采用两种方法来解决这个问题。
社交图谱
我们的第一种方法是通过分析您关注的人或具有相似兴趣的人的参与度来估计您会发现什么是相关的。
我们遍历参与图并回答以下问题:
- 我关注的人最近与哪些推文进行了互动?
- 谁喜欢和我相似的推文,他们最近还喜欢什么?
我们根据这些问题的答案生成候选推文,并使用逻辑回归模型对生成的推文进行排名。这种类型的图遍历对于我们的网络外推荐至关重要;我们开发了GraphJet,一种图形处理引擎,维护用户和推文之间的实时交互图,以执行这些遍历。虽然这种用于搜索 Twitter 参与度和关注网络的启发式方法已被证明是有用的(这些目前服务于大约 15% 的家庭时间线推文),但嵌入空间方法已成为网络外推文的更大来源。
嵌入空间
嵌入空间方法旨在回答一个关于内容相似性的更普遍的问题:哪些推文和用户与我的兴趣相似?
嵌入通过生成用户兴趣和推文内容的数字表示来工作。然后,我们可以计算该嵌入空间中任意两个用户、推文或用户-推文对之间的相似度。如果我们生成准确的嵌入,我们可以使用这种相似性作为相关性的替代。
Twitter 最有用的嵌入空间之一是SimClusters。SimClusters 使用自定义矩阵分解算法发现由一群有影响力的用户锚定的社区。有 145,000 个社区,每三周更新一次。用户和推文在社区空间中表示,并且可以属于多个社区。社区的规模从个别朋友组的几千用户到新闻或流行文化的数亿用户不等。这些是一些最大的社区: