推荐系统工程实践(2):详解去重设计与实践

本文深入探讨了推荐系统中曝光去重的重要性,尤其是针对同一内容多次曝光的问题。文章分析了内容重复的定义,并提出通过simhash算法检测文本相似性。接着,对比了redis hash方案和bitmap及布隆过滤器方案在曝光去重中的优缺点,强调了布隆过滤器在存储效率和误判率之间的权衡。最后,讨论了在去重服务中面临的挑战,如写满后的处理和存储优化,提出了同构自适应法和异构自适应法等策略,以及去重过滤的实施阶段选择。
摘要由CSDN通过智能技术生成

本文同步发表于:

  1. 知乎专栏: 知乎专栏-推荐系统(2):详解曝光去重实践
  2. 微信公众号: yanianth的公众号-推荐系统(2):详解曝光去重实践

在这里插入图片描述

欢迎关注订阅,一起学习,一起成长~

1. 什么是曝光去重|曝光过滤?

为什么需要曝光去重?

在推荐这个场景,特别是信息流&短视频领域,视频和图文都属于快消品,用户会频繁的刷新,挑选符合他们口味的内容,尤其像抖音 & bilibi这种短内容平台,一刷就是一个下午。

在上文讲过,推荐的逻辑是从整个大的内容池过滤出最符合当下用户的内容,那么如何标识哪些内容已经被用户消费过这个问题,至关重要。

最典型的场景莫过于,重复推荐。我甚至能够想象用户多次刷到重复内容的绝望场景:“不会吧不会吧,这个视频我刚已经点过赞了,又来,up这波要赞简直丧心病狂啊”
在这里插入图片描述

同理在电商推荐场景也类似,用户已经点击过没有明显消费兴趣的,假如还重复推荐的话,本质上是对流量和广告的一种浪费(都是白花花的钱)

1.1 如何定义内容重复

用户刷到重复内容,可以从以下几个角度考量

  1. 相同的内容,在内容池里属于两个不同的itemid

  2. 极度相似的内容,在内容池里属于两个不同的itemid

  3. 同一篇内容,同一个itemid,给同一个用户曝光了多次

其中 1. 2 点都可以通过内容平台入库审核内容时卡掉。相同或者相似的内容不入库。

在检测内容相同或者相似上,有不同的算法。

比如图文内容重复,常见的是 simhash算法。simhash算法是一种局部敏感hash算法。可以将原始的文本映射为 hash数字,且相近的文本得到的hash签名也比较相似。比如 “推荐系统实战” 和 “推荐系统实践” 在文本上只相差1 个字。 算出来的 hash 签名可能是 000101 和 000100。通过对比两个hash签名的 0 1 区别,即可大致判断文本是否相同或者相似(也叫Hamming distance,海明距离)

视频的相似检测也可以基于类似的方法,首先将视频抽成帧,再基于帧提取图像特征,进行模型训练,每个视频的到对应一个 embedding向量。通过计算向量的相似度来判断视频是否相似。

本文主要讨论第3点,在相同itemid 上的曝光去重工程实践。

2 曝光去重的选型考量

在上一小节介绍内容相似的时候,我们引入simhash等相似算法。那么在去重服务上能否也使用simhash?

理论上是可以的。

但是曝光去重作为一个在线服务,在日活千万的产品下,服务QPS甚至可能达到10w/qps, 因此除了达到判重这个功能性需求外,还需要具备有很高的性能(时间复杂度,空间复杂度)

simhash是通过计算内容的签名之间的 01差异数量(海明距离)来判断是否相似的。虽然可以通过离线计算好item之间的相似度,存储起来&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值