本书借助数据仓库实现一套用户画像系统的方案。从实际工程案例出发,结合多业务场景,内容涵盖开发离线批处理计算的标签及流式计算标签,为读者的分析、开发、搭建用户画像系统,并借助该用户画像系统为运营人员制定运营用户的策略提供端到端的解决方案。
一套好的解决方案需要包括以下几个层面。
1)架构层:画像数据仓库的架构,技术选型、用户标签开发、人群计算开发等相应数据开发层面的内容,以及整个项目的开发流程和各阶段的关键产出。
2)流量层:介绍整个方案是如何运作起来的。包括画像系统的作业流程调度、数据仓库和各业务系统的打通。
3)业务层:包括系统的前后端交互以及如何把这套系统应用在业务服务层面。比如,产品端和画像系统的“代码”层面是如何进行交互操作的。
4)方案价值:包括系统上线后如何服务于各业务场景产生业务价值以及有待进一步完善的地方。
以上几个层面的内容构成了一套完整的用户画像解决方案,数据的最终目的是走出数据仓库,应用到业务系统和营销系统中来驱动营收增长。
本书可以帮助读者在用户画像领域形成一种体系化思维,在面对一个具体项目时不会无从下手。如何建立标签指标体系?指标体系中包含哪些标签?如何设计存储画像标签的表结构?如何开发标签?画像系统中涉及哪些数据存储工具?如何打通标签数据到服务层?如何对画像系统进行监控?如何对整个画像系统进行调度?如何使画像系统服务于业务场景来驱动增长?这些都是画像系统的子模块。
第1章 用户画像基础
用户画像,即用户信息标签化,通过收集用户的社会属性、消费习惯、偏好特征等各个维度的数据,进而对用户或者产品特征属性进行刻画,并对这些特征进行分析、统计,挖掘潜在价值信息,从而抽象出用户的信息全貌,如图1-1所示。用户画像可看作企业应用大数据的根基,是定向广告投放与个性化推荐的前置条件,为数据驱动运营奠定了基础。由此看来,如何从海量数据中挖掘出有价值的信息越发重要。
很多公司在大数据基础建设上投入很多,也做了不少报表,但业务部门觉得大数据和传统报表没什么区别,也没能体会大数据对业务有什么帮助和价值,究其原因,其实是“数据静止在数据仓库,是死的”。
而用户画像可以帮助大数据“走出”数据仓库,针对用户进行个性化推荐、精准营销、个性化服务等多样化服务,是大数据落地应用的一个重要方向。数据应用体系的层级划分如图1-2所示。
标签类型
用户画像建模其实就是对用户“打标签”,从对用户打标签的方式来看,一般分为3种类型(如图1-3所示):①统计类标签;②规则类标签;③机器学习挖掘类标签。
下面我们介绍这3种类型的标签的区别:
1.统计类标签
这类标签是最为基础也最为常见的标签类型,例如,对于某个用户来说,其性别、年龄、城市、星座、近7日活跃时长、近7日活跃天数、近7日活跃次数等字段可以从用户注册数据、用户访问、消费数据中统计得出。该类标签构成了用户画像的基础。
2.规则类标签
该类标签基于用户行为及确定的规则产生。例如,对平台上“消费活跃”用户这一口径的定义为“近30天交易次数≥2”。在实际开发画像的过程中,由于运营人员对业务更为熟悉,而数据人员对数据的结构、分布、特征更为熟悉,因此规则类标签的规则由运营人员和数据人员共同协商确定;
3.机器学习挖掘类标签
该类标签通过机器学习挖掘产生,用于对用户的某些属性或某些行为进行预测判断。例如,根据一个用户的行为习惯判断该用户是男性还是女性、根据一个用户的消费习惯判断其对某商品的偏好程度。该类标签需要通过算法挖掘产生。
在项目工程实践中,一般统计类和规则类的标签即可以满足应用需求,在开发中占有较大比例。机器学习挖掘类标签多用于预测场景,如判断用户性别、用户购买商品偏好、用户流失意向等。一般地,机器学习标签开发周期较长,开发成本较高,因此其开发所占比例较小。
主要覆盖模块
搭建一套用户画像方案整体来说需要考虑8个模块的建设,如图1-5所示。
❑用户画像基础:需要了解、明确用户画像是什么,包含哪些模块,数据仓库架构是什么样子,开发流程,表结构设计,ETL设计等。这些都是框架,大方向的规划,只有明确了方向后续才能做好项目的排期和人员投入预算。这对于评估每个开发阶段重要指标和关键产出非常重要。
❑数据指标体系:根据业务线梳理,包括用户属性、用户行为、用户消费、风险控制等维度的指标体系。
❑标签数据存储:标签相关数据可存储在Hive、MySQL、HBase、Elasticsearch等数据库中,不同存储方式适用于不同的应用场景。
❑标签数据开发:用户画像工程化的重点模块,包含统计类、规则类、挖掘类、流式计算类标签的开发,以及人群计算功能的开发,打通画像数据和各业务系统之间的通路,提供接口服务等开发内容。
❑开发性能调优:标签加工、人群计算等脚本上线调度后,为了缩短调度时间、保障数据的稳定性等,需要对开发的脚本进行迭代重构、调优。
❑作业流程调度:标签加工、人群计算、同步数据到业务系统、数据监控预警等脚本开发完成后,需要调度工具把整套流程调度起来。本书讲解了Airflow这款开源ETL工具在调度画像相关任务脚本上的应用。
❑用户画像产品化:为了能让用户数据更好地服务于业务方,需要以产品化的形态应用在业务上。产品化的模块主要包括标签视图、用户标签查询、用户分群、透视分析等。
❑用户画像应用:画像的应用场景包括用户特征分析、短信、邮件、站内信、Push消息的精准推送、客服针对用户的不同话术、针对高价值用户的极速退货退款等VIP服务应用。
开发上线流程
用户画像建设项目流程,如图1-6所示。
第一阶段:目标解读
在建立用户画像前,首先需要明确用户画像服务于企业的对象,再根据业务方需求,明确未来产品建设目标和用户画像分析之后的预期效果。
一般而言,用户画像的服务对象包括运营人员和数据分析人员。不同业务方对用户画像的需求有不同的侧重点,就运营人员来说,他们需要分析用户的特征、定位用户行为偏好,做商品或内容的个性化推送以提高点击转化率,所以画像的侧重点就落在了用户个人行为偏好上;就数据分析人员来说,他们需要分析用户行为特征,做好用户的流失预警工作,还可根据用户的消费偏好做更有针对性的精准营销。
第二阶段:任务分解与需求调研
经过第一阶段的需求调研和目标解读,我们已经明确了用户画像的服务对象与应用场景,接下来需要针对服务对象的需求侧重点,结合产品现有业务体系和“数据字典”规约实体和标签之间的关联关系,明确分析维度。就后文将要介绍的案例而言,需要从用户属性画像、用户行为画像、用户偏好画像、用户群体偏好画像等角度去进行业务建模。
第三阶段:需求场景讨论与明确
在本阶段,数据运营人员需要根据与需求方的沟通结果,输出产品用户画像需求文档,在该文档中明确画像应用场景、最终开发出的标签内容与应用方式,并就该文档与需求方反复沟通并确认无误。
第四阶段:应用场景与数据口径确认
经过第三个阶段明确了需求场景与最终实现的标签维度、标签类型后,数据运营人员需要结合业务与数据仓库中已有的相关表,明确与各业务场景相关的数据口径。在该阶段中,数据运营方需要输出产品用户画像开发文档,该文档需要明确应用场景、标签开发的模型、涉及的数据库与表以及应用实施流程。该文档不需要再与运营方讨论,只需面向数据运营团队内部就开发实施流程达成一致意见即可。
第五阶段:特征选取与模型数据落表
本阶段中数据分析挖掘人员需要根据前面明确的需求场景进行业务建模,写好HQL逻辑,将相应的模型逻辑写入临时表中,并抽取数据校验是否符合业务场景需求。
第六阶段:线下模型数据验收与测试
数据仓库团队的人员将相关数据落表后,设置定时调度任务,定期增量更新数据。数据运营人员需要验收数仓加工的HQL逻辑是否符合需求,根据业务需求抽取表中数据查看其是否在合理范围内,如果发现问题要及时反馈给数据仓库人员调整代码逻辑和行为权重的数值。
第七阶段:线上模型发布与效果追踪
经过第六阶段,数据通过验收之后,会通过Git进行版本管理,部署上线。使用Git进行版本管理,上线后通过持续追踪标签应用效果及业务方反馈,调整优化模型及相关权重配置。
各阶段关键产出
为保证程序上线的准时性和稳定性,需要规划好各阶段的任务排期和关键产出。画像体系的开发分为几个主要阶段,包括前期指标体系梳理、用户标签开发、ETL调度开发、打通数据服务层、画像产品端开发、面向业务方推广应用、为业务方提供营销策略的解决方案等,如表1-1所示。
表1-1 用户画像项目各阶段关键产出
❑标签开发:根据业务需求和应用场景梳理标签指标体系,调研业务上定义的数据口径,确认数据来源,开发相应的标签。标签开发在整个画像项目周期中占有较大比重。
❑ETL调度开发:梳理需要调度的各任务之间的依赖关系,开发调度脚本及调度监控告警脚本,上线调度系统。
❑打通服务层接口:为了让画像数据走出数据仓库,应用到用户身上,需要打通数据仓库和各业务系统的接口。
❑画像产品化:需要产品经理与业务人员、技术开发人员一起对接业务需求点和产品功能实现形式,画产品原型,确定工作排期。Java Web端开发完成后,需要数据开发人员向对应的库表中灌入数据。
❑开发调优:在画像的数据和产品端搭建好架构、能提供稳定服务的基础上,为了让调度任务执行起来更加高效、提供服务更加稳健,需要对标签计算脚本、调度脚本、数据同步脚本等相关计算任务进行重构优化。
❑面向业务方推广应用:用户画像最终的价值产出点是业务方应用画像数据进行用户分析,多渠道触达运营用户,分析ROI,提升用户活跃度或营收。因此,面向业务人员推广画像系统的使用方式、提供针对具体业务场景的解决方案显得尤为重要。在该阶段,相关人员需要撰写画像的使用文档,提供业务支持。
画像应用的落地
用户画像最终的价值还是要落地运行,为业务带来实际价值。这里需要开发标签的数据工程师和需求方相互协作,将标签应用到业务中。否则开发完标签后,数据还是只停留在数据仓库中,没有为业务决策带来积极作用。
画像开发过程中,还需要开发人员组织数据分析、运营、客服等团队的人员进行画像应用上的推广。对于数据分析人员来说,可能会关注用户画像开发了哪些表、哪些字段以及字段的口径定义;对运营、客服等业务人员来说,可能更关注用户标签定义的口径,如何在Web端使用画像产品进行分析、圈定用户进行定向营销,以及应用在业务上数据的准确性和及时性。
只有业务人员在日常工作中真正应用画像数据、画像产品,才能更好地推动画像标签的迭代优化,带来流量提升和营收增长,产出业绩价值。
附录 某产品用户画像项目规划文档
下面是一份产品画像规划说明书,希望为需要写文档的读者提供一种思路方案。
文档记录:
摘要记录:
变更记录:
1 引言
1.1 项目名称
×××用户画像及其应用
1.2 项目背景及概要
在互联网逐步步入大数据时代后,不可避免地给企业和用户行为带来一系列改变与重塑;其中最大的变化莫过于,用户的一切行为在企业面前都是“可视化”的。随着大数据技术的深入研究与应用,企业的专注点日益聚焦于怎样利用大数据来为精细化运营及精准营销服务,进而深入挖掘潜在的商业价值。于是,用户画像的概念也就应运而生。
用户画像可以使产品的服务对象更加聚焦,更加专注。本项目分别从用户人口属性、订单消费、行为属性、用户偏好、疾病问诊信息、客户满意度6个角度构建用户画像模型;基于MySQL(关系型数据库)和大数据平台进行采集分析,分别从用户类别、渠道内容、行为特征及业务场景等多个方面进行数据标签配置,实现模型与应用场景数据共享,采用千人千面等方法进行UI数据可视化展现,实现精细化运营及精确营销服务。
1.3 项目目标
全业务运营下,用户画像及应用基于MySQL(关系型数据库)和大数据平台采集分析,把用户特征标签封装成数据接口服务,实时推送到一线,将信息数据变成生产力,项目实现目标如下。
一、用户画像模型封装
(1)基于MySQL(关系型数据库)和大数据平台(Hive、HBase、Elasticsearch等)
包含基础标签与分析类知识标签,实现用户特征全貌刻画。
(2)多种封装角度
分用户类别、渠道内容、业务场景进行封装配置。
二、接口数据实时推送
实现用户画像数据实时更新至运营及营销统一视图(Web产品)中进行展现,并实时反馈运营及营销信息问题,保证数据应用的时效性。
三、展现UI封装
依托用户画像,将推荐信息配置应用端进行可视化展现,集中活动运营,实现千人千面的运营效果。
1.4 项目适用范围
1)运营决策人员:对运营的关键问题进行决策。
2)运营分析人员:从事市场竞争分析、用户需求分析、业务分析工作,主要负责用户需求的发现和目标确定,并配合运营策划和评估的实施。
3)运营策划人员:从事运营和实施方案设计,根据用户需求生成创意,将创意转化为策略,并制订实施方案。
4)数据分析人员:负责数据挖掘和数据分析支撑的全体IT支撑人员。
5)算法开发人员:应用于线上推荐系统实时调用画像标签数据。
2 系统功能及模型架构
2.1 系统功能架构
用户画像及应用项目包括底层数据源采集和存储、画像标签模型构建、数据模型应用3个层级。
2.2 模型架构
画像标签模型分析主要分原始数据统计分析、统计标签建模分析、模型标签预测分析3个部分。
3 需求设计
3.1 用户画像模型
【需求说明】用户画像模型是结合用户基本属性分析,对用户的互联网行为特征进行描述,包括用户登录、搜索、关注、消费等各方面数据,对用户的疾病问诊、行为喜好变化、消费订单等全过程的记录,以标签方式展示每个用户的个性化特征,画像是系统分析结果的总结,是系统数据挖掘的起始。
【业务要素】用户画像模型按照数据内容模块分为:用户人口属性、行为属性、资产消费、疾病问诊、用户偏好、客户满意度6大类标签。
【核心算法描述】核心算法包括聚类分析、分类算法、时间序列分析、RFM模型、推荐系统算法、关联分析等。
(1)聚类分析
聚类分析将看似无序的对象进行分组、归类,以达到更好地理解研究对象的目的。聚类结果要求组内对象相似性较高,组间对象相似性较低。在用户研究中,很多问题可以借助聚类分析来解决,比如用户活跃度行为聚类、用户消费情况聚类等。
(2)分类算法
分类是按照某种标准给用户贴标签,再根据标签来区分归类,分类是事先定义好类别,类别数不变。根据用户群的文化观念、订单消费、行为习惯等的不同细分新的类别,企业根据用户的不同制定品牌推广战略和营销策略,将资源针对目标用户集中使用。
(3)时间序列分析
时间序列分析是一种动态的数据统计方法。该方法基于随机过程理论和数理统计学方法,研究随机数据序列所遵从的统计规律,以用于解决实际问题。比如用户的周期性行为分析、因子回归分析建模等。
(4)RFM模型
RFM模型较为动态地显示了一个用户的全部轮廓,R表示用户购买的时间有多远,F表示用户在时间内购买的次数,M表示用户在时间内购买的金额,加权得到RFM得分。
(5)推荐系统算法
利用用户的一些行为,通过一些算法(协同过滤、LFM、打分模型、关联分析等)推测出用户可能喜欢的商品。推荐讲究准确性,提高用户–医生(医院)–内容(订单、知识等)等组合的匹配度,提升服务质量。
(6)关联分析
关联分析就是在关系数据或其他信息载体中,查找存在于项目集合或对象集合之间的频繁模式、关联、相关性或因果结构,挖掘潜在的行为和消费关联特征。
3.1.1 人口属性标签
【需求说明】人口属性标签是用户的基本信息,这些信息往往是用户注册及使用产品时记录的信息,如年龄、性别、注册时间、婚姻状况、身高体重等。通过人口属性刻画,达到对用户初步认知的目的。
【业务要素】人口属性标签大部分可从数据仓库中直接获取,部分数据(生理)可在体检、疾病处方等非结构数据中提炼。
3.1.2 行为属性标签
【需求说明】行为属性标签是基于用户使用产品过程中产生的信息,包括登录行为,挂号、问诊、协议处方、保险等订单以及平台点击、浏览、关注、搜索、评价等互联网行为数据,通过基础统计分析了解用户的行为周期、习惯偏好、关注内容等。
【业务要素】行为属性标签主要通过各类订单以及前端的埋点数据的基础统计分析获取,详细内容及口径如下:
3.1.3 疾病问诊标签
【需求说明】疾病问诊标签是基于用户挂号、问诊、处方数据提取用户(用户联系人)的疾病及问诊相关信息,并相应提取用户搜索、浏览、关注、点击等互联网行为相关的疾病问诊标签,通过数据分析与挖掘预测用户疾病问诊的潜在业务需求.
【业务要素】疾病问诊标签主要通过分析各类挂号问诊订单以及疾病关注信息数据,提取用户疾病及问诊需求的业务标签,详细内容及口径如下:
3.1.4 订单消费标签
【需求说明】订单消费标签是用户基于平台产品使用过程中进行购买或消费打的标签,通过分析各业务订单及消费数据挖掘用户的消费特征,以便为用户提供针对性服务。
【业务要素】订单消费标签主要从业务分类及消费金额等数据角度进行轻量统计汇总
3.1.5 用户偏好标签
【需求说明】用户偏好标签是用户基于平台产品使用的一种喜好特征或者习惯性,重点分析用户常用渠道、问诊类型、就医偏好、用户加关注内容。
【业务要素】用户偏好标签从用户的终端类型、问诊方式、历史就诊医生类型、就诊医院类型、用户点击关注信息分析用户各模块的标签特征
3.1.6 客户满意度标签
【需求说明】客户满意度标签是用户在使用产品过程中的情绪体现,主要从用户在使用产品后的反馈情况以及用户的流失风险进行综合评估。
【业务要素】客户满意度标签从用户历史是否有投诉信息、主动评价包括差评数据以及多因子建模评估流失风险
3.2 接口封装
【需求说明】用户画像接口旨在解决用户画像数据与各业务渠道应用的传输问题,使用户画像标签能够在各渠道应用时个性化展现,并且保证数据运营及营销推荐数据实时更新,数据每日更新,避免数据不准确和重复交叉应用。
【功能说明】Hive数据仓库封装用户画像模型宽表,每日同步至MySQL数据库,各业务及运营可通过直接访问MySQL数据库或数据文件下发的方式,访问画像模型数据宽表;也可通过在线接口以RESTful API的方式实时调用HBase、Elasticsearch中的用户标签、用户人群标签数据,实时反馈运营及营销接触数据问题,整合画像模型并更新;配置分析及应用平台可视化展现推荐标签库,以实现权限管控需求。
3.3 UI设计
【需求说明】数字化运营及精准营销的可视化展现,是基于用户画像数据实现千人千面的展现效果,使运营及营销人员有更好的用户认识,带来更佳的用户服务质量。
【功能说明】展现UI信息包括:人口属性、行为属性、疾病问诊、订单消费、用户偏好以及客户满意度标签等,同时基于用户汇总实现更多的用户分群统计分析,具体展现样例如下:
(1)画像数据展现图
(2)业务标签统计柱形图
(3)用户人群分部热力图
(4)用户标签特征雷达图
(5)指标情况仪表盘
(6)用户关注及搜索疾病标签词云图
3.4 场景应用及项目排期
画像系统上线后将应用于数据分析、BI分析、Push推送营销、站内广告推送、差异化客服、主动外呼系统、短信/邮件营销系统等多个应用场景。项目排期与各阶段关键产出如下图所示。
4.运行环境
4.1 网络与硬件设备
网络与硬件设备包括数据库服务器:Kafka、MySQL、HDFS、Hive、HBase、Elasticsearch、Spark,应用服务器配置,网络环境等。以部署在3个节点上的集群为例,说明各机器的作用。机器及环境部署如下示例所示。
4.2 软件平台
软件平台包括Web服务器环境、数据库操作系统、数据挖掘软件工具等。