跳到主要内容

AI 个性化的冷启动问题:在拥有数据之前如何提供价值

· 阅读需 13 分钟
Tian Pan
Software Engineer

大多数个性化系统是围绕一个飞轮构建的:用户进行互动,你学习他们的偏好,你展示更好的推荐,他们从而进行更多互动。随着数据的积累,飞轮转得越来越快。问题在于,飞轮需要速度才能产生升力——而新用户完全没有速度。

这就是冷启动问题。而且它比大多数团队在首次发布个性化功能时所认识到的更为危险。一个新用户在到达时没有任何历史记录,没有信号,通常还带着怀疑的先验预期:“AI 并不了解我。”你大约有 5 到 15 分钟的时间来证明并非如此,否则他们就会形成一种定论,决定他们是否会留得足够久,以产生那些能让你真正帮助到他们的数据。如果这个窗口期表现糟糕,高达 75% 的新用户会在第一周弃用产品。

冷启动问题不是数据问题,而是初始化问题。工程上的问题是:在缺乏历史记录的情况下,你应该注入什么?

为什么标准协同过滤在这里会失效

协同过滤(大多数推荐系统的基石)通过寻找过去行为与你相似的用户,并假设你会喜欢他们喜欢的东西来工作。一旦你拥有了行为数据,这是一种强大的技术。但问题是结构性的:它需要一个现有的互动矩阵来寻找相似用户。而一个新用户只是一行空白。

针对这种情况存在基于流行度的回退机制:向新用户展示大多数用户参与的内容。这可以作为基准线,但它完全破坏了个性化的感知。看到“热门”推荐的新用户不会觉得被理解——他们会觉得被敷衍了。对于由 LLM 驱动的产品,这种差距更糟糕。一个因为没有用户上下文而默认给出通用回复的 LLM 助手,看起来很蠢,而不是中立。

这种失败会产生复合影响,因为冷启动也是用户期望最高的时候。用户刚刚注册,他们对产品持开放态度。第一场会话是你赢得他们信任的机会,否则就会印证他们的猜想:AI 产品只是华而不实的模式匹配。

入职过程中的信号捕获:隐式 vs 显式

引导个性化最快的方法是直接询问。但如果问得不对,你会在用户看到产品之前就失去他们。

显式信号——偏好调查、入职问卷、两两比较——为你提供直接信息。关于偏好获取设计的研究已经得出了几个具体的结论:

  • 询问属性,而非项目。 “你喜欢哪种菜系?”的效果优于“请给这五家餐厅评分”。属性问题具有泛化性;而针对特定项目的问题只能告诉你用户喜欢某个具体的东西。
  • 使用两两比较而非数字量表。 询问“这两个你更喜欢哪一个?”比要求用户分别对项目评分能提取更多的每题信号。数字评分量表往往与较低的愉悦感相关——它们让人感觉像是在做作业。
  • 最多 5 到 8 个问题。 超过这个阈值,完成率会急剧下降。设计每个问题时要追求信息获取最大化,而不是覆盖面最大化。
  • 渐进式披露优于预置加载。 一次性显示所有入职问题会导致决策疲劳。分支问题树(每个答案决定下一个问题)可以减少认知负荷,同时实际上能从完成问卷的用户那里捕获更多信号。

隐式信号——点击、停留时间、滚动深度、导航模式——对用户来说没有成本,但需要初始互动才能产生。第一场会话几乎完全是隐性的,因此你的入职设计需要创造结构化的机会来观察行为:展示一小组选项并观察哪些被探索,或者提供备选项并跟踪哪些被展开。

最好的入职系统结合了两者。注册期间的显式问题为初始模型播下种子;第一场会话的隐式信号则立即对其进行微调。当用户完成第一次互动时,系统对他的了解已经比他刚进入时多得多。

队列先验注入:借用群体历史

你没有这个特定用户的数据,但你有成千上万个在最初几分钟内表现相似的用户的数据。队列先验注入(Cohort-prior injection)就是利用这些群体数据来初始化新用户个性化模型的技术。

