用户画像系列——布隆过滤器在策略引擎中的应用

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 用户画像系列——布隆过滤器在策略引擎中的应用

用户画像系列——当我们聊用户画像,我们在聊什么?

介绍了用户画像的应用场景:

(1)个性化推荐

通过用户标签给用户推荐合适的商品或者内容

(2)营销圈选

参考:用户画像系列——Lookalike在营销圈选扩量中的应用

(3)策略引擎

根据用户标签命中不同的策略,比如说:高消费人员有奢侈品入口通道

(4)算法模型

(5)画像报告

背景:

这篇文章分享的是用户画像在策略引擎中的应用。首先来了解下策略引擎是干什么的?

比如:当某个用户第一次进入某个平台,会给你弹窗有什么优惠,新用户优惠券等等;或者某个用户消费金额极高,达到一个阈值,认为该用户有极大的消费能力,可以开放奢侈品入口,即:淘宝上的奢侈品频道是根据之前有消费过奢侈品、且高价值的用户才开放的。

上述是一个简单的策略引擎,通过进行判断当前进入的用户是否满足某个或者多个条件然后进行相应的营销策略

问题和思路:

当引擎策略(或者称之为规则)过于复杂,同时还会经常对规则进行变更,那么是否有一个更加简单的方法来处理呢?即是这篇文章要要分享的通过人群圈选功能,圈出目标用户,定义为人群包,然后当前用户进行平台判断该用户是否在这个人群包里面,因为是线上服务,要求进行用户去查询人群包匹配是否存在的过程需要在毫秒内返回结果

通过上述方案,只需要修改圈选条件,就能够非常简单的解决,策略条件过于复杂以及经常调整的问题。

线上实际应用以及遇到的问题:

因为要求线上用户访问去人群包进行匹配的过程,需要在毫秒级进行返回,因此需要对于人群包数据进行存储,考虑采用redis 进行存储。

redis数据结构如下:

key:人群包id key_1,value:圈选出来的用户列表[userId_1,userId_2,userId_3等等]

SADD key_1 userId_1 userId_2 userId_3 //添加用户id到人群包key_1中
SISMEMBER key_id userId_3 //判断userId_3在不在人群包key_1中

但是随着人群包越来越多,需要的存储也越来越多,通常一个人群包里面的用户少则几万多则上千万甚至亿级。

优化方案:

通过使用redis 的布隆过滤器

bf.madd key_1 userId_1 userId_2 userId_3 //添加用户到人群包中
bf.exists key_1 userId_3 //判断用户是否在人群包中

由于布隆过滤器存储空间小,并且节省空间,不存储数据本身,仅存储hash结果取模运算后的位标记,整理存储优化极大相对于散列表

布隆过滤器详细原理参考:

Redis-布隆过滤器(Bloom Filter)详解

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
存储 搜索推荐 关系型数据库
用户画像系列——HBase 在画像标签过期策略中的应用
用户画像系列——HBase 在画像标签过期策略中的应用
130 0
|
存储 SQL 负载均衡
列式存储引擎分析比对
列式存储具有高压缩率、利于列裁剪、以及高CPU计算效率(Cache Friendly)等特点,是分析型业务场景所选择的主流数据存储方案。 本文介绍了工业界一些常见的面向OLAP或HTAP场景数据库的列存存储引擎设计思路,并进行了总结和对比。
2776 3
|
1月前
|
SQL 缓存 分布式计算
C#如何处理上亿级数据的查询效率
C#如何处理上亿级数据的查询效率
20 1
|
1月前
|
存储 监控 Java
千万级数据索引优化策略与实践
【10月更文挑战第10天】在处理千万级数据时,索引是数据库性能优化的关键。以下是根据您的要求,对如何使用索引进行快速查找、如何在实际工作中平衡这些问题,以及聚集索引、覆盖索引和索引下推的详细解读,并附上Java代码示例。
29 0
|
1月前
|
存储 缓存 数据处理
深度解析:Hologres分布式存储引擎设计原理及其优化策略
【10月更文挑战第9天】在大数据时代,数据的规模和复杂性不断增加,这对数据库系统提出了更高的要求。传统的单机数据库难以应对海量数据处理的需求,而分布式数据库通过水平扩展提供了更好的解决方案。阿里云推出的Hologres是一个实时交互式分析服务,它结合了OLAP(在线分析处理)与OLTP(在线事务处理)的优势,能够在大规模数据集上提供低延迟的数据查询能力。本文将深入探讨Hologres分布式存储引擎的设计原理,并介绍一些关键的优化策略。
97 0
|
3月前
|
存储 人工智能 自然语言处理
知识库优化增强,支持多种数据类型、多种检索策略、召回测试 | Botnow上新
Botnow近期对其知识库功能进行了全面升级,显著提升了数据处理能力、检索效率及准确性。新版本支持多样化的数据格式,包括PDF、Word、TXT、Excel和CSV等文件,无需额外转换即可直接导入,极大地丰富了知识来源。此外,还新增了细致的文本分片管理和编辑功能,以及表格数据的结构化处理,使知识管理更为精细化。 同时,平台提供了多种检索策略,包括混合检索、语义检索和全文检索等,可根据具体需求灵活选择,有效解决了大模型幻觉问题,增强了专业领域的知识覆盖,从而显著提高了回复的准确性。这些改进广泛适用于客服咨询、知识问答等多种应用场景,极大提升了用户体验和交互质量。
73 4
|
3月前
|
关系型数据库 MySQL 分布式数据库
PolarDB 并行查询问题之大数据量的实时分析查询挑战如何解决
PolarDB 并行查询问题之大数据量的实时分析查询挑战如何解决
35 2
|
3月前
|
分布式计算 数据库 Spark
实时数仓 Hologres产品使用合集之如何优化增加索引和主键
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
5月前
|
数据采集 Web App开发 缓存
深入了解布隆过滤器:数据筛选的利器
深入了解布隆过滤器:数据筛选的利器
|
6月前
|
存储 新零售 监控
挖掘业务场景的存储更优解
挖掘业务场景的存储更优解