LTV预估 | 深度学习PLTV之开山鼻祖ZILN

🤣 这一集让我们欢迎基于深度学习的pltv方法:ZILN,ZILN可以说是后面很多研究的参考方法,我看了好几篇最新的pltv论文,都是基于ZILN来做的。

文章目录

  • [1 精简总结](#1 精简总结)
  • [2 背景&挑战:](#2 背景&挑战:)
  • [3 方法:](#3 方法:)
  • 实验:
  • 思考:

✅【arxiv-2019 谷歌 ZILN】《A Deep Probabilistic Model for Customer Lifetime Value Prediction》

1 精简总结

用零膨胀对数正态分布拟合ltv分布,模型结构为DNN,模型输出3元素(付费概率,均值,标准差),以此3元素计算loss与pltv。

2 背景&挑战:

  • 1、许多用户只付费一次,在预测周期内不再付费,导致预测目标值中出现大量的零值。

  • 2、对于在预测周期内再次付费的用户,ltv波动非常大,ltv分布高度不均匀(长尾)。一些大R用户的付费金额会比普通用户多几个数量级。

    因此"付费金额-人数的分布"如图所示。注意:论文中举的是另一种例子,即大部分人是只付费一次,下图是排除第一次付费后的分布。这两种本质上是一样的,论文中称为 "zero-inflated lognormal (ZILN) distribution"

  • 3、回归任务中常用的MSE loss对于pltv中的数据挑战来说,它并不是理想的选择。MSE忽略了ltv是零和连续值的混合,并使模型学习两个分布的平均值。MSE中带有平方项,对异常值敏感。在随机梯度下降训练时,导致梯度嘈杂且偶尔爆炸(noisy and occasionally exploding),很容易造成数值不稳定或收敛问题。即数据中存在 大量不付费人群 和 少量高付费人群 ,这就导致模型更倾向于学习到低付费人群信息,而高付费很难学到,loss容易波动,学习困难。

3 方法:

【DNN + ZILN_loss】

论文抓住了LTV的分布特点:零膨胀+对数正态分布(存在较多不付费的人,ltv=0值的很多。在付费的人中,付费金额与人数服从 对数正态分布 ),将其命名为ZILN分布,根据它的似然函数构建了ZILN loss,最小化ZILN loss就是最大化ZILN分布的似然函数。该论文提出了一种基于零膨胀对数正态分布the zero-inflated lognormal (ZILN) distribution的混合损失函数,用来处理用户生命周期价值中常见的零值和极大值。


注:看之前,可以先补补基础:

正态分布原理:点击进入

对数正态分布原理:点击进入

伯努利分布(即0-1分布)原理:点击进入


🚀 在ziln中,还需要考虑某个用户是否付费,即需要额外考虑1个伯努利分布。同时要预测付费用户的付费金额(包含对数正态分布的均值与方差),即对数正态分布。因此ziln分布的概率密度函数为 伯努利分布 + 对数正态分布,两个分布独立。ZILN loss就等同于分类loss加回归loss。回归的loss只会计算在x>0上。

预测结果:

🚀模型需预测付费概率、对数正态分布的均值、对数正态分布的方差。然后用于计算pltv:

pltv = 模型预估是用付费概率 * 预测结果

优点: 能够同时预测流失概率和生命周期价值。减少了构建两阶段模型的工程复杂性:两阶段模型通常由一个二分类模型预测是否付费,再由一个回归模型预测第一阶段预测付费用户的ltv。其次,ZILN提供了生命周期价值的完整概率分布,从而允许对点预测的不确定性进行量化。

实验:

●提出了两种新的评估指标。从两个方面评估pltv模型的预测性能:区分能力和校准能力。

归一化的基尼系数:区分能力,区分高价值客户与其他客户的能力。

十分位的MAPE:校准能力,实际ltv和预测ltv之间的一致性。

●ZILN loss能很好地训练DNN,拟合ltv的数据分布,在两个公开数据集(Kaggle和KDD Cup1998)中normalized gini和MAPE指标均比 MSE/CE loss好。

思考:

Q:ziln网络batch里每个样本对应的输出都有着不同的均值和标准差,这怎么理解?不是应该拟合同一个ltv的分布吗?

A:每个样本确实有不同的均值和标准差,这是因为网络试图为每个样本生成一个接近真实 LTV 的预测分布。当我说"网络仍然在尝试拟合整个数据集的 LTV 分布"时,我的意思是,在整个数据集的范围内,网络试图学习如何根据输入特征生成逼真的 LTV 分布。

零膨胀对数正态损失函数的目标是最小化每个样本的预测分布与真实 LTV 之间的差异。这是通过以下两个部分实现的:

    1. 分类损失(classification loss):这部分损失函数鼓励网络正确预测用户是否付费(即,LTV 是否大于零)。这是通过计算二元交叉熵损失实现的,它衡量了网络预测的付费概率与实际付费情况之间的差异。
    1. 回归损失(regression loss):对于付费用户(即,LTV 大于零的情况),这部分损失函数鼓励网络生成接近真实 LTV 的预测分布。这是通过计算对数正态分布的负对数似然实现的,它衡量了网络预测的 LTV 分布与实际 LTV 之间的差异。

通过最小化这两部分损失函数,网络学会了为每个样本生成逼真的 LTV 分布。虽然每个样本的预测分布具有不同的均值和标准差,但在整个数据集范围内,网络仍然在尝试学习如何根据输入特征生成这些逼真的 LTV 分布。换句话说,网络在尝试捕捉输入特征与 LTV 之间的潜在关系,以便对新的输入样本进行更准确的预测。

Reference

相关推荐
忆~遂愿1 小时前
3大关键点教你用Java和Spring Boot快速构建微服务架构:从零开发到高效服务注册与发现的逆袭之路
java·人工智能·spring boot·深度学习·机器学习·spring cloud·eureka
纠结哥_Shrek1 小时前
pytorch逻辑回归实现垃圾邮件检测
人工智能·pytorch·逻辑回归
辞落山1 小时前
自定义数据集,使用 PyTorch 框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测
人工智能·pytorch·逻辑回归
天宇琪云2 小时前
关于opencv环境搭建问题:由于找不到opencv_worldXXX.dll,无法执行代码,重新安装程序可能会解决此问题
人工智能·opencv·计算机视觉
大模型之路2 小时前
大模型(LLM)工程师实战之路(含学习路线图、书籍、课程等免费资料推荐)
人工智能·大模型·llm
deephub3 小时前
十大主流联邦学习框架:技术特性、架构分析与对比研究
人工智能·python·深度学习·机器学习·联邦学习
英国翰思教育4 小时前
留学毕业论文如何利用不同问题设计问卷
人工智能·深度学习·学习·算法·学习方法·论文笔记
gaoenyang7605254 小时前
探索高效图像识别:基于OpenCV的形状匹配利器
人工智能·opencv·计算机视觉
背太阳的牧羊人5 小时前
分词器的词表大小以及如果分词器的词表比模型的词表大,那么模型的嵌入矩阵需要被调整以适应新的词表大小。
开发语言·人工智能·python·深度学习·矩阵
人工智能教学实践5 小时前
无人机红外热成像:应急消防的“透视眼”
人工智能·目标跟踪