Applied Scientist · Phone ML Project Deep Dive

Amazon ML:全新用户没有历史,推荐模型究竟输出什么?

从未知user embedding的实际行为讲起,设计内容/上下文fallback、探索与新用户偏差评估。

题目重点:从未知user embedding的实际行为讲起,设计内容/上下文fallback、探索与新用户偏差评估。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 新用户没有交互序列,可能有合法上下文/显式偏好;不假设有未经提供的年龄、位置或购买历史。
  • 目标是合法可用商品中的TopK,模型有user-id分支还是session/content分支须先确认;题目模型结构未知。

解题路线

  1. 先画推理路径:若只用训练中user-id embedding,未知ID可能映射UNK、默认向量或直接报错;不能回答模型自动懂新人。检查真实encoder的lookup/default与特征缺省,给具体输出合同。
  2. fallback用可用上下文、内容相似、类目先验/热门和显式偏好组合,并过滤缺货/不合规候选。纯热门可快速覆盖,但流行度偏差与多样性受限;无侧信息时承认个人差异不可识别。
  3. 用户特征缺省值与真正0要区分,提供missing indicator或可学习默认表示。训练样本应包含历史mask/新用户模拟,按时间首次出现划分评估,防把未来行为作为新人特征。
  4. 新用户曝光收集反馈可做受控探索,保留logging propensity与明确可接受风险;不把没点击都当负偏好,因为位置/曝光决定可见性。先用简单随机探索基线测收敛再谈复杂策略。
  5. 分开评新用户首会话有效率、后续留存、冷门覆盖与延迟,并与已有用户对照。新用户来源渠道混合会影响总体指标,不能只看整体CTR证明冷启动已解决。
  6. 新用户数据随着会话到来进入session representation,再渐进切到个性化;设置版本/缺省兼容避免第一条行为就把所有fallback切掉而产生抖动。

手动走一遍

训练模型score(u,i)=eu·ei+b_i,未知eu取0时仅剩商品偏置b_i,几乎就是全局先验;不是个性化。若用户主动选了科幻偏好,可用内容向量召回科幻,再与热门/探索混排,明确偏好来源。

规模与取舍

全库直接打分O(Nd),ANN或候选召回降低在线候选数;fallback热门列表可预计算,在线仍有过滤和多样性重排。状态与历史O(用户/会话量),不可把冷启动定义成只有一次缓存查表。

易错点与追问

容易失分的边界

  • 未知ID没有定义。
  • 默认0当真实特征值。
  • 用未来行为评新用户。
  • 把无曝光当用户不喜欢。
  • 热门效果当个性化成功。

继续深挖

  • 新商品与新用户同时出现怎么办?
  • 用户拒绝提供偏好时如何fallback?
  • 探索数据如何用于无偏评估?
  • 新用户偏差如何与渠道差异分开?
✓已复制微信号!