转载请注明出处:http://blog.csdn.net/gamer_gyt
博主微博:http://weibo.com/234654758
Github:https://github.com/thinkgamer
公众号:搜索与推荐Wiki
个人网站:http://thinkgamer.github.io


  • 论文:Entire Space Multi-Task Model: An Effective Approach for
    Estimating Post-Click Conversion Rate(CVR预估新思路:完整空间多任务模型)
  • 地址:https://arxiv.org/pdf/1804.07931.pdf

背景

CVR预估在工业界(比如推荐系统,广告系统)应用非常广泛,常规的CVR模型结合了深度学习方法并取得了不错的效果。然而在实际的应用中也会有一些问题,比如:使用有点击的样本进行模型的训练然后在整个样本集中进行应用,这样会引起样本偏差。此外,还存在极端的数据稀疏问题,从而使得模型训练变得更加困难。

基于用户行为数据(比如展示->点击->转化),论文从一个新的视角来训练CVR模型。ESMM(完整空间多任务模型)解决了两大问题:

  • 直接在整个样本空间上进行建模
  • 采用特征表示学习策略

基于淘宝推荐系统的日志,该模型的表现优于其竞争模型,论文也会公开一部分抽样数据集用来支持CVR模型的研究。

介绍

CVR预测对于在线排序(例如广告和推荐)是很必要的,例如预测广告的点击,指定一个合适的价格,可以让广告方和平台方达到双赢。同样对于推荐系统而言,平衡用户的点击和购买也是很重要的。

通常来讲,传统的CVR模型采用了和CTR类似的方法去做,例如流行的深度神经网络。然而依旧存在一些挑战,论文里总结了两点:

  • SSB:smaple selection bias(样本偏差)
  • DS:Data sparsity(数据稀疏)

如上图中,曝光展示的样本是很大的, 用户有行为的物品只是其中的一小部分,用户进行了转化的物品又只是有行为物品的一部分,这样在使用用户有行为的物品作为训练数据训练模型,然后应用到整个样本空间内就会产生样本偏差的问题。

论文中也列举了一些已有成果来解决SSB和DS问题的,但都不理想。所以才有了这篇论文,通过利用用户的行为序列,提出了一种新颖的算法(ESMM)来同时解决SSB和DS的问题。

在ESMM模型,分为了两部分模型分别是CTR和CTCVR,用来代替直接训练一个CVR模型,ESMM模型将pCVR视作中间变量,其和pCTR的乘积等于pCTCVR。pCTCVR和pCTR可以在整个样本空间内进行训练。这样样本偏差的问题就能被解决了,另外,CVR和CTR的模型参数是共享的,这样CVR就会有更多的样本,这种参数转换的方法能够有效的解决DS问题。

MSSE

假设数据集形式为:
S={(xi,yi−>zi)}∣(i∈N)S= \left \{ (x_i,y_i -> z_i) \right \} | (i \in N) S={(xi,yi>zi)}(iN)
其中:

  • x:特征(高维的特征向量,eg:user field,item field等)
  • y/z:二分类的label标签(y=1 表示点击,z=1表示转化)
  • N:样本数

CVR模型预估可能性的表示为:pCVR=p(z=1 | y=1,x),两个相关的概率值是:pCTR和pCTCVR,其关系为:
pCTCVR=pCTR∗pCVRp(y=1,z=1∣x)=p(y=1∣x)∗p(z=1∣y=1,x)pCTCVR = pCTR * pCVR \\ p(y=1,z=1|x)=p(y=1|x)* p(z=1|y=1,x) pCTCVR=pCTRpCVRp(y=1,z=1x)=p(y=1x)p(z=1y=1,x)

常见基于深度学习模型在CVR模型上已经取得了不错的效果,其中的大多数类似于上图中的左侧部分这样的词嵌入和前馈神经网络。

