当前位置: 首页 > article >正文

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

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

文章目录

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

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

  • 论文链接:https://arxiv.org/pdf/1912.07753
  • 官方代码tf:添加链接描述
  • torch实现代码参考:添加链接描述

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】用户全生命周期价值(LTV)建模https://zhuanlan.zhihu.com/p/683836377

http://www.kler.cn/a/523558.html

相关文章:

  • 在线课堂小程序设计与实现(LW+源码+讲解)
  • 实验七 带函数查询和综合查询(2)
  • 分享| RL-GPT 框架通过慢agent和快agent结合提高AI解决复杂任务的能力-Arxiv
  • 多级缓存(亿级并发解决方案)
  • Flutter_学习记录_基本组件的使用记录
  • 1.26学习
  • LLM - 大模型 ScallingLaws 的设计 100B 预训练方案(PLM) 教程(5)
  • SpringBoot内置Tomcat启动原理
  • FLTK - FLTK1.4.1 - demo - animated - v1
  • Spring Boot 实现文件上传和下载
  • 【Go语言圣经】第四节:复合数据类型
  • 8622 哈希查找
  • LabVIEW纤维集合体微电流测试仪
  • 子2023
  • Linux(19)——使用正则表达式匹配文本
  • Linux 下注册分析(2)
  • 第31章 测试驱动开发中的设计模式与重构解析(Python 版)
  • .net 如何处理网页的Json请求?
  • LLM评估优化与新技术创新综述
  • 基于STM32的数字多重仪表教学
  • 编程题-最长的回文子串(中等)
  • 一文讲解CMS收集器的垃圾收集过程
  • vue3阻止事件冒泡到父元素
  • FLTK - FLTK1.4.1 - demo - animgifimage-play
  • FLTK - FLTK1.4.1 - demo - animgifimage
  • 漂亮数 (线性筛+前缀和)