什么是人群透视
人群透视又名人群分析,是按照用户的属性选取特定的人群,利用大数据的相关技术来探索数据背后的本质。常见的分析需求有观察特定地区的购买转化率、指定投放渠道新增用户数和转化率、发生业务行为的留存率等等。
我们先来看一个简单的例子,我们为昨天的活跃用户创建了一个指定的人群。产品人员想分析出用户中男性比例是否高于女性,利用相关的分析技术得到分布图。
性别分布图
未知是有些用户没有填写性别资料(利用身份证信息也可以自动补全或者通过其他的规则和模型识别)
为什么要做人群透视
读到这,想必大家对什么是人群透视有了一定的了解。那为什么要做人群透视?我先给大家描述一个场景,运营人员发送某个月的用户留存突然大幅降低了,看到这个数据后,接下来应该马上去找到是什么原因导致的。首先,运营人员会确认各个渠道的留存率情况(按照引流渠道进行人群的划分),发现某个渠道的新用户注册迅速增加,但留存率急剧下降;最后发现是由于渠道投放人员设置了针对特定人群的广告投放,但是这些用户却因为产品本身无法带来满足和愉悦而放弃。
上述就是一个由浅及深的人群透视分析场景,如果有这样一款数据分析工具,无需专业的数据分析师就能完成大部分的数据分析工作是不是很酷。
人群透视当前还有更多的场景。进行不同活动的效果分析对比、按照人群分析产品的走势、增长环节找到最优的决策点。
如何做人群透视
熟悉大数据相关或者数仓模型相关的同学肯定对事实表和维度表不陌生,事实表是指特定主题域下的业务行为,维度表中记录的是对某一个实体的描述信息。注册的行为表就是一张事实表,而用户画像表或者商品表我们可以称为维度表。人群透视就是按照用户属性维度表选取合适的取值来看在事实业务表上的表现情况。查看杭州地区女性的消费类型分布情况,其中“杭州地区女性”就是维度表的属性特征,消费类型则是消费记录事实表的记录。
1. 选取事实表和维度表
首先明确我们要分析的业务指标。以渠道作为例子,我们想分析各个渠道的新用户增长、注册和登陆转化率情况。首先建立一张事实表,明确存储的粒度、业务字段集合。
维度表
在这个例子中我们选取渠道实体作为维度表,我们可以为渠道实体建立一个维度表结构
渠道实体表
2. 明确分析的指标值
按照渠道我们需要分析出每一个渠道的每天广告位点击情况、新增激活设备数、新增用户注册数、新增登陆用户数、设备激活转化率、注册激活转化率、登陆活跃用户转化率、激活成本、注册成本、活跃成本、总成本。
指标通常是数值类型,同时其计算规则应该满足可累性,比如sum、max、min、cnt,函数应该符合这样的关系:
f(A)=f(a,A-a)
,其中A是集合,a是A中的一个元素,即真对一个集合的计算可以进行迭代计算
比如mean、variance等就不是可累加的汇总函数
3. 技术选型
人群透视分析首先需要要按照属性圈选出人群集合,这是一个倒排索引的查询类别,市面上常用的倒排索引服务就是Eleastic Search。首先我们可以借助其倒排查询的能力快速勾选出用户ID列表。
指标的查询是一个正排索引查询的过程,根据用户ID查询出相应记录。常用的多维查询工具有Kylin、Druid、Presto、ES等,下面分别比较下各个框架的优缺点。
组件名称 | 存储时常 | 计算时机 | 数据膨胀率 | 实时性 | 响应时间 | 准确性 | 灵活性 | 扩展性 |
---|---|---|---|---|---|---|---|---|
Kylin | 年 | 预计算 | 10倍以下 | h+1 | 毫秒级 | 很高 | 差 | 差 |
Druid | 年 | 预计算 | 5倍 | 秒 | 毫秒级 | 较高 | 较差 | 较差 |
Presto | 年 | 后计算 | 无 | t+1 | 分钟级 | 很高 | 很高 | 很高 |
ES | 数月 | 后计算 | 无 | 秒 | 秒 | 很高 | 高 | 高 |
由于大部分的业务的转化需要一定时间的积累,大部分数据满足T+1的查询即可。同时T+1的数据可以利用数仓的数据直接进行汇总计算。如果一个业务分析指标的模型固定可以直接借助Kylin完成数据的分析存储。查询的指标如果是交互式、灵活多变的,则可以采用ES、Presto这样的存储查询方式。如上面的渠道分析模型,则直接可以采用Kylin进行存储。
产品设计
目标:满足非大数据分析师日常的分析工作,帮助更快的发现问题、提出问题的方向和优先级、执行解决问题。另外提供一套标准的框架来便于用户导入合适的分析模型。
按照构建的生命周期我们可以分为五层,分别是人群指标定义、数据采集加工、数据存储、数据查询、数据图表化展示。
按照功能模块划分,我们可以得到如下架构图
人群分析架构图
场景的需求,明确要观察分析的业务场景和数据来源。渠道的注册转化分析需要收集广告的埋点点击、App的打开埋点、用户注册事件、点击成本统计等。最终借助于数据仓库加工成一张渠道转化事实表。同样的方式构建出渠道的维表信息。
功能类别
人群和人群组管理
人群:符合某一个属性取值的用户集合。如借贷用户群、理财用户群体等。
人群组:人群的组合,我们通常先真对不同的人群做对比,比如比较杭州和北京的借贷用户群,人群组的管理可以选取哪些维度作为区分条件组,地理位置、性别等等。人群组用户构建多维分析分析,划分组的属性列就是维度。对于一些连续数值列的属性可以按照区间值进行分类处理。
指标管理
指标类型通常是数值的聚合函数,聚合函数最好要能满足可加性。
最常用的就是count,count函数无需构建在任何指标上,这种经常用于统计某一类人群的数量。
sum:统计某一列的数值的集合
max/min:统计数值最大/小的
distinct count:去重的数目统计
可以先根据表选取明确的指标列(只能是数值列,count的话数值取值默认为1),再勾选对应的聚合函数。这里可以选取不同表的不同数值列。
某一类维度的选取占整个人群的占比,比如杭州地区的高收入人群的购买量。
钻取和上卷
通用查询解析层
对上提供一层通用的库、表结构管理,提供一套统一的SQL给应用层面,对外根据具体的物理表存储介质翻译为具体的物理查询计划。查询接口的请求和响应分装为统一的结果,不对外体现具体的存储细节。
数据展示层
dashboard的管理,可以为指定的人群创建一个指定的分析模板,同时可以进行图标的新增、修改、删除等操作。
图表类型:支持单维图表和二维图表。单维图表通常就是数量等,常见的有饼图、柱状图、仪表盘等
高级功能:选取一个图表,可以自己勾选要展示的维度(维度可以来源为维度表也可以来源于事实表,如时间可以来源于事实表)和指标,构建一个二维甚至是多维图形。
网友评论