华为 | LTV预测:基于对比学习的多视角模型

2024-03-06 12:33:42 浏览数 (1)

标题:Contrastive Multi-view Framework for Customer Lifetime Value Prediction 地址:https://arxiv.org/pdf/2306.14400.pdf 公司:华为

1 引言

本文是华为提出用于客户生命价值预测(LTV)的对比学习多视角网络(CMLTV),主要针对目前存在的LTV预估方法采用单视角建模导致准确度低和知识提取存在偏差的问题。本文提出的多视角网络优点在于:1.即插即用的模块,兼容大部分基准网络;2.集成多个具有互补知识的异构LTV回归器,以提高模型的鲁棒性;3.通过对比学习捕捉样本之间的相关性,减轻对数据丰富性的依赖

2 方法

2.1 问题定义

用u和i分别表示用户和特定产品/服务,给定u和i的特征,LTV预估的目标是估计特定时间跨度T内(例如30天)u对i支付的金额。如果用户u在T内没有购买i,相对应的周期内LTV标签为0;如果T内有过多次购买行为,则相对应的LTV值则为价值总和。模型对历史交易数据进行学习后,预测未来的LTV值,作为下一步行动(例如投放广告)的决策和参考

2.2 CMLTV框架

整体的GMLTV框架如下图所示,当每个batch的训练样本到达时,首先使用多视角LTV预估模型得到用户的购买概率和多个LTV回归结果,接着对batch中的样本应用混合对比学习策略,捕获样本间的内在相关性

2.2.1 多视角LTV预估

多视角LTV预估模块使用不同特征的异构回归器来从多个方面来分析输入样本,定义样本的特征为x,首先,通过基础的特征表征模型来学习输入特征的交互得到隐式特征表征h,注意到此框架并不限制基础特征模型,可以使用各种现成的结构来实现,例如 MLP、DeepFM、DCN 和 DCNv2等。接着使用分类器得到用户的购买概率:

begin{aligned} {text{h}}_{text{p}} = text{ReLU}(W_{p}h text{b}_{p}) \ hat{p} = sigma(w_p h_p b_p) \ end{aligned}

由于是个二分类任务,因此使用交叉熵损失

L_p = -zloghat{p} - (1-z)log(1-hat{p})

然后以多视图的方式估计每个样本的支付金额。框架中包含三种不同类型的回归器。第一个是基于分布的回归器,旨在通过精心设计的概率模型来近似真实的 LTV 分布。尽管可以用任何概率分布来近似,不过作者根据实际效果,推荐对数正态分布和伽马分布。定义标准化概率密度函数f(x),由变量参数

theta

决定,变量参数由显示特征h学习得到

begin{aligned} h_{theta} = ReLU(W_{d} h text{b}_{d}) \ theta' = w_{d} h_{d} b_{d} \ theta = log[1 exp(theta')] end{aligned}

分布回归器的损失是由f(x)给出的概率密度的负对数似然,公式如下

