从「黑盒向量」到「用户『话』像」:解开用户画像之谜
传统推荐里的用户画像为什么是一串没人看得懂的数字?顺着标签、协同过滤、Embedding 三个阶段讲清它的三道围墙,再用三篇论文梳理 LLM 如何把向量还原成一句有温度的话。
TL;DR
在接触 LLM 之前,我没深究过传统推荐算法里用户画像到底怎么存。 直到听人说「传统的用户画像是用向量存储的」,我很困惑: 向量不也是从文本转化过去的吗,那直接找到向量化之前的文本不就好了? 带着这个问题查了资料、读了三篇论文,才发现根本不存在那个「向量化之前的文本」—— 传统画像从来不是先有一句话再压成向量,而是直接从行为 ID 序列学出来的坐标点。 这带来三个长期无解的问题:不可解释、交互被动、平台割裂。 而 LLM 天然就是人类偏好最好的解压缩器: 解释层让推荐系统说人话,交互层让 Agent 学会在必要时主动提问, 通用层则提出一个更激进的主张——抛弃所有向量,文本即是唯一的通用接口。
目录
在接触 LLM 之前,我其实并没有深究过传统的推荐算法中,用户画像到底是如何存储的。直到大模型出现,我习惯了直接在 prompt 里用自然语言描述用户画像作为长期记忆。
这时听到别人说「传统的用户画像是用向量存储的」,我一度非常困惑:用向量存储,不也是从文本转化过去的吗?那直接找到向量化之前的文本不就好了吗?
带着这个问题,我查阅了相关资料,并梳理了近期的三篇相关论文。这篇文章先从传统推荐的局限性出发,再依次根据三篇论文,梳理从「黑盒向量」到「用户话像」的演进。
一、传统推荐算法的黑盒:三道围墙
第一阶段:标签化时代——人是一张「属性表」
这是最早期、最直观的方法。系统通过用户填写的资料或简单的统计规则,给用户打上显性的标签,画像形式是结构化的数据库字段:
User_123 = { 性别: 男, 年龄: 25-30, 地域: 北京, 兴趣标签: [科技, 电影] }构建方式有两种:显性收集(注册时让用户选感兴趣的领域)和规则统计(如果用户过去 7 天看了 5 次电影解说视频,后台跑个脚本给他打上「电影迷」)。
局限性也很明显:颗粒度太粗——用户喜欢电影,是喜欢恐怖片、国内电影还是国外电影?标签无法区分;静态僵化——标签一旦打上很难实时更新,用户可能只是因为这两天有一部高票房电影才看的,过了这周就不看了,但标签还在。
第二阶段:协同过滤时代——人是「和你相似的人的集合」
这是推荐系统爆发的起点。系统不再关心你是谁,只关心你买了什么,以及和你买一样东西的人还买了什么。
画像形式是稀疏矩阵中的一行(One-hot 向量):把所有商品排成一排,买过就是 1,没买过就是 0,画像就是一个超级长的 [0,0,1,0,1,...]。
核心算法是矩阵分解:系统试图将这个巨大的稀疏矩阵,分解为用户矩阵和物品矩阵两个小矩阵。在这个阶段,用户被压缩成了一个低维的隐向量。
局限性:完全黑盒——这个隐向量里的数字(比如 0.85)代表什么,没人知道;冷启动必死——新用户没买过东西,矩阵里全是 0,系统只能推热门榜单。
第三阶段:深度学习与 Embedding 时代——人是「高维空间中的一个坐标点」
这是 LLM 爆发前夜的主流技术,画像形式是稠密向量,通常是 64 维、128 维或 256 维的实数数组。
构建方式包括:ID Embedding(给每个用户分配专属 ID,通过神经网络训练让这个 ID 对应的向量能预测他会点击什么)、序列建模(利用 RNN、GRU 或 Transformer 把用户的点击历史序列输入模型)、多塔融合(把用户的 ID、点击历史、人口属性全部变成向量拼接在一起)。
局限性:精准但不可解释——这种方法在点击率预测上极其精准,系统知道向量 A 和向量 B 算出的分数很高,但无法用人类语言解释为什么;ID 依赖——如果用户换了新账号,或者去了新平台,之前的向量通常就废了;信息有损压缩——把用户丰富多彩的行为压缩成几个数字,大量语义信息丢失了。
小结:LLM 介入前的三个痛点
在 LLM 介入之前,用户画像系统大概是这样的:系统把用户看作一串 ID 序列,通过深度神经网络将这些 ID 映射为高维空间中的一个坐标点,然后寻找离这个坐标点最近的物品坐标点进行推荐。
这导致了三个长期无法解决的问题:
- 不可解释性:「为什么给用户推这个?」工程师只能说:「因为模型算出来的分高。」
- 交互被动性:模型只能等着用户点击、猜用户的意图,而不会开口问「你是想看科幻片还是动画片?」
- 平台割裂性:用户在 A 应用的画像是向量 a,在 B 应用是向量 b,两者无法互通。
现在的演进方向,是把 [0.12, -0.56, ...] 这样的向量,还原成一句有温度的话:「这是一个喜欢在深夜看科幻电影,且对画质要求极高的用户。」
这不仅是格式的转换,更是思维的跃迁。
二、范式重构:当大模型接管「人设」
面对传统画像留下的黑盒、被动、孤岛三大问题,研究者们发现:LLM 不仅是一个聊天工具,它天然就是人类偏好最佳的解压缩器。
1、解释层:让推荐系统「说人话」
当传统模型还在计算向量距离时,新的研究开始尝试一种「双重叙事」策略。这一阶段的模型架构非常巧妙——它并没有抛弃传统推荐系统,而是给它装上了一个翻译官。
(1)短期记忆 vs 长期记忆
系统开始像人类一样,用两种不同的焦距审视用户:
- 短期记忆(显微镜视角):用户这周密集点击了雨伞、防水鞋,传统模型只会打上「雨具爱好者」的标签,但 LLM 能基于常识推断——这是基于近期雷雨天气的情境需求,而非用户爱上了收藏雨伞。
- 长期记忆(望远镜视角):从用户长达三年的观影记录中,LLM 能够透过现象看本质——用户偏爱探讨人性阴暗面的黑色电影,而非仅仅是喜欢「惊悚」这个浅层标签。
(2)技术拆解:双重文本画像生成
这种架构采用了「LLM 生成文本 + BERT 编码向量」的混合模式,既利用了 LLM 的理解力,又保留了向量计算的高效性。
第一步是双路 Prompting:系统将用户的交互历史输入给 LLM,用两套截然不同的 prompt 来套话。Prompt A 侧重近期行为,生成「用户最近几天沉迷于快节奏的动作爽片」;Prompt B 侧重全局历史,生成「用户长期以来对复杂的道德剧和黑色幽默情有独钟」。
第二步是动态注意力融合:生成的两段文本先通过预训练的 BERT 转化为高维向量,最精妙的设计在于随后的注意力网络——模型会动态计算两个权重。对于口味多变的电影用户,可能给短期偏好更高的权重;对于忠诚的游戏玩家,长期偏好的权重可能更高。
于是就有了这样的解释:推荐《赎罪》,70% 是因为用户昨晚刚看了类似的爱情悲剧(短期权重),30% 是因为它符合用户一贯对高质量英伦片的审美(长期权重)。
这种双塔注意力机制的引入,让推荐系统第一次拥有了逻辑。
(3)局限性:旧瓶装新酒
它虽然引入了 LLM 做翻译,但最终的决策依然回到了 Embedding。用户的画像本质上依然被锁死在特定的向量空间里,无法跨模型迁移。
2、交互层:拒绝冷启动,Agent 学会「主动搭讪」
解决了解释问题后,下一步是解决冷启动。如果用户什么都没做,LLM 怎么猜?答案是:像人一样去问,并且只在必要时才开口。
PersonalAgent 架构将用户画像从静态的数据库升级为了动态的马尔可夫决策过程。在这个阶段,画像不再是静态文件,而是一个拥有元认知能力的后台大脑。
(1)将画像视为流式决策
不同于上一阶段粗糙的文本摘要,PersonalAgent 维护了一个结构严谨的层级化画像体系。它参考百万级真实对话数据,定义了 11 个大类(基本信息、兴趣偏好、消费观等)和 300 多个子类,作为可维护的结构化记忆。
写入时不是随便写一段「用户喜欢 xxx」,而是往这些记忆槽位里填写更明确的属性;冷启动时,把「该问什么」变成了「优先补齐哪些槽位」,从而更系统地生成个性化追问。
流程是:用户提出请求(如「推荐个餐厅」)时,Agent 先在画像里检索,然后问自己一个关键问题——如果我不问这一句,还能完美回答用户吗?画像里有「喜辣、人均 200」就直接生成答案,保持静默绝不打扰;画像缺失且这个缺失会严重影响推荐质量(比如不知道是否过敏),才触发提问机制。
这就像一个优秀的服务员:只有在必须确认牛排几分熟时才打断你,而不是每上一道菜都问你「好吃吗」。
(2)训练的艺术:GRPO 与严厉的裁判
有了规则还不够,还得让模型学会「问什么」。研究者没有简单地使用 SFT,而是引入了 GRPO 强化学习。
教材选择:为了让模型不讲废话,专门构造了一套名为 ALOE-Unseen 的数据,全是仅凭现有画像无法回答的刁钻场景。模型被迫在这个环境里反复练习:面对这个请求,我到底缺哪个关键的用户画像槽位?
严厉的裁判:设计了一个基于 LLM 的裁判,从四个维度给 Agent 的每一次发言打分——完整性(关键偏好是否捕捉全了)、无幻觉(绝不凭空给用户贴标签)、信息量(问就要问出关键信息)、一致性(别前后矛盾,反复问同一类问题)。
总结一下:先用已有画像把能答的都答了;只有当缺的这个信息会显著影响结果时,才用最少的问题补齐;并且严格避免臆测用户。
从这一阶段开始,用户画像活了。它不再是数据库里的一行代码,而是一个随着对话不断生长、自我修正、且懂得适度打扰的智慧伴侣。
3、通用层:文本即通用接口
演进的终局,是彻底打破平台与模型之间的壁垒。在 AlignXplore+ 等前沿工作中,研究者提出了一个观点:抛弃所有向量,文本即是唯一的通用接口。
这里有一个小问题:上一节的 Agent 不是还在用结构化的 Schema(11 大类、300 子类)来管理记忆吗?这岂不是又造了一个新的私有格式?
其实可以这样理解:AlignXplore+ 证明的是「文本摘要可以作为跨模型、跨任务的通用偏好接口」。工程实现上,完全可以在内部使用结构化 schema 做偏好治理(缺口检测、去重与冲突消解),再将其导出为可迁移的文本摘要供不同模型消费。
(1)跨越边界:从适配到直连
论文实验表明,将在源任务中生成的文本画像,直接作为 context 喂给目标任务,无需特定微调或对齐层,即可获得显著的效果提升。
这意味着,用户的偏好不再被锁死在某个应用的数据库里,而是具备了流动的可能。基于此可以畅想一个未来:用小参数模型维护的画像文本,可以被超大模型直接读取,画像将从平台的附属品,变成用户可携带、可检查、甚至可修改的独立数字资产。
(2)技术拆解:两阶段训练
那么如何保证这段文本足够精准,且能被下游模型理解?论文使用了「SFT + 课程强化学习」双重技术栈,核心逻辑是——以未来预测现在的准确性。
SFT 阶段的逆向推理数据合成:直接让 LLM 总结历史往往会得到「正确的废话」。作者设计了一条严苛的流水线:先用用户未来的真实交互作为靶子,反问模型「用户为什么会做这个选择」,从而倒推偏好文本;然后做行为验证,生成的文本摘要必须能准确预测用户的下一次行为,预测不对直接扔掉;最后把验证通过的碎片化偏好整合成完整的用户侧写。
RL 阶段的课程学习:太简单的样本(一眼看穿)不要,太难的(纯噪音)不要,只训练那些需要推理才能懂的高价值样本;奖励那些不仅当前预测对了、且对流式场景下的长期交互有帮助的画像描述。
(3)降维打击的效果
复杂兴趣的解耦:传统向量模型在处理复杂用户时容易取平均值,而文本接口能保留这种复杂性。比如用户可能「独处时偏好深度科幻,饭点时偏好轻松综艺」,大模型能读懂这种基于场景的双重需求,而不会像向量那样把两者混合成一团模糊的噪声。
上下文的统一:推荐系统(通常基于向量和 ID)和对话系统(通常基于文本)之间长期存在一种类似生殖隔离的壁垒。现在,通过将推荐系统中的交互信号蒸馏为通用的文本画像,推荐数据终于可以被对话模型无缝消费。文本,成为了连接不同 AI 模型的通用货币。
最后
至此,我们完成了从「冷冰冰的坐标点」到「有血有肉的人物小传」的技术跨越。
传统推荐系统是在高维空间里做几何题,而 LLM 是在阅读理解你的人生。
核心结论
标注「判断」「假设」的是我的看法而非事实;标注「已推翻」的保留在这里,不删除。
传统用户画像并不存在「向量化之前的那句文本」。它不是先写一句话再压成向量,而是直接从行为 ID 序列学出来的坐标点,所以那些数字天生就不可读。#
把握较大
LLM 介入之前,用户画像有三道围墙:不可解释(工程师只能说模型算出来分高)、交互被动(只能等用户点击去猜,不会开口问)、平台割裂(A 应用的向量到 B 应用就废了)。#
判断 · 把握较大
LLM 不只是一个聊天工具,它天然就是人类偏好最好的解压缩器——能把「喜欢惊悚片」这样的浅层标签还原成「偏爱探讨人性阴暗面的黑色电影」这种真正的动机。#
判断
好的主动提问机制不是逢问必问,而是先用已有画像把能答的都答了,只有当缺失的信息会显著影响结果时才用最少的问题补齐。像优秀的服务员只在确认牛排几分熟时才打断你。#
判断 · 把握较大
文本摘要可以作为跨模型、跨任务的通用偏好接口——源任务生成的文本画像直接喂给目标任务,无需微调或对齐层就能获得显著提升。用户画像因此有可能从平台的附属品变成用户可携带的数字资产。#
假设 · 把握中等
引用本文
晨旭,《从「黑盒向量」到「用户『话』像」:解开用户画像之谜》,晨光里的AI,2026-02-10
[晨旭:《从「黑盒向量」到「用户『话』像」:解开用户画像之谜》](https://chenxu.xin/writing/user-profile-from-vector-to-text)带进你的 AI 继续追问
这篇文章有一份干净的 Markdown 原文,可以直接交给任何模型读,不用复制粘贴。