前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐论文阅读之多任务建模ESM2

推荐论文阅读之多任务建模ESM2

作者头像
公众号-不为谁写的歌
发布2020-11-24 14:50:04
9500
发布2020-11-24 14:50:04
举报
文章被收录于专栏:桃花源记

介绍

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=pCTR*pCVR,最终的CVR任务也是在整个曝光样本上进行训练,应用,这样就可以解决样本选择偏差问题。同时两个任务CTR、CVR底层的embedding权重是共享的,可以缓解数据稀疏问题。但是由于订单样本相较于曝光样本来说是在是太少,只有不到0.1%的曝光样本最后产生了订单;数据稀疏问题不能得到充分解决。

行为分析
行为分析

通过对用户的网购行为进行分析,发现用户在发生点击行为后通常会有几种和购买行为相关的操作,进而提出了一种将post-click行为分解的建模方法。post-click行为根据是否和购买行为相关,可以分为决定性行为Deterministic和其他行为,决定性行为包括:加入购物车,加入心愿清单。这两种行为插在点击和购买之间,形成行为序列"曝光->点击->D(O) Action ->购买"。在这个行为序列图上进行模型建模,可以充分利用整个样本空间上的曝光样本,此外,由于加入购物车、加入心愿清单的样本数据相比购买数据会大很多,使用来自D、O Action的监督信号可以同时有效解决抽样选择偏差和数据稀疏问题。

基于这个想法,提出了ESM2模型。根据在序列图上定义的条件概率,使用多任务学习分别预测各自的小目标,然后将它们合并构成最终的CVR预测结果。

image-20201121155346640
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
pctr

表示曝光后发生点击的概率,v表示是否发生曝光,取值为{0,1};c表示是否发生点击行为,取值为{0,1}。下标i表示第i个曝光样本。 p i c t r = y 1 i p_i^{ctr}=y_{1i} pictr​=y1i​。

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

ctavr
ctavr

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

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

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

pcvr
pcvr

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

C V R = P ( 转 化 ∣ 点 击 , D A c t i o n ) + P ( 转 化 ∣ 点 击 , O A c t i o n ) CVR=P(转化|点击,D Action) + P(转化|点击,O Action) CVR=P(转化∣点击,DAction)+P(转化∣点击,OAction)

P ( 转 化 ∣ 点 击 , D A c t i o n ) = P ( 转 化 , D A c t i o n ∣ 点 击 ) ∗ P ( D A c t i o n ∣ 点 击 ) P(转化|点击,D Action)=P(转化,D Action|点击)*P(D Action|点击) P(转化∣点击,DAction)=P(转化,DAction∣点击)∗P(DAction∣点击)

P ( 转 化 ∣ 点 击 , O A c t i o n ) = P ( 转 化 , O A c t i o n ∣ 点 击 ) ∗ P ( O A c t i o n ∣ 点 击 ) P(转化|点击,O Action)=P(转化,O Action|点击) * P(O Action|点击) P(转化∣点击,OAction)=P(转化,OAction∣点击)∗P(OAction∣点击)

image-20201121172052119
image-20201121172052119

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

image-20201121172324663
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
ctr loss
ctavr loss
ctavr loss
ctcvr
ctcvr

最终loss为三者的加权和:

Loss函数
Loss函数

实验&其他

实验结果
实验结果

其他:

深度学习网络的超参数调整

控制变量法。逐个调整,对于调整的当前超参数,比如MLP层数,通过选择不同的参数,进行训练、评估验证;将评估结果整理,通过图表展示,选择合适的参数。

调参
调参

数值特征的embedding表示

对于数值特征进行embedding表示前,一般需要先进行离散化表示转化为one-hot特征,进而embedding训练。论文指出,数值特征离散onehot转化后进行embedding训练会影响模型的表现效果。因此,对数值特征进行正则化,然后进行tanh函数转化,这部分特征不进行embedding训练表示。

数值特征转化
数值特征转化

这部分特征转化后直接拼接离散特征的embedding表示,然后送到esm2模型进行训练、评估。


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 任务分解
  • Loss定义
  • 实验&其他
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档