“A Deep Probabilistic Model for Customer Lifetime Value Prediction” 论文笔记

背景

现有 LTV 预测工作主要分为两种:一种是直接基于 MSE 建模 LTV;一种是两阶段建模,先用BCE建模付费概率,然后用MSE建模付费金额,排除 LTV 为0的样本的影响

但是LTV 数据的分布及其特殊,存在大量零值(大量客户是"一次性购买者",其 residual LTV = 0)和严重的高偏态连续值(少数高价值客户的 LTV 比普通客户高出几个数量级)。现有使用 MSE 损失的工作试图用一个单一的连续分布去拟合两个本质不同的群体,结果是"两边不讨好";使用两阶段建模又需要两个模型、复杂度高,MSE 对异常值敏感

ZILN 混合损失

本文主要提出了 Zero-Inflated LogNormal**(ZILN)** 损失函数本文来同时建模用户是否付费以及付费金额,其中第一项用交叉熵来建模用户是否付费,第二项用对数正态分布建模 LTV(假设了用户在已知付费的前提下付费金额服从对数正态分布),其中 \(x\) 为真实值,均值 \(\mu\) 和方差 \(\sigma\) 为模型的输出值:

\L_{\\text{ZILN}}(x; p, \\mu, \\sigma) = L_{\\text{CrossEntropy}}(1_{\\{x\>0\\}}; p) + 1_{\\{x\>0\\}}L_{\\text{Lognormal}}(x; \\mu, \\sigma) \\

\L_{\\text{Lognormal}}(x; \\mu, \\sigma) = \\log(x\\sigma\\sqrt{2\\pi}) + \\frac{(\\log x - \\mu)\^2}{2\\sigma\^2} \\

线上 infer 时模型的预估输出为学到的分布的期望 \(\exp(\mu + \sigma^2 / 2)\),最优预测会自动大于观测样本的算术平均;此外,从图中可以看到(真实值是 20,横坐标是模型输出的点预测值),在原始值空间中 lognormal loss 对高值的惩罚比 MSE 小。综上所述,对数正态分布所以更匹配 LTV 数据 "零值多、右尾厚" 的分布特征

模型架构

本文使用 DNN 作为模型架构,DNN 的最后一层包含 3 个输出,分别表示付费概率、均值 μ 和方差 σ(分别使用 sigmoid、identity、softplus 激活函数)。最终通过 ZILN 混合损失实现一个模型同时完成分类和回归两个任务

评估指标

Gini 系数

Gini 系数是经济学中衡量收入或财富不平等程度的指标,值越大代表越不平等,本文对这个原始概念做了改造以用于 LTV 数据:

  • 按客户的真实 LTV 从大到小排序

  • 画出 Lorenz 曲线:横轴是累积客户百分比,纵轴是累积 LTV 百分比(20% 的客户贡献了 80% 的 LTV 即 80/20 法则)

  • Gini 系数 = Lorenz 曲线与 45° 对角线之间面积的两倍

所以标签 Gini 系数反映了客户消费的不平等程度,值越大说明头部客户越集中。本文还引入归一化 Gini 系数:Normalized Gini = (模型 Gini 系数) / (标签 Gini 系数) 用来衡量模型的区分度,有没有把真正的高价值用户排到前面

校准图

校准图(Decile Chart)的构建方法:

  • 把所有客户按预测 LTV 从低到高排序

  • 均匀分成 10 组(每组 10% 的客户,称为一个 decile)

  • 对每个 decile,分别计算 该组内预测 LTV 的平均值 和 真实 LTV 的平均值

  • 用柱状图并排展示这两个均值

总结

这篇是谷歌在 LTV 领域非常经典的一篇论文,给出了一个将分类和回归集成在一个 Loss 中的比较好的方案(ZILN 混合损失),也给后续所有工作都提供了一个新的视角

相关推荐
xiao5kou4chang6kai42 天前
MATLAB机器学习、深度学习--从数据预处理到模型训练
深度学习·机器学习·matlab·数据预处理
renhongxia12 天前
世界模型作为AGI落地底层底座的作用
人工智能·深度学习·生成对抗网络·自然语言处理·知识图谱·agi
计算机科研狗@OUC2 天前
(cvpr26) AIMDepth: Asymmetric Image-Event Mamba for Monocular Depth Estimation
人工智能·深度学习·计算机视觉
β添砖java2 天前
深度学习(22)网络中的网络NiN
人工智能·深度学习
Kobebryant-Manba2 天前
深度学习时候d2l报错和使用问题
人工智能·深度学习
zhangfeng11332 天前
deepspeed zero3 结合 llamafactory 微调 ,save_only_model: true 导致保存时候出错
开发语言·python·深度学习
大模型最新论文速读2 天前
06-16 · LLM 最新论文速览
论文阅读·人工智能·深度学习·机器学习·自然语言处理
宝贝儿好2 天前
【LLM】第二章:HuggingFace入门学习
人工智能·深度学习·神经网络·学习·算法·自然语言处理
Black蜡笔小新2 天前
企业私有化AI训练推理一体工作站DLTM深度学习推理工作站全流程技术解析
人工智能·深度学习
Kobebryant-Manba2 天前
学习门控循环单元gru
深度学习·学习·gru