【标签画像系列】标签体系设计与加工
编辑导语: 标签体系在企业的数字化进程中是经常需要用到的,也是数据建设过程中必不可少的环节。那么如何进行标签的设计与加工呢?作者根据自身的一些项目交付经验进行了总结,一起来看一下吧。
在企业的数字化进程中,标签体系的创建与使用在业务场景需求中经常用到,也基本是数据建设过程中必不可少的环节。
一般有互联网基因的大公司,有专业的数据技术人才储备,会自己实现整个标签加工使用流程、技术选型等,也存在不具备相应人才的公司需要标准产品帮他们快速实现这个过程,无需再自己探索,B端的标准产品可以帮客户快速实现标签体系的搭建与标准化管理,解决业务问题。
本次我们一些项目交付经验,先来聊聊标签的设计与加工。
标签的建设与应用一般需要经过几个步骤:
- 标签体系设计
- 标签模型设计
- 标签加工与更新
- 标签应用
一、标签体系设计
标签服务于业务应用场景,好的标签体系设计能够让业务人员在使用时随需随取,及时查询出需要的数据,就算不具备这个标签时,业务人员也可以自己快速加工出来,无需寻求数据开发的帮助。那需要做到
- 标签类目划分合理
- 标签涵盖的数据源丰富,标签完善
- 后续扩展性高,即基于基础标签加工出新的标签时,方便快速
标签体系的设计一般会按照以下步骤:
1. 数据梳理
根据现有业务背景,以及数据,梳理出大概的标签体系。如企业一般数据大概来源于这几部分:
1)用户基础数据
用户ID、性别、年龄、手机号、邮箱、身份证号、会员等级等基础信息。
2)业务交易数据
如在零售领域,用户发生的每一笔交易都会有记录,如下图:
3)用户行为数据
如用户在APP、PC、小程序等的浏览、点击、收藏、评论行为,可反映出用户的行为特点。
4)活动/积分数据
会员商城的cha会员等级、积分兑换等数据。
5)售后投诉数据
客户投诉、售后处理等数据。
基于对数据的梳理,可进行标签基本体系的梳理,梳理出一部分有价值的标签。
2. 基于OLP模型体系化梳理标签
OLP模型是目前比较通用的建立标签体系的模型,OLP指“实体-关系-属性”模型,用下方场景举例:
- 实体:指对象,如人、书籍、门店等,可针对每个实体建立一套标签体系
- 属性:实体带的特征,如人有性别、年龄属性,书籍有价格、内容属性,门店有售卖渠道、地址位置等属性,属性是一种类型的标签
- 关系:通过动作产生关系,如基于购买动作,人和书籍产生关系,基于这个动作可产生消费时段偏好、支付方式偏好等标签
基于该模型,对标签进行查漏补缺,梳理出标签类目与标签。
3. 定义标签与加工口径
- 标签中文、英文名:标签的中文名称、英文名称
- 标签所属类目:标签所属一级、二级、三级类目
- 标签类型:根据不同维度的划分,采用其中一种。比如统计类标签、预测类标签、自定义标签等,亦或是原子标签、衍生标签、组合标签、算法标签等
- 标签值定义:定义每个标签的标签值,如“近一个月买入金额区间”标签,可根据购买金额的区间段定义“零/低端”、“普通”、“中端”、“准高端”、“高端”等标签值
- 标签含义(描述):描述该标签业务含义,如“最近30天的购买商品的金额区间,对用户消费力进行评估”
- 标签业务口径:标签以哪个数据定义为准,如“用户活跃城市”标签,以用户购买次数最多的城市为口径加工,而不是浏览次数、评论次数等
- 标签技术口径:描述该标签从哪个表的哪个字段取值,SQL取数逻辑是什么
- 业务方来源:该标签的业务需求方是谁
- 标签更新周期:描述标签更新频次,天(如T+1、T+2等)、周、月、小时、分钟更新等
- 标签更新优先级:同一时间端跑多个标签时,若资源有限,先跑优先级高的标签
基于以上工作,最终得出一份标签体系表,以这份表和业务方最终确认标签划分、标签与标签值、标签加工口径是否有疑义,没问题,便可进入标签开发环节。
二、标签模型设计
进入具体开发之前,需考虑标签模型层设计,在数仓加工出来哪些数据,标签产品加工哪些数据。标签模型依旧遵循数仓建模的“ODS-DWD-DWS-ADS”分层设计,基于DWD、DWS层抽象一层标签模型层,加工标签基础标签,届时在标签产品上让业务人员通过规则可加工生成新的标签。
一般遵循“公共层数据”、“大数据量计算”的标签放在数仓中数据开发写SQL实现,“通过规则可定义”、“标签规则经常修改”的标签在标签产品中配置。数仓一般实现:
1. 公共层数据
包含基础属性数据、基础指标(指标也可以作为一种标签,如最近30天购买金额、最近30天访问次数等),这些数据不仅给标签系统用,也可以给BI报表、数据门户使用,所以放在数仓中加工表。
1)基础信息类标签
2)交易类标签
3)行为类标签
2. 大数据量计算的标签
如计算历史最高花费金额、商品的历史最高库存、累计消费金额、用户排序等,这些标签的计算基于的数据量大,最好放在hive中跑批上线。
在数仓中加工好标签基础表,这些表中的标签一般称之为原子标签,再将该表对接标签产品,在标签产品中进行衍生类、组合类标签加工。
三、标签模型设计
基于标签模型的设计,一部分基础指标类的标签在数仓已建设完成,一部分标签需要在产品界面上实现。我们接下来看下业务人员如何在袋鼠云标签产品中配置标签。
1. 根据业务对象,创建实体、关系
假设一个电商类客户,需要建立一套用户标签体系,则首先创建“用户”实体对象,并在实体对象下可以接入标签多张基础表,如用户基础信息表、用户行为事件的指标表等,这些表的字段可作为原子标签直接使用,作为后续加工衍生、组合标签的基础。
同时,在后续加工衍生标签时,在某些场景上会用到多个实体下的原子标签加工,这时候可以用“关系”将2个实体关联起来,如将“用户”实体与“书籍”实体通过用户表的“最近购买商品ID”、以及书籍表的“书籍ID”关联起来,便可以用到2个表的字段进行某个标签的加工,如下图:
2. 读入原子标签
从标签基础表中读入原子标签,进行原子标签的元数据管理。
读入原子标签时,有些字段可能存储的是编号或一些枚举值,但业务人员需要看到具有真实业务含义的值,此处可做一层字典值映射。比如将“省市编号”映射为具体的省市名称。
3. 创建衍生标签
基于接入的数据表的原始字段和原子标签,通过“且、或”关系、“求和、去 重计数、计数、最大值、最小值、均值”聚合函数、“等于、不等于、小于、小于等于、大于、大于等于、包含、不包含等”操作符,对源表字段进行加工,生成衍生标签。
如基于用户访问次数、交易次数,加工“用户活跃度“衍生标签,包含“高活跃”、“一般活跃”、“睡眠状态”标签值,对用户活跃度进行衡量。
除通过可视化规则加工标签外,也会开放SQL界面写SQL加工标签,因为在实际场景中,客户场景不禁相同,有些复杂标签需要SQL快速实现,在产品界面上也可直接操作。
同时,虽然产品上会开放基于函数计算的标签加工、SQL类的标签加工,但还是会建议客户将公共层的指标类标签、及复杂类标签放在数仓中实现,以使标签配置这层轻量,届时进行数据跑批时快速。
4. 创建组合标签
基于原子标签和衍生标签,可进行组合标签的创建,如基于最近交易时间、最近1年交易次数,最近1年交易金额区间这3个标签,加工“用户综合价值”组合标签,将客户分为“低价值用户”、“一般保持用户”、“重要发展用户”等。
5. 创建实时、算法标签
- 实时标签:如基于用户实时行为数据通过Flink引擎计算实时标签,如用户点击APP上的一个商品广告,且加入购物车,判断该客户属于“某类型商品感兴趣用户”,作为客户短期兴趣标签。
- 算法标签:如基于用户的基金交易行为,预测该用户属于追涨、杀跌、高抛等哪种类型的客户,作为客户的风险偏好标签。
最终将这些实时与算法标签的元数据可统一接入标签平台统一管理。
标签逻辑创建好之后,同时配置标签的更新周期、更新优先级,进行标签的定时跑批、手动跑批等。
标签体系设计与加工先讲到这里,欢迎大家一起讨论。
本文由 @木研 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议