写点什么

多任务学习在推荐算法中的应用(一)

  • 2020-01-07
  • 本文字数:1023 字

    阅读完需:约 3 分钟

多任务学习在推荐算法中的应用(一)


导读:我们在优化推荐效果的时候,很多时候不仅仅需要关注 CTR 指标,同时还需要优化例如 CVR ( 转化率 )、视频播放时长、用户停留时长、用户翻页深度、关注率、点赞率这些指标。那么一种做法是对每个任务单独使用一个模型来优化,但是这样做的缺点显而易见,需要花费很多人力。其实很多任务之间都是存在关联性的,比如 CTR 和 CVR。那么能不能使用一个模型来同时优化两个或多个任务呢?其实这就是 Multi-task 多任务的定义。本文主要总结了近两年工业界关于 Multi-task 模型在推荐场景的一些应用和工作。

1. 阿里 ESMM

Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate


CVR 是指从点击到购买的转化,传统的 CVR 预估会存在两个问题:样本选择偏差和稀疏数据。



样本选择偏差是指模型用用户点击的样本来训练,但是预测却是用的整个样本空间。数据稀疏问题是指用户点击到购买的样本太少。因此阿里提出了 ESMM 模型来解决上述两个问题:主要借鉴多任务学习的思路,引入两个辅助的学习任务,分别用来拟合 pCTR 和 pCTCVR。



ESMM 模型由两个子网络组成,左边的子网络用来拟合 pCVR,右边的子网络用来拟合 pCTR,同时,两个子网络的输出相乘之后可以得到 pCTCVR。因此,该网络结构共有三个子任务,分别用于输出 pCTR、pCVR 和 pCTCVR。假设用 x 表示 feature ( 即 impression ),y 表示点击,z 表示转化,那么根据 pCTCVR = pCTR * pCVR,可以得到:



则 pCVR 的计算为:



由上面的式子可知,pCVR 可通过 pCTR 和 pCTCVR 推导出来,那么我们只需要关注 pCTR 和 pCTCVR 两个任务即可,并且 pCTR 和 pCTCVR 都可以从整个样本空间进行训练?为什么呢,因为对于 pCTR 来说可将有点击行为的曝光事件作为正样本,没有点击行为的曝光事件作为负样本,对于 PCTCVR 来说,将同时有点击行为和购买行为的曝光事件作为正样本,其他作为负样本。模型的 loss 函数:



另外两个子网络的 embedding 层是共享的,由于 CTR 任务的训练样本量要远超过 CVR 任务的训练样本量,ESMM 模型中 embedding 层共享的机制能够使得 CVR 子任务也能够从只有展现没有点击的样本中学习,从而能够极缓解训练数据稀疏性问题。


本文转载自 DataFunTalk 公众号。


**原文链接:https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247496333&idx=1&sn=da03f8db68e5276cffe73e090ac271ec&chksm=fbd740e1cca0c9f76da90a713311bac81e9890c1f9fd69976705e167dd30e4135db6ea297d6b&scene=27#wechat_redirect


2020-01-07 09:491140

评论

发布
暂无评论
发现更多内容

阿里腾讯微软拥抱低代码,程序员们要“失业”?

Java 程序员 后端

面向对象设计的九大基本原则 (GRASP)

Java 程序员 后端

教你如何用Keras搭建分类神经网络

华为云开发者联盟

神经网络 keras 分类神经网络 MNIST 数字图像

面试字节、阿里等大厂后,总结了今年的Java面试必问的微服务面试题(含答案)

Java 程序员 后端

面试官最喜欢问的Spring Boot知识点整理【附解答】(下)

Java 程序员 后端

阿里面试官整理出面试必问:java面试核心知识原理+框架笔记

Java 程序员 后端

阿里面试官:HashMap 为什么是线程不安全的?

Java 程序员 后端

阿里面试确实严格,面了整整5轮,还好我技高一筹!

Java 程序员 后端

面试前夕,你一定要先来看看阿里和京东都问些啥!(阿里+京东Java岗面试题概要

Java 程序员 后端

面试官求你别再问我hook了

CRMEB

面试官:Java-线程池中的线程复用是如何实现的?

Java 程序员 后端

这几个动态规划的问题,面试官就爱问

华为云开发者联盟

数组 动态规划 序列 子数组 公共子串

Flink CDC 实时数据同步详细解析

五分钟学大数据

flink 11月日更

阿里面试官:就说最后一遍,有关Spring这13点我们必问!

Java 程序员 后端

面向对象-抽象性思想(知识整理)

Java 程序员 后端

面向对象知识点整理

Java 程序员 后端

面试官都爱问的Spring源码:Spring与Mybatis高级整合

Java 程序员 后端

MatrixDB 从 4018 个参赛项目中脱颖而出,荣获 HICOOL 全球创业大赛第三名!

YMatrix 超融合数据库

时序数据库 分布式时序数据库 Hicool

阿里蚂蚁金服超全126道面试题,都会的话,你也能去面阿里了

Java 程序员 后端

震惊!2022 年秋招 Java 后端开发岗竟然一片红海!算法岗都不香了吗?

Java 程序员 后端

靠谱,这是我见过最好的编程指南了!赶快收藏吧,错过大学就白上了!

Java 程序员 后端

面试官一口气问了MySQL事务、锁和MVCC,

Java 程序员 后端

面试官再问分布式事务,求你看完这份至尊级分布式笔记,给年轻的面试官上一课

Java 程序员 后端

面试太难?技术面考察太底层?二面被拒到收割阿里架构offer,复盘成功经历分享!

Java 程序员 后端

阿里面试官:你好,谈谈对Synchronized的理解?(一

Java 程序员 后端

阿里老人吐槽:新人水平差不服管不加班!汇报经理让他无法转正

Java 程序员 后端

面试中常见的问题总结

Java 程序员 后端

道与术丨华为云数据库战略启示录

华为云开发者联盟

数据库 opengauss 华为云 GaussDB 战略

震撼发布!阿里老兵亲手操刀微服务架构实战,整理出140个案例

Java 程序员 后端

面试大厂一定离不开的——ThreadLocal,它的实现原理你知道吗

Java 程序员 后端

面试官问我什么是扩展自适应机制

Java 程序员 后端

多任务学习在推荐算法中的应用(一)_文化 & 方法_Alex-zhai_InfoQ精选文章