做短视频推荐的app 如何做到推荐非重复的视频给用户

现在打算使用HyperLogLog过滤看过的视频
视频数据现有方案是保存到mongodb

问题:
1.每次前端请求分页获取视频后再去排重会导致可能会有一整页的视频都有看过
2.发布的新视频如何进入推荐列表

阅读 3k
2 个回答

可以看下布隆过滤器

  • 首先要你要明确你的推荐规则,是新发布的视频不能进入你这个推荐列表吗?那你就再准备一个接口专门获取新发布视频的列表,至于怎么插入,可以由客户端决定,
  • 如果你要做短视频推荐进行不重复推荐,首先你的基础数据必须多,或者说用户发布的视频必须频繁,不然用户随便刷刷结果你的视频库的视频全被他看过了,那你怎么推荐.
  • 然后照你们的业务逻辑如何处理整页数据被用户看过了,设置一个请求数据基数,例如20条,然后这个操作客户端或者后端都行,如果是客户端请求去排重,那不管这一页用户有多少条看过,如果不满足有效数据20条就直接请求下一页的数据,一直到满足到20有效数据后停止请求,显示和请求可以异步化. 后端排重也是这样的差不多的思路,一直进行下一页查询,凑满20条有效数据后再返回给客户端,并告诉客户端已经扫描到多少页了,下次请求就从这一页开始.但是这个方案如果你的视频库比较小,更新频率比较低的话,那可能从第一页扫描到倒数几页,这样会出现用户一直在等待数据,所以你必须保证你的视频库每天必须有一定量的视频更新,比如500条.这样的话就能保证用户至少能刷到500条新数据.而不会让用户去视频库里的存量视频里去匹配老数据给用户观看,避免出现用户观看率过高.
  • 个人是不推荐你自己开发推荐系统的,你可以直接去找个推荐系统的开源项目.这样的系统比你自己开发的成熟得多,而且维护成本也低
推荐问题