L_l = -log[1 exp(theta')]

其中y是样本的LTV标签,这个损失函数的优化过程是让模型找到更好的

theta

来参数化f(x),从而最大化训练样本的LTV概率密度。在测试阶段,使用从每个样本获得的

theta

参数化的分布f(x)的期望作为预测。本文使用伽马分布来实例化函数f(x)。因此,变量

theta

是一个包含形状参数和速率参数两个元素的向量,预测的LTV分数是它们相除的结果。

第二个是基于对数的回归器,旨在对数尺度上预估LTV分数,LTV原始值可以从0到百万级别,但是取对数后差异很小,更适合神经网络来处理,此回归器的输出为:

text{h}_l = ReLU(W_l h b_l) \ hat{y}_l = ReLU(w_l h_l b_l)

损失函数使用的是MSE,标签加1的处理是为了保证非负性

L_l = (hat{y}_l - lg(1 y))^2

第三个是基于分类的回归器,它首先将回归任务转换为分类问题,然后根据每个的类概率重建实值分数作为最终预测。由于 LTV 分布通常是长尾的,因此可以使用对数运算将整个范围分为几个分类桶。为保留更细粒度的数值信息,本文使用以2为底的对数而不是更大的底数进行分箱。具体而言,LTV 标签y对应的类标签c获取如下:

c = lfloor log_2(1 y) rfloor

类别向量

hat{y}_c

的预测如下

begin{aligned} h_{c} = ReLU(W_{c} h b_{c}) \ hat{y}_{c} = text{Softmax}(V_{c} h_{c} v_{c})\ end{aligned}

多分类损失使用的是多分类交叉熵函数

L_{c} = - sum_{i=1}^{C} c_{i} log hat{y}_{c}^{i}

此回归器输出的最终LTV预测值为

hat{y}_c^{prime}=sum_{i=1}^C frac{left(2^i-1 2^{i 1}-2right)}{2} hat{y}_c^i=sum_{i=1}^C frac{left(2^i 2^{i 1}-3right)}{2} hat{y}_c^i

这样将期望值作为LTV预测结果,其中每个分桶的中心用于表示其期望的LTV值

2.2.2 混合对比学习

混合对比学习机制旨在在同一个批次的样本之间建立有机联系,以更好地挖掘出有限训练数据的信息。假设一个批次中有k个样本。它们预测的购买概率和三种类型的LTV分数分别表示为

[hat{p}_1, dots, hat{p}_N], [hat{y}_1, dots, hat{y}_N], [hat{y}'_1, dots, hat{y}'_N], [hat{y}''_1, dots, hat{y}''_N]

受到BPR损失的启发,通常假定正样本的购买概率大于负样本。然而直接比较每对样本是不可行的,因为噪声样本可能会误导模型生成低质量的对比组合,这对模型优化是不利的。但平均而言正样本应该比负样本具有更高的购买倾向。因此首先计算正样本和负样本的平均购买概率,分别表示

hat{p}_{ }

hat{p}_{-}

。本文设计了一个分类对比损失来对比正负样本的平均购买概率:

L^{c} = - log sigma left[ sigma^{-1}( hat{p}_ ) - sigma^{-1}( hat{p}_- ) right]

其中

sigma^{-1}

表示sigmoid函数的逆函数。受到先前工作的启发,假设具有更高LTV的用户可能也具有更高的购买概率。提出了一种回归对比学习方法来规范回归结果,使其与预测的购买概率正相关。以基于分布的回归器输出的分数为例来详细说明这个过程。其对应的回归对比损失:

L_{d}^{r} = - frac{1}{K^2} sum_{i=1}^{K} sum_{j=1}^{K}( hat{p}_i - hat{p}_j )[lg(1 hat{y}_{d,i}) - lg(1 hat{y}_{d,j})]

这里使用以10为底的对数来控制对比损失的规模。类似地可计算得到另外两个回归器的对比损失

L_{l}^{r}

L_{c}^{r}

。通过这种方式,同一个批次中不同样本之间的相关性被明确地编码到模型学习中,同时分类和回归部分通过这些损失自然地连接起来,以便它们编码的知识可以交换和共享。

2.3 模型训练和预测

训练过程中,最终的损失为各部分损失的组合

L= L^{c} L_{d}^{r} L_{l}^{r} L_{c}^{r} sum_i [L_p(i)] sum_{y_i>0}[L_d(i) L_l(i) L_c(i)]

其中二元分类损失和对比损失是在所有样本上计算的,而回归损失仅在正样本上计算。这是因为严重的数据不平衡会损害回归模型的准确性。模型收敛之后,使用多视角LTV预估的每个部分组合得到最终结果

hat{y} = hat{p} cdot [alpha hat{y}_{d} beta hat{y}_l (1 - alpha - beta ) hat{y}_{c}]

其中,

alpha

beta

为超参,根据业务规则选择

3 实验结果

0 人点赞