当前位置:网站首页>【多任务CTR】阿里ESMM:Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conve
【多任务CTR】阿里ESMM:Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conve
2022-08-08 04:10:00 【chad_lee】
《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》 SIGIR‘18
阿里基于MTL的思路,解决CVR预估采样偏差问题。解决一个确实存在、并且有道理的问题,然后给出一个非常简洁的方案。
问题
- CTR:点击预估,分母是曝光次数,分子是点击次数
- CVR:转化率预估,分母是点击次数,分子是转化次数(下单、成交、点赞、评论)

这个图就可以说明存在两个问题:
- 数据稀疏,这个很容易理解,CVR的训练数据是点击样本,正负样本都远小于CTR的曝光样本。
- 采样偏差:正样本只能来自于点击过的样本,点击未转化是副样本。但其实整个样本空间还存在很多潜在CVR样本,但是由于不能被“采样”到,因此无法训练。但是 在预估时却要在整个样本空间预估!!!
一些策略可以缓解这两个问题,比如从整个样本空间采样一些样本作为负样本,但是没有从实质上解决问题。
可以看到问题的关键是:曝光–>点击–>转化,本身是强相关的连续行为,作者希望在模型结构中显示考虑这种“行为链关系”,从而可以在整个空间上进行训练及预测。这涉及到CTR与CVR两个任务,因此使用多任务学习(MTL)是一个自然的选择,论文的关键亮点正在于“如何搭建”这个MTL。
方法
首先思考一个问题——“CVR预估到底要预估什么”,想象一个场景,一个item,可能因为头图很丑,它被某个user点击的概率很低,但这个item内容本身完美符合这个user的偏好,若user点击进去,那么此item被user转化的概率极高。CVR预估模型,预估的正是这个转化概率,它与CTR没有绝对的关系,即:“若user对某item的点击概率很低,则user对这个item的转化概率也肯定低”是不成立的。更准确的说,CVR预估模型的本质,不是预测“item被点击,然后被转化”的概率(CTCVR),而是“假设item被点击,那么它被转化”的概率(CVR):
p ( z & y = 1 ∣ x ) ⏟ p C T C V R = p ( z = 1 ∣ y = 1 , x ) ⏟ p C V R p ( y = 1 ∣ x ) ⏟ p C T R , \underbrace{p(z \& y=1 \mid \boldsymbol{x})}_{p C T C V R}=\underbrace{p(z=1 \mid y=1, \boldsymbol{x})}_{p C V R} \underbrace{p(y=1 \mid \boldsymbol{x})}_{p C T R}, pCTCVRp(z&y=1∣x)=pCVRp(z=1∣y=1,x)pCTRp(y=1∣x),
z和y分别代表conversion和click。
这就是不能直接使用全部样本训练CVR模型的原因,因为不可能知道:那些unclicked的item,假设他们被user点击了,它们是否会被转化。如果直接使用0作为它们的label,会很大程度上误导CVR模型的学习。
现在感觉解决方案已经呼之欲出了:CVR是的样本是有偏的、CTR是无偏的,CTCVR样本是无偏的!所以我们可以绕个弯,在全部样本上学习CTR和CTCVR任务,从而隐式地无偏学习CVR样本。

虽然我们的主任务是CVR预估,但是这里pCVR只是网络中的一个中间参数,没有显示的监督信号(因为监督信号有偏,不能给她用)。
两个task是共享embedding参数的,但是不共享NN参数。
目标函数:
L ( θ c v r , θ c t r ) = ∑ i = 1 N l ( y i , f ( x i ; θ c t r ) ) + ∑ i = 1 N l ( y i & z i , f ( x i ; θ c t r ) ∗ f ( x i ; θ c v r ) ) L\left(\theta_{c v r}, \theta_{c t r}\right)=\sum_{i=1}^{N} l\left(y_{i}, f\left(\boldsymbol{x}_{i} ; \theta_{c t r}\right)\right)+\sum_{i=1}^{N} l\left(y_{i} \& z_{i}, f\left(\boldsymbol{x}_{i} ; \theta_{c t r}\right) * f\left(\boldsymbol{x}_{i} ; \theta_{c v r}\right)\right) L(θcvr,θctr)=i=1∑Nl(yi,f(xi;θctr))+i=1∑Nl(yi&zi,f(xi;θctr)∗f(xi;θcvr))
ESMM的结构是基于乘法设计的,pCTCVR=pCVR*pCTR,CVR是一个隐式任务。
可能会想到除法关系设计模型岂不是更直观?pCVR = pCTCVR / pCTR,即分别训练一个CTCVR和CTR模型,然后相除得到pCVR,但是这样有一个明显的缺点是:真实场景预测出来的pCTR、pCTCVR值都比较小,“除”的方式容易造成数值上的不稳定。(这是一定的,因为CTR的后验概率本身就很小)
边栏推荐
- MindFusion.WPF Pack 2022.R1
- 项目分析(嵌入式产品Web化)
- leetcode: 122. 买卖股票的最佳时机 II
- 中国科学院金属研究所科研课题获华为技术认证,助力材料学发展新范式!
- Week 4 Step by step building multi-layer neural network and application (1 & 2)
- Monitoring tool Prometheus and project summary, 220805,,
- 模拟登录——添加cookies,使用postmanget请求网页数据
- 监控工具Prometheus及项目总结,220805,,
- An egg - Nodemailer - qq email verification code development configuration
- Building a High-Performance Platform on AWS Using Presto and Alluxio to Support Real-Time Gaming Services
猜你喜欢

XDR technology

内修昇思MindSpore AI框架,外重行业汇聚,华为大模型的不平凡之路

Awk syntax-03-awk expressions (if statements, while loops, for loops), execute shell commands in awk

新零售项目及离线数仓核心面试,,220807,,

vulfocus靶场情景模式-内网死角

32. 你知道Redis的字符串是怎么实现的吗?
![MySQL from entry to entry [20W word collection]](/img/da/1a40e831aa541001773bb76fd369f4.png)
MySQL from entry to entry [20W word collection]

Basic introduction to NLP

leetcode 112. Path sum recursion

高效记忆法
随机推荐
Awk syntax-03-awk expressions (if statements, while loops, for loops), execute shell commands in awk
Add OnMouseMove MFC dialog box
The 5 most mainstream project time management systems in China
leetcode 112.路经总和 递归
Usage of topk()/eq( ) / gt( ) / lt( ) / t( )
The effect of base 0 or base 1 on the number of image iterations
[opencv] Introduction to opencv development kit
面向6G的通信感知一体化架构与关键技术
一文带你彻底了解synchronized 和 Lock
使用z-file和七牛云对象存储构建个人网盘
This article will give you a thorough understanding of synchronized and Lock
New ToDesk Enterprise Edition | Ten new features to make enterprise remote control safer, more convenient and smoother
NLP之基本介绍
vulnhub-DC-5 target drone penetration record
leetcode 70. Stair Climbing Dynamic Programming
Strong Net Cup 2019 - Casual Bet (Stacked Injection)
VSCode opens some records of C (embedded) projects
6G时代新用户面设计和关键技术
How to avoid bugs as much as possible
XDR技术