“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 混合损失),也给后续所有工作都提供了一个新的视角

相关推荐
菜冻鱼1 天前
Python-pytorch-高级技巧
开发语言·人工智能·pytorch·python·深度学习·神经网络·聚类
菜冻鱼1 天前
Python-pytorch-模型保存与加载
开发语言·人工智能·pytorch·python·深度学习·机器学习
LaughingZhu1 天前
Product Hunt 每日热榜 | 2026-08-19
经验分享·深度学习·神经网络·百度·产品运营
聪明蛋子哟1 天前
RL训练Agentic模型实现并行多轮上下文检索:匹配前沿模型且快10倍
人工智能·深度学习·机器学习
bulingg1 天前
bert输入长度有限,如何处理超长文本?
人工智能·深度学习·bert
菜冻鱼1 天前
Python-pytorch-数据加载
开发语言·人工智能·pytorch·python·深度学习·机器学习
machnerrn1 天前
智慧交通系列(一)-十字路口车辆闯红灯检测告警抓拍系统(附含数据+源码+模型)
人工智能·python·深度学习
大数据点灯人1 天前
【大模型】深度解答:OOV 与 Tokenizer 词汇表共用问题
人工智能·深度学习·ai·大模型·transformer
vivo互联网技术1 天前
Octopus:基于无历史数据的梯度正交化的学习框架|CVPR 2026
深度学习·计算机视觉·llm
悟天特斯1 天前
智慧楼宇AI节能优化实战:从规则控制到深度学习预测的能效跃升
人工智能·深度学习·物联网