vivo短视频去重推荐系统如何优化设计?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4018个文字,预计阅读时间需要17分钟。
vivo短视频基于布隆过滤器推荐的方案,设计上追求简洁、美观、优雅。首先,结合业务特性进行技术调研和选型,随后在技术选型基础上逐步思考和设计。
本文介绍了vivo短视频基于布隆过滤器的推荐去重的设计方案,在设计过程中我们力求简单、完美、优雅。首先,结合业务特点进行技术调研和选型,其次在技术选型之上逐步思考和设计布隆过滤器生成、存储方案,在细节方面也有精细考虑,最后在尝试多种迁移方案基础上形成了最终平滑迁移方案。 一、概述 1.1 业务背景vivo短视频在视频推荐时需要对用户已经看过的视频进行过滤去重,避免给用户重复推荐同一个视频影响体验。在一次推荐请求处理流程中,会基于用户兴趣进行视频召回,大约召回2000~10000条不等的视频,然后进行视频去重,过滤用户已经看过的视频,仅保留用户未观看过的视频进行排序,选取得分高的视频下发给用户。
1.2 当前现状当前推荐去重基于Redis Zset实现,服务端将播放埋点上报的视频和下发给客户端的视频分别以不同的Key写入Redis ZSet,推荐算法在视频召回后直接读取Redis里对应用户的播放和下发记录(整个ZSet),基于内存中的Set结构实现去重,即判断当前召回视频是否已存在下发或播放视频Set中,大致的流程如图1所示。
(图1:短视频去重当前现状)
视频去重本身是基于用户实际观看过的视频进行过滤,但考虑到实际观看的视频是通过客户端埋点上报,存在一定的时延,因此服务端会保存用户最近100条下发记录用于去重,这样就保证了即使客户端埋点还未上报上来,也不会给用户推荐了已经看过的视频(即重复推荐)。而下发给用户的视频并不一定会被曝光,因此仅保存100条,使得未被用户观看的视频在100条下发记录之后仍然可以继续推荐。
本文共计4018个文字,预计阅读时间需要17分钟。
vivo短视频基于布隆过滤器推荐的方案,设计上追求简洁、美观、优雅。首先,结合业务特性进行技术调研和选型,随后在技术选型基础上逐步思考和设计。
本文介绍了vivo短视频基于布隆过滤器的推荐去重的设计方案,在设计过程中我们力求简单、完美、优雅。首先,结合业务特点进行技术调研和选型,其次在技术选型之上逐步思考和设计布隆过滤器生成、存储方案,在细节方面也有精细考虑,最后在尝试多种迁移方案基础上形成了最终平滑迁移方案。 一、概述 1.1 业务背景vivo短视频在视频推荐时需要对用户已经看过的视频进行过滤去重,避免给用户重复推荐同一个视频影响体验。在一次推荐请求处理流程中,会基于用户兴趣进行视频召回,大约召回2000~10000条不等的视频,然后进行视频去重,过滤用户已经看过的视频,仅保留用户未观看过的视频进行排序,选取得分高的视频下发给用户。
1.2 当前现状当前推荐去重基于Redis Zset实现,服务端将播放埋点上报的视频和下发给客户端的视频分别以不同的Key写入Redis ZSet,推荐算法在视频召回后直接读取Redis里对应用户的播放和下发记录(整个ZSet),基于内存中的Set结构实现去重,即判断当前召回视频是否已存在下发或播放视频Set中,大致的流程如图1所示。
(图1:短视频去重当前现状)
视频去重本身是基于用户实际观看过的视频进行过滤,但考虑到实际观看的视频是通过客户端埋点上报,存在一定的时延,因此服务端会保存用户最近100条下发记录用于去重,这样就保证了即使客户端埋点还未上报上来,也不会给用户推荐了已经看过的视频(即重复推荐)。而下发给用户的视频并不一定会被曝光,因此仅保存100条,使得未被用户观看的视频在100条下发记录之后仍然可以继续推荐。

