开篇
在接触LLM之前,我其实并没有深究过传统的推荐算法中,用户画像到底是如何存储的。直到大模型出现,我习惯了直接在prompt里用自然语言描述用户画像作为长期记忆。
这时听到别人说“传统的用户画像是用向量存储的”,我一度非常困惑:**“用向量存储,不也是从文本转化过去的吗?那直接找到向量化之前的文本不就好了吗?”

**
如果你也有这个疑惑的话,希望这篇文章可以帮助你解决这个迷思~
带着这个问题,我查阅了相关资料,并梳理了近期的三篇相关论文。这篇文章先从传统推荐的局限性出发,再依次根据三篇论文,梳理从黑盒向量到用户‘话’像的演进。
(文章可能会有些长~其中如果有理解错误的地方,恳请指正。)
传统推荐算法的黑盒:三道围墙
第一阶段:标签化时代
👉 人是一张「属性表」
这是最早期、最直观的方法。系统通过用户填写的资料或简单的统计规则,给用户打上显性的标签。
画像形式: 结构化的数据库字段。
User_123 = {性别: 男, 年龄: 25-30, 地域: 北京, 兴趣标签: [科技, 电影]}如何构建**:**
-
显性收集:注册时让用户选感兴趣的领域。
-
规则统计:如果用户过去7天看了5次电影解说视频,系统后台跑一个脚本给该用户打上tag:电影迷。
局限性**:**
-
颗粒度太粗**:**用户喜欢电影,是喜欢看恐怖片、国内电影还是国外电影?标签无法区分。
-
静态僵化**:**标签一旦打上,很难实时更新。用户可能只是因为这两天有一个高票房电影才看的,过了这周就不看了,但标签还在。
第二阶段:协同过滤时代
👉 人是「和你相似的人的集合」
这是推荐系统爆发的起点。系统不再关心你是谁,只关心「你买了什么」以及「 和你买一样东西的人还买了什么」。
画像形式**:**稀疏矩阵中的一行(One-hot向量)。
把所有商品排成一排,买过就是1,没买过就是0。此时的画像就是一个超级长的 [0,0,1,0,1,...]。
核心算法**:**矩阵分解。
-
系统试图将这个巨大的稀疏矩阵,分解为两个小矩阵:用户矩阵和物品矩阵。
-
在这个阶段,用户被压缩成了一个低维的隐向量。
局限性**:**
-
完全黑盒:这个隐向量里的数字(比如
0.85)代表什么?没人知道。 -
冷启动必死:新用户没买过东西,矩阵里全是0,系统完全不知道该推什么,只能推热门榜单。
第三阶段:深度学习与Embedding时代
👉 人是「高维空间中的一个坐标点」
这是LLM爆发前夜的主流技术。
画像形式**:**稠密向量
例如:User_ID_Embedding = [0.12, -0.56, 0.99, ...](通常是64维、128维或256维的实数数组)。
如何构建**:**
-
输入:“点击A -> 点击B -> 点击C”
-
输出: 一个代表该序列意图的向量。
-
ID Embedding:给每个用户分配一个专属ID,通过神经网络训练,让这个ID对应的向量能预测他会点击什么。
-
序列建模:利用RNN、GRU或Transformer(如SASRec模型),把用户的点击历史序列输入模型。
-
多塔融合:比如会把用户的ID、点击历史、人口属性全部变成向量,拼接在一起,形成一个超级向量。
局限性**:**
-
精准但不可解释:这种方法在点击率预测上极其精准。系统知道把向量 A和向量B放在一起计算出的分数很高,但它无法用人类语言解释「为什么」。
-
ID依赖:严重依赖用户的UserID。如果用户换了个新账号,或者去了一个新平台(比如从淘宝去小红书),之前的向量通常就废了。🙁
-
信息有损压缩:把用户丰富多彩的行为(比如他在评论区骂了一句脏话,或者他在看视频时快进了)压缩成几个数字,大量语义信息丢失了。
总结一下~LLM介入前的痛点👇
在LLM介入之前,用户画像系统(比如2022年的抖音推荐算法)大概是这样的:
“系统把用户看作一串ID序列,通过深度神经网络,将这些ID映射为高维空间中的一个坐标点(向量)。系统寻找离这个坐标点最近的物品坐标点进行推荐。”
这导致了三个长期无法解决的问题:👇
-
不可解释性**:**“为什么给用户推这个?”工程师只能说:“因为模型算出来的分高。”
-
交互被动性**:**模型只能等着用户点击,猜用户的意图。而不会开口问:“你是想看科幻片还是动画片?”
-
平台割裂性**:**用户在A App的画像是向量a,在B App的画像是向量b,两者无法互通。
那么这些问题在llm出现之后该如何被解决呢?😯 现在的演进方向是:
把 [0.12, -0.56, ...] 向量,还原成一句有温度的话:“这是一个喜欢在深夜看科幻电影,且对画质要求极高的用户”。
这不仅是格式的转换,更是思维的跃迁。👇
范式重构:当大模型接管「人设」
面对传统画像留下的「黑盒、被动、孤岛」三大问题,研究者们发现:LLM不仅是一个聊天工具,它天然就是人类偏好最佳的解压缩器。
通过将ID映射为自然语言,一场关于用户画像的「文艺复兴」开始了。👇
1、解释层:让推荐系统「说人话」
👉 对应痛点:不可解释性
当传统模型还在计算向量距离时,新的研究开始尝试一种「双重叙事」策略:让时间与解释并存。
这一阶段的模型架构非常巧妙:它并没有抛弃传统推荐系统,而是给它装上了一个翻译官。😎
(1)短期记忆 vs 长期记忆
系统开始像人类一样,用两种不同的焦距审视用户:
-
短期记忆(显微镜视角):
比如用户这周密集点击了雨伞、防水鞋。传统模型只会打上「雨具爱好者」的标签,但LLM能基于常识推断:“这是基于近期雷雨天气的情境需求,而非用户爱上了收藏雨伞。”
-
长期记忆(望远镜视角):
从用户长达三年的观影记录中,LLM能够透过现象看本质:“用户偏爱探讨人性阴暗面的黑色电影,而非仅仅是喜欢「惊悚」这个浅层Tag。”
(2)技术拆解:双重文本画像生成
这种架构采用了一种「LLM生成文本+BERT编码向量」的混合模式。它既利用了LLM的理解力,又保留了向量计算的高效性。
Step 1:双路Prompting
系统将用户的交互历史输入给LLM,通过设计两套截然不同的prompt来套话:🥸
-
Prompt A (短期): 侧重近期行为,生成如“用户最近几天沉迷于快节奏的动作爽片”的描述。
-
Prompt B (长期): 侧重全局历史,生成如“用户长期以来对复杂的道德剧和黑色幽默情有独钟”的描述。
Step 2:动态注意力融合
生成的两段文本并没有直接输出给用户,而是先通过预训练的BERT模型转化为高维向量。最精妙的设计在于随后的注意力网络。模型会动态计算两个权重。
-
对于口味多变的电影用户: 模型可能会给短期偏好更高的权重(如0.7);
-
对于忠诚的游戏玩家: 长期偏好的权重可能更高(如0.7)。
比如:“推荐《赎罪》这部片子,70% 是因为用户昨晚刚看了类似的爱情悲剧(短期权重),30% 是因为它符合用户一贯对高质量英伦片的审美(长期权重)。”
👉 这种「双塔注意力机制」的引入,让推荐系统第一次拥有了逻辑。
(3)局限性:旧瓶装新酒
它虽然引入了LLM做翻译,但最终的决策依然回到了Embedding。用户的画像本质上依然被锁死在特定的向量空间里,无法跨模型迁移。
要想真正打破壁垒,需要让画像「活」过来。 👇
2、交互层:拒绝冷启动,Agent学会了「主动搭讪」
👉 对应痛点:交互被动性
解决了解释问题后,下一步是解决冷启动。如果用户什么都没做,LLM怎么猜呢?
答案是:像人一样去问,并且只在必要时才开口。
PersonalAgent架构将用户画像从静态的数据库升级为了动态的马尔可夫决策过程(MDP)。在这个阶段,画像不再是静态文件,而是一个拥有元认知能力的后台大脑。为了做到学会提问且不招人烦,它遵循两条铁律:👇
(1)将画像视为「流式决策」
不同于上一阶段粗糙的文本摘要,PersonalAgent维护了一个结构严谨的层级化画像体系。它参考LMSYS-Chat-IM百万级真实对话数据,定义了11个大类(如基本信息、兴趣偏好、消费观等)和300多个子类,作为可维护的结构化记忆:
-
写入的时候, 不是随便写一段“用户喜欢xxx”,而是往这些记忆槽位里填写更明确的属性;
-
冷启动的时候,把“该问什么”变成了优先补齐哪些槽位,从而更系统地生成个性化追问。
Step 1:检索与预判
当用户提出请求(如“推荐个餐厅”)时,Agent先在画像P中检索。
Step 2:计算必要性
它会问自己一个关键问题:“如果我不问这一句,还能完美回答用户吗?”
-
Case A(信息充足): 画像里有“喜辣、人均200”,直接生成答案。(保持静默,绝不打扰)
-
Case B(致命缺口): 画像缺失,且这个缺失会严重影响推荐质量(比如不知道是否过敏)。(触发提问机制)
👉 这就像一个优秀的服务员:只有在必须确认牛排几分熟时才打断你,而不是每上一道菜都问你“好吃吗”。
(2)训练的艺术:GRPO与严厉的裁判
有了规则还不够,还得让模型学会问什么。🤔
为了掌握高情商的交互,研究者没有简单地使用SFT,而是引入了GRPO(基于组相对策略优化) 的强化学习,从而把AI调教成沟通大师:
教材选择:冷启动特训
为了让模型不讲废话,研究者专门构造了一套名为 ALOE-Unseen 的数据。这些数据全是仅凭现有画像无法回答**的刁钻场景。模型被迫在这个环境里反复练习:“面对这个请求,我到底缺哪个关****键的用户画像槽位?”
**
👉 这相当于给模型上了一堂「 别泛泛闲聊、只补齐关键信息」的必修课。
强化学习:GRPO与严厉裁判
为了进一步优化体验,研究者引入了GRPO。他们设计了一个基于LLM的裁判,从四个维度给Agent的每一次发言打分,直接决定了模型的奖惩:
-
完整性: 关键偏好是否捕捉全了?
-
无幻觉: 绝不凭空给用户贴标签。(否则用户会觉得被冒犯)
-
信息量: 问就要问出关键信息。(不要问废话)
-
一致性: 别前后矛盾,反复问同一类问题。
总结一下~
先用已有画像把能答的都答了;只有当「缺的这个信息会显著影响结果」时,才用最少的问题补齐;并且严格避免臆测用户。
从这一阶段开始,用户画像活了。它不再是数据库里的一行代码,而是一个随着对话不断生长、自我修正、且懂得适度打扰的智慧伴侣。
3、通用层:文本即通用接口
👉 对应痛点:数据孤岛
演进的终局,是彻底打破平台与模型之间的壁垒。
在ALIGNXPLORE+等前沿的工作中,研究者提出了一个观点: 抛弃所有向量,文本即是唯一的通用接口。
**但是这里有一个小问题,上一节的Agent不是还在用结构化的Schema(11大类、300子类)来管理记忆吗?这岂不是又造了一个新的私有格式?

