本文将介绍阿里发表在 SIGIR’18 的论文ESMM《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》。文章提出使用多任务学习解决CVR(转化率)预估时的样本选择偏差数据稀疏问题。

  • 背景

在推荐系统、在线广告等应用中,CVR预估比CTR预估更加重要,CTR预估聚焦于点击率预估,即预测用户会不会点击,但是用户点击后进行消费才是最终目标。传统的CVR预估任务通常采用类似于CTR预估的技术,然而,这种做法存在两个重大问题:1) 样本选择偏差;2) 训练数据稀疏

1.样本选择偏差

转化是在点击之后发生,传统CVR预估模型在clicked数据上训练,但是在推理时使用了整个样本空间见图。训练样本和实际数据不服从同一分布,不符合机器学习中训练数据和测试数据独立同分布的假设。直观的说,会产生转化的用户不一定都是进行了点击操作的用户,如果只使用点击后的样本来训练,会导致CVR学习产生偏置。具体的实验结果可以见原论文[1]

2.训练数据稀疏

训练数据稀疏问题很明显,点击样本在整个样本空间中只占了很小一部分,而转化样本更少,高度稀疏的训练数据使得模型的学习变得相当困难。

  • ESMM

首先明确CTR、CVR、CTCVR。CTR表示点击率、CVR表示假设用户点击后的转化率、CTCVR表示用户点击并且成功转化。

如何解决上述问题?ESMM 引入点击率(CTR)和点击转化率(CTCVR)作为辅助任务,将CVR作为一个中间变量。它们的关系如下
\[
\underbrace{p(y=1, z=1 | x)}_{p C T C V R}=\underbrace{p(y=1 | x)}_{p C T R} \times \underbrace{p(z=1 | y=1, x)}_{p C V R}
\]
可以看出,\(pCTR\)和\(pCTCVR\)是在整个样本空间上进行学习得到的,只是label不同,\(pCVR\)是中间变量,这样就解决了样本选择偏差问题。模型架构如下

可以看出在 ESMM 中,CVR 与 CTR 任务共享Embedding 参数。这种参数共享机制使 ESMM 中的 CVR 网络可以从未点击的样本中学习,在一定程度缓解了数据稀疏性问题。

至此,两个问题已经被解决了,下面看下ESMM如何学习,模型的损失函数如下:
\[
\begin{aligned}L\left(\theta_{c v r}, \theta_{c t r}\right) &=\sum_{i=1}^{N} l\left(y_{i}, f\left(x_{i} ; \theta_{c t r}\right)\right)+\sum_{i=1}^{N} l\left(y_{i} \& z_{i}, f\left(x_{i} ; \theta_{c t r}\right) \times f\left(x_{i} ; \theta_{c v r}\right)\right)\end{aligned}
\]
第一项是CTR预估的损失,点击label为1否则为0;第二项是CTCVR预估的损失,点击且转化的label为1,否则为0。

这里还有一个问题,既然\(pCTCVR\)可以由\(pCTR\)和\(pCVR\)相乘得到,那么从理论上说,转化为除法也可以,即
\[
p(z=1 | y=1, x)=\frac{p(y=1, z=1 | x)}{p(y=1 | x)}
\]
这样可以分别训练两个模型,CTR和CVCTR,最终也可以得到CVR。论文对这种情况做了实验分析,发现实际上\(pCTR\)的值较小,会引起数值不稳定。

  • discussion
  1. 巧妙的引入了两个辅助任务解决CVR预估,解决了样本选择偏置问题,共享参数可以缓解数据稀疏
  2. 多任务学习在其他领域已经有很多应用,但在推荐中,更应该结合具体的数据和任务设计。例如,在跨领域任务中,不同领域的环境样本是不一样的,但用户信息可能有重复,那么针对这种场景怎么设计多任务学习,样本信息的利用需要更多得考虑。

references:

[1] Xiao Ma, Liqin Zhao, Guan Huang, Zhi Wang, Zelin Hu, Xiaoqiang Zhu, and Kun Gai. 2018. Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate. SIGIR (2018).

[2] https://github.com/alibaba/x-deeplearning/wiki/%E5%85%A8%E7%A9%BA%E9%97%B4%E5%A4%9A%E4%BB%BB%E5%8A%A1%E6%A8%A1%E5%9E%8B(ESMM)

