召回12 曝光过滤 & Bloom Filter

        在推荐系统中,如果用户看过某个物品,就不再把物品推荐给这个用户。小红书、抖音都这样做曝光过滤,原因是实验表明重复曝光同一个物品会损害用户体验。但也不是所有推荐系统都有曝光过滤,像 YouTube 这样的长视频就没有曝光过滤,看过的可以再次推荐。           曝光过滤通常是在召回阶段做。想要做曝光过滤,需要对于每个用户,记录已经曝光给他的物品。一个用户历史上看过的物品可能会非常多,为了做到高效的曝光过滤,需要用Bloom Filter这种数据结构。

曝光过滤

Bloom Filter

 

Bloom Filter是一种数据结构 。

K=0的情况:

K=3的情况:

误伤概率:

即每个曝光物品需要占几个bit的存储,用户历史上有n个曝光物品,只需要m=10n bits就可以把误伤概率降低到1%以下。

把曝光物品写入kafka消息队列,用fink做实时计算,fink实时读取Kafka消息队列,计算曝光物品的哈希值,把结果写到Bloom Filter的二进制向量上。

用这样的实时更新链路,在曝光发生几秒之后,用户的Bloom Filter就会被修改,就可以避免重复曝光。但如果挂掉或者延迟较大,会失误。

曝光过滤具体用在召回完成之后,召回服务器请求曝光过滤服务,曝光过滤服务把用户的二进制向量发送给召回服务器。在召回服务器,用Bloom Filter计算召回物品的哈希值,再和二进制向量做对比,把已经曝光的给过滤。剩余的物品未曝光,发送给排序阶段。

总结:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值