如何基于用户活跃时间序列预测最佳发送点?
解读
面试官问的是“最佳发送点”,不是“用户什么时候最活跃”。
在国内互联网场景里,最佳发送点=用户最可能点开且产生正向业务动作(点击、下单、分享、回访)的分钟级时间窗口。
因此,答题必须同时回答三件事:
- 如何把“活跃时间序列”升级为“有效响应时间序列”;
- 如何用中文数据生态内可落地的模型做分钟级预测;
- 如何在线闭环验证并持续迭代,让运营同学第二天就能用。
知识点
- 有效响应时间序列:以“发送→曝光→点击(或下单)”的转化链路为因变量,重新采样成1分钟或5分钟颗粒度,解决“用户在线却不点开”的伪活跃问题。
- 多周期STL+Prophet+XGBoost融合模型:
- STL拆解“日、周、月”三重周期,捕获国内特有的工作日早晚高峰与周末凌晨夜宵双峰结构;
- Prophet引入春节、618、双11、会员日等中国电商大促节点做节日回归;
- XGBoost把“前序消息疲劳度”“当日已发次数”“实时库存水位”等运营强特征拼进去,10分钟级增量训练,解决“模型昨天还准、今天就不准”的国内高频活动场景。
- 触发阈值动态化:用** uplift 模型**算“早发1小时 vs 晚发1小时”的增量收益,大于0.8%才发,避免“用户在线但转化低”的无效触达。
- 工程落地:
- 数据层:Kafka→Flink→Hive→Redis的实时链路,保证0:00—23:59任意时刻都能取到最新特征;
- 服务层:Python pickle模型+Java在线推理,TP99<30ms,满足国内主流推送通道**QPS 2万+**的并发要求;
- 运营层:输出**“最佳发送分钟+置信度+建议文案标签”三维结果,直接落到企业微信机器人**,运营一键确认即可创建任务。
- 合规与体验:
- 遵循《个人信息保护法》“最小必要”原则,序列特征全部脱敏哈希;
- 内置**“疲劳度熔断”:同一用户24小时内最多接收2条营销消息**,防止国内安卓厂商OPPO、vivo、小米等通道因投诉率升高而降权。
答案
“我会把题目拆成四步,两周内上线,首周提升点击率18%以上。
第一步,重新定义序列。把过去90天、颗粒度1分钟的用户行为日志,以‘消息点击=1,忽略=0’重采样,得到‘有效响应时间序列’,而不是简单的在线心跳。
第二步,建立多周期融合模型。用STL先把‘工作日7:30—9:00、20:00—22:30’与‘周末0:00—1:00’的双峰周期拆解出来;再用Prophet加入618、双11、会员日的国内节日回归;最后把当日已发次数、实时库存、前序疲劳度等强特征喂给XGBoost,每10分钟增量训练,保证模型对‘今天突然加场直播’的临时活动也敏感。
第三步,在线预测+ uplift 阈值。对每一个用户、每一条待发消息,模型输出未来24分钟级点击概率曲线,再用 uplift 算‘早发 vs 晚发’的增量收益,只选收益>0.8%且置信度>85%的分钟窗口作为最佳发送点。
第四步,闭环验证。消息发出后,10分钟内回传曝光、点击、下单三级数据,实时计算AUC与 uplift 下降率,>5%就自动回滚到昨日模型,确保运营同学第二天醒来看到的是依然靠谱的发送建议。
上线后,我们用Honor of Kings玩家召回场景做A/B:实验组按模型推荐分钟发券,对照组按老规则‘20点整点推送’,7天点击率提升18.4%,券核销率提升12.1%,投诉率下降35%,通道权重保持vivo A级。”
拓展思考
- 多通道错峰协同:国内用户设备碎片化,小米、华为、OPPO系统通道互斥。下一步可把“最佳发送点”扩展成**‘通道-分钟’二维矩阵**,用强化学习做全局最优,避免同一用户多通道同时轰炸。
- 内容敏感度叠加:把“最佳发送点”与“文案情绪值”联合建模,情绪激进型文案放在用户情绪高亢窗口(如周五深夜),理性比价文案放在通勤碎片窗口,实现时间×内容双维个性化。
- 长周期价值校准:目前优化的是点击或下单,但国内平台越来越看30日LTV。后续可用因果森林把“发送时间→30日GMV”直接建模,把短期 uplift 升级为长期 uplift,让“最佳发送点”真正对齐品牌忠诚与业务增长的双重目标。