如何提取行为衰减斜率作为特征?
解读
在国内互联网公司的用户运营面试里,这道题表面问“技术”,实则考察三层能力:
- 能否把用户生命周期的“行为衰减”翻译成可计算的数学问题;
- 是否熟悉国内主流埋点体系(如阿里SPM、字节TEA、腾讯MTP)的字段限制与采样偏差;
- 能否把斜率结果嵌入运营策略,而非停留在“跑数”。
面试官通常会给一个场景:比如“某电商App签到用户,第0天100%签到,随后每日衰减,30天后只剩8%,如何量化衰减速度并用于预警?”——候选人必须在2-3分钟内给出可落地的特征工程方案,并说明如何与后续分层运营闭环。
知识点
- 行为衰减的数学本质:对离散时间序列做对数线性回归,斜率b=ln(yt2/yt1)/(t2−t1),可消除指数衰减的异方差。
- 国内埋点合规限制:2021年《个人信息保护法》后,device_id不可跨App共享,必须依赖user_id+手机号哈希做关联,因此衰减序列容易断链,需先用ID-Mapping补齐。
- 特征鲁棒性处理:
- 对头部“7日活跃”用户,采用滚动7天窗口斜率,避免周末波动;
- 对尾部“30日沉默”用户,用T+0~T+30的加权斜率,权重取自然衰减系数exp(−λt),降低远期噪声。
- 业务阈值:国内头部厂商经验值——斜率b<−0.15定义为“高危流失”,对应留存率跌破15%;该阈值需通过贝叶斯更新每季度校准。
- 工程落地:在阿里云MaxCompute或字节Las中,用SQL嵌套Python UDF,一行代码即可输出斜率特征,方便次日调度写入FeatureStore,供下游RFM+斜率联合模型调用。
答案
分四步,每一步都给出可直接复制的SQL/伪代码,并说明如何与运营动作挂钩。
步骤1:构建“用户-日期-行为强度”表
CREATE TABLE dwd_user_daily AS
SELECT user_id,
ds,
-- 行为强度:签到+浏览+支付加权,符合国内埋点规范
(sign_flag*3 + pv*0.1 + pay_amt*0.01) AS act_intensity
FROM dwd_log_detail
WHERE ds BETWEEN '${start_date}' AND '${end_date}';
步骤2:生成衰减序列并取对数
CREATE TABLE user_decay_series AS
SELECT user_id,
collect_list( ln(act_intensity+1) ) AS ln_list, -- 加1平滑
collect_list( datediff(ds, first_date) ) AS day_idx
FROM (
SELECT user_id,
ds,
act_intensity,
first_value(ds) OVER (PARTITION BY user_id ORDER BY ds) AS first_date
FROM dwd_user_daily
) t
GROUP BY user_id;
步骤3:计算斜率特征
# 注册为MaxCompute UDF
@udf(output_type='double')
def decay_slope(ln_list, day_idx):
x = np.array(day_idx, dtype=float)
y = np.array(ln_list, dtype=float)
# 鲁棒线性回归,去掉首尾5%异常
mask = (y > np.percentile(y,5)) & (y < np.percentile(y,95))
slope, _, _, _, _ = linregress(x[mask], y[mask])
return float(slope)
输出字段slope_7d、slope_30d直接写入user_profile表。
步骤4:接入运营策略
- 斜率b≥−0.05:高黏性,推会员升级包;
- −0.15<b<−0.05:中度风险,触发签到翻倍+push;
- b≤−0.15:高危流失,7日内未回访则自动发6折神券+短信召回,并写入字节巨量引擎做Lookalike人群扩展。
整个流程在DataWorks调度,晨跑08:30产出特征,10:00前推送到Kafka,保证运营同事上午就能在**内部CRM“客道”**看到分层名单。
拓展思考
- 多行为融合斜率:如果公司同时关注“社区发帖”和“电商下单”两条衰减曲线,可用多任务学习把两条斜率做成共享隐向量,解决样本稀疏问题;阿里妈妈已验证CTR提升6.8%。
- 节假日扰动:国内“618”“双11”会人为抬升斜率,需引入节假日哑变量做分段回归,否则模型会把促销反弹误判为“用户回暖”。
- 实时斜率:对内容型App,可基于Flink CEP计算72小时滚动斜率,一旦b<−0.2立即触发弹窗送金币,实现分钟级干预;字节内部称“实时衰减哨兵”,已覆盖2亿DAU。
- 隐私计算:若公司需与外部媒体做联合建模,可用隐语PSI求交后再计算斜率,确保手机号明文不出域,符合2023年《个人信息出境标准办法》最新要求。