题目重点:拆开真实重要性和历史展示位置造成的点击偏差,设计优先级排序、探索、摘要评价与用户控制。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 训练版按用户对待处理邮件给优先级,但不自动删除、隐藏或发送邮件;用户始终可按时间顺序查看全部邮件。
- 点击、打开、回复等历史行为同时受真实重要性和旧排序位置影响,不能直接把低位置低点击当低重要性。
- 邮件内容含高度敏感数据,特征、训练样本、摘要与日志按权限和保留政策隔离;题目未明确具体隐私规范。
解题路线
- 先定义优先级目标:例如用户在一定时间内回复/标记重要、错过重要邮件的损失,结合显式 pin/ignore 反馈;打开率只是代理指标。
- 建立曝光日志记录候选集合、原排序位置、展示时间、模型版本、用户交互和可用特征快照;没有曝光日志就无法区分未展示与不感兴趣。
- 在小范围受控随机化位置或用已知 propensity 的探索桶收集反事实信号;训练/评估可用逆倾向权重或双重稳健估计,同时检查重权尾部和方差,不把相关性说成因果已解决。
- 排序模型结合发件人关系、线程上下文、用户时区、截止期、历史互动与显式规则;高优先级安全/系统消息用确定性护栏,冷启动靠简单规则与用户配置。
- 摘要单独生成并评估事实一致性、遗漏关键动作/日期、敏感信息泄露与可读性;摘要质量不应只用点击率,允许用户展开原邮件并报告错误。
- 上线做用户级随机 A/B,衡量及时处理重要邮件、手工纠正、错过重要消息与负反馈;按新用户、高邮件量用户和不同语言分层,保留回退到时间顺序。
手动走一遍
旧系统把某类邮件常放第 20 位,打开率很低。若直接学‘低打开=低重要’,新模型会继续压低,形成反馈回路。探索桶有时把这类邮件上移并记录展示概率,才能估计位置变化后的反应。若摘要漏掉‘今天前确认’,即使语言流畅也要判为关键事实失败。
规模与取舍
设每用户候选邮件 M、特征维度 F:轻量排序打分约 O(MF),若全量排序 O(M log M);摘要生成成本随所选邮件 token 量和模型而变。探索日志量约曝光事件数,隐私/保留期和在线延迟需单独预算。
易错点与追问
容易失分的边界
- 用历史点击直接训练,不记录旧排序位置与曝光概率。
- 把打开率当重要性唯一标签,忽略用户被打断成本。
- 只优化摘要流畅度,不评估关键事实遗漏和幻觉。
- 为了个性化默默隐藏低分邮件,用户失去恢复路径。
- 在收件人权限之外复用私人邮件内容作训练。
继续深挖
- 没有可随机化位置的权限时,能做何种有限去偏?
- 高邮件量用户和新用户的优先级目标是否相同?
- 重要但不被打开的合规邮件怎样加入护栏?
- 摘要更新后如何标记邮件原文已变化?
