内容来源:2017年5月6日,魅族数据架构师黄振贤在“魅族技术开放日第八期——数据洞察”进行《魅族大数据之用户洞察平台介绍》演讲分享。IT 大咖说(WeChat_ID:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。
阅读字数:1869 | 6分钟阅读
获取嘉宾演讲视频回顾及PPT,请点击:http://t.cn/EUJZiYc
摘要
魅族DMP(用户洞察平台),通过对三方受众数据的汇聚、清洗、智能运算,构建了庞大的精准人群数据中心,提供丰富的用户画像数据以及实时的场景识别力。对内:无缝对接各类业务平台的数据应用,如广告平台,PUSH推送,个性化推荐之间建立了数据通道,支持公司级的精准营销,消息及时送达服务等场景。对外:完善对数据的管理及输出流程,以开放接口形式为全行业从业者提供标准的精准人群标签,帮助优化投放和提升营销效果。达到对受众的精准投放,释放数据真正价值!本文将介绍用户洞察平台所采用的架构,探讨遇到的技术难点和解决过程,回顾目前架构的不足之处以及将来改进的方向。
总体介绍
用户洞察平台的定位
通过对三方受众数据的汇聚、清洗、智能运算,构建了庞大的精准人群数据中心,提供丰富的用户画像数据以及实时的场景识别力。
无缝对接各类业务平台的数据应用,如广告平台,PUSH推送,个性化推荐之间建立了数据通道,支持公司级的精准营销,消息及时送达服务等等。
营销效果评估,反馈数据可进一步加工,用于提升画像标签质量。
核心需求
用户洞察的核心需求包含了以下几个部分。
标签生成:互联网业务变化快,标签需求变更频繁。要求系统快速响应标签需求。
人群洞察:对全量用户任意标签进行过滤以及聚合计算,查询1-2秒内响应。
受众分发:在无缝对接各类业务系统,实现高效实时的精确营销。
标签查询:根据用户ID查询用户画像详情,对于广告业务的查询需要在更苛刻的50ms内返回。
总体架构
集成开发平台之作业调度系统上,配置和运行离线计算任务。流平台(AnyStream)负责实时标签计算。管理模块生成的相关规则,存储在MySQL,供标签生成任务(Hive/MR/流平台)使用。用户画像(标签)宽表保存在ES上。Hbase和Redis提供kv查询。使用开发平台(OpenAPI)提供对外接口。
标签生成
根据生成计算的过程,标签分为两类,其中一类是统计类标签。首先从用户的行为里统计出指标,然后根据标签生成规则和统计指标作为输入,就可以对应到哪个用户属于什么消费等级。
算法类标签计算
标签除了统计类的之外还有一种算法类的。
选取高置信度资料(如用户注册信息)和用户行为数据作输入进行模型训练。然后使用训练好的模型进行属性预测。
单值标签与多值标签
单值标签是指用户在该标签下只能取一个值,不能多选。
多值标签是用户可以取该标签下的多个取值组合。比如用户可以有多个兴趣爱好。 多值标签的存在,会影响存储查询引擎的选型和存储结构设计。
标签生成过程
这种模式的优点是配置化管理,提供 Web UI 管理标签的生命周期;基于配置生成标签,标签宽表数据与元数据100%一致。
尚存的不足是目前配置化管理只涵盖到最终的标签宽表生成。与上游的指标统计和算法预有脱节。上游计算过程是单独开发,指标定义只是另外配置的数据描述(可能存在不一致)。一些标签下线(废除)后,相应的上游任务的依赖需要另外废除,否则会遗留无用的作业浪费计算资源。
标签存储
标签存储总览
ElasticSearch(ES)是一个基于Lucene构建的开源、分布式、RESTful搜索引擎。能够达到实时搜索,稳定,可靠,快速。基于 ES 实现对全量用户任意标签进行在线筛选和聚合分析,秒及响应。Hbase 提供大吞吐量的 key/value 查询。性能要求更为苛刻的 key/value 查询(广告平台)通过使用 Redid 来实现。
Why ElasticSearch (ES)
传统的Vertica社区版有3个节点和1T存储容量限制。随着数据规模和调用数暴增,性能出现瓶颈对于多值标签,只能采用csv方式保存在varchar字段,性能低下。
多值标签检索使用字符串 LIKE 操作;聚合虽能通过一些 trick 来支持,但性能太差。
而现在ES能够达到实时搜索,稳定,可靠,快速。在线更新(实时/准实时更新)水平扩展能力强。Array type完美支持多值标签存储和分析场景。
HBase与Redis
Hbase提供低成本,高吞吐量的 kv 查询。满足一般业务的查询,缺点是查询响应时间不太理想(针对广告业务而言)。
而对于Redis,广告业务提出 50ms 内的查询延迟,这种苛刻要求需用 Redis 实现。 Redis存储目前只服务于广告平台的查询调用。
考虑成本因素,主要使用 Hbase 来提供KV查询。部分要求苛刻的业务,使用 Redis 作为补充。
平台功能
主要功能列表
平台的主要功能有五种,人群管理、人群筛选、画像洞察、受众分发和画像查询。
人群管理可通过两种方式创建。1、指定标签条件;2、导入imei列表,对人群进行修改、删除等操作。
人群筛选是指定标签条件选项,查询满足条件的用户数。
画像洞察分为两步。首先指定标签条件选项选出用户群体,然后再指定要分析的标签,通过聚合运算,分析用户特征。
受众分发需要采取一定的技术手段,把指定人群推至下游的营销渠道(广告平台、推送平台、OTA等)。
画像查询则是对下游系统提供查询接口,调用方指定用户标识(imei)查询该用户的画像标签。
今天的分享就到这里,谢谢大家!
编者:IT大咖说,转载请标明版权和出处