写点什么

Multi-task 多任务学习在推荐算法中应用 (2)

  • 2019-11-28
  • 本文字数:1614 字

    阅读完需:约 5 分钟

Multi-task多任务学习在推荐算法中应用(2)

1. 阿里 ESM2:Conversion Rate Prediction via Post-Click Behaviour Modeling

我们之前介绍过一种基于多任务学习的 CVR 预估模型 ESMM,简单回顾下:



ESMM 中有两个子网络,分别是 Main Task 用于预估 CVR 值,Auxiliary Tasks 用于预估 CTR 值。二个网络共享 Embedding 部分。Loss 分为两部分,一是 CTR 预估带来的 loss,二是 pCTCVR(pCTR * pCVR)带来的 loss。CTCVR 是从 impression 到 buy,CTR 是从 impression 到 click,所以 CTR 和 CTCVR 都可以从整个 impression 样本空间进行训练,一定程度的消除了样本选择偏差。


但对于 CVR 预估来说,ESMM 模型仍面临一定的样本稀疏问题,因为 click 到 buy 的样本非常少。但是其实一个用户在购买某个商品之前往往会有其他的行为,比如把加购物车或者心愿单。如下图所示:



如上图所示,文中把加购物车或者心愿单的行为称作 Deterministic Action (DAction) ,而其他对购买相关性不是很大的行为称作 Other Action(OAction) 。那原来的 Impression→Click→Buy 购物过程就变为 Impression→Click→DAction/OAction→Buy 过程。


ESM2 模型结构:



那么该模型的多个任务分别是:Y1:点击率 Y2:点击到 DAction 的概率 Y3:DAction 到购买的概率 Y4:OAction 到购买的概率


并且从上图也可以看出,模型一共有 3 个 loss,计算过程分别是:


pCTR:Impression→Click 的概率是第一个网络的输出。


pCTAVR:Impression→Click→DAction 的概率,pCTAVR = Y1 * Y2,由前两个网络的输出结果相乘得到。


pCTCVR:Impression→Click→DAction/OAction→Buy 的概率,pCTCVR = CTR * CVR = Y1 * [(1 - Y2) * Y4 + Y2 * Y3],由四个网络的输出共同得到。其中 CVR=(1 - Y2) * Y4 + Y2 * Y3。是因为从点击到 DAction 和点击到 OAction 是对立事件。


随后通过三个 logloss 分别计算三部分的损失:



最终损失函数由三部分加权得到:



2. YouTube:Recommending What Video to Watch Next: A Multitask Ranking System


1)视频推荐中的多任务目标,比如不仅需要预测用户是否会观看外,还希望去预测用户对于视频的评分,是否会关注该视频的上传者,否会分享到社交平台等。


2)偏置信息。比如用户是否会点击和观看某个视频,并不一定是因为他喜欢,可能仅仅是因为它排在推荐页的最前面,这就会导致训练数据产生位置偏置的问题。


模型结构:



从上图可知,整个模型分为预测两大类目标,分别是:


engagement objectives:主要预测用户点击和观看视频的时长。其中通过二分类模型来预测用户的点击行为,而通过回归模型来预测用户观看视频的时长。


satisfaction objectives:主要预测用户在观看视频后的反馈。其中使用二分类模型来预测用户是否会点击喜欢该视频,而通过回归模型来预测用户对于视频的评分。


模型中有两个比较重要的结构:Multi-gate Mixture-of-Experts (MMoE)和消除位置偏置的 shallow tower。


MMoE 的结构为:



shallow tower 的结构为:



通过一个 shallow tower 来预测位置偏置信息,输入的特征主要是一些和位置偏置相关的特征,输出的是关于 selection bias 的 logits 值。然后将该输出值加到子任务模型中最后 sigmoid 层前,在预测阶段,不考虑 shallow tower 的结果。值得注意的是,位置偏置信息主要体现在 CTR 预估中,而预测用户观看视频是否会点击喜欢或者用户对视频的评分这些任务,是不需要加入位置偏置信息的。