CVR模型预估的是点击转化率(p(z=1|y=1,x=1)),训练模型的样本是基于点击数据的,即:
Sc=(xj,zj)∣yj=1(j∈M)Sc ={(x_j,z_j)|y_j =1} (j \in M) Sc=(xj,zj)yj=1(jM)
S_c是整个样本空间S的子集,M是样本空间中点击样本数,点击且未转化的是负样本,点击且转化的为正样本。下面具体解释喜爱SSB问题和DS问题。

  • SSB问题

传统的CVR模型实际上是通过引入了特征空间X_c做了一个假设:
p(z=1∣y=1,x)≈q(z=1∣xc)p(z=1|y=1,x)\approx q(z=1|x_c) p(z=1y=1,x)q(z=1xc)
x_c 属于X_c,表示(x=x_c,y=1),这种情况下,q(z=1|x_c)是基于有点击行为的样本空间(S_c)进行训练的,然而在线预估时是针对所有的样本(S)进行计算的,因为S_c是S的一个很小的子集,所以具有很大的随机性,这就可能带来样本偏差和影响模型的泛化能力。

  • DS问题

推荐系统展现给用户的商品数量要远远大于被用户点击的商品数量,同时有点击行为的用户也仅仅只占所有用户的一小部分,因此有点击行为的样本空间 S_c相对于整个样本空间S来说是很小,通常来讲,量级要小1-3个数量级。

如下表所示,在淘宝公开的训练数据集上,S_c只占整个样本空间S的4%。这就是所谓的训练数据稀疏的问题,高度稀疏的训练数据使得模型的学习变得相当困难。

除此之外,CVR还存在一个延迟反馈问题,但不在本文的讨论范围内。ESSM模型的结构如Figure2所示,CTR和CVR作为基础模型,拥有相同的结构。

  • 在整个样本空间建模

pCVR = pCTCVR / pCTR:
p(z=1∣y=1,x)=p(y=1,z=1∣x)p(y=1∣x)p(z=1|y=1,x) = \frac{p(y=1,z=1|x)}{p(y=1|x)} p(z=1y=1,x)=p(y=1x)p(y=1,z=1x)
上述公式告诉我们,可以在整个样本空间上进行模型训练,继而解决样本稀疏性的问题。这里可以单独的训练CTR和CTCVR模型,继而通过除法得到CVR。然而CTR一般很小,除法容易引起数值不稳定,ESMM通过乘法公式来避免这种情况。在ESSM中,pCVR只是一个中间变量,pCTR和pCTCVR才是主要因素。ESMM乘法形式对应的损失函数如下:
L(θcvr,θctr)=∑i=1Nl(yi,f(xi;θctr))+∑i=1Nl(yi&zi,f(xi;θctr)∗f(xi;θcvr))L(\theta _{cvr},\theta _{ctr}) = \sum_{i=1}^{N} l(y_i,f(x_i;\theta _{ctr})) + \sum_{i=1}^{N}l(y_i \& z_i,f(x_i;\theta _{ctr})*f(x_i; \theta _{cvr})) L(θcvr,θctr)=i=1Nl(yi,f(xi;θctr))+i=1Nl(yi&zi,f(xi;θctr)f(xi;θcvr))
θcvr,θctr\theta _{cvr},\theta _{ctr}θcvr,θctr :CVR 与 CTR网络的参数;l():交叉熵损失函数

  • 共享特征表示
    如图2中所示,embedding层把大规模稀疏输入数据映射到低纬的表示向量,占据了整个网络参数的绝大部分,需要大量的训练样本才能充分学习得到。在ESMM模型中,CTR的训练样本量远远大于CVR的训练样本量,这种共享特征表示也可以让CVR从只有展现没有点击的样本进行学习,从而缓解数据稀疏性的问题。

实验

  • 数据集

由于ESMM创造性的利用了用户行为序列作为模型的训练样本,因此没有公开的数据集,所以从淘宝的日志中采样了一部分数据,作为公开的数据集,其下载地址为:https://tianchi.aliyun.com/dataset/dataDetail?dataId=408&userId=1

  • 对比测试