贝叶斯框架在这里非常有用:你根据群体分布为新用户构建一个先验概率,然后随着用户产生观察结果来更新该先验。从一个通用的先验开始,但根据你可用的信号进行参数化:地理位置、推荐来源、设备类型、注册时间、入职时的显式属性偏好。每个信号都会缩小相关队列。

几种实现模式:

基于细分条件的默认设置。 与其提供单一的“冷启动”默认体验,不如维护 10 到 20 个根据历史用户群构建的细分概况。根据可用信号将新用户路由到最相关的细分群体,并将该群体的行为分布用作初始化。特定队列的选择至关重要——一个推荐来源是烹饪社区的新用户,其初始先验应该与来自生产力工具通讯的用户完全不同。

细分群体内的趋势 vs 全局趋势。 通过将“流行”范围限制在正确的队列中,可以显著改善“展示热门内容”这一冷启动回退方案。即便相似性信息不完整,在与该新用户相似的用户群中流行的内容,也比全局流行内容有用得多。

探索与利用的平衡(Bandits)。 上下文多臂老虎机(Contextual bandit)模型非常适合早期个性化,因为它们显式地平衡了探索(学习该用户的反应)与利用(展示用户可能感兴趣的内容)。DoorDash 在为新用户进行菜系排名时使用了这种方法:老虎机模型在探索用户偏好的同时,仍会展示相似用户历史参与度高的菜系,从而防止纯探索带来的“白板式”瘫痪。

队列先验的局限性在于覆盖范围。如果你的群体中不包含与新用户相似的人,先验就会增加噪声而非信号。队列先验在用户分布密集的中心地带最可靠;对于真正新颖的用户类型,其效果会下降。

构建引导循环:飞轮转动前的交互设计

冷启动期间的交互设计目标是手动制造飞轮的前几圈转动。在第一个会话中的每一个设计决策都应该根据以下标准进行评估:“这是否产生了信号,还是在不产生数据的情况下消耗了注意力?”

几种行之有效的模式:

微承诺链。 与其在注册时进行一次大型的偏好调查,不如将信号捕获分散到作为产品正常使用一部分的前几次交互中。当用户第一次搜索时,捕获查询和结果选择。当他们第一次浏览某个类别时,按项目捕获停留时间。每一次微承诺都会产生数据,同时感觉像是在使用产品而不是在进行设置。

强制曝光集合。 展示一组经过策划的小型代表性项目——旨在覆盖潜在的偏好空间——并观察反应。Netflix 在注册时使用类型缩略图就是这种做法的一个版本。其设计原则是选择能够最大化信息增益的集合:选择那些足够独特以至于从中进行选择确实能揭示某些信息的项目,而不是那些碰巧受欢迎的项目。

带有可见改进的平滑降级。 让冷启动状态可见并诚实地构建它。“我们正在学习你的偏好——这是我们目前了解到的情况”比在系统还不了解你时假装了解你更具吸引力。随着用户产生更多信号,明确地承认这种改进。这创造了一种元游戏(meta-game),用户明白更多的交互会产生更好的推荐,从而增加了交互。

LLM 引导对话。 对于由 LLM 驱动的产品,引导问卷可以被简短的结构化对话所取代。LLM 可以从自然语言中提取表单无法提取的偏好信号,而且用户 tend to 觉得对话式引导比表单的摩擦更小。输出是相同的——结构化的偏好表示——但输入感觉不那么像作业。从对话中显式提取属性并将其存储在结构化的用户配置文件中,而不是依赖 LLM 来记住之前的对话。

LLM 特有的冷启动模式

LLM 为冷启动个性化重新开启了几扇此前已经关闭的大门。

零样本排序。 标准的协同过滤在没有交互历史的情况下无法运行,但 LLM 可以仅根据文本描述进行项目排序,而无需特定领域的训练。给定一组候选项目和用户所述偏好的文本描述(来自引导过程),LLM 可以产生一个合理的初始排序,该排序明显优于全局热度排序。2024–2025 年的研究表明,在数据稀疏的情况下,零样本 LLM 排序器可以与专门的推荐模型相媲美,并且它们是平滑降级而不是完全失效。

