MLE / RS · ML System Design

Meta 活动推荐:报名、真实到场与参与黏着度

设计提高活动参与的系统,区分线上注册与线下到场,用带置信度的证据构造标签。

题目重点:设计提高活动参与的系统,区分线上注册与线下到场,用带置信度的证据构造标签。

题意与假设

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

  • 目标是对用户有价值的实际参与和持续体验,不把报名量直接当真实出席。线上/线下活动需要各自成功定义。
  • 二维码签到、活动后post/tag是不同强度证据;tag他人不保证他出席,没扫码也不证明没出席。
  • 训练数据只使用授权活动信息,位置信息与社交关系遵循隐私,不秘密追踪用户线下行程。

解题路线

  1. 建报名→有意参与→签到/加入→结束后反馈的漏斗;记录证据来源与confidence,verified签到可强标签,post/tag为弱标签,unknown不要直接负标。
  2. 特征user兴趣/历史参与/可用时间、event主题/地点/开始时间/容量/组织者、cross距离/时间冲突/朋友报名。朋友报名是兴趣信号,实际是否到场仍分开。
  3. baseline按兴趣/时间距离规则加逻辑回归,量测能否识别真实参加;再用多任务模型预测报名与到场,在每阶段只使用预测时刻可见feature,结束后post不能作为之前推荐的输入泄漏。
  4. 训练验证按时间和活动隔离,避免同一活动同时落训练/测试;弱标签模型与人工抽样校准证据噪声,报告只在verified样本上与全体推估的区别。
  5. serving过滤已取消/满额/不合时间/不可见活动;探索新组织者但保留安全门槛。评估有效到场、满意、no-show、报名→到场转化和长期参与,AB需要考虑活动容量造成干扰。

手动走一遍

A报名但未出席,B忘扫码却出现在活动后合照,二者不能仅按registered=1都标正,也不能把B未签到确定标负。把B作为弱证据/unknown并抽样核对,比生成一个假“出席真值”更合理。

规模与取舍

活动候选先按时间/地点缩小,特征批查询与rank成本依候选规模;label成熟在活动结束后,训练需保留延迟窗。容量有限的活动实验可能互相挤占,需要分组或供给建模。

易错点与追问

容易失分的边界

  • 在训练feature里加入活动结束后的post/tag会发生未来信息泄漏。
  • 从只扫码的人学习会偏向扫码意愿而不是真实参与,需抽样审计不同证据群。

继续深挖

  • 活动推荐提高报名却降低到场率,是拉来了低意图用户还是测量变化?分别看绝对真实到场、漏斗分组与数据质量。
  • 如何处理远期event的label未成熟?延迟训练/明确censoring,不能立刻将未签到标负。
✓已复制微信号!