为了保证实验的有效性,在以下四方面是相同的。

1.使用ReLU激活函数

2.embedding向量的纬度是18

3.MLP的层数是:360 * 200 * 80 * 2

4.adam的参数是:beta1 = 0.9 beta2 = 0.999 e=10^-8

Adam算法介绍:https://www.jianshu.com/p/aebcaf8af76e

几种常见的优化算法对比:https://zhuanlan.zhihu.com/p/22252270



【技术服务】,详情点击查看: https://mp.weixin.qq.com/s/PtX9ukKRBmazAWARprGIAg

扫一扫 关注微信公众号!号主 专注于搜索和推荐系统,尝试使用算法去更好的服务于用户,包括但不局限于机器学习,深度学习,强化学习,自然语言理解,知识图谱,还不定时分享技术,资料,思考等文章!


论文|完整空间多任务模型(Entire Space Multi-Task Model)相关推荐

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

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

  2. 推荐系统遇上深度学习(十九)--探秘阿里之完整空间多任务模型ESSM

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习,python,R等数据领域感兴趣的同学 ...

  3. 推荐系统遇上深度学习(二十)--探秘阿里之完整空间多任务模型ESSM

    笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为密码,让大数据 ...

  4. 【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 ...

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

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

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

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

  7. 【菜单版】stata三天写论文!截面空间计量模型实战

    [菜单版]stata三天写论文!截面空间计量模型实战

  8. matlab三天写论文!截面空间计量模型实战

    matlab三天写论文!截面空间计量模型实战

  9. stata三天写论文!截面工具变量空间计量模型实战

    stata三天写论文!截面工具变量空间计量模型实战

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

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

最新文章

  1. json 反序列化 父子类型_json类序列化与反序列化参考
  2. R语言基础篇——数据对象
  3. 英语什么意思_“你什么意思”用英语怎么说?千万不要说成“What#39;s your meaning?”...
  4. containerd安装及常用命令
  5. 如何找到ABAP里被动态调用的update function module
  6. 红帽企业版linux 7.4更新启动,红帽Linux企业版7.4 淘汰Btrfs文件系统
  7. PVS 6.1 Configuring Services Failed
  8. React开发(119):代码原因
  9. 翱文中华灯谜大全 v1.1 免费下载--IT man
  10. 从程序员到项目经理(六):程序员加油站 — 懂电脑更要懂人脑
  11. 边写边学Python(14)球落地高度
  12. BLE(9)—— 细说 Advertising
  13. 参数是list集合校验,使用@Vaild或者@Vaildated不起作用
  14. Python-温度转换
  15. 【计算机毕业设计】017学生公寓电费信息管理系统
  16. Could not connect to broker URL: tcp://localhost:61616?wireFormat.maxInactivityDuration=0wireForma
  17. Cinemachine 镜头异常抖动(画面抽搐twitch)
  18. Tuscany SCA
  19. 奇思妙想:小程序wxapkg包一键运行至浏览器是什么操作?
  20. 华硕win10键盘失灵_win10系统下电脑键盘失灵怎么解决

热门文章

  1. 网吧里电脑提示计算机内存不足,网吧电脑显示虚拟内存不足该怎么办呢
  2. 网络流量监控(局域网)
  3. 概率分布F(x)和概率密度f(x)
  4. linux服务上实现web在线编辑,利用 ONLYOFFICE 将在线文档编辑器集成到 Python Web 应用程序中 | Linux 中国...
  5. html5 人脸活体识别,基于HTML5的人脸识别活体认证的实现方法.pdf
  6. 部分可重构系统中可能发生的几个不良现象及解决方法(解耦) Xilinx FPGA DFX Partial Reconfig Decouple
  7. PHP ThinkPHP 命名空间引入(use )
  8. 模块一 day06 数据类型(中)
  9. 云上游戏数据分析实践
  10. 各类语言、算法学习资料------百度云