一句话定位

把一堆冷冰冰的用户数据,喂给 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 个常见坑

  1. 过度拟合到均值 — AI 喜欢写「典型用户」,长尾用户反而最有价值
  2. 混淆数据与推测 — 没标【推测】的画像,业务会当真,决策错了背锅的是数据组
  3. 画像一旦生成就被冻结 — 用户在变,画像不变 = 过时。建议月度重跑 + 关键事件触发
  4. 隐私问题 — 把用户 ID、手机号、消费明细喂给 LLM?先脱敏(只喂聚合特征)再考虑

六、我的判断

AI 不会取代传统画像的聚类 —— 那部分统计学依然是地基。
AI 加的是最后那一公里:把数字翻译成决策

落地顺序建议:

  1. 先用传统方法把特征、聚类、指标算稳
  2. 用 LLM 做单点翻译试水,内部 review 一下质量
  3. 觉得稳了再上群体总结 + 自然语言标签
  4. 进阶才考虑嵌入数据系统做 query 接口

AI 是画像的"嘴",不是"脑"。脑还是统计学和数据治理。


// 持续更新中...