模拟交互数据。 LLM 可以为新项目生成合成的用户交互——根据通用的世界知识预测所描述的用户将如何与所描述的项目进行交互。这对于解决项目冷启动问题(目录中没有交互历史的新项目)以及用户冷启动问题特别有用。合成数据对嵌入空间进行了足够的引导,使得初始协同过滤变得可行。

从对话中提取偏好。 LLM 可以从结构化启发式方法遗漏的自由文本中推断出隐式偏好。一个提到“我讨厌健身房但想健身”的用户揭示了关于形式、动力和痛点的偏好,而这是任何多选调查都无法捕获的。在用户旅程的早期构建一个偏好提取步骤——一个简短的开放式问题而不是结构化表单——可以比显式启发产生更丰富的初始化数据,并且它还可以作为关于用户沟通风格的信号。

需要围绕其进行工程设计的约束:基于 LLM 的冷启动在推理时比基于查找的推荐更昂贵,上下文窗口限制了你可以注入的偏好历史量,且 LLM 输出是随机的,这在你想要确定性的初始排序时带来了连贯性挑战。

团队常犯的错误

最常见的失败模式是将冷启动视为一种暂时的状态,认为一旦用户交互增多,它就会自动解决。逻辑看似正确——更多的交互产生更多的数据,从而解决冷启动——但它忽略了如果用户在第一次会话中体验不佳,可能永远不会产生脱离冷启动所需的第二次和第三次会话。初始化状态会一直持续,直到它被主动解决。

第二种失败模式是在冷启动期间优化了错误的指标。团队通常衡量冷启动推荐的点击率 (CTR),但第一节课的 CTR 衡量的是用户是否觉得内容有趣,而不是内容是否针对他们进行了 个性化。正确的早期会话指标是探索覆盖率:用户是否与多个类别进行了交互,还是在看到第一个碰巧匹配热门细分市场的结果后就离开了?

第三:在牺牲产品体验的情况下前置数据收集。一个在展示任何产品价值之前询问七个偏好问题的引导流程是将数据收集视为了产品。用户会对前几个问题保持容忍,然后就会流失。最好的引导是将信号捕获与即时价值交付交织在一起——展示一些有用的东西,然后询问一个相关的问题。

真正的飞轮机制

个性化飞轮并非自动运行。它是一个经过精心设计的系统,包含四个刻意的阶段:

  1. 诱导 (Entice):初始的冷启动体验提供足够的价值,从而促成第二次会话
  2. 赋能 (Enable):产品为用户创造结构化的机会来表达偏好(显式和隐式)
  3. 捕获 (Capture):将这些表达转换为持久且不断累积的用户模型
  4. 个性化 (Personalize):模型驱动的推荐明显优于冷启动基准

导致大多数个性化功能发布失败的差距存在于阶段 1 和阶段 2 之间。团队构建了一个在阶段 4 表现良好的个性化引擎,但在阶段 1 投入太少。冷启动体验成了事后才考虑的事情,第二次会话率很低,导致永远没有足够的数据让后续阶段发挥作用。

做好阶段 1 根本上是一个用户体验问题,而不是机器学习问题。机器学习 (ML) 系统只能针对那些留存足够长并产生了数据的用户进行优化。决定哪些用户能留下,完全是在第一次会话中完成的。

成功解决冷启动问题的团队将其视为头等产品问题:使用专门的埋点来衡量第一次会话的质量,对新手引导流程 (onboarding flows) 进行明确的 A/B 测试,并为从冷状态到热状态的过渡(通常定义为用户特定模型在可衡量的范围内优于先验分群模型时)建立单独的指标跟踪。冷启动不是个性化的开始 —— 它是构建一切的基础。

References:Let's stay in touch and Follow me for more thoughts and updates