emm,我是卖东西的,我不要ctr,我要销售额/uv高,更直接的是销售净额/曝光uv,这个值越高越好,说明推的好,用户都喜欢下单。至于CTR,点不点我根本不CARE,只要销售净额/曝光uv 足够高,CTR=0也可以(当然不现实哈,不点击咋可能购买呢??)

For Recommendation in Deep learning QQ Group 277356808

For deep learning QQ Second Group 629530787

I'm here waiting for you

难分真与假,人面多险诈。原文地址

1-引子:提出问题,样本选择偏差(Sample Selection Bias)。

常见的CVR模型是对点击后的样本进行训练(即点击后转化的为正样本,只点击不转化的为负样本),而inference是在整个样本空间,这就存在一个样本偏差。另外也存在一个数据稀疏(data sparsity)问题,毕竟点击的样本很少,工业界更少了,有10%?甚至更少吧,电商估计最多也就2%吧,我猜的。(现在我打开淘宝就是瞎点,他就是猜不到我想要啥,要么就是点了不买,我要气死它,然后它还给我推相似的,我肯定不买的,哈哈)

impression->click->conversion,这是自然的,也就是展示(曝光)->点击->转化(比如购买)

为此作者提出了ESMM模型,能够同时消除上面两个问题(SSB和ds),1,对CVR进行全空间建模,2,采用一个特征表达迁移学习的策略(feature representation transfer learning strategy,emm鬼知道是啥玩意,且看如下)。并且提供了点击和转换的数据(89亿样本,一共大约10G左右,包括label,下载需要注册)

2-ESMM总述,方法论。

引入post-view CTR及 post-view CTCVR(即点击后又转化),ESMM将pCVR视为中间变量,如下公式:

pCTCVR和pCTR都是通过全空间曝光的样本来估计的,因此pCVR也是全空间的。因此SSB问题没有了,另外,CVR的特征表达参数与CTR是共享的,而CTR训练样本充足。因此,这样的迁移学习也会缓和ds问题(这算迁移学习???仅仅共享个参数??emm,我不确定)

3-模型结构

base model是CVR模型,如下图左边,auxiliary是辅助的意思,为啥说CTR模型是辅助呢?因为是要提高CVR,主要目的也是训练CVR,所以CVR是主要任务,而CTR是辅助任务。

由上面的公式可知,要得到pCVR只需相除即可,但由于pCTR是小数,可能会引发数字不稳定。因此ESMM采取相乘的方式避免(就是把pCVR当成中间值,不再管这个参数了,就是这个意思)

损失函数,就是CTR和CTCVR交叉熵的和。

4-试验,数据处理

4.1负采样,AMAN分别采用了10%,20%,50%,100%的负样本;OVERSAMPLING将正样本复制多份以减少训练稀疏数据的困难,分别是2,3,5,10倍的正样本;

4.2两个任务决定AUC,一个是主-任务,计算CVR的AUC,(预测是在点击的数据上进行);一个是辅助任务,计算CTCVR的AUC,这个预测是在所有数据上。后者中pCTCVR是采用最上面的公式计算的。

5,我的应用试验

按照paper中的做法,需要有CTR的label及CVR的label,所以label是两列,由于官方数据md5解码及数据解析存在困难,所以用自己的数据,由于存在某些技术困难(群里可说),这里将某些视为cvr数据(即点击后的转化),且看如下esmm过程,(没有考虑user_id,因为购买的用户太少了,加上这个训练可能更难,这就潜在要求:特征务尽,能够刻画某一类用户,不加这个似乎还可以解决冷用户的排序问题,这个用户都没买过,你咋给他排序呢?)

Saving dict for global step 5000: auc_ctcvr = 0.90099823, auc_ctr = 0.904977, auc_cvr_masked = 0.62655663, global_step = 5000, loss = 790.64355, loss/loss/total_loss = 790.64355, loss/loss/weighted_cross_entropy_loss_ctr = 409.83682, loss/loss/weighted_cross_entropy_loss_cvr = 380.80707

我咋感觉不靠谱呢??数据有问题吧,,,,

ctr,ctcvr很高,cvr有点低啊,另外,cvr是去掉曝光后的。

docker部署可查看此博文

docker run -p 8501:8501 --mount type=bind,source=/Rec/esmm/ckpt/export/final/,target=/models/myesmm2 -e MODEL_NAME=myesmm2 -t tensorflow/serving &

requests请求参考dssm部署 ,cvr,ctr,ctcvr都有输出。可选择其一作为排序标准。

saved_model_cli show --dir 1656405675/ --tag_set serve --signature_def serving_default
The given SavedModel SignatureDef contains the following input(s):inputs['baby_num'] tensor_info:dtype: DT_INT32shape: (-1)name: input_3:0inputs['brand'] tensor_info:dtype: DT_INT32shape: (-1)name: input_8:0inputs['cate1'] tensor_info:dtype: DT_INT32shape: (-1)name: input_9:0inputs['cate2'] tensor_info:dtype: DT_INT32shape: (-1)name: input_10:0inputs['pmonth'] tensor_info:dtype: DT_INT32shape: (-1)name: input_5:0inputs['province_name'] tensor_info:dtype: DT_INT32shape: (-1)name: input_4:0inputs['swpu'] tensor_info:dtype: DT_INT32shape: (-1)name: input_7:0inputs['user_status'] tensor_info:dtype: DT_INT32shape: (-1)name: input_6:0inputs['user_gender'] tensor_info:dtype: DT_INT32shape: (-1)name: input_2:0
The given SavedModel SignatureDef contains the following output(s):outputs['logits_ctr'] tensor_info:dtype: DT_FLOATshape: (-1)name: Squeeze_1:0outputs['logits_cvr'] tensor_info:dtype: DT_FLOATshape: (-1)name: Squeeze:0outputs['probs_ctcvr'] tensor_info:dtype: DT_FLOATshape: (-1)name: Mul:0outputs['probs_ctr'] tensor_info:dtype: DT_FLOATshape: (-1)name: Sigmoid_1:0outputs['probs_cvr'] tensor_info:dtype: DT_FLOATshape: (-1)name: Sigmoid:0
Method name is: tensorflow/serving/predict

