Twitter的个性化推荐算法
极客时间编辑部
讲述:杜力大小:597.33K时长:02:33
来自推特的软件工程师 Gary Lam 在 QCon 伦敦上谈论了个性化推送功能。他分享了推特的个性化及推荐算法,并解释了这些算法是如何在推特的大数据量及二元特征下进行大规模运行的。
个性化分列(personalized fanout)是指只将推送发给感兴趣的用户。例如马斯克发表了一篇关于电动汽车的推文,但并不是他所有的粉丝都能收到通知,而只有那些对电动汽车感兴趣的粉丝才会收到。
Lam 解释到,个性化分列算法是通过跟踪两个指标来实现的。其中一个指标是最近参与的对象,这是指用户对话题或用户等特定对象,进行的点赞、回复及其他用户交互操作。Lam 强调这些数据需要保证实时性,因为用户往往只会对他们最近互动过的内容感兴趣。另一个是重点关注对象,虽然一个用户可能关注数百名其他用户,但只有某几个是其重点关注对象,他们发送的内容才是其最感兴趣的。
当使用这个算法时,首先要做的是从推文中提炼出各个对象。然后,对每位关注者,查看最近是否有与该对象产生过互动,再检查该推文是否来自于其首要关注的对象。如果同时满足这两个条件,就可以推测出该用户对这条推文感兴趣,他就会收到这条通知。
Lam 解释到,该个性化分列算法的主要问题是不对称性。有些用户被数百万用户所关注,那么每当他们发布一条推文,这个算法就必须对每个关注者进行计算。而有些用户却可能只有几位关注者。
Lam 解释了他们是如何利用数据协同定位来解决上述问题的。用户群首先被分片处理,他们最近的互动以及首要关注会和分片保存在一起。这就意味着在算法运行时,不会有网络访问发生,也就大大减少了延迟。
Lam 指出,鉴于最近互动的数据本身是有时效性的,计算出的数据并不需要保存很久,所以可以将它们保存在内存中。
在数据分片时,数据的重建被预先大幅优化,以确保用户可以收到通知。这是通过在队列中重放前一天所有的推文来进行的,然后将消息打包并删除冗余数据,再将它们传入到分片中。这个过程被称为“涓涓细流”(slim firehose)。
同时,通过用户之间的历史交互,利用离线机器学习算法计算出首要的关注目标。由于这些是预先计算好的,它们可以在启动时复制到分片所在的硬盘上,并在需要的时候进行延迟加载。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论