**
其实可以这样理解:AlignXplore+是证明了文本摘要可以作为跨模型/跨任务的通用偏好接口。但在工程实现上,可以在内部使用结构化schema来做偏好治理(如缺口检测、去重与冲突消解),再将其导出为可迁移的文本摘要供不同模型消费。👇
(1)跨越边界:从适配到直连
AlignXplore+的核心贡献在于,它证明了文本摘要在跨任务场景下具有极强的鲁棒性:
无需适配的零样本迁移
论文实验表明,将在源任务(如美团)中生成的文本画像,直接作为context喂给目标任务(如小红书),无需特定微调或对齐层,即可获得显著的效果提升。
👉 这意味着,用户的偏好不再被锁死在某个app的数据库里,而是具备了流动的可能。
产品推演:画像即「数字资产」
基于此,我们可以畅想一个未来:用小参数模型维护的画像文本,可以被超大模型直接读取。画像将从平台的附属品,变成用户可携带、可检查、甚至可修改的独立数字资产。
(2)技术拆解:两阶段训练的「暴力美学」
那么如何保证这段「文本」足够精准,且能被下游模型理解呢?
论文中使用了「SFT+课程强化学习」双重技术栈。这套流水线的核心逻辑是:以未来预测现在的准确性。👇
SFT:逆向推理的数据合成
直接让LLM总结历史往往会得到正确的废话。作者设计了一条「生成-验证-合并」的严苛流水线:
-
Bootstrapping: 拿用户未来的真实交互(Ground Truth)作为靶子,反问模型:“用户为什么会做这个选择?”, 从而倒推偏好文本。
-
行为验证: 生成的文本摘要必须能准确预测用户的下一次行为。预测不对?直接扔掉。🫳
-
全量合并: 将验证通过的碎片化偏好,整合成一份完整的用户侧写。
RL:课程学习与长远目光
有了SFT的基础,作者进一步引入强化学习****来直接优化画像的可迁移性:
课程剪枝: 就像教学大纲一样,太简单的样本(一眼看穿)不要🙂↔️,太难的(纯噪音)不要🙂↔️,只训练那些需要推理才能懂的高价值样本。
累积奖励: 奖励那些不仅当前预测对了,且对流式场景下的长期交互有帮助的画像描述。
(3)降维打击的效果
现象一:复杂兴趣的解耦传统向量模型在处理复杂用户时容易取平均值。而文本接口能很好地保留这种复杂性。
比如,用户可能“独处时偏好深度科幻,饭点时偏好轻松综艺”。
👉 大模型能读懂这种基于场景的双重需求,而不会像向量那样把两者混合成一团模糊的噪声。
现象二:上下文的统一推荐系统(通常基于向量/ID)和对话系统(通常基于文本)之间长期存在一种类似生殖隔离的壁垒。
现在,通过将推荐系统中的交互信号蒸馏为通用的文本画像,推荐数据终于可以被对话模型无缝消费。
👉 文本,成为了连接不同AI模型的通用货币。
最后
至此,我们完成了从「冷冰冰的坐标点」到「 有血有肉的人物小传」的技术跨越。
传统推荐系统是在高维空间里做几何题,而LLM是在阅读理解你的人生。🥰
