推荐系统三十六式
刑无刀
“贝壳找房”资深算法专家,8年推荐系统工程师
立即订阅
11387 人已学习
课程目录
已完结 39 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 用知识去对抗技术不平等
免费
第1章 概念篇 (3讲)
【概念篇】你真的需要个性化推荐系统吗?
【概念篇】个性化推荐系统那些绕不开的经典问题
【概念篇】这些你必须应该具备的思维模式
第2章 原理篇 (20讲)
【内容推荐】画鬼容易画人难:用户画像的“能”和“不能”
【内容推荐】从文本到用户画像有多远
【内容推荐】超越标签的内容推荐系统
【近邻推荐】人以群分,你是什么人就看到什么世界
【近邻推荐】解密“看了又看”和“买了又买”
【近邻推荐】协同过滤中的相似度计算方法有哪些
【矩阵分解】那些在Netflix Prize中大放异彩的推荐算法
【矩阵分解】Facebook是怎么为十亿人互相推荐好友的
【矩阵分解】如果关注排序效果,那么这个模型可以帮到你
【模型融合】经典模型融合办法:线性模型和树模型的组合拳
【模型融合】一网打尽协同过滤、矩阵分解和线性模型
【模型融合】深度和宽度兼具的融合模型 Wide and Deep
【MAB问题】简单却有效的Bandit算法
【MAB问题】结合上下文信息的Bandit算法
【MAB问题】如何将Bandit算法与协同过滤结合使用
【深度学习】深度学习在推荐系统中的应用有哪些?
【深度学习】用RNN构建个性化音乐播单
【其他应用算法】构建一个科学的排行榜体系
【其他应用算法】实用的加权采样算法
【其他应用算法】推荐候选池的去重策略
第3章 工程篇 (10讲)
【常见架构】典型的信息流架构是什么样的
【常见架构】Netflix个性化推荐架构
【常见架构】总览推荐架构和搜索、广告的关系
【关键模块】巧妇难为无米之炊:数据采集关键要素
【关键模块】让你的推荐系统反应更快:实时推荐
【关键模块】让数据驱动落地,你需要一个实验平台
【关键模块】 推荐系统服务化、存储选型及API设计
【效果保证】推荐系统的测试方法及常用指标介绍
【效果保证】道高一尺魔高一丈:推荐系统的攻防
【开源工具】和推荐系统有关的开源工具及框架介绍
第4章 产品篇 (3讲)
【产品篇】推荐系统在互联网产品商业链条中的地位
【产品篇】说说信息流的前世今生
【团队篇】组建推荐团队及工程师的学习路径
尾声与参考阅读 (2讲)
推荐系统的参考阅读
【尾声】遇“荐”之后,江湖再见
推荐系统三十六式
登录|注册

【其他应用算法】推荐候选池的去重策略

刑无刀 2018-04-25
今天依然要讲到两个问题,它们看似和推荐系统没有必然关系,但实际上,在你构建自己的推荐系统的时候,不可避免地会遇到这两个问题。

去重是刚需

