以前总觉得算法只是面试才需要应付了解的东西,可直到最近为了优化公司短视频推荐的请求速度,才了解到算法思想是解决问题的根基。
我们知道对于一个推荐系统来说,推送重复的内容是非常糟糕的用户体验。
所以一直很好奇抖音是究竟如何做到快速返回推荐视频列表并且做到不重复的。
经过调研,如果利用表记录进行not in或exist排除,查询速度是很慢的,这一点在我们公司的短视频业务中就有所体现,最近就在尝试优化我们公司短视频推荐返回速度。
除此之外,网上还有一种解决方案,布隆过滤器。
这种方案理论上貌似可行,不过感觉对存储要求还是蛮高的,对于创业公司来说,似乎并不现实。
那么有没有一种其他解决思路呢?
经过多重思考,结合短视频业务场景,总算设计出了一套算法来解决海量数据去重问题。
大致思路就是利用队列先进先出(不是消息队列)➕观看记录表实现设计的一套算法。