feed流是推荐系统的一种常见形式,突出的产品有微博、抖音、朋友圈等
feed:每一个状态和消息,通常由用户更新
流:特点是持续更新
feed流中最广泛的形式是Timeline流,分为个人页Timeline和关注页Timeline。还可以以用户喜好程度排序,选出用户最想看的topN,适用于新闻、商品推荐等场景。
feed流的特点:
1. 多账号内容流:系统中有一定量的账号,账号之间存在关注、取关、拉黑等关系
2. 非稳定账号关系:用户间的关系会随时发生变化
3. 读写不平衡:读多写少
4. 消息必达性:必须保证相关用户能看到消息
feed流系统设计:
两个侧重点:存储、推送
存储对于用户量级比较大的系统来说是难点。
而推送方案里主要有两种方案,推模式(写扩散)和拉模式(读扩散)
两种模式的对比:
不同模式的适用场景:
拉模式:许多feed流系统初版会基于拉模式,因为用户数较少且日活低,拉取成本较低
推模式:
1. 用户关系数比较均匀,且有上限,如朋友圈
2. 偏向推荐类feed,同一个feed对不同用户价值不同,计算feed和用户间的分数,只推荐给分数较高的用户
推拉结合模式:大部分用户关系数比较均匀,少数用户千万级别,无上限。例如微博。能够解决单纯采用推模式时大V用户高并发写问题。
以微博为例,使用两种推拉模式:
① 在线推,离线拉:大V发布动态后,有限推送给同时在线的粉丝,离线粉丝上线后再拉取该动态。
② 定时推,离线拉:大V发布动态后,以常驻进程的形式推送到粉丝关注✌️。
feed流智能排序(Ranking):
智能排序基于趋势trending、热门hot、用户生产UGC 、编辑推荐PGC、相似Similarity等等因素综合考虑,随着技术的进步智能算法将会更加懂得用户的喜好。