在推荐系统中,有一个刚需就是去重,那么说在哪些地方有去重的需求呢?
主要是在两个地方:一个是内容源去重,另一个是不重复给用户推荐。
先说说内容源的去重,这部分以前几年的图文信息流推荐为典型的例子。
如果一个平台自己不生产内容,只是做内容搬运和聚合分发,那么从大量第三方的内容生产处抓取内容,就难免遇到相似甚至重复的内容。这就需要对内容做一个重复检测了。
对内容做重复检测,直观的思路是分词,然后提取关键词,再两两计算词向量之间的距离,距离小于一定阈值后就判定为重复。然而,这对于海量内容,比如几千万以上的内容来说简直就是灾难。
其实,内容源去重并不是仅在推荐系统中才首次出现,这早在搜索引擎时代就是一个刚需了,搜索引擎把整个互联网的网页都下载到自己的服务器上,这时,重复冗余的内容就需要被检测出来。
另一个需求是在内容阅读类推荐场景下,给用户推荐的内容不要重复,推荐过的内容就不再出现在推荐候选集中。
在你刷一个信息流产品时,不断看到重复的内容,想必不是使用感很好的一件事。因为以抓取作为主要内容来源的信息流产品,不同于社交网站上用户自发产生内容,除非遇到用户恶意发送,否则后者是不容易重复的。
以上两个场景,需要在你打造自己的推荐系统时予以考虑和应对。今天就介绍两种最常见的去重算法,两者有相通之处也有不同的之处,听我慢慢说来。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《推荐系统三十六式》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(13)

  • 林彦
    Counting Bloom Filter支持删除操作,除了已有的二进制向量,向量的每一位对应一个整数计数器。每当增加一个元素时,哈希函数映射到的二进制向量对应的整数计数器加一,删除时减一。有了这个操作可以增加,查找和删除集合里的元素。
    2018-04-25
    4
  • EAsY
    用布隆过滤来过滤用户推荐记录的话 是否需要为每个用户存一个向量 之前考虑过用bitmap 内容池经常变动 感觉比较麻烦
    2018-04-25
    1
    3
  • vicviz
    Bloomfilter非常大的时候,用什么存储呢?用户数过亿,保存上千条内容不重,还得持久化
    2018-05-03
    1
    1
  • 曾阿牛
    对于分页展示的推荐列表,有更快速的方法保证前后几页不重复吗?
    2018-04-26
    1
  • 曾阿牛
    业界一般是不对布隆过滤器剔除元素,原因是剔除已有元素有可能导致整体数据错误。想到一种方法:使用一个同样长度的向量,记录对于位置1的个数,剔除是先hash6映射,对于1的位置,个数大于的话不变,等于1的话设为0;不过,缺点是这个向量占空间,存储成稀疏向量吧
    2018-04-26
    1
  • luis
    如bloomfilter要存储的过滤数据很大 每个用户至少需要20mb 全放在内存 100万用户就要2000g的内存 这要怎么解决
    2019-09-03
  • 随心而至
    如果每一节能把参考的资料给出来就好了,虽然有的通过Google可以找到类似的。
    2019-08-06
  • chy2048
    买了这个专栏只想请教下关于去重的问题,不知道还会不会有人回复😂
    用布隆过滤器防止内容重复推荐,具体是怎么实现的?
    1.是一个用户一个布隆过滤器吗?
    2.如果是一人一个布隆过滤器的话,如何设置布隆过滤器的大小呢?貌似不能动态伸缩吧?
    3.布隆过滤器持久化是依赖redis吗?
    4.如果需要对过去24小时的内容去重,如果每隔24小时创建一个布隆过滤器,那两个过滤器如何平滑过度?
    看到有空麻烦回复下,谢谢🙏买这个专栏只为这一篇,本来想看下面的评论,结果评论只有10条,我晕
    2019-07-15
  • Geek_c6646f
    信息流页面,调用api接口获取到推荐的数据,一般情况下会在页面进行瀑布流加载更多。那么每次请求数据和整个瀑布流批次数据如何统一?防止重复推荐?如何处理整个批次的推荐和单次的存储、缓存、以及统一呢? 作者回复: 关于这个问题,在我的图书中有详细介绍。
    我:哪本书呢

    作者回复: 已经完成,还在编辑中。

    2019-05-30
  • shangqiu86
    感觉布隆过滤不错,可以考虑把我们这目前的累计用户的点击sku串改成布隆过滤这种方式,来增加保存的用户历史行为数据量
    2019-05-06
  • chon
    老师,simhash算法有啥好用的来源项目吗?谢谢

    作者回复: 自己实现很简单的。

    2019-03-18
  • Da.du.Ma
    信息流页面,调用api接口获取到推荐的数据,一般情况下会在页面进行瀑布流加载更多。那么每次请求数据和整个瀑布流批次数据如何统一?防止重复推荐?如何处理整个批次的推荐和单次的存储、缓存、以及统一呢?

    作者回复: 关于这个问题,在我的图书中有详细介绍。

    2019-01-14
  • wzm1990
    请教个问题,我们在用 simhash 做文本去重,用一个 simhash 值跟几十万个值比对。目前是把几十万的值放到 redis,比对时加载到程序里,这样做特别耗cpu,有没有其他更好的实现
    2018-05-11
收起评论
13
返回
顶部