介绍
CVR转化率预估过程中存在样本选择偏差和数据稀疏问题。这两个问题在阿里的上一篇论文ESMM中有提到,这里介绍一下。
- 样本选择偏差:CVR模型建模通常使用点击后的样本post-click,或者说使用记录用户在点击后是否产生订单的数据;而模型在实际应用过程中是在整个样本空间上,用户还没有发生点击。这就导致数据有偏,不同分布。在post-click样本上建模后,在实际应用过程中并不能保证模型的准确性,而且应用模型的泛化能力。
- 数据稀疏:在电商系统,如淘宝,用户的行为链,通常包括曝光、点击、购买,各个阶段的数据量逐渐减少。使用post-click数据建模,这部分数据量相较于用于CTR训练的数据少1-3个数量级。
ESMM模型使用多任务学习,分别学习post-view点击率CTR和post-view 点击转化率CTCVR,目标CVR通过两者计算得到CVR=CTCVR/CTR;点击率CTR是在整个样本空间上,即所有的曝光样本进行训练,CTCVR也是在整个曝光样本上进行训练,pCTCVR=pCTRpCVR,最终的CVR任务也是在整个曝光样本上进行训练,应用,这样就可以解决样本选择偏差问题。同时两个任务CTR、CVR底层的embedding权重是共享的,可以缓解*数据稀疏问题。但是由于订单样本相较于曝光样本来说是在是太少,只有不到0.1%的曝光样本最后产生了订单;数据稀疏问题不能得到充分解决。
行为分析通过对用户的网购行为进行分析,发现用户在发生点击行为后通常会有几种和购买行为相关的操作,进而提出了一种将post-click行为分解的建模方法。post-click行为根据是否和购买行为相关,可以分为决定性行为Deterministic和其他行为,决定性行为包括:加入购物车,加入心愿清单。这两种行为插在点击和购买之间,形成行为序列"曝光->点击->D(O) Action ->购买"。在这个行为序列图上进行模型建模,可以充分利用整个样本空间上的曝光样本,此外,由于加入购物车、加入心愿清单的样本数据相比购买数据会大很多,使用来自D、O Action的监督信号可以同时有效解决抽样选择偏差和数据稀疏问题。
基于这个想法,提出了ESM2模型。根据在序列图上定义的条件概率,使用多任务学习分别预测各自的小目标,然后将它们合并构成最终的CVR预测结果。
image-20201121155346640模型分为3个模块:SEM、DPM和SCM。其中SEM,embedding权重共享层,在多个子任务之间共享权重,充分利用所有的曝光样本数据;DPM,分解预测模块,分解计算自己的任务task;最后是SCM,序列组合模块,将多任务的结果进行组合,构成最终的目标CVR。
简单来说,ESM2的三个模块,功能分别是embedding训练结果共享、单任务训练,多任务组合得到最终结果CVR。
用户行为序列"曝光-> 点击->D/O Action -> 购买",从收集到的数据集,我们可以知道构建不同的标签,是否点击、是否点击&发生D行为、是否点击&发生O行为,是否点击&是否转化(可以简化为是否转化),因为D行为和O行为是互斥的,点击&发生O行为=1-点击&发生D行为。不同的标签就可以用于不同的任务进行学习、训练。
任务分解
曝光-> 点击:点击率建模。在整个曝光样本上进行训练。
pctr表示曝光后发生点击的概率,v表示是否发生曝光,取值为{0,1};c表示是否发生点击行为,取值为{0,1}。下标i表示第i个曝光样本。。
曝光-> 点击 -> D Action:在整个曝光样本上进行建模。
ctavr其中,a表示是否发生D行为,取值为{0,1}。
根据全概率公式可以,曝光样本发生D行为的概率等于曝光样本发生点击&D行为的概率 + 曝光样本未发生点击但发生D行为的概率。因为如果曝光样本发生了D行为,那么必然发生了点击行为,所以, ,其中表示第i个曝光点击样本发生D行为的概率:点击->D Action。
点击->转化:点击->D/O Action -> 转化。
pcvr其中b表示第i个曝光样本发生转化行为,取值为{0,1}。根据全概率公式和条件概率公式可以知道,
image-20201121172052119曝光-> 点击->转化:曝光-> 点击-> D/O Action->转化,完整行为序列。
image-20201121172324663PCTCVR=PCTR*PCVR.
根据收集到的三类标签:曝光后是否点击、曝光样本是否发生D Action(曝光->点击->D Action),曝光样本是否发生转化(曝光-> 点击->D/O Action ->转化),可以分别对pctr、pctavr、pctcvr在整个曝光样本上进行建模训练。同时根据条件概率可以知道,我们最终的目标PCVR也适用于整个曝光样本,pCVR=pCTCVR/pCTR,这样就可以解决样本选择偏差问题,同时由于D/O Action行为样本相比于转化样本数据量会提升,对于数据稀疏问题也可以得到进一步缓解。
Loss定义
三类标签,三种loss分别是pctr、pctavr、pctcvr loss。每种loss使用交叉熵损失函数:
ctr loss ctavr loss[图片上传失败...(image-e9b19f-1605970000092)]
最终loss为三者的加权和:
Loss函数实验&其他
实验结果其他:
深度学习网络的超参数调整
控制变量法。逐个调整,对于调整的当前超参数,比如MLP层数,通过选择不同的参数,进行训练、评估验证;将评估结果整理,通过图表展示,选择合适的参数。
调参数值特征的embedding表示
对于数值特征进行embedding表示前,一般需要先进行离散化表示转化为one-hot特征,进而embedding训练。论文指出,数值特征离散onehot转化后进行embedding训练会影响模型的表现效果。因此,对数值特征进行正则化,然后进行tanh函数转化,这部分特征不进行embedding训练表示。
数值特征转化这部分特征转化后直接拼接离散特征的embedding表示,然后送到esm2模型进行训练、评估。
网友评论