curl请求

curl -d '{"insances":[{"baby_num":[1],"brand_id":[2],"category_lvl1_id":[3],"category_lvl2_id":[1],"pregnancy_month":[1],"province_name":[12],"spu":[1232],"user_baby_status":[4],"user_gender":[1]}]}' -X POST http://localhost:8501/v1/models/myesmm2:predict -H "Content-type: application/json" -v
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Tue, 28 Jun 2022 12:28:21 GMT
< Content-Length: 244
<
{"predictions": [{"logits_cvr": 1.48903823,"probs_cvr": 0.815933883,"logits_ctr": -4.08784962,"probs_ctr": 0.0164985061,"probs_ctcvr": 0.0134616904}]
* Connection #0 to host localhost left intact

建议按照cvr排序。

愿我们终有重逢之时,

而你还记得我们曾经讨论的话题。

ESMM全空间多任务模型解读与试验相关推荐

  1. 推荐模型复现(四):多任务模型ESMM、MMOE

    多任务模型:ESMM.MMOE 本章为推荐模型复现第四章,使用torch_rechub框架进行模型搭建,主要介绍推荐系统召多任务模型ESMM.MMOE,包括结构讲解与代码实战,参考其他文章. 推荐方向 ...

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

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

  3. SIGIR'22 | 阿里 ESCM^2: 升级版全空间多任务转化率预估

    大家好,我是蘑菇先生. 今天分享阿里巴巴-蚂蚁发表在SIGIR2022的论文:ESCM^2 : Entire Space Counterfactual Multi-Task Model for Pos ...

  4. MMOE - 经典多任务模型(谷歌)

    文章目录 1.动机: 2.模型结构: Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Exp ...

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

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

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

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

  7. 「模型解读」从2D卷积到3D卷积,都有什么不一样

    https://www.toutiao.com/a6711317983035130371/ 接着模型解读系列,在中国科幻作家刘慈欣的科幻小说<三体Ⅲ·死神永生>中,首次提出了降维打击这个概 ...

  8. 【分割模型解读】感受野与分辨率的控制术—空洞卷积

    这是专栏<分割模型解读>的第3篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 前两篇文章介绍了编解码分割结构,今天具体聊聊解码器中涉及到的空间分辨率恢复问题. 作者 ...

  9. 【模型解读】深度学习网络之Siamese Network网络

    文章首发于微信公众号<有三AI> [模型解读]深度学习网络只能有一个输入吗 继续我们之前的专栏<模型解读>,今天说多输入网络,很久没写了因为实在是有更重要的事情. 平常我们所见 ...

最新文章

  1. 网传一些著名互联网公司的实习工资,某节真的香啊
  2. 第四范式上榜《麻省理工科技评论》“50家聪明公司”榜单
  3. 山东专升本access知识点_全国各省份每年的专升本考试大纲啥时候公布?考纲公布之前你该做什么?...
  4. 计算机里什么文件无法删除,电脑上的文件删不掉怎么办
  5. CCNA试验-NAT
  6. CentOS下安装Orcale
  7. Xcode6+Cocos2d-x真机调试 报错
  8. python作业(12.12)
  9. err_cleartext_not_permitted
  10. HDU10月月赛总结
  11. 远程文件传输工具Filezilla
  12. LPC11XX驱动LCD1602程序
  13. 站群服务器找11火星软件
  14. 平头哥CH2601开发环境(CDK)搭建
  15. python mysqldb 安装_python MySQLdb在windows环境下的快速安装、问题解决方式
  16. 怎么把腾讯视频qlv格式转成mp4格式
  17. matlab导入示波器multisim,Multisim中示波器的使用方法
  18. 程序的与时俱进之一——面向接口编程
  19. 信任别人计算机和网络,【媒库文选】人们可能更信任计算机而不是人类
  20. 360正式造车,网友:自带杀毒软件吗?

热门文章

  1. printk在应用层的设置方式及读取内核打印信息的方法
  2. 服务器端接华为sdk无响应,关于sdk:华为SDC-SDK的踩坑记录
  3. 小米盒子 android 手机控制,五大操作功能实现小米盒子3增强版连接手机
  4. Oracle 11G 11.2.0.3测试环境安装文档
  5. OpenCV双目标定
  6. 企业如何做好电子邮件营销?做好这4点,客户回头率高!
  7. echarts.js?1be7:2178 There is a chart instance already initialized on the dom. echats图表报错
  8. asp数组中REDIM的用法(动态数组)
  9. 苹果怎么用计算机打字,用电脑键盘在苹果 iPhone、iPad、iPod touch 上打字的软件:1Keyboard...
  10. delta函数的简化