前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《用户画像:方法论与工程化解决方案》读书笔记第1~2章

《用户画像:方法论与工程化解决方案》读书笔记第1~2章

作者头像
辉哥
发布2022-03-23 10:46:26
1K0
发布2022-03-23 10:46:26
举报
文章被收录于专栏:区块链入门区块链入门

《用户画像:方法论与工程化解决方案》.jpg

第1章 用户画像基础

1.1 用户画像是什么

1.1 用户画像是什么

用户画像,即用户信息标签化,通过收集用户的社会属性、消费习惯、偏好特征等各个维度的数据,进而对用户或者产品特征属性进行刻画,并对这些特征进行分析、统计,挖掘潜在价值信息,从而抽象出用户的信息全貌。

image.png

1.1.2 标签类型

用户画像建模其实就是对用户“打标签”,从对用户打标签的方式来看,一般分为3种类型(如图1-3所示):

①统计类标签;②规则类标签;③机器学习挖掘类标签。

1.统计类标签

这类标签是最为基础也最为常见的标签类型,例如,对于某个用户来说,其性别、年龄、城市、星座、近7日活跃时长、近7日活跃天数、近7日活跃次数等字段可以从用户注册数据、用户访问、消费数据中统计得出。该类标签构成了用户画像的基础。

2.规则类标签

该类标签基于用户行为及确定的规则产生。例如,对平台上“消费活跃”用户这一口径的定义为“近30天交易次数≥2”。在实际开发画像的过程中,由于运营人员对业务更为熟悉,而数据人员对数据的结构、分布、特征更为熟悉,因此规则类标签的规则由运营人员和数据人员共同协商确定;

3.机器学习挖掘类标签

该类标签通过机器学习挖掘产生,用于对用户的某些属性或某些行为进行预测判断。例如,根据一个用户的行为习惯判断该用户是男性还是女性、根据一个用户的消费习惯判断其对某商品的偏好程度。该类标签需要通过算法挖掘产生。

1.2 数据架构

在整个工程化方案中,系统依赖的基础设施包括Spark、Hive、HBase、Airflow、MySQL、Redis、Elasticsearch。除去基础设施外,系统主体还包括SparkStreaming、ETL、产品端3个重要组成部分。图1-4所示是用户画像数仓架构图,下面对其进行详细介绍。

image.png

❑Hive:存储用户标签计算结果、用户人群计算结果、用户特征库计算结果。

❑MySQL:存储标签元数据,监控相关数据,导出到业务系统的数据。

❑HBase:存储线上接口实时调用类数据。

❑Elasticserch:支持海量数据的实时查询分析,用于存储用户人群计算、用户群透视分析所需的用户标签数据(由于用户人群计算、用户群透视分析的条件转化成的SQL语句多条件嵌套较为复杂,使用Impala执行也需花费大量时间)。

用户标签数据在Hive中加工完成后,部分标签通过Sqoop同步到MySQL数据库,提供用于BI报表展示的数据、多维透视分析数据、圈人服务数据;另一部分标签同步到HBase数据库用于产品的线上个性化推荐。

1.3 主要覆盖模块

搭建一套用户画像方案整体来说需要考虑8个模块的建设,如图1-5所示。

image.png

1.4 开发阶段流程

1.4.1 开发上线流程

用户画像建设项目流程,如图1-6所示。

image.png

1.4.2 各阶段关键产出

表1-1 用户画像项目各阶段关键产出

image.png

❑标签开发:根据业务需求和应用场景梳理标签指标体系,调研业务上定义的数据口径,确认数据来源,开发相应的标签。标签开发在整个画像项目周期中占有较大比重。

❑ETL调度开发:梳理需要调度的各任务之间的依赖关系,开发调度脚本及调度监控告警脚本,上线调度系统。

❑打通服务层接口:为了让画像数据走出数据仓库,应用到用户身上,需要打通数据仓库和各业务系统的接口。

❑画像产品化:需要产品经理与业务人员、技术开发人员一起对接业务需求点和产品功能实现形式,画产品原型,确定工作排期。Java Web端开发完成后,需要数据开发人员向对应的库表中灌入数据。

❑开发调优:在画像的数据和产品端搭建好架构、能提供稳定服务的基础上,为了让调度任务执行起来更加高效、提供服务更加稳健,需要对标签计算脚本、调度脚本、数据同步脚本等相关计算任务进行重构优化。

❑面向业务方推广应用:用户画像最终的价值产出点是业务方应用画像数据进行用户分析,多渠道触达运营用户,分析ROI,提升用户活跃度或营收。因此,面向业务人员推广画像系统的使用方式、提供针对具体业务场景的解决方案显得尤为重要。在该阶段,相关人员需要撰写画像的使用文档,提供业务支持。

