一句话定位
把一堆冷冰冰的用户数据,喂给 AI,让 AI 帮你把每个用户从一行行表格,还原成「一个具体的人」。
用户画像这件事,AI 之前就有(RFM、聚类、决策树),但用起来很重 ——
要写 SQL、要算指标、要建模、要做图表,最后交付物往往是 Excel + 几个均值。
AI 进来之后,价值不在"算得更准",而在把人从数字里捞出来:
- 把
R=5, F=12, M=8932这种数据,翻译成「30 岁女性,常周三晚下单,客单 80,品类偏好母婴」 - 把 10 万用户的聚类结果,总结成 5 段人话描述
- 让市场/产品同事能直接读懂,不用每次都来问数据组
一、用户画像到底在做什么
不管 AI 还是传统做法,核心就 3 步:
原始数据 (行为 / 交易 / 属性)
↓
特征工程 (聚类 / 评分 / 标签)
↓
人物画像 (一段可读、可决策的文字 + 关键指标)
AI 主要吃的是第 3 步 —— 把结构化特征翻译成自然语言描述,
顺便补一些模型没显式算出来、但从数据里能合理推断的东西
(生活方式、需求痛点、可能的决策路径)。
二、数据从哪来 —— 三类原料
| 类型 | 例子 | 画像里能体现什么 |
|---|---|---|
| 属性数据 | 性别、年龄、城市、设备、注册渠道 | 基础人口统计 |
| 行为数据 | 访问路径、停留时长、点击、加购、收藏 | 兴趣、意图、决策阶段 |
| 交易数据 | 客单、频次、最近购买、复购周期、品类 | 消费力、忠诚度、品类偏好 |
坑预警:三类最好都要有。只有属性 = 画像很空;只有行为 = 画像像"在逛但不买";只有交易 = 画像像"会买但不知道为什么"。
三、AI 怎么帮 —— 三种姿势
姿势 1:单点翻译(最常用)
把一个用户的所有特征打包成 JSON / 表格行,丢给 LLM,让它写一段人话。
输入(JSON):
{
"user_id": "U1023",
"age": 29,
"gender": "F",
"city_tier": "新一线",
"last_30d_orders": 4,
"avg_order_value": 86,
"favorite_categories": ["母婴", "家居"],
"active_hours": ["20-23"],
"device": "iPhone"
}
Prompt:
"你是用户研究专家。根据下面这位用户的数据,写一段 100 字内的画像描述,
包含:身份、生活状态、消费习惯、可能的需求。"
输出:
"29 岁女性,新一线城市上班族,晚间 8-11 点活跃度高,客单 80 左右,
关注母婴和家居 —— 推测为新手妈妈或准妈妈,晚上才有时间逛,
价格不敏感但挑品质。可能感兴趣:育儿社群、高品质家居好物。"
好处:零门槛,prompt 改改就能用。
坑:LLM 会编 ——「推测为新手妈妈」不是数据里说的,只是模型"觉得合理"。
写进画像时要明确标【推测】,不然就被业务当真。
姿势 2:群体总结(从 10 万人到 5 段话)
传统做法是聚类出 8 群,扔 8 张均值表。AI 能把 8 群直接写成 5 段业务能看懂的描述:
输入:8 个聚类,每个聚类的(均值 RFM、Top 品类、地域分布、活跃时段)
Prompt:
"下面 8 个聚类各有一组特征。请:
1) 合并语义相近的,得到不超过 5 个核心人群
2) 给每群人起个名字 + 一段描述 + 关键运营建议
3) 区分【数据支撑】和【业务推测】"
输出:
人群 1:「高价值全职妈妈」
- 数据: R=9, F=24, M=12000, 母婴品类占比 70%, 周末活跃
- 推测: 决策周期长,看重口碑,愿为安全溢价
- 建议: 母婴 KOL 合作 + 高客单套装
...
好处:把"分析师的语言"翻译成"业务的语言"。
坑:合并聚类这事,AI 经常合并得太狠或创造不存在的群。最终群数让人 review。
姿势 3:动态标签 + 自然语言检索(进阶)
把 AI 嵌入数据系统本身:
数据系统 AI 层
用户表 + 行为表 → 周期性跑 prompt → 给每个用户打 3-5 个自然语言标签
(「价格敏感」「夜猫子」「品牌忠诚」)
↓
标签入库
↓
运营/市场查询: 「找出所有『价格敏感』且最近 7 天没下单的女性」
→ 转 SQL 或 向量检索
→ 返回用户列表 + 标签解释
好处:画像可被业务直接 query,不是写死的人话描述。
坑:成本(每个用户都跑一次 prompt 不便宜)、标签漂移(用户行为在变,标签没及时更新)。
四、最小可跑示例(Python)
import json
import anthropic # 任何 LLM SDK 都行
client = anthropic.Anthropic()
def generate_persona(user_features: dict) -> str:
prompt = f'''你是一名用户研究分析师。根据下面这位用户的结构化特征,
写一段 80-120 字的画像描述,要求:
1. 包含:身份、生活状态、消费习惯
2. 区分【数据事实】与【业务推测】,推测部分用括号标(推测:...)
3. 不要编造数据中没有的字段
用户特征(JSON):
{json.dumps(user_features, ensure_ascii=False, indent=2)}
'''
msg = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=500,
messages=[{"role": "user", "content": prompt}],
)
return msg.content[0].text
# 用法
user = {
"age": 29, "gender": "F", "city_tier": "新一线",
"r_score": 5, "f_score": 4, "m_score": 5,
"avg_order_value": 86, "last_30d_orders": 4,
"top_categories": ["母婴", "家居"],
"active_hours": "20-23",
}
print(generate_persona(user))
工程上 3 个必做项:
| 项 | 为什么 |
|---|---|
| 加 schema 校验 | 防止 LLM 返回奇怪格式,影响下游入库 |
| 批量调用要并发 | 1 万个用户串行 = 几小时,并发能压到 10 分钟 |
| 结果抽样人工 review | 头 100 条必看,后面再采样;LLM 幻觉早期最容易发现 |
五、AI 画像的 4 个常见坑
- 过度拟合到均值 — AI 喜欢写「典型用户」,长尾用户反而最有价值
- 混淆数据与推测 — 没标【推测】的画像,业务会当真,决策错了背锅的是数据组
- 画像一旦生成就被冻结 — 用户在变,画像不变 = 过时。建议月度重跑 + 关键事件触发
- 隐私问题 — 把用户 ID、手机号、消费明细喂给 LLM?先脱敏(只喂聚合特征)再考虑
六、我的判断
AI 不会取代传统画像的算和聚类 —— 那部分统计学依然是地基。
AI 加的是最后那一公里:把数字翻译成决策。
落地顺序建议:
- 先用传统方法把特征、聚类、指标算稳
- 用 LLM 做单点翻译试水,内部 review 一下质量
- 觉得稳了再上群体总结 + 自然语言标签
- 进阶才考虑嵌入数据系统做 query 接口
AI 是画像的"嘴",不是"脑"。脑还是统计学和数据治理。
// 持续更新中...