推荐论文阅读之ESM2

作者: 七八音 | 来源:发表于2020-11-21 22:46 被阅读0次

    介绍

    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个曝光样本。p_i^{ctr}=y_{1i}

    曝光-> 点击 -> D Action:在整个曝光样本上进行建模。

    ctavr

    其中,a表示是否发生D行为,取值为{0,1}。

    根据全概率公式可以,曝光样本发生D行为的概率等于曝光样本发生点击&D行为的概率 + 曝光样本未发生点击但发生D行为的概率。因为如果曝光样本发生了D行为,那么必然发生了点击行为,所以p(a_i=1|v_i=1,c_i=0)=0, p_i^{ctavr}=y_{2i}y_{1i},其中y_{2i}表示第i个曝光点击样本发生D行为的概率:点击->D Action。

    点击->转化:点击->D/O Action -> 转化。

    pcvr

    其中b表示第i个曝光样本发生转化行为,取值为{0,1}。根据全概率公式和条件概率公式可以知道,

    CVR=P(转化|点击,D Action) + P(转化|点击,O Action)

    P(转化|点击,D Action)=P(转化,D Action|点击)*P(D Action|点击)

    P(转化|点击,O Action)=P(转化,O Action|点击) * P(O Action|点击)

    image-20201121172052119

    曝光-> 点击->转化:曝光-> 点击-> D/O Action->转化,完整行为序列。

    image-20201121172324663

    PCTCVR=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模型进行训练、评估。

    相关文章

      网友评论

        本文标题:推荐论文阅读之ESM2

        本文链接:https://www.haomeiwen.com/subject/anryiktx.html