提前锁票 InfoQ 最具价值感的视频栏目 | InfoQ 大咖说 了解详情
写点什么

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

2020 年 1 月 07 日

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


导读:我们在优化推荐效果的时候,很多时候不仅仅需要关注 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 年 1 月 07 日 09:49274

评论

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

从技术思维角度聊一聊『程序员』摆地摊的正确姿势

码大叔

随笔杂谈 技术人生 经验分享

如何辨别有发展潜力的员工​

Neco.W

工作 招聘

区块链能够防伪?你彷佛有什么误解!

CECBC区块链专委会

CECBC 区块链技术 商品溯源 防伪

2020年5月北京BGP机房网络质量评测报告

BonreeAPM

网络 服务器 存储 机房 主机

一文带你了解 Kafka 原理

cxuan

kafka

修改git里commit信息用户名

张张张小烦

27岁了,程序员写给自己的一封信

学习Java的小姐姐

程序员 生活 总结 程序媛 职场回顾

大话设计模式 | 1 简单工厂模式

Puran

C# 设计模式 PlantUML

ARTS - Week Three

shepherd

开源 互联网 算法

[kube 022] 混沌测试框架-Litmus

zbyufei

Kubernetes 云原生 混沌工程 Litmus litmuschaos

江湖事儿 | 技术人如何做好晋升准备

哈利迪

android 职业成长

我体验了一把自由职业,比 996 苦多了...

非著名程序员

创业 程序员 自由职业 创业心态

ARTS打卡-02

Geek_yansheng25

硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题

小林coding

TCP 网络安全 网络编程 面试题 计算机网络

如何通过众包应用本地化获得 500 万次下载?

葛仲君

android 翻译 本地化 产品开发 Play商店

怎样成为解决问题的高手

落曦

分布式系统技术:存储之数据库

奈学教育

分布式

LeetCode 1339. Maximum Product of Splitted Binary Tree

隔壁小王

算法

程序员可迁移技能的培养

码闻强

程序员 程序员素养 程序员成长

ARTS week3

丽子

日志过滤

HU

读《平凡的世界》

YoungZY

读书

存储让“想象”势不可挡

焱融科技

游戏夜读 | 神话故事和世界观

game1night

架构师应该具备哪些思维模型?

奈学教育

架构师

真诚的回报

zhoo299

生活 随想

ARTS|Week 2 PlantUML 的学习和分享

Puran

LeetCode arts PlantUML

关于Synchronized锁升级,你该了解这些

学习Java的小姐姐

并发编程 synchronized 轻量级锁 偏向锁 重量级锁

ARTS-Week 01

chasel

持续集成实践系列 」Jenkins 构建 CI 自动化流水线常见技巧 (二)

狂师

持续集成 jenkins jenkins-plugin CI/CD

2020年6月5日 继承

瑞克与莫迪

打造 VUCA 时代的 10 倍速 IT 团队

打造 VUCA 时代的 10 倍速 IT 团队

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