开篇

在接触LLM之前,我其实并没有深究过传统的推荐算法中,用户画像到底是如何存储的。直到大模型出现,我习惯了直接在prompt里用自然语言描述用户画像作为长期记忆。

这时听到别人说“传统的用户画像是用向量存储的”,我一度非常困惑:**“用向量存储,不也是从文本转化过去的吗?那直接找到向量化之前的文本不就好了吗?”

图片

**

如果你也有这个疑惑的话,希望这篇文章可以帮助你解决这个迷思~

带着这个问题,我查阅了相关资料,并梳理了近期的三篇相关论文。这篇文章先从传统推荐的局限性出发,再依次根据三篇论文,梳理从黑盒向量到用户‘话’像的演进。

(文章可能会有些长~其中如果有理解错误的地方,恳请指正。)

三篇文章的地址依次是:https://dl.acm.org/doi/full/10.1145/3708319.3733655、https://arxiv.org/abs/2601.04963、https://arxiv.org/abs/2512.15302

传统推荐算法的黑盒:三道围墙

第一阶段:标签化时代

👉 人是一张「属性表」

这是最早期、最直观的方法。系统通过用户填写的资料或简单的统计规则,给用户打上显性的标签。

画像形式: 结构化的数据库字段。

User_123 = {性别: 男, 年龄: 25-30, 地域: 北京, 兴趣标签: [科技, 电影]}

如何构建**:**

  1. 显性收集:注册时让用户选感兴趣的领域。

  2. 规则统计:如果用户过去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”

  • 输出: 一个代表该序列意图的向量。

  1. ID Embedding:给每个用户分配一个专属ID,通过神经网络训练,让这个ID对应的向量能预测他会点击什么。

  2. 序列建模:利用RNN、GRU或Transformer(如SASRec模型),把用户的点击历史序列输入模型。

  3. 多塔融合:比如会把用户的ID、点击历史、人口属性全部变成向量,拼接在一起,形成一个超级向量。

局限性**:**

  • 精准但不可解释:这种方法在点击率预测上极其精准。系统知道把向量 A和向量B放在一起计算出的分数很高,但它无法用人类语言解释「为什么」。

  • ID依赖:严重依赖用户的UserID。如果用户换了个新账号,或者去了一个新平台(比如从淘宝去小红书),之前的向量通常就废了。🙁

  • 信息有损压缩:把用户丰富多彩的行为(比如他在评论区骂了一句脏话,或者他在看视频时快进了)压缩成几个数字,大量语义信息丢失了。

总结一下~LLM介入前的痛点👇

在LLM介入之前,用户画像系统(比如2022年的抖音推荐算法)大概是这样的:

“系统把用户看作一串ID序列,通过深度神经网络,将这些ID映射为高维空间中的一个坐标点(向量)。系统寻找离这个坐标点最近的物品坐标点进行推荐。”

这导致了三个长期无法解决的问题:👇

  1. 不可解释性**:**“为什么给用户推这个?”工程师只能说:“因为模型算出来的分高。”

  2. 交互被动性**:**模型只能等着用户点击,猜用户的意图。而不会开口问:“你是想看科幻片还是动画片?”

  3. 平台割裂性**:**用户在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的每一次发言打分,直接决定了模型的奖惩:

  1. 完整性: 关键偏好是否捕捉全了?

  2. 无幻觉: 绝不凭空给用户贴标签。(否则用户会觉得被冒犯)

  3. 信息量: 问就要问出关键信息。(不要问废话)

  4. 一致性: 别前后矛盾,反复问同一类问题。

总结一下~

先用已有画像把能答的都答了;只有当「缺的这个信息会显著影响结果」时,才用最少的问题补齐;并且严格避免臆测用户。

从这一阶段开始,用户画像活了。它不再是数据库里的一行代码,而是一个随着对话不断生长、自我修正、且懂得适度打扰的智慧伴侣。

3、通用层:文本即通用接口

👉 对应痛点:数据孤岛

演进的终局,是彻底打破平台与模型之间的壁垒。

ALIGNXPLORE+等前沿的工作中,研究者提出了一个观点: 抛弃所有向量,文本即是唯一的通用接口。

**但是这里有一个小问题,上一节的Agent不是还在用结构化的Schema(11大类、300子类)来管理记忆吗?这岂不是又造了一个新的私有格式?

图片

**

其实可以这样理解:AlignXplore+是证明了文本摘要可以作为跨模型/跨任务的通用偏好接口。但在工程实现上,可以在内部使用结构化schema来做偏好治理(如缺口检测、去重与冲突消解),再将其导出为可迁移的文本摘要供不同模型消费。👇

(1)跨越边界:从适配到直连

AlignXplore+的核心贡献在于,它证明了文本摘要在跨任务场景下具有极强的鲁棒性:

无需适配的零样本迁移

论文实验表明,将在源任务(如美团)中生成的文本画像,直接作为context喂给目标任务(如小红书),无需特定微调或对齐层,即可获得显著的效果提升。

👉 这意味着,用户的偏好不再被锁死在某个app的数据库里,而是具备了流动的可能。

产品推演:画像即「数字资产」

基于此,我们可以畅想一个未来:用小参数模型维护的画像文本,可以被超大模型直接读取。画像将从平台的附属品,变成用户可携带、可检查、甚至可修改的独立数字资产。

(2)技术拆解:两阶段训练的「暴力美学」

那么如何保证这段「文本」足够精准,且能被下游模型理解呢?

论文中使用了「SFT+课程强化学习」双重技术栈。这套流水线的核心逻辑是:以未来预测现在的准确性。👇

SFT:逆向推理的数据合成

直接让LLM总结历史往往会得到正确的废话。作者设计了一条「生成-验证-合并」的严苛流水线:

  1. Bootstrapping: 拿用户未来的真实交互(Ground Truth)作为靶子,反问模型:“用户为什么会做这个选择?”, 从而倒推偏好文本。

  2. 行为验证: 生成的文本摘要必须能准确预测用户的下一次行为。预测不对?直接扔掉。🫳

  3. 全量合并: 将验证通过的碎片化偏好,整合成一份完整的用户侧写。

RL:课程学习与长远目光

有了SFT的基础,作者进一步引入强化学习****来直接优化画像的可迁移性

课程剪枝: 就像教学大纲一样,太简单的样本(一眼看穿)不要🙂‍↔️,太难的(纯噪音)不要🙂‍↔️,只训练那些需要推理才能懂的高价值样本。

累积奖励: 奖励那些不仅当前预测对了,且对流式场景下的长期交互有帮助的画像描述。

(3)降维打击的效果

现象一:复杂兴趣的解耦传统向量模型在处理复杂用户时容易取平均值。而文本接口能很好地保留这种复杂性。

比如,用户可能“独处时偏好深度科幻,饭点时偏好轻松综艺”。

👉 大模型能读懂这种基于场景的双重需求,而不会像向量那样把两者混合成一团模糊的噪声。

现象二:上下文的统一推荐系统(通常基于向量/ID)和对话系统(通常基于文本)之间长期存在一种类似生殖隔离的壁垒。

现在,通过将推荐系统中的交互信号蒸馏为通用的文本画像,推荐数据终于可以被对话模型无缝消费。

👉 文本,成为了连接不同AI模型的通用货币。

最后

至此,我们完成了从「冷冰冰的坐标点」到「 有血有肉的人物小传」的技术跨越。

传统推荐系统是在高维空间里做几何题,而LLM是在阅读理解你的人生。🥰