读:魅族UIP(用户洞察平台)通过对三方受众数据的汇聚、清洗、智能运算,构建了庞大的精准人群数据中心,提供丰富的用户画像数据以及实时场景识别能力。本文介绍了魅族用户洞察平台的功能和架构,还原建设过程中遇到的技术难点和解决方式。
以用户洞察平台的目标定位为出发点,综合技术与业务需求的考量进行架构设计,用户洞察平台的功能包括人群管理、人群洞察分析、自定义标签、人群扩展、画像查询服务等。文章还介绍了画像标签的生成、底层存储以及平台功能。
一、总体介绍
1.1. 用户洞察平台的定位
魅族 UIP(用户洞察平台),通过对三方受众数据的汇聚、清洗、智能运算,构建了庞大的精准人群数据中心,提供丰富的用户画像数据以及实时的场景识别力。
对内:无缝对接各类业务平台的数据应用,如广告平台、PUSH推送、个性化推荐之间建立了数据通道,支持公司级的精准营销,消息及时送达服务等场景。营销效果评估,反馈数据可进一步加工,用于提升画像标签质量。
对外:完善对数据的管理及输出流程,以开放接口形式为全行业从业者提供标准的精准人群标签,帮助优化投放和提升营销效果。达到对受众的精准投放,释放数据真正价值!
1.2. 用户洞察平台的核心需求
用户洞察平台的核心需求包括几个部分:
标签生成
用户洞察的核心是用户画像,必须有完善的机制和流程来生成用户标签。
人群洞察
指定标签条件选项选出用户群体,指定要分析的标签,通过聚合运算,分析用户该用户群的特征。
受众分发
采取一定的技术手段,把指定人群推至下游的营销渠道(广告平台、推送平台、OTA等)
标签查询
对下游系统提供查询接口,调用方指定用户标识(imei)查询该用户的画像标签。例如当用户在访问某个页面的时候,广告平台会查询用户的画像信息以确定广告位应该展示什么内容。
1.3. 数据流视图
从数据流的角度看,用户洞察系统可划分为几个阶段:标签生成、标签存储、平台功能、对外服务,如下图:
标签生成
从时效性角度,标签分为两类:离线计算与实时计算。
离线标签
这些标签为用户的静态属性,比如用户性别、年龄、职业、地理位置等, 这些标签通过离线计算生成,每天计算一次即可。标签生成的相关计算任务是由大数据平台提供计算能力,任务调度系统(集成开发平台)对相关作业进行调度和管理。
实时标签
这些标签为用户的动态属性,如地理位置,搜索行为等,需要通过流平台进行实时计算生成(更新),例如户现在搜索了一个热门关键词或一款产品,我们就会根据这些行为进行精准推荐,在之后的一段时间内他会看到相应产品的广告。
从计算生成方式,标签也可分为两类:统计类标签和算法类标签。
统计类标签
根据用户行为直接进行聚合运算生成的标签,中用户的消费等级,设备属性等。
算法类标签
使用机器学习算法进行属性预测生成的标签,如用户的性别,职业,兴趣爱好等。
标签存储
计算生成的标签会同时存储在ElasticSearch、HBase和Redis里。其中 ElasticSearch
主要用于实现平台功能,如人群筛选、画像洞察等。而 Hbase 与 Redis 用于实现画像查询。
平台功能
在用户画像的基础上构建丰富的人群筛选、洞察分析与受众分发功能。
对外服务
通过开放平台(OpenAPI)对下游系统(如 push 平台, OTA 平台, 广告平台等)提供服务。
1.4. 总体架构
用户洞察平台的总体架构图如下 :
集成开发平台作业调度,配置和运行离线计算任务(Hive&MR)
流平台(AnyStream)负责实时标签计算
管理模块生成的相关规则,存储在MySQL,供标签生成任务(Hive/MR/流平台)使用
用户画像(标签)宽表保存在ES上
Hbase和Redis提供kv查询
使用开发平台(OpenAPI)提供对外接口
二、标签生成过程
2.1 统计类标签
顾名思义,统计类标签可由用户行为通过直接的统计计算而生成。例如我们需要计算名为“消费等级”的标签(分为低、中、高三个等级)
这个标签的生成过程分为 3 步:
指标统计,通过 Hive 计算生成;
标签生成规则,通过指标管理/标签管理模块维护;
基于统计指标 + 标签生成规则,用 MR 生成;
总结:统计指标与画像生成分离。
把指标和规则分开的目的是获取更高的灵活性,比如业务发展之后,需要把标签的三个等级变成 Lv1, Lv2,
…, Lv10等 10 个等级,我们只需要更改规则而不需要修改指标统计逻辑,实现标签生成规则的配置化。
2.2 算法类标签
一些标签,比如人口属性,是没有办法直接统计出来的,我们需要借助机器学习算法来进行预测。
模型训练
选取高置信度资料(例如用户注册信息)+用户行为数据作输入进行模型训练。例如性别标签,我们使用用户行为进行模型训练,可用户注册
Flyme 帐号所填写的性别信息作为高置信度的资料进行监督训练。
属性预测
根据用户的行为数据,使用训练好的模型进行预测,输出相应的标签。
2.3. 单值标签与多值标签
单值标签
单值标签是指用户在该标签下只能取一个值,不能多选。例如性别要么是男,要么是女,要么是未知。
多值标签
多值标签是指用户可以取该标签下的多个取值组合。比如用户可以有多个兴趣爱好
多值标签的存在,会影响存储查询引擎的选型和存储结构设计。
2.4 标签生成过程总述
离线标签计算过程:
多个统计与算法完成后,使用一个 MR 作业对生成的指标集与算法标签集进行合并。
所有的统计指标与算法标签合并到一张总表之后,由一个通用的 MR 根据配置好的规则生成标签宽表。
好处
配置化管理,提供 Web UI 管理标签的生命周期
基于配置生成标签,标签宽表数据与元数据100%一致
存在的不足:
目前配置化管理只涵盖到最终的标签宽表生成。与上游的指标统计和算法预有脱节。
上游计算过程是单独开发,指标定义只是另外配置的数据描述(可能存在不一致)
一些标签下线(废除)后,相应的上游任务的依赖需要另外废除,否则会遗留无用的作业浪费计算资源。
改进方向
扩大标签管理的功能范围,与调度平台打通,把指标生成与算法预测等任务管理起来。
指标计算也配置化,增加标签无需手写 Hive 或 MR 程序,全部在配置平台上完成。
自动管理作业依赖,一些标签下线后,自动识别并删除无用依赖,优化标签生成过程。
2.5. 实时标签
实时计算依赖于流平台,流平台根据用户行为做实时标签的计算并存储到 ElasticSearch、HBase
与 Redis。
实时标签举例:
比如实时位置标签可以根据用户的地理位置识别用户的所处场景,还可以产生其他的一些比如搜索、支付的实时标签。
三、标签存储
3.1. 标签存储总览
标签的存储主要有两块:ES和HBase&Redis。
ElasticSearch(ES)是一个基于Lucene构建的开源、分布式、RESTful搜索引擎。能够达到实时搜索,稳定、可靠、快速。
基于 ES 实现对全量用户任意标签进行在线筛选和聚合分析,秒及响应。
Hbase 提供大吞吐量的key/value 查询。
性能要求更为苛刻的key/value 查询(广告平台)通过使用 Redid 来实现。
3.2. ElasticSearch (ES)
历史:Vertica
最初系统建设时是使用 vertica 作为标签宽表存储。随着数据量增长和调用次数的暴增, vertica
逐渐成为瓶颈。
社区版有 3 个节点和 1T 存储容量限制
随着数据规模和调用数暴增,性能出现瓶颈
对于多值标签,只能采用csv方式保存在varchar字段,性能低下
多值标签检索使用字符串 LIKE 操作;聚合虽能通过一些 trick 来支持,但性能太差。
现状:ElasticSearch
能够达到实时搜索,稳定,可靠,快速。
在线更新(实时/准实时更新)
支持高并发查询,水平扩展能力强
很好地支持多值标签存储和分析场景(array)
3.3. HBase 与 Redis
考虑成本因素,主要使用 Hbase 来提供 KV 查询
HBase 提供低成本,高吞吐量的 kv 查询
满足大部分业务的查询需求
部分要求苛刻的业务,使用 Redis 作为补充
广告业务提出 50ms 内的查询延迟,这种苛刻要求需用 Redis 实现。
Redis存储目前只服务于广告平台的查询调用。
四、平台功能介绍
4.1. 主要功能列表
人群管理
可由两种方式创建人群
通过标签条件圈定人群(比如地域、性别、消费层次等标签)创建;
另一种是通过导入用户列表来创建,我们可以通过导入 umid, imei, flyme uid,msisdn等多种ID创建人群。
画像洞察
是对人群特征的分析,首先通过指定标签条件选项圈定用户群体,然后是指定想要分析的指标,通过聚合运算分析用户群的特征。
受众分发
对接下游的营销系统,采取一定的技术手段,把指定人群推至下游的营销渠道(广告平台、推送平台、OTA等),将标签系统和下游无缝连接形成营销闭环。
画像查询
是对下游系统提供查询接口,调用方指定用户标识(imei)查询该用户的画像标签。
4.2. 画像洞察功能
功能说明:
Step 1. 指定标签条件选项选出用户群体
Step 2. 指定要分析的标签,通过聚合运算,分析用户特征。
从后端服务得到分析结果后,前端以图表的方式展现结果,直观地展示所选的人群特征。
例子:人群条件与指标
分析结果示意如下
4.3. 受众分发功能
“受众分发”是用户洞察平台实现与下游的营销、推送、广告平台无缝连接,是打通营销闭环的关键功能。下面使用一个简单的例子来说明受众分发的流程:
选择用户群
以上列表是通过人群管理相关功能创建的人群列表选择其中一个人群进行“受众分发”。
选择下游的营销平台
选择完人群之后,选择营销渠道,这里我们选择 push 平台。
编辑高级选项
选择了渠道之后,会显示对应的“高级选项”,高级选项的内容是动态的,里面的选项列表取决于当前用户在目标渠道上的权限。
高级选项因所选渠道而异,由服务器端动态生成,前端动态渲染。
例如对于所选的 push 平台,需要选择推送的目标应用(如魅族资讯、魅族社区),推送类型(通知栏推送、透传推送)等。
根据当前用户在目标平台拥有的权限来确定选项列表。
页面跳转
在上一步选择完高级选项后,点击“确定”按钮,即可跳转到目标平台相应的页面。跳转 URL 通过后端API交互,由目标平台动态生成,降低平台间的耦合,同时利于实现“无缝”对接。
在本例中,跳转到 push 平台对应的创建推送任务的页面后,目标受众(人群)、推送的目标应用,推送类型都已在前面的步骤选好,只需要填少量的其它信息(如物料/文案)即可。
五、总结
用户画像作为大数据的根基,为进一步精准、快速的分析用户行为、消费等重要信息,提供足够的数据基础,让我们魅族更好的为用户提供高价值的服务。
及时发现与挖掘用户潜在的需求,根据用户的喜好推荐合适的服务和内容,提升用户体验;
支撑精准的广告投放,提高流量变现的能力。 |