4月1日消息,埃隆・马斯克在执掌Twitter之后,实施了一系列变化。在最新推文中,马斯克宣布开源大部分Twitter的源代码,以提高透明度,增强和用户、客户和媒体之间信任度。
翻译马斯克的推文内容如下:“Twitter 2.0 是互联网中一座城邦,我们认为有责任提高平台的透明度”。该公司在 GitHub 上新建了 2 个库,开源了包括“为你推荐”(For You)标签页的推文推荐算法在内的诸多源代码。
Twitter官方表示:“我们的目标是尽可能提高透明度,同时排除任何会危及用户安全和隐私的代码,并保护我们的平台免受不良行为者影响”。
Twitter的推荐算法长什么样?
据介绍,Twitter的推荐系统基于一组核心模型和功能,可以从推文、用户和互动数据中提取潜在信息。这些模型的作用是回答Twitter网络中的重要问题,例如,“未来你与另一个用户互动的概率是多少?”或者,“Twitter上有哪些社区以及其中的趋势推文是什么?”若是能够准确回答这些问题,就可以让Twitter提供更多相关的推荐。
Twitter的推荐系统由三大部分构成:
从不同的推荐源获取最好的推文,这个过程称为候选源。使用机器学习模型对每条推文进行排名。应用heuristics和filters,例如过滤来自已屏蔽用户的推文、NSFW内容和已看到的推文。负责构建和提供“For You”时间轴的服务被称为“Home Mixer”。“Home Mixer”建立在“Product Mixer”之上,这是定制的Scala框架,有助于构建内容的动态流。这项服务作为软件主干,连接不同的候选源、评分函数、heuristics和filters。
候选源(Candidate Sources)Twitter使用多个候选源来为用户检索最近和相关的推文。对于每个请求,推特尝试通过这些源从数亿条推文池中提取最佳的1500条。从您关注的人(内部网络)和不关注的人(外部网络)中寻找候选人。如今,“为您推荐”时间轴平均由50%的内部网络推文和50%的外部网络推文组成(尽管这可能因用户而异)。
内部网络资源(In-Network Source)
内部网络资源是最大的候选来源,旨在提供关注的用户最相关、最新的推文。它使用逻辑回归模型高效地对关注的人的推文进行排名,以其相关性为基础。然后将排名最高的推文发送到下一阶段。
排名内部网络推文最重要的组成部分是Real Graph。
Real Graph是一种模型,用于预测两个用户之间的互动可能性。用户和推文作者之间的Real Graph分数越高,就会包括更多他们的推文。内部网络来源最近成为Twitter的研究对象。最近Twitter停止使用Fanout服务,这是一个12年前用来从每个用户的推文缓存中提供内部网络推文的服务。
外部网络资源(Out-of-Network Sources)
在用户网络之外寻找相关的推文是一个棘手的问题。因为如果你不关注作者,怎么知道某条推文是否与你相关?为此,Twitter采取了两种方法来解决这个问题。一个是社交图(Social Graph)。这个方法是通过分析你关注的人或有相似兴趣的人的活动,来估计你会发现什么是相关的。
主要遍历参与的图,并按照以下步骤回答以下问题:
我关注的人最近在Twitter上发了什么消息?谁和我一样喜欢类似的推文,他们最近还喜欢什么?团队根据这些问题的答案生成候选推文,并使用Logit模型对产生的推文进行排名。这种类型的图形遍历对于外部网络推荐是必不可少的;团队开发了GraphJet,一个维护用户和推文之间实时交互图的图形处理引擎,来执行这些遍历。虽然这种搜索Twitter参与和关注网络的启发式方法已经被证明是有用的,但嵌入式空间方法已经成为外部网络推文的更大来源。
第二个是嵌入空间(Embedding Spaces)。
嵌入式空间方法旨在回答一个关于内容相似性的更普遍的问题——什么推文和用户与我的兴趣相似?
Embeddings通过生成用户兴趣和推文内容的数字表示来工作。然后可以计算这个嵌入空间中任意两个用户之间的相似度,推文或用户-推文对。只要生成准确的embedding,就可以使用这种相似性作为相关性的替代。
Twitter最有用的嵌入空间之一是SimClusters。
SimClusters使用自定义矩阵分解算法发现由一群有影响力的用户锚定的社区(有14.5万个社区,每三周更新一次)。用户和推文在社区空间中表示,并且可以属于多个社区。社区的规模从个人朋友群的几千名用户到新闻或流行文化的数亿用户不等。