推荐中的多任务学习-ESMM的更多相关文章

  1. 推荐中的多任务学习-YouTube视频推荐

    本文将介绍Google发表在RecSys'19 的论文<Recommending What Video to Watch Next: A Multitask Ranking System> ...

  2. 多任务学习(MTL)在转化率预估上的应用

    今天主要和大家聊聊多任务学习在转化率预估上的应用. 多任务学习(Multi-task learning,MTL)是机器学习中的一个重要领域,其目标是利用多个学习任务中所包含的有用信息来帮助每个任务学习 ...

  3. [DeeplearningAI笔记]ML strategy_2_3迁移学习/多任务学习

    机器学习策略-多任务学习 Learninig from multiple tasks 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.7 迁移学习 Transfer Learninig 神 ...

  4. 【论文笔记】多任务学习(Multi-Task Learning)

    1. 前言 多任务学习(Multi-task learning)是和单任务学习(single-task learning)相对的一种机器学习方法.在机器学习领域,标准的算法理论是一次学习一个任务,也就 ...

  5. 多任务学习Multi-task-learning MTL

    https://blog.csdn.net/chanbo8205/article/details/84170813 多任务学习(Multitask learning)是迁移学习算法的一种,迁移学习可理 ...

  6. [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

    译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ...

  7. 牛亚男:基于多Domain多任务学习框架和Transformer,搭建快精排模型

    导读: 本文主要介绍了快手的精排模型实践,包括快手的推荐系统,以及结合快手业务展开的各种模型实战和探索,全文围绕以下几大方面展开: 快手推荐系统 CTR模型--PPNet 多domain多任务学习框架 ...

  8. ios7中的多任务

    转自:http://onevcat.com/2013/08/ios7-background-multitask/ WWDC 2013 Session笔记 - iOS7中的多任务 iOS7的后台多任务特 ...

  9. [ios-必看] WWDC 2013 Session笔记 - iOS7中的多任务【转】

    感谢:http://onevcat.com/2013/08/ios7-background-multitask/ http://www.objc.io/issue-5/multitasking.htm ...

随机推荐

  1. day5_python之hashlib模块

    用来校验文本内容hash:一种算法 ,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法三个特点:1.内容相同则h ...

  2. vbox ubuntu虚拟机中加载笔记本内置摄像头

    使用C:\Program Files\Oracle\VirtualBox\VBoxManage.exe工具加载摄像头 1,显示可用摄像头 C:\Program Files\Oracle\Virtual ...

  3. 9-6 UVa 11400

    参考 http://www.cnblogs.com/Kiraa/p/5510757.html http://www.cnblogs.com/zhaopAC/p/5159950.html 根据题目说明中 ...

  4. WPF Converter(转)

    WPF Binding 用于数据有效性校验的关卡是它的 ValidationRules 属性,用于数据类型转换的关卡是它的 Converter 属性.下面是实例: 1. Binding 的数据校验 & ...

  5. 【t065】最敏捷的机器人

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] [背景] Wind设计了很多机器人.但是它们都认为自己是最强的,于是,一场比赛开始了~ [问题描述] ...

  6. 第三次脱发——Scurm学(ctrl)习(C)心得

    Scrum 学习心得: 首先,敏捷并不是一门具体的技术,而是一种理念或者说是一种思想.它可以指导我们更加高效的开发. 其次,敏捷开发都具有以下共同的特征: 迭代式开发 增量交付 开发团队和用户反馈推动 ...

  7. ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name' at row 1

    ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name'  at row 1   数据库字符集问 ...

  8. 2018-8-10-如何在-UWP-使用-wpf-的-Trigger-

    title author date CreateTime categories 如何在 UWP 使用 wpf 的 Trigger lindexi 2018-08-10 19:16:51 +0800 2 ...

  9. P1009 字符三角形

    题目描述 输入一个字符c,按照阳历输出的格式输出由该字符组成的一个字符三角形. 输入格式 输入包含一个字符c. 输出格式 输出由该字符c组成的字符三角形. 样例输入 A 样例输出 A AAA AAAA ...

  10. 深度学习——CNN

    整理自: https://blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1 思想 filter尺寸 ...