3、标签体系设计:标签分类、命名规范与生命周期管理
标签体系设计,说白了就是给用户画像搭骨架。骨架搭不好,后面再多的数据也撑不起一个立体的用户形象。我做了这么多年数据产品,见过太多团队一上来就堆标签,结果标签越建越多,真正能用上的没几个。
今天咱们就聊聊标签体系设计的三个核心问题:标签怎么分类、名字怎么起、以及标签怎么管好它的“一生”。
3.1 标签分类:事实、模型、预测
我个人习惯把标签分成三类:事实标签、模型标签、预测标签。这三类标签,其实对应着数据加工的三种深度。
3.1.1 事实标签
事实标签,就是直接从原始数据里提取出来的,不做任何加工。比如用户的性别、注册时间、最近一次登录时间。这类标签的特点是:准确、可追溯、不可篡改。
我在项目中遇到过一个问题:运营同学把“用户等级”当成了事实标签,直接用来做活动筛选。结果发现用户等级其实是动态计算的,每个月更新一次。这就尴尬了——活动期间用户等级变了,导致部分用户无法参与活动。
事实标签的典型例子:
- 用户ID、手机号、邮箱
- 注册时间、首次下单时间
- 性别、年龄(来自实名认证)
- 最近一次登录时间
- 累计消费金额(原始订单汇总)
3.1.2 模型标签
模型标签,是通过算法或规则计算出来的。比如用户的“消费能力等级”、“活跃度评分”、“兴趣偏好”。这类标签的特点是:有计算逻辑、可解释、需要定期更新。
你想想看,模型标签其实是对事实标签的二次加工。比如“高消费用户”这个标签,可能是根据“近30天消费金额 > 5000元”这个规则算出来的。规则变了,标签值也会变。
我记得有一次,业务方要求我们给用户打上“价格敏感型”标签。我们用了聚类算法,把用户分成三档。结果上线后发现,算法分出来的“价格敏感型”用户,其实只是最近没买东西。嗯,这里要注意:模型标签的准确性,完全取决于模型本身的质量。
3.1.3 预测标签
预测标签,是模型对用户未来行为的预估。比如“未来7天流失概率”、“下个月购买概率”、“推荐点击率预估”。这类标签的特点是:概率输出、时效性短、需要持续验证。
说白了,预测标签就是“猜”。既然是猜,就一定有对错。我见过很多团队把预测标签当成事实来用,结果活动效果大打折扣。比如“高流失风险用户”这个标签,如果准确率只有60%,那意味着40%的用户其实不会流失。你给这40%的用户发优惠券,就是浪费钱。
我曾经踩过一个坑:用预测标签做用户分群,结果因为模型没及时更新,导致分群结果和实际情况差了十万八千里。从那以后,我要求所有预测标签必须附带置信度分数,并且标注模型的上次更新时间。
3.2 标签命名规范
标签命名这件事,看似简单,其实特别容易出问题。我见过一个团队,标签库里同时存在“user_sex”、“gender”、“性别”三个标签,指的都是同一件事。你说乱不乱?
我个人习惯用一套统一的命名规范,核心原则就三条:
- 唯一性:一个标签只有一个名字,一个名字只对应一个标签
- 可读性:看到名字就知道这个标签是什么意思
- 可扩展性:新标签能按规则命名,不会和已有的冲突
具体来说,我推荐用这种命名格式:
【业务域】_【标签类型】_【标签名称】_【粒度】
举个例子:
| 标签中文名 | 标签英文名 | 说明 |
|---|---|---|
| 用户性别 | user_fact_gender_user | 用户维度的事实标签 |
| 消费能力等级 | user_model_consume_level_user | 用户维度的模型标签 |
| 7日流失概率 | user_predict_churn_prob_7d_user | 用户维度的预测标签 |
| 商品类目偏好 | user_model_category_pref_user | 用户维度的模型标签 |
另外,我建议在标签元数据里记录以下信息:
- 标签名称(英文、中文)
- 标签类型(事实/模型/预测)
- 数据来源(哪个系统、哪个表)
- 更新频率(实时/每天/每周)
- 负责人(谁建的、谁维护)
- 创建时间、最后修改时间
3.3 标签生命周期管理
标签不是建完就完事了。它有自己的生命周期:创建、使用、维护、下线。我见过太多标签建完就没人管了,最后变成一堆“僵尸标签”。
3.3.1 标签的创建
创建标签之前,一定要问三个问题:
- 这个标签解决什么问题?
- 有没有现成的标签可以替代?
- 数据源是否稳定可靠?
我习惯在创建标签时,先做一个标签需求文档,包含标签的定义、计算逻辑、预期用途、数据源、更新频率。这样后续维护起来,有据可查。
3.3.2 标签的使用与监控
标签上线后,要持续监控它的使用情况。我一般会看这几个指标:
- 使用频率:这个标签被多少个业务系统调用?
- 覆盖率:有多少用户有这个标签值?
- 准确率:模型标签和预测标签的准确率是否达标?
- 时效性:标签的更新是否及时?
我记得有一次,监控发现“用户活跃度”标签的覆盖率突然从80%降到了30%。排查后发现,是因为数据源接口改了,导致部分用户的数据没采集到。嗯,这里要注意:标签的监控一定要自动化,不能靠人工去查。
3.3.3 标签的下线
标签的下线,其实比创建更难。因为业务方可能已经依赖这个标签了。我建议按这个流程来:
- 标记为“废弃”:先不删除,只是标记为废弃状态
- 通知所有使用者:发邮件、开会,告知下线时间和替代方案
- 观察一段时间:比如一个月,看看有没有人反馈问题
- 正式删除:确认没有依赖后,再删除标签
3.3.4 标签的版本管理
标签的版本管理,我建议用语义化版本号:
- 主版本号:标签定义或计算逻辑发生重大变化
- 次版本号:标签的更新频率或数据源发生变化
- 修订号:修复bug或优化性能
举个例子:
user_model_consume_level_user v2.1.3
- v2: 消费能力等级的计算逻辑从“近30天消费金额”改为“近90天消费金额”
- 1: 数据源从订单表改为支付表
- 3: 修复了空值处理的bug
说白了,标签体系设计这件事,三分靠技术,七分靠管理。技术上的事,写代码就能解决。但管理上的事,比如命名规范、生命周期管理,需要团队形成共识,并且严格执行。
我见过太多团队,技术很强,但标签体系一团糟。原因就是没人愿意花时间做这些“脏活累活”。但你想,如果标签体系都搞不好,用户画像的准确性从何谈起?
- 标签分三类:事实标签(原始数据)、模型标签(规则/算法)、预测标签(概率预估)
- 命名规范要统一:业务域_标签类型_标签名称_粒度
- 生命周期要管好:创建→使用→监控→下线,每个环节都要有规范
下一章,咱们聊聊标签的存储和查询优化。这部分内容,说白了就是怎么让标签用起来更快、更稳。到时候我会分享一些我在实际项目中踩过的坑,以及对应的解决方案。