23 | 推荐候选池的去重策略
刑无刀
该思维导图由 AI 生成,仅供参考
今天依然要讲到两个问题,它们看似和推荐系统没有必然关系,但实际上,在你构建自己的推荐系统的时候,不可避免地会遇到这两个问题。
去重是刚需
在推荐系统中,有一个刚需就是去重,那么说在哪些地方有去重的需求呢?
主要是在两个地方:一个是内容源去重,另一个是不重复给用户推荐。
先说说内容源的去重,这部分以前几年的图文信息流推荐为典型的例子。
如果一个平台自己不生产内容,只是做内容搬运和聚合分发,那么从大量第三方的内容生产处抓取内容,就难免遇到相似甚至重复的内容。这就需要对内容做一个重复检测了。
对内容做重复检测,直观的思路是分词,然后提取关键词,再两两计算词向量之间的距离,距离小于一定阈值后就判定为重复。然而,这对于海量内容,比如几千万以上的内容来说简直就是灾难。
其实,内容源去重并不是仅在推荐系统中才首次出现,这早在搜索引擎时代就是一个刚需了,搜索引擎把整个互联网的网页都下载到自己的服务器上,这时,重复冗余的内容就需要被检测出来。
另一个需求是在内容阅读类推荐场景下,给用户推荐的内容不要重复,推荐过的内容就不再出现在推荐候选集中。
在你刷一个信息流产品时,不断看到重复的内容,想必不是使用感很好的一件事。因为以抓取作为主要内容来源的信息流产品,不同于社交网站上用户自发产生内容,除非遇到用户恶意发送,否则后者是不容易重复的。
以上两个场景,需要在你打造自己的推荐系统时予以考虑和应对。今天就介绍两种最常见的去重算法,两者有相通之处也有不同的之处,听我慢慢说来。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
推荐候选池的去重策略是推荐系统中不可或缺的一环。文章介绍了两种常见的去重算法:Simhash和Bloomfilter。Simhash通过将内容映射为整数指纹,利用哈希函数和加权向量的方式进行内容重复检测,避免不重要的词汇影响重复检测的准确性。而Bloomfilter则通过哈希函数和二进制位向量的映射,实现对内容ID的去重,以防止已经推荐的内容被重复推荐。这两种算法都以牺牲一定的误伤概率为代价,换取了大幅度的效率提升,具体实现上都借助了哈希函数。总结来看,文章强调了在推荐系统中对原始内容的挖掘和清洗的重要性,其中包括对重复内容的检测。这两种去重策略都体现了技术上的创新和高效性,为推荐系统的构建提供了有力支持。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《推荐系统三十六式》,新⼈⾸单¥59
《推荐系统三十六式》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(15)
- 最新
- 精选
- yyy信息流页面,调用api接口获取到推荐的数据,一般情况下会在页面进行瀑布流加载更多。那么每次请求数据和整个瀑布流批次数据如何统一?防止重复推荐?如何处理整个批次的推荐和单次的存储、缓存、以及统一呢? 作者回复: 关于这个问题,在我的图书中有详细介绍。 我:哪本书呢
作者回复: 已经完成,还在编辑中。
2019-05-3021 - chon老师,simhash算法有啥好用的来源项目吗?谢谢
作者回复: 自己实现很简单的。
2019-03-18 - Da.du.Ma信息流页面,调用api接口获取到推荐的数据,一般情况下会在页面进行瀑布流加载更多。那么每次请求数据和整个瀑布流批次数据如何统一?防止重复推荐?如何处理整个批次的推荐和单次的存储、缓存、以及统一呢?
作者回复: 关于这个问题,在我的图书中有详细介绍。
2019-01-14 - 林彦Counting Bloom Filter支持删除操作,除了已有的二进制向量,向量的每一位对应一个整数计数器。每当增加一个元素时,哈希函数映射到的二进制向量对应的整数计数器加一,删除时减一。有了这个操作可以增加,查找和删除集合里的元素。2018-04-2510
- chy2048买了这个专栏只想请教下关于去重的问题,不知道还会不会有人回复😂 用布隆过滤器防止内容重复推荐,具体是怎么实现的? 1.是一个用户一个布隆过滤器吗? 2.如果是一人一个布隆过滤器的话,如何设置布隆过滤器的大小呢?貌似不能动态伸缩吧? 3.布隆过滤器持久化是依赖redis吗? 4.如果需要对过去24小时的内容去重,如果每隔24小时创建一个布隆过滤器,那两个过滤器如何平滑过度? 看到有空麻烦回复下,谢谢🙏买这个专栏只为这一篇,本来想看下面的评论,结果评论只有10条,我晕2019-07-1516
- EAsY用布隆过滤来过滤用户推荐记录的话 是否需要为每个用户存一个向量 之前考虑过用bitmap 内容池经常变动 感觉比较麻烦2018-04-2514
- vicvizBloomfilter非常大的时候,用什么存储呢?用户数过亿,保存上千条内容不重,还得持久化2018-05-0332
- 曾阿牛对于分页展示的推荐列表,有更快速的方法保证前后几页不重复吗?2018-04-2612
- 随心而至如果每一节能把参考的资料给出来就好了,虽然有的通过Google可以找到类似的。2019-08-061
- 曾阿牛业界一般是不对布隆过滤器剔除元素,原因是剔除已有元素有可能导致整体数据错误。想到一种方法:使用一个同样长度的向量,记录对于位置1的个数,剔除是先hash6映射,对于1的位置,个数大于的话不变,等于1的话设为0;不过,缺点是这个向量占空间,存储成稀疏向量吧2018-04-261
收起评论