毕业来北京要做的1000件事,第二十二,了解推荐算法

我们目前手机中不论是今日头条,还是抖音等等,很多APP都包含着推荐算法,推荐算法的根本目的是满足千人千面,每一个人打开看到的信息都不一样,系统根据你的标签,来给你推荐相应的内容。

对于推荐算法,我们不能总是停留在吃瓜群众的水平。如何提高自己的认知,可以参考推特的工程师对于推荐算法的描述。来自推特的软件工程师 Gary Lam 在 QCon 伦敦上谈论了个性化推送功能。他分享了推特的个性化及推荐算法,并解释了这些算法是如何在推特的大数据量及二元特征下进行大规模运行的。

个性化分列(personalized fanout)是指只将推送发给感兴趣的用户。例如马斯克发表了一篇关于电动汽车的推文,但并不是他所有的粉丝都能收到通知,而只有那些对电动汽车感兴趣的粉丝才会收到。Lam 解释到,个性化分列算法是通过跟踪两个指标来实现的。其中一个指标是最近参与的对象,这是指用户对话题或用户等特定对象,进行的点赞、回复及其他用户交互操作。Lam 强调这些数据需要保证实时性,因为用户往往只会对他们最近互动过的内容感兴趣。另一个是重点关注对象,虽然一个用户可能关注数百名其他用户,但只有某几个是其重点关注对象,他们发送的内容才是其最感兴趣的。当使用这个算法时,首先要做的是从推文中提炼出各个对象。然后,对每位关注者,查看最近是否有与该对象产生过互动,再检查该推文是否来自于其首要关注的对象。如果同时满足这两个条件,就可以推测出该用户对这条推文感兴趣,他就会收到这条通知。

Lam 解释到,该个性化分列算法的主要问题是不对称性。有些用户被数百万用户所关注,那么每当他们发布一条推文,这个算法就必须对每个关注者进行计算。而有些用户却可能只有几位关注者。Lam 解释了他们是如何利用数据协同定位来解决上述问题的。用户群首先被分片处理,他们最近的互动以及首要关注会和分片保存在一起。这就意味着在算法运行时,不会有网络访问发生,也就大大减少了延迟。Lam 指出,鉴于最近互动的数据本身是有时效性的,计算出的数据并不需要保存很久,所以可以将它们保存在内存中。在数据分片时,数据的重建被预先大幅优化,以确保用户可以收到通知。这是通过在队列中重放前一天所有的推文来进行的,然后将消息打包并删除冗余数据,再将它们传入到分片中。这个过程被称为“涓涓细流”(slim firehose)。同时,通过用户之间的历史交互,利用离线机器学习算法计算出首要的关注目标。由于这些是预先计算好的,它们可以在启动时复制到分片所在的硬盘上,并在需要的时候进行延迟加载。

推荐算法在一些大厂里面,其实是不断更新的。我们无法摸清真正的规律,但是基本规律是不变的,你首要关注的人和你最近互动的视频,往往会被系统优先推荐。在网络上,往往有争议的话题,活跃度高的账号,煽动情绪的文案,具有很高的传播优势。

猜你喜欢

转载自blog.csdn.net/u010261924/article/details/131016187
今日推荐