手把手教你搭建用户画像系统(入门篇上)
随着大数据技术的深入研究与应用,企业的关注点日益聚焦在如何利用大数据来为精细化运营和精准营销服务,而要做精细化运营,首先要建立本企业的用户画像。搭建一套用户画像方案整体来说需要考虑8个模块的建设,如下图:
下面简单介绍这八大模块。
1.1什么是用户画像
用户画像是指描述一个用户或用户群体的细节和特征的方法,通过收集用户的社会属性、消费习惯、偏好特征等各个维度的数据,进而对用户或者产品特征属性进行刻画,并对这些特征进行分析、统计,挖掘潜在价值信息,从而抽象出用户的信息全貌。概括一句话:即用户信息标签化。
1.2用户画像数据架构
1)数据底层整理
图中最下方的虚线框中的内容,是常见的数据仓库ETL加工流程,也就是将每日的业务数据、日志数据、埋点数据等经过ETL处理,加工到数据仓库对应的ODS层、DW层、DM层中。数据指标的的梳理来源于各个系统日常积累的日志记录系统,通过大数据平台接入数据仓库中。数仓底层主要依托hadoop、hdfs、hive。
2)用户画像建模
中间的虚线框即为用户画像建模的重要环节,即对基于数据仓库ODS层、DW层、DM层中与用户相关的数据的二次建模加工,而用户画像系统并不是产生数据的源头,之后将二次加工后的用户标签结果写入到Hive中。由于不同的数据库有不同的应用场景,后续需要进一步将数据同步到MySQL、HBase、Elasticsearch等数据库中。
3)面向应用
用户标签数据在Hive中加工完成之后,部分标签通同步到MySQL、ES数据库中,提供用于BI报表展示的数据、多为透视分析的数据、圈人服务的数据;另一部分标签同步到HBase数据库中,用户产品线上个性化推荐。
1.3 画像开发流程
1)需求分析
用户画像体系的建设不能凭空捏造,需要以经济建设为中心,根据实际的业务需求,考量画像系统能为业务带来的价值,所以我们第一步要做的是分析业务需求。
2)搭建标签体系
标签是某一种用户特征的符号表示,标签解决的是描述(或命名)问题,但在实际应用中,还需要解决数据之间的关联,所以通常将标签作为一个体系来设计,以解决数据之间的关联问题。所以说我们在给用户打标签的同时,需要有一个分类标准,简单说,就是你把用户分到多少个类别里面去,这些类是什么,彼此之间有什么关系,就构成了标签体系。
3)建立用户画像和用户画像系统
在把用户数据标签化之后,通过相应的模型或工具,根据数据分析的结果,将用户的特征、兴趣和行为整合成用户画像的形式,可以是文字描述、标签或图表等形式,以便后续使用和分析。为了提高体验,我们更多的的时候是一个用画像系统。
4)画像应用
应用场景包含 3 类:精准营销、用户分析、个性化推荐。
构成用户的标签可以是多种多样的,也应该能够渗透到丰富的业务场景中去,因而标签就需要兼顾广泛性和精确性,这就引入了标签体系的概念。说白了,所谓标签体系,标签体系就是分类。
2.1 按维度划分体系
标签体系化化是建立用户画像的关键环节,也是在标签开发前要进行的工作,具体来说就是需要结合本公司的业务情况设定相关的指标。从建立的标签维度来看,可以将其分为用户属性、用户行为、用户消费、风险控制、社交属性等五大常见类型。
2.2 统计方式分类
首先我们来了解一下按统计方法的不同划分的分类,按统计方式分类的标签可分为统计类标签、规则类标签、挖掘类标签。
标签平台是一个中间层的服务,为前台提供的是数据支持。另外一方面标签平台的加工,依赖底层的基础数据平台的原始数据。
3.1 新建标签
标签管理平台中,每个标签开发时,首先需要在管理平台上注册,生成标签元数据,然后我们在根据元数据信息在大数据平台进行逻辑加工。
3.2 标签视图与查询
标签视图与查询功能主要面向业务人员使用,标签视图版块中,层级化地展示了目前正在使用的全部用户标签。方便应用方点击查看每个标签的详细情况。
3.3 标签管理
标签管理,是用户画像是开发的起点,所有的用户画像都起始于对标签的定义和规则的指定。标签管理是基于标签整个生命周期进行管理。标签的生命周期包括“标签创建、标签审核、标签上线、标签评估、标签变更、标签下线”六个部分。
4.1 标签开发流程
标签的开发在hive库完成,因为标签的模型体系是基于数据仓库而来,所以大致流程也和数据仓库的开发流程类似,具体工作流程如下:
4.2 标签表模型设计
表结构设计也是画像开发过程中需要解决的一个重要问题。表结构设计的重点是要考虑存储哪些信息、如何存储(数据分区)、如何应用(如何抽取标签)这3个方面的问题。不同业务背景有不同的设计方式。
以Hive为例,我们最常用的就是横表,也就是一个 key,跟上它的所有标签。横表的问题:
1)由于用户的标签会非常多,而且随着用户画像的深入,会有很多细分领域的标签,这就意味着标签的数量会随时增加,而且可能会很频繁。
2)不同的标签计算频率不同,比如说学历一周计算一次都是可以接受的,但是APP登录活跃情况却可能需要每天都要计算。
3)计算完成时间不同,如果是以横表的形式存储,那么最终需要把各个小表的计算结果合并,此时如果出现了一部分结果早上3点计算完成,一部分要早上10点才能计算完成,那么横表最终的生成时间就要很晚。
4)大量空缺的标签会导致存储稀疏,有一些标签会有很多的的缺失,这在标签用户画像中很常见,主要是当标签数据量开始快速增加的时候会遇到的问题。
竖表其实就是将标签都拆开,一个用户有多少标签,那么在这里面就会有几条数据。竖表能比较好地解决上面宽表的问题。但是它也会带来了新的问题,比如说多标签组合的查询需求:“我们想看年龄在23-30之间,月薪在10-20k之间,喜欢听古典音乐的女性”,这种多标签查询条件组合情况在竖表中就不太容易支持。
如前面所分析,竖表和横表各有所长和所短,那么能不能两者结合呢?
这其实也要考虑横表和竖表的特性,整体来讲就是竖表对计算层支持的好,横表对查询层支持的好。那么设计的化就可以这样:
4.3 标签开发
统计类标签是最为基础也最为常见的标签类型,例如,对于某个用户来说,其性别、年龄、城市、星座、近7日活跃时长、近7日活跃天数、近7日活跃次数等字段可以从用户注册数据、用户访问、消费数据中统计得出。该类标签构成了用户画像的基础。
规则类标签基于用户行为及确定的规则产生。例如,对平台上“消费活跃”用户这一口径的定义为“近30天交易次数≥2”。在实际开发画像的过程中,由于运营人员对业务更为熟悉,而数据人员对数据的结构、分布、特征更为熟悉,因此规则类标签的规则由运营人员和数据人员共同协商确定。
机器学习挖掘类标签通过机器学习挖掘产生,用于对用户的某些属性或某些行为进行预测判断。例如,根据一个用户的行为习惯判断该用户是男性还是女性、根据一个用户的消费习惯判断其对某商品的偏好程度。该类标签需要通过算法挖掘产生。
下篇文章中,我们继续从标签存储、标签调度推数、用户画像系统和用户画像的应用来带大家搭建一个完整的用户画像系统。
涤生大数据往期精彩推荐
1.数仓建模本质到底是什么?为什么维度建能模脱颖而出?
2.企业数仓DQC数据质量管理实践篇
更多精彩视频,大数据开发必备、数仓实战讲解可以关注我们视频号哈