【推荐系统算法之多任务学习】

推荐系统算法之多任务学习

引言

本文主要是在组队学习,pytorch复习推荐模型课程中,学习课程笔记进行的总结。

多任务学习

多任务学习是指模型在同一时间可以学习多个任务,得到多个目标的整体最优解。主要应用用推荐系统精排模块。在推荐系统中,多任务学习一般即指多目标学习,不同目标输入相同的feature进行联合训练,是迁移学习的一种。关系图如图所示:
在这里插入图片描述

多任务学习的优势在于通过部分参数共享,联合训练,能在保证“还不错”的前提下,实现多目标共同提升。有下列几个优势:
任务互助:对于某个任务难学到的特征,可通过其他任务学习
隐式数据增强:不同任务有不同的噪声,一起学习可抵消部分噪声。学到通用表达,提高泛化能力:模型学到的是对所有任务都偏好的权重,有助于推广到未来的新任务
正则化:对于一个任务而言,其他任务的学习对该任务有正则化效果

设计思路

网络结构设计:主要研究哪些参数共享、在什么位置共享、如何共享。这一方向我们认为可以分为两大类,第一类是在设计网络结构时,考虑目标间的显式关系(例如淘宝中,点击之后才有购买行为发生),以阿里提出的ESMM为代表;另一类是目标间没有显示关系(例如短视频中的收藏与分享),在设计模型时不考虑label之间的量化关系,以谷歌提出的MMOE为代表。

多loss的优化策略:主要解决loss数值有大有小、学习速度有快有慢、更新方向时而相反的问题。最经典的两个工作有UWL(Uncertainty Weight):通过自动学习任务的uncertainty,给uncertainty大的任务小权重,uncertainty小的任务大权重;GradNorm:结合任务梯度的二范数和loss下降梯度,引入带权重的损失函数Gradient Loss,并通过梯度下降更新该权重。

ESMM

论文链接: link.
**准确估算点击后转换率(CVR)**对于工业应用中的排序系统至关重要。本论文主要解决以下问题

样本选择偏差(sample selection bias,SSB):CVR模型的正负样本集合={点击后未转化的负样本+点击后转化的正样本},但是线上预测的时候是样本一旦曝光,就需要预测出CVR和CTR以排序,样本集合={曝光的样本}。构建的训练样本集相当于是从一个与真实分布不一致的分布中采样得到的,这一定程度上违背了机器学习中训练数据和测试数据独立同分布的假设。
训练数据稀疏(data sparsity,DS):点击样本只占整个曝光样本的很小一部分,而转化样本又只占点击样本的很小一部分。如果只用点击后的数据训练CVR模型,可用的样本将极其稀疏。

模型

一般用户操作遵循模式为impression → click → conversion,,CVR建模是指估计点击转换率的任务,即P(CVR )= P(转换|单击,曝光),在本文中,通过充分利用用户动作的顺序模式,我们提出了一种名为整个空间多任务模型(ESMM)的新方法,能够同时消除SSB和DS问题。

两个辅助任务
预测视图后点击率(CTR)和视图后点击率和转换率(CTCVR)
三个预测任务
pCTR:p(click=1 | impression);
pCVR: p(conversion=1 | click=1,impression);
pCTCVR: p(conversion=1, click=1 | impression) = p(click=1 | impression) * p(conversion=1 | click=1, impression);
Post-click CVR 建模估计概率如下:
在这里插入图片描述
CVR建模的ESMM的体系结构概述
在这里插入图片描述
CVR和CTR网络都采用与基本模型相同的结构。主任务和辅助任务共享特征,不同任务输出层使用不同的网络,将cvr的预测值*ctr的预测值作为ctcvr任务的预测值,利用ctcvr和ctr的label构造损失函数:
在这里插入图片描述
主要解决:
在整个空间上进行建模
在这里插入图片描述
P(cvr)可以在整个输入空间x上得出,该空间直接解决样本选择偏差问题

提供特征表达的迁移学习(embedding层共享)

CVR和CTR任务的两个子网络共享embedding层,网络的embedding层把大规模稀疏的输入数据映射到低维的表示向量,该层的参数占了整个网络参数的绝大部分,需要大量的训练样本才能充分学习得到。由于CTR任务的训练样本量要大大超过CVR任务的训练样本量,ESMM模型中特征表示共享的机制能够使得CVR子任务也能够从只有展现没有点击的样本中学习,从而能够极大地有利于缓解训练数据稀疏性问题。

实验

数据集
在CVR建模区域中没有找到具有点击和转换的连续标签的公共数据集。为了评估所提出的方法,我们从淘宝的推荐系统中收集流量日志,并发布整个数据集的1%随机采样版本,其大小仍然达到38GB

在这里插入图片描述

使用几种有关CVR建模的竞争方法进行实验
BASE基本模型
AMAN 应用负采样策略和最佳结果报告,在{10%,20%,50%,100%}中搜索采样率
OVERSAMPLING 复制了积极的示例,以减少稀疏数据的训练难度,在{2、3、5、10}中搜索采样率
UNBIAS 通过排斥抽样来拟合从观察结果中真正的潜在分布。 PCTR被视为拒绝概率。
DIVISION 用单独训练的CTR和CTCVR网络估算PCTR和PCTCVR,并计算PCVR
ESMM-NS是ESMM的精简版,而无需共享嵌入参数
在这里插入图片描述

MMOE

论文链接: link.

模型中,如果采用一个网络同时完成多个任务,就可以把这样的网络模型称为多任务模型, 这种模型能在不同任务之间学习共性以及差异性,能够提高建模的质量以及效率。 常见的多任务模型的设计范式大致可以分为三大类:

hard parameter sharing 方法: 这是非常经典的一种方式,底层是共享的隐藏层,学习各个任务的共同模式,上层用一些特定的全连接层学习特定任务模式

soft parameter sharing: 个范式对应的结果从MOE->MMOE->PLE等。 即底层不是使用共享的一个shared bottom,而是有多个tower, 称为多个专家,然后往往再有一个gating networks在多任务学习时,给不同的tower分配不同的权重,那么这样对于不同的任务,可以允许使用底层不同的专家组合去进行预测,相较于上面所有任务共享底层,这个方式显得更加灵活

任务序列依赖关系建模:这种适合于不同任务之间有一定的序列依赖关系。比如电商场景里面的ctr和cvr,其中cvr这个行为只有在点击之后才会发生。所以这种依赖关系如果能加以利用,可以解决任务预估中的样本选择偏差(SSB)和数据稀疏性(DS)问题

模型

Multi-gate Mixture-of-Experts(MMOE)的魅力就在于在OMOE的基础上,对于每个任务都会涉及一个门控网络,这样,对于每个特定的任务,都能有一组对应的专家组合去进行预测。更关键的时候,参数量还不会增加太多。

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值