3. 知乎推荐页 Ranking 模型

多目标模型,预测的任务包括点击率、收藏率、点赞率、评论率等等,共设计 8 个目标。从性能方面的考虑,我们将底层 embedding 权重设置成共享的, 最后一层根据不同的目标进行加权训练。


  1. 美图推荐排序多任务

  2. 模型结构:



参考文献:


https://arxiv.org/abs/1910.07099


https://www.jianshu.com/p/c06e9ed08dd1


https://www.jianshu.com/p/2f3dbbfc16a6


https://www.infoq.cn/article/g95hu67a4WheikGu*w9K


https://www.jiqizhixin.com/articles


本文转载自 Alex-zhai 知乎账号。


原文链接:https://zhuanlan.zhihu.com/p/91285359


2019-11-28 08:001511

评论

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

Sermant运行流程学习笔记,速来抄作业

华为云开发者联盟

开发 华为云 华为云开发者联盟 sermant

淘宝天猫详情接口API:快速实现商品信息查询和展示

联讯数据

IT外包对企业业务流程整合有什么帮助?

Ogcloud

IT IT外包 IT外包公司 IT外包服务

深度学习驱动的遍历动作推荐:提高UI自动化测试效率的创新方法

测吧(北京)科技有限公司

测试

如何做代币分析:以 USDC 币为例

Footprint Analytics

blockchain Token

软件测试学习笔记丨WebSocket原理&使用

测试人

软件测试 测试开发

应用监控 eBPF 版:实现 Golang 微服务的无侵入应用监控

阿里巴巴云原生

阿里云 云原生 应用监控

无参照模型预测技术:UI自动化测试的新思路与应用

测吧(北京)科技有限公司

测试

SD-WAN: 灵活部署,助力云服务

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

IT外包提升企业灵活性与敏捷性

Ogcloud

IT IT外包 IT外包公司 IT外包服务

云消息队列 Confluent 版正式上线!

阿里巴巴云原生

阿里云 云原生 Confluent

向“新”而行,以科技创新培育新质生产力!

天翼云开发者社区

人工智能 云计算 算力

前端的你常用的编程语言有哪些?

小齐写代码

人工智能在现代科技中的应用和未来发展趋势

贺公子之数据科学与艺术

软件测试学习笔记丨性能监控系统部署

测试人

软件测试 自动化测试 测试开发

小程序技术实践:如何快速开发适配鸿蒙的App

Geek_2305a8

NineData云原生智能数据管理平台新功能发布|2024年2月版

NineData

MySQL 数据复制 tdsql NineData GaiaDB

广州孚瑞经营改善 企业经营持续增长方案提供商

广东孚瑞经营改善

精益生产

AI Agent涌向移动终端,手机智能体开启跨端跨应用业务连接新场景

王吉伟频道

生成式AI AI智能体 AIAgent 手机Agent 手机智能体

UIDiff检测技术解密:为何对UI自动化测试至关重要?

测吧(北京)科技有限公司

测试

项目进度报告撰写全攻略

爱吃小舅的鱼

项目管理 项目经理 项目进度

小程序全生命周期如何管理

Geek_2305a8

「外部参数」功能已上线,爷们儿速来体验!!

Jianmu

视觉场景案例中的响应时间分析与弹窗检测

测吧(北京)科技有限公司

测试

Starknet(strk) 跨链桥教程:手把手教你用bitget钱包跨链

威廉META

Dapp质押挖矿丨云算力挖矿系统开发

l8l259l3365

如何简化 Kubernetes 出入向流量管理

NGINX开源社区

Kubernetes 微服务 Ingress Controller 流量管理

探索机器学习视觉处理的未来前景

测吧(北京)科技有限公司

测试

解析UI页面结构树的逆向解析服务化:技术探索与应用

测吧(北京)科技有限公司

测试

新潮视觉识别技术:基于无监督深度特征的视角分析

测吧(北京)科技有限公司

测试

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