《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》 SIGIR‘18

阿里基于MTL的思路,解决CVR预估采样偏差问题。解决一个确实存在、并且有道理的问题,然后给出一个非常简洁的方案。

问题

  • CTR:点击预估,分母是曝光次数,分子是点击次数
  • CVR:转化率预估,分母是点击次数,分子是转化次数(下单、成交、点赞、评论)

这个图就可以说明存在两个问题:

  1. 数据稀疏,这个很容易理解,CVR的训练数据是点击样本,正负样本都远小于CTR的曝光样本。
  2. 采样偏差:正样本只能来自于点击过的样本,点击未转化是副样本。但其实整个样本空间还存在很多潜在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)⏟pCTCVR=p(z=1∣y=1,x)⏟pCVRp(y=1∣x)⏟pCTR,\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}, pCTCVR

p(z&y=1x)=pCVR

p(z=1y=1,x)
pCTR

p(y=1x)
,

z和y分别代表conversion和click。

这就是不能直接使用全部样本训练CVR模型的原因,因为不可能知道:那些unclicked的item,假设他们被user点击了,它们是否会被转化。如果直接使用0作为它们的label,会很大程度上误导CVR模型的学习。

现在感觉解决方案已经呼之欲出了:CVR是的样本是有偏的、CTR是无偏的,CTCVR样本是无偏的!所以我们可以绕个弯,在全部样本上学习CTR和CTCVR任务,从而隐式地无偏学习CVR样本。

虽然我们的主任务是CVR预估,但是这里pCVR只是网络中的一个中间参数,没有显示的监督信号(因为监督信号有偏,不能给她用)。

两个task是共享embedding参数的,但是不共享NN参数。

目标函数:
L(θcvr,θctr)=∑i=1Nl(yi,f(xi;θctr))+∑i=1Nl(yi&zi,f(xi;θctr)∗f(xi;θcvr))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=1Nl(yi,f(xi;θctr))+i=1Nl(yi&zi,f(xi;θctr)f(xi;θcvr))
ESMM的结构是基于乘法设计的,pCTCVR=pCVR*pCTR,CVR是一个隐式任务。

可能会想到除法关系设计模型岂不是更直观?pCVR = pCTCVR / pCTR,即分别训练一个CTCVR和CTR模型,然后相除得到pCVR,但是这样有一个明显的缺点是:真实场景预测出来的pCTR、pCTCVR值都比较小,“除”的方式容易造成数值上的不稳定。(这是一定的,因为CTR的后验概率本身就很小)

【多任务CTR】阿里ESMM:Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conve相关推荐

  1. 【ESMM论文精读】Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion

    文章目录 原始论文 摘要 (ABSTRACT) 关键词 (KEYWORDS) 1. 介绍 (INTRODUCTION) 2. 提出的方法 THE PROPOSED APPROACH 2.1 符号 No ...

  2. 推荐系统CTR(CVR)预估模型(多任务学习)之ESMM

     esmm模型是阿里妈妈基础算法团队发表在SIGIR 18上的一篇论文,用来做转化率预估.  整篇论文非常简单,创新点也很通俗易懂,转化率预估目前主要存在两个难点:1.sample selection ...

  3. 推荐系统(十四)多任务学习:阿里ESMM(完整空间多任务模型)

    推荐系统(十四)多任务学习:阿里ESMM(完整空间多任务模型) 推荐系统系列博客: 推荐系统(一)推荐系统整体概览 推荐系统(二)GBDT+LR模型 推荐系统(三)Factorization Mach ...

  4. 多任务学习模型ESMM原理与实现(附代码)

    来源:DataFunTalk 本文约2500字,建议阅读5分钟 文章基于 Multi-Task Learning (MTL) 的思路,提出一种名为ESMM的CVR预估模型. [ 导读 ] 本文介绍的是 ...

  5. multi task训练torch_采用single task模型蒸馏到Multi-Task Networks

    论文地址. 这篇论文主要研究利用各个single task model来分别作为teacher model,用knowledge distillation的方法指导一个multi task model ...

  6. Multi task learning多任务学习背景简介

    2020-06-16 23:22:33 本篇文章将介绍在机器学习中效果比较好的一种模式,多任务学习(Multi task Learning,MTL).已经有一篇机器之心翻译的很好的博文介绍多任务学习了 ...

  7. 多智能体强化学习Multi agent,多任务强化学习Multi task以及多智能体多任务强化学习Multi agent Multi task概述

    概述 在我之前的工作中,我自己总结了一些多智能体强化学习的算法和通俗的理解. 首先,关于题目中提到的这三个家伙,大家首先想到的就是强化学习的五件套: 状态:s 奖励:r 动作值:Q 状态值:V 策略: ...

  8. Multi Task Learning在工业界如何更胜一筹

    摘要: 本文主要介绍多任务学习和单任务学习的对比优势以及在工业界的一些使用.如何从单任务学习转变为多任务学习?怎样使AUC和预估的准确率达到最佳?如何对实时性要求较高的在线应用更加友好?本文将以淘宝实 ...

  9. 【推荐系统】多任务学习之ESMM模型

    学习总结 ESMM首创了利用用户行为序列数据在完整样本空间建模,并提出利用学习CTR和CTCVR的辅助任务,迂回学习CVR,避免了传统CVR模型经常遭遇的样本选择偏差和训练数据稀疏的问题,取得了显著的 ...

  10. multi task训练torch_Multi-task Learning的三个小知识

    本文译自Deep Multi-Task Learning – 3 Lessons Learned by Zohar Komarovsky 在过去几年里,Multi-Task Learning (MTL ...

最新文章

  1. comsat java_java-com.thoughtworks.xstream.converters.ConversionExce...
  2. 【STM32】F1 系列驱动全彩显示屏
  3. plsql编程语言定义变量
  4. idea yml文件不变成树叶_springboot获取配置文件的三种方式
  5. vue循环中的v-show
  6. Bootstrap3 插件的原理
  7. 【LeetCode】——根据前序和中序遍历构建二叉树
  8. org.apache.commons.lang.text.StrLookup缺失
  9. 计算机制作贺卡教案,制作贺卡教案
  10. 八、面向对象三大特征(二)—— 继承
  11. 异常重试_面试题:如何基于 dubbo 进行服务治理、服务降级、失败重试?
  12. Oracle添加语句
  13. 我的面经——投行+咨询+外资银行
  14. python3实现扫码获取微信openid功能
  15. [转载]创建、部署和调试 Apache Geronimo 应用程序
  16. 【电脑新硬盘如何分区】
  17. DIYGW-UI-PHP是一款基于thinkphp framework和 element admin开发而成的前后端分离系统
  18. 用python3根据配置自动生成自定义图片logo(一键解决图片侵权困扰)
  19. 2009.7.30-8.4生活小结
  20. 无线路由器桥接(以不同品牌为例tplink和fast)

热门文章

  1. ie打开本地html页面慢,win7使用ie浏览器访问网页显示缓慢、卡死的解决方法
  2. python怎么判断质数和合数_用java如何写代码去判断质数和合数
  3. 看美文,记单词(5)
  4. 含参积分求导/积分上限函数求导/
  5. c语言for循环26个英文字母,C语言创建链表并且插入输出26个英文字母
  6. 自然辩证法小论文选题_新颖的自然辩证法论文题目 自然辩证法论文题目哪个好...
  7. Ubuntu 查询IP地址,设置静态IP、网关
  8. 在linux上删除文件夹,在Linux系统下删除文件夹
  9. 红外测温之MLX90614教程
  10. Windows+Nvdia显卡配置Tensorflow