题目重点:从未知user embedding的实际行为讲起,设计内容/上下文fallback、探索与新用户偏差评估。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 新用户没有交互序列,可能有合法上下文/显式偏好;不假设有未经提供的年龄、位置或购买历史。
- 目标是合法可用商品中的TopK,模型有user-id分支还是session/content分支须先确认;题目模型结构未知。
解题路线
- 先画推理路径:若只用训练中user-id embedding,未知ID可能映射UNK、默认向量或直接报错;不能回答模型自动懂新人。检查真实encoder的lookup/default与特征缺省,给具体输出合同。
- fallback用可用上下文、内容相似、类目先验/热门和显式偏好组合,并过滤缺货/不合规候选。纯热门可快速覆盖,但流行度偏差与多样性受限;无侧信息时承认个人差异不可识别。
- 用户特征缺省值与真正0要区分,提供missing indicator或可学习默认表示。训练样本应包含历史mask/新用户模拟,按时间首次出现划分评估,防把未来行为作为新人特征。
- 新用户曝光收集反馈可做受控探索,保留logging propensity与明确可接受风险;不把没点击都当负偏好,因为位置/曝光决定可见性。先用简单随机探索基线测收敛再谈复杂策略。
- 分开评新用户首会话有效率、后续留存、冷门覆盖与延迟,并与已有用户对照。新用户来源渠道混合会影响总体指标,不能只看整体CTR证明冷启动已解决。
- 新用户数据随着会话到来进入session representation,再渐进切到个性化;设置版本/缺省兼容避免第一条行为就把所有fallback切掉而产生抖动。
手动走一遍
训练模型score(u,i)=eu·ei+b_i,未知eu取0时仅剩商品偏置b_i,几乎就是全局先验;不是个性化。若用户主动选了科幻偏好,可用内容向量召回科幻,再与热门/探索混排,明确偏好来源。
规模与取舍
全库直接打分O(Nd),ANN或候选召回降低在线候选数;fallback热门列表可预计算,在线仍有过滤和多样性重排。状态与历史O(用户/会话量),不可把冷启动定义成只有一次缓存查表。
易错点与追问
容易失分的边界
- 未知ID没有定义。
- 默认0当真实特征值。
- 用未来行为评新用户。
- 把无曝光当用户不喜欢。
- 热门效果当个性化成功。
继续深挖
- 新商品与新用户同时出现怎么办?
- 用户拒绝提供偏好时如何fallback?
- 探索数据如何用于无偏评估?
- 新用户偏差如何与渠道差异分开?