1.5 画像应用的落地

画像开发过程中,还需要开发人员组织数据分析、运营、客服等团队的人员进行画像应用上的推广。对于数据分析人员来说,可能会关注用户画像开发了哪些表、哪些字段以及字段的口径定义;对运营、客服等业务人员来说,可能更关注用户标签定义的口径,如何在Web端使用画像产品进行分析、圈定用户进行定向营销,以及应用在业务上数据的准确性和及时性。

1.6 某用户画像案例

1.6.1 案例背景介绍

某图书电商网站拥有超过千万的网购用户群体,所售各品类图书100余万种。用户在平台上可进行浏览、搜索、收藏、下单、购买等行为。商城的运营需要解决两个问题:一方面在企业产品线逐渐扩张、信息资源过载的背景下,如何在兼顾自身商业目标的同时更好地满足消费者的需求,为用户带来更个性化的购物体验,通过内容的精准推荐,更好地提高用户的点击转化率;另一方面在用户规模不断增长的背景下,运营方考虑建立用户流失预警机制,及时识别将要流失的用户群体,采取运营措施挽回用户。商城自建立以来,数据仓库中积累着大量的业务数据、日志数据及埋点数据。如何充分挖掘沉淀在数据仓库中的数据的价值,有效支持用户画像的建设,成为当前的重要工作。

1.6.2 相关元数据

在本案例中,可以获取的数据按其类型分为:业务类数据和用户行为数据。其中业务类数据是指用户在平台上下单、购买、收藏物品、货物配送等与业务相关的数据;用户行为数据是指用户搜索某条信息、访问某个页面、点击某个按钮、提交某个表单等通过操作行为产生(在解析日志的埋点表中)的数据。

涉及数据仓库中的表主要包括用户信息表、商品订单表、图书信息表、图书类目表、App端日志表、Web端日志表、商品评论表等。下面就用户画像建模过程中会用到的一些数据表做详细介绍。

1.用户信息表

用户信息表(见表1-2)存放有关用户的各种信息,如用户姓名、年龄、性别、电话号码、归属地等信息。

image.png

2.商品订单表

商品订单表(见表1-3)存放商品订单的各类信息,包括订单编号、用户id、用户姓名、订单生成时间、订单状态等信息。

image.png

3.埋点日志表

埋点日志表(见表1-4)存放用户访问App时点击相关控件的打点记录。通过在客户端做埋点,从日志数据中解析出来。

image.png

4.访问日志表

访问日志表(见表1-5)存放用户访问App的相关信息及用户的LBS相关信息,通过在客户端埋点,从日志数据中解析出来。

image.png

5.商品评论表

商品评论表(见表1-6)存放用户对商品的评论信息。

image.png

6.搜索日志表

搜索日志表(见表1-7)存放用户在App端搜索相关的日志数据。

image.png

7.用户收藏表

用户收藏表(见表1-8)记录用户收藏图书的数据。

image.png

8.购物车信息表

购物车信息表(见表1-9)记录用户将图书加入购物车的数据。

image.png

1.6.3 画像表结构设计

不同业务背景有不同的设计方式,这里提供两种设计思路:一是每日全量数据的表结构;二是每日增量数据的表结构。

1.日全量数据

日全量数据表中,在每天对应的日期分区中插入截止到当天为止的全量数据,用户进行查询时,只需查询最近一天的数据即可获得最新全量数据。下面以一个具体的日全量表结构的例子来进行说明。

image.png

Hive语法说明

(1)在Hive 中进行查询的时候 Select 语句 查询一般会扫描整个表内容,会消耗很多时间去扫描一些不需要的字段。有时候我们只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。 分区表指的是在创建表时指定的partition的分区空间。 如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by,详见表创建的语法结构。 (2)分区的实现

  1. 一个表可以拥有一个或者多个分区,每个分区以文件夹的形式单独存在表文件夹的目录下。 2.表和列名不区分大小写。 3.分区是以字段的形式在表结构中存在,通过describe table命令可以查看到字段存在,但是该字段不存放实际的数据内容,仅仅是分区的表示。 4.建表的语法(建分区可参见PARTITIONED BY参数):

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path]

  1. 分区建表分为2种,一种是单分区,也就是说在表文件夹目录下只有一级文件夹目录。另外一种是多分区,表文件夹下出现多文件夹嵌套模式。 5.1 单分区建表语句:create table day_table (id int, content string) partitioned by (dt string);单分区表,按天分区,在表结构中存在id,content,dt三列。 5.2 双分区建表语句:create table day_hour_table (id int, content string) partitioned by (dt string, hour string);双分区表,按天和小时分区,在表结构中新增加了dt和hour两列。

(3) 内部表与外部表的 区别

1.创建外部表需要添加 external 字段。而内部表不需要

2.外部表删除表时,HDFS中的数据文件不会一起被删除。而内部表删除表时,表数据及HDFS中的数据文件都会被删除。

日全量表格说明

这里userid表示用户id,labelweight表示标签权重,theme表示标签归属的二级主题,labelid表示一个标签id。通过“日期+标签归属的二级主题+标签id”的方式进行分区,设置三个分区字段更便于开发和查询数据。该表结构下的标签权重仅考虑统计类型标签的权重,如:历史购买金额标签对应的权重为金额数量,用户近30日访问天数为对应的天数,该权重值的计算未考虑较为复杂的用户行为次数、行为类型、行为距今时间等复杂情况。

通过表名末尾追加“_all”的规范化命名形式,可直观看出这是一张日全量表。

2.日增量数据

日增量数据表,即在每天的日期分区中插入当天业务运行产生的数据,用户进行查询时通过限制查询的日期范围,就可以找出在特定时间范围内被打上特定标签的用户。下面以一个具体的日增量表结构的例子来说明。

image.png

这里,labelid表示标签名称;cookieid表示用户id;act_cnt表示用户当日行为次数,如用户当日浏览某三级品类商品3次,则打上次数为3;tag_type_id为标签类型,如母婴、3C、数码等不同类型;act_type_id表示行为类型,如浏览、搜索、收藏、下单等行为。分区方式为按日期分区,插入当日数据。

通过表名末尾追加“_append”的规范化命名形式,可直观看出这是一张日增量表。

例如,某用户在“20180701”日浏览某3C电子商品4次(act_cnt),即给该用户(userid)打上商品对应的三级品类标签(tagid),标签类型(tag_type_id)为3C电子商品,行为类型(act_type_id)为浏览。这里可以通过对标签类型和行为类型两个字段配置维度表的方式,对数据进行管理。例如对于行为类型(act_type_id)字段,可以设定1为购买行为、2为浏览行为、3为收藏行为等,在行为标签表中以数值定义用户行为类型,在维度表中维护每个数值对应的具体含义。

该日增量数据表可视为ODS层用户行为标签明细。在查询过程中,例如对于某用户id为001的用户,查询其在“20180701”日到“20180707”日被打上的标签,可通过命令:select*from dw.userprofile_act_feature_append whereuserid='001'and data_date>='20180701'and data_date<='20180707'查询。该日增量的表结构记录了用户每天的行为带来的标签,但未计算打在用户身上标签的权重,计算权重时还需做进一步建模加工。标签权重算法详见4.6节的内容。

3.关于宽表设计

用户画像表结构如何设计,没有一定要遵循的固定的格式,符合业务需要、能满足应用即可。下面通过两个宽表设计的案例,提供另一种解决方案的思路。用户属性宽表设计(见表1-10),主要记录用户基本属性信息。

image.png

用户日活跃宽表设计(见表1-11),主要记录用户每天访问的信息。

image.png

1.7 定性类画像

度外,定性刻画也是常见手段。定性类画像多见于用户研究等运营类岗位,通过电话调研、网络调研问卷、当面深入访谈、网上第三方权威数据等方式收集用户信息,帮助其理解用户。

第2章 数据指标体系

数据指标体系是建立用户画像的关键环节,也是在标签开发前要进行的工作,具体来说就是需要结合企业的业务情况设定相关的指标。

互联网相关企业在建立用户画像时一般除了基于用户维度(userid)建立一套用户标签体系外,还会基于用户使用设备维度(cookieid)建立相应的标签体系。基于cookieid维度的标签应用也很容易理解,当用户没有登录账户而访问设备时,也可以基于用户在设备上的行为对该设备推送相关的广告、产品和服务。

建立的用户标签按标签类型可以分为统计类、规则类和机器学习挖掘类,相关内容在1.1.2节中有详细介绍。从建立的标签维度来看,可以将其分为用户属性类、用户行为类、用户消费类和风险控制类等常见类型。下面详细介绍用户标签体系的构成及应用场景。

2.1 用户属性维度

2.1.1 常见用户属性

用户属性是刻画用户的基础。常见用户属性指标包括:用户的年龄、性别、安装时间、注册状态、城市、省份、活跃登录地、历史购买状态、历史购买金额等。

用户属性维度的标签建成后可以提供客服电话服务,为运营人员了解用户基本情况提供帮助。用户属性标签包含统计类、规则类、机器学习挖掘类等类型。统计类标签的开发较为简单,机器学习挖掘类标签将在4.3节中通过具体案例进行讲解。本节主要介绍常见用户属性标签主要包括的维度。表2-1给出了常用的用户属性维度标签。

image.png

2.1.2 用户性别

用户性别可细分为自然性别和购物性别两种。自然性别是指用户的实际性别,一般可通过用户注册信息、填写调查问卷表单等途径获得。该标签只需要从相应的表中抽取数据即可,加工起来较为方便。用户购物性别是指用户购买物品时的性别取向。例如,一位实际性别为男性的用户,可能经常给妻子购买女性的衣物、包等商品,那么这位用户的购物性别则是女性。

2.2 用户行为维度

用户行为是另一种刻画用户的常见维度,通过用户行为可以挖掘其偏好和特征。常见用户行为维度指标(见表2-2)包括:用户订单相关行为、下单/访问行为、用户近30天行为类型指标、用户高频活跃时间段、用户购买品类、点击偏好、营销敏感度等相关行为。

image.png

2.3 用户消费维度

对于用户消费维度指标体系的建设,可从用户浏览、加购、下单、收藏、搜索商品对应的品类入手,品类越细越精确,给用户推荐或营销商品的准确性越高。如图2-1所示,根据用户相关行为对应商品品类建设指标体系,本案例精确到商品三级品类。

表2-3为用户消费维度的标签设计。

image.png

这里通过一个场景来介绍构建用户消费维度的标签的应用。某女装大促活动期间,渠道运营人员需要筛选出平台上的优质用户,并通过短信、邮件、Push等渠道进行营销,可以通过圈选“浏览”“收藏”“加购”“购买”“搜索”与该女装相关品类”的标签来筛选出可能对该女装感兴趣的潜在用户,进一步组合其他标签(如“性别”“消费金额”“活跃度”等)筛选出对应的高质量用户群,推送到对应渠道。因此将商品品类抽象成标签后,可通过品类+行为的组合应用方式找到目标潜在用户人群。

2.4 风险控制维度

互联网企业的用户可能会遇到薅羊毛、恶意刷单、借贷欺诈等行为的用户,为了防止这类用户给平台带来损失和风险,互联网公司需要在风险控制维度构建起相关的指标体系,有效监控平台的不良用户。结合公司业务方向,例如可从账号风险、设备风险、借贷风险等维度入手构建风控维度标签体系。下面详细介绍一些常见的风险控制维度的标签示例,如表2-4所示。

image.png

2.5 社交属性维度

社交属性用于了解用户的家庭成员、社交关系、社交偏好、社交活跃程度等方面,通过这些信息可以更好地为用户提供个性化服务。表2-5是常用的社交属性维度标签示例。

image.png

2.6 其他常见标签划分方式

本章前5节从用户属性、用户行为、用户消费、风险控制、社交属性共五大维度划分归类了用户标签指标体系。但对用户标签体系的归类并不局限于此,通过应用场景对标签进行归类也是常见的标签划分方式。图2-4展示了具体的画像标签应用场景划分。

image.png

2.7 标签命名方式

无参考价值。

2.8 本章小结

本章主要介绍了如何结合业务场景去搭建刻画用户的数据指标体系。其中2.1节到2.5节介绍了一种从用户属性、用户行为、用户消费、风险控制和社交属性5个维度建立用户标签体系的思路,2.6节提供了一种基于应用场景搭建指标体系的思路。

本文为读书笔记,更多精彩内容请自行购买书籍。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022.03.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第1章 用户画像基础
    • 1.1 用户画像是什么
      • 1.1 用户画像是什么
      • 1.1.2 标签类型
    • 1.2 数据架构
      • 1.3 主要覆盖模块
        • 1.4 开发阶段流程
          • 1.4.1 开发上线流程
          • 1.4.2 各阶段关键产出
        • 1.5 画像应用的落地
          • 1.6 某用户画像案例
            • 1.6.1 案例背景介绍
            • 1.6.2 相关元数据
            • 1.6.3 画像表结构设计
          • 1.7 定性类画像
          • 第2章 数据指标体系
            • 2.1 用户属性维度
              • 2.1.1 常见用户属性
              • 2.1.2 用户性别
            • 2.2 用户行为维度
              • 2.3 用户消费维度
                • 2.4 风险控制维度
                  • 2.5 社交属性维度
                    • 2.6 其他常见标签划分方式
                      • 2.7 标签命名方式
                        • 2.8 本章小结
                        相关产品与服务
                        数据库
                        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档