多任务学习综述Multi-Task Deep Recommender Systems

news2024/9/22 5:37:20

Multi-Task Deep Recommender Systems: A Survey

最近看到一篇多任务学习的综述,觉得总结的不错,记录一下。

1. 简介

推荐系统天然具有多任务学习的需求,以视频推荐为例,用户具有点赞、评论、转发等不同的行为。多任务学习相比单个任务的好处有2个,一是多个任务对数据的利用增强了各个任务学习的表现,二是在计算和存储上面有更高的效率。同时多任性也面对三个挑战,一是不同的任务必须获取到有用的信息,二是数据稀疏性问题,例如转化率问题,三是独特的序列依赖,例如各个任务中存在的用户行为依赖。

2. 问题定义

给定K个任务,数据集D : = { x n , ( y , 1 , y n 2 , . . . , y n k ) } n = 1 N :=\{ \mathbf x_n , (y^1_,, y^2_n, ..., y^k_n) \}^N_{n=1} :={xn,(y,1,yn2,...,ynk)}n=1N,即N条交互记录,K个label,各任务的模型参数 { θ 1 , θ 2 , . . . , θ k } \{\theta^1, \theta^2, ..., \theta^k\} {θ1,θ2,...,θk}以及共享参数 θ s \theta^s θs,损失函数定义为各个任务损失函数的加权和
arg ⁡ min ⁡ { θ 1 , θ 2 , . . . , θ k } L ( θ s , θ 1 , θ 2 , . . . , θ k ) = arg ⁡ min ⁡ { θ 1 , θ 2 , . . . , θ k } ∑ k = 1 K w k L k ( θ s , θ k ) \underset{ \{\theta^1, \theta^2, ..., \theta^k \} } {\arg \min} L (\theta^s, \theta^1, \theta^2, ..., \theta^k) = \underset{ \{\theta^1, \theta^2, ..., \theta^k \} } {\arg \min} \sum^K_{k=1} w^kL^k(\theta^s, \theta^k) {θ1,θ2,...,θk}argminL(θs,θ1,θ2,...,θk)={θ1,θ2,...,θk}argmink=1KwkLk(θs,θk)
这里有个特例是PLE模型中有个初始权重,根据训练阶段进行更新, w t k = w 0 k ∗ γ k t w^k_t = w^k_0*\gamma^t_k wtk=w0kγkt
每个任务的损失函数如下,以BEC为例
L k ( θ s , θ k ) = − ∑ n = 1 N [ y n k log ⁡ ( y ^ n k ) + ( 1 − y n k ) log ⁡ ( 1 − y ^ n k ) ] L^k(\theta^s, \theta^k) = - \sum^N_{n=1}[y^k_n \log (\hat y^k_n) + (1-y^k_n) \log (1-\hat y^k_n)] Lk(θs,θk)=n=1N[ynklog(y^nk)+(1ynk)log(1y^nk)]

和多目标推荐(multi-Objective Recommendation)的区别:多目标重在多个目标之间的平衡,像推荐的多样性、公平性等目标。多目标也是实现多任务深度推荐系统的一种方式。

和多场景推荐(multi-scenario Recommendation)的区别:多场景推荐使用多个场景的数据训练统一模型解决数据稀疏性问题,也可以视作多个场景跨域推荐。多场景推荐的label空间在不同的场景是一样的,但是在不同的场景的数据分布是不一样的。多任务学习的label空间不同的任务是不一样的。

3. 分类

在这里插入图片描述

3.1 任务关系

3.1.1 并行式 各个任务之间没有相互依赖关系,彼此独立损失函数通常是各个任务loss的加权和。通过目标和挑战来分组。

按目标

Rank and rate: multi-task learning for recommender systems 将排序和评分预测两个任务合并起来。
Explainable recommendation via multi-task learning in opinionated text data 和 Co-attentive
multi-task learning for explainable recommendation 结合了推荐和解释任务。
Multi-task based sales predictions for online promotions 结合了多个销量预估任务。
按挑战,主要解决特征选择和任务共享的方式
Perceive your users in depth: Learning universal user representations from multiple e-commerce tasks 结合多任性学习、RNN结合的attention机制来抽取泛化特征。
Multiple relational attention network for multi-task learning 提出用attention机制做特征交叉及任务的特征分配。
RevMan: Revenue-aware Multi-task Online Insurance Recommendation 提出在多任务学习中基于注意力的自适应特征共享机制。
MSSM: a multiple-level sparse sharing model for efficient multi-task learning 提出在输出层应用一个特征域的系数mask。
CFS-MTL: A Causal Feature Selection Mechanism for Multi-task Learning via Pseudo-intervention 从因果视角选择稳定的因果特征。

3.1.2 级联式
针对的事有序列依赖的多任务,当前任务的计算依赖前一个任务。这一类基本都是转化预估任务。
y ^ n k ( θ s ,   θ k ) − y ^ n k − 1 ( θ s ,   θ k ) = P ( ϵ k = 0 , ϵ k − 1 = 1 ) \hat y^k_n( \theta^s, \ \theta^k) - \hat y^{k-1}_n( \theta^s, \ \theta^k) = P(\epsilon_k = 0, \epsilon_{k-1} = 1) y^nk(θs, θk)y^nk1(θs, θk)=P(ϵk=0,ϵk1=1)
其中 ϵ k \epsilon_k ϵk是任务k的指示变量,当任务k-1没有发生时,任务k不会发生。
下表中除了AITM和APEM是广告和金融服务领域,其他的都是电子商务领域。同时这些基本都在解决样本选择问题(SSB)和数据稀疏性问题(DS),而且都是基于“曝光” -> “点击” -> “转化” 这样的假设。
在这里插入图片描述
ESMM:Entire space multi-task model: An effective approach for estimating post-click conversion rate
ESM 2 ^2 2: Entire space multi-task modeling via post-click behavior decomposition for conversion rate prediction
Multi-IPW & DR:Large-scale causal approaches to debiasing post-click conversion rate estimation with multi-task learning
ESDF:Delayed feedback modeling for the entire space conversion rate prediction
HM 3 ^3 3:Hierarchically modeling micro and macro behaviors via multi-task learning for conversion rate prediction
AITM:Modeling the sequential dependence among audience multi-step conversions with multi-task learning in targeted display advertising
MLPR:Multi-task Learning Framework for Product Ranking with BERT
ESCM 2 ^2 2:Entire Space Counterfactual Multi-Task Model for Post-Click Conversion Rate Estimation
HEROES:Multi-Scale User Behavior Network for Entire Space Multi-Task Learning
APEM:Task Aware Feature Extraction Framework for Sequential Dependence Multi-Task Learning

3.1.3 辅助任务式
通过添加辅助任务的方式实现多任务学习。
MetaBalance: Improving Multi-Task Recommendations via Adapting Gradient Magnitudes of Auxiliary Tasks
Delayed feedback modeling for the entire space conversion rate prediction
Distillation based Multi-task Learning: A Candidate Generation Model for Improving Reading Duration
Multi-DR:Large-scale causal approaches to debiasing post-click conversion rate estimation with multi-task learning

还有一些通过一些特殊的设定设计不同的辅助任务。
Multi-task learning for recommendation over heterogeneous information network
Cross-task knowledge distillation in multi-task recommendation
Multi-task Learning for Bias-Free Joint CTR Prediction and Market Price Modeling in Online Advertising

通过对比学习的方式增加辅助任务。
Personalized Inter-Task Contrastive Learning for CTR&CVR Joint Estimation
A Contrastive Sharing Model for Multi-Task Recommendation

以上都是通过人工设置辅助任务,还有通过自动设置的方式。
Can Small Heads Help? Understanding and Improving Multi-Task Generalization

3.2 学习方法

按照参数共享、优化方法、训练机制分成三类

3.2.1 参数共享

示意图如下
在这里插入图片描述
hard sharing
MetaBalance: Improving Multi-Task Recommendations via Adapting Gradient Magnitudes of Auxiliary Tasks
Multi-Faceted Hierarchical Multi-Task Learning for Recommender Systems
AdaTask: A Task-aware Adaptive Learning Rate Approach to Multi-task Learning

sparse sharing
从基础网络中通过参数mask抽取出子网络。
LT4REC: A Lottery Ticket Hypothesis Based Multi-task Practice for Video Recommendation System.
MSSM: a multiple-level sparse sharing model for efficient multi-task learning
A Contrastive Sharing Model for Multi-Task Recommendation

soft sharing
每个任务有自己的网络结构,但是各自任务的网络结构互相之间有连接,通过任务的相关性的权重来融合。
Multi-task based sales predictions for online promotions

expert sharing
MoE:Adaptive mixtures of local experts
MMoE:Modeling task relationships in multi-task learning with multi-gate mixture-of-experts
SNR:: Sub-network routing for flexible parameter sharing in multi-task learning
PLE:Progressive layered extraction (ple): A novel multi-task learning (mtl) model for personalized recommendations
DMTL:Distillation based Multi-task Learning: A Candidate Generation Model for Improving Reading Duration
PFE:Prototype Feature Extraction for Multi-task Learning
MVKE:Mixture of virtual-kernel experts for multi-objective user profile modeling.
MoSE:Multitask mixture of sequential experts for user activity streams

3.2.2 优化方法
多任务的优化需要解决2个问题,一是多个任务训练的冲突,二是多个目标之间的平衡。前者和负向迁移(negative transfor)有关,后者和多目标平衡(trade-off)有关。

不同任务的梯度有巨大的不同,有任务的梯度主导了模型的更新,解决这个议题的有
Gradnorm: Gradient normalization for adaptive loss balancing in deep multitask networks.
Gradient surgery for multi-task learning.
AdaTask: A Task-aware Adaptive Learning Rate Approach to Multi-task Learning

共享参数 θ s \theta^s θs的冲突,不同的任务的对于共享参数的更新可能是相反的梯度方向,很有可能出现跷跷板效应。
Progressive layered extraction (ple): A novel multi-task learning (mtl) model for personalized recommendations
A Contrastive Sharing Model for Multi-Task Recommendation.

多个目标之间的trade-off
Understanding and improving fairness-accuracy trade-offs in multi-task learning
Can Small Heads Help? Understanding and Improving Multi-Task Generalization

3.2.3 训练机制
分为三类,联合训练、强化学习、辅助任务学习。

联合训练
Incorporating user micro-behaviors and item knowledge into multi-task learning for session-based recommendation
Incorporating Global Context into Multi-task Learning for Session-Based Recommendation
M2TRec: Metadata-aware Multi-task Transformer for Large-scale and Cold-start free Session-based Recommendations
MARRS: A Framework for multi-objective risk-aware route recommendation using MultitaskTransformer
Multi-task feature learning for knowledge graph enhanced recommendation
Why I like it: multi-task learning for recommendation and explanation
Explainable recommendation via multi-task learning in opinionated text data
A multi-task multi-view graph representation learning framework for web-scale recommender systems
A Contrastive Sharing Model for Multi-Task Recommendation

强化学习
Learning and adaptivity in interactive recommender systems
Multi-Task Fusion via Reinforcement Learning for Long-Term User Satisfaction in Recommender Systems
Optimizing ranking algorithm in recommender
system via deep reinforcement learning

辅助任务
上述级联式的基本都是

4. 应用和数据集

4.1 数据集

在这里插入图片描述

4.2 多任务融合

多任务融合权重通过Grid Search
Deep multifaceted transformers for multi-objective ranking in large-scale e-commerce recommender systems
Multiple objective optimization in recommender systems

进化算法
Multiobjective pareto-efficient approaches for recommender systems.

贝叶斯优化算法
Hyperparameter optimization for recommender systems through Bayesian optimization

sota的解决方案是强化学习
Optimizing ranking algorithm in recommender system via deep reinforcement learning
Multi-Task Fusion via Reinforcement Learning for Long-Term User Satisfaction in Recommender Systems

多任务的未来方向

论文给出了几个可能的方向。
解决负向迁移的问题,一个新的解决思路是通过因果推断的方式
CFS-MTL: A Causal Feature Selection Mechanism for Multi-task Learning via Pseudo-intervention

还有使用大型预训练模型,例如
Recommendation as Language Processing (RLP): A Unified Pretrain, Personalized Prompt & Predict Paradigm (P5).
M6-Rec: Generative Pretrained Language Models are Open-Ended Recommender Systems
M6: A chinese multimodal pretrainer
A Unified Multi-task Learning Framework for Multi-goal Conversational Recommender Systems.

还有使用AutoML的方式,Automated Machine Learning for Deep Recommender Systems: A Survey

特定任务的偏差bias,很多任务只关注特定的偏差,像样本选择偏差(ESMM)、隐式选择偏差(Recommending what video to watch next: a multitask ranking system),预估偏差(ESCM2: Entire Space Counterfactual Multi-Task Model for Post-Click Conversion Rate Estimation),怎样解决不同任务的偏差还须要进一步的研究。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/357569.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“生成音乐“ 【循环神经网络】

前言 本文介绍循环神经网络的进阶案例,通过搭建和训练一个模型,来对钢琴的音符进行预测,通过重复调用模型来进而生成一段音乐; 使用到Maestro的钢琴MIDI文件 ,每个文件由不同音符组成,音符用三个量来表示…

千锋教育嵌入式物联网教程之系统编程篇学习-04

目录 alarm函数 raise函数 abort函数 pause函数 转折点 signal函数 可重入函数 信号集 sigemptyset() sigfillset sigismember()​ sigaddset()​ sigdelset()​ 代码讲解 信号阻塞集 sigprocmask()​ alarm函数 相当于一个闹钟,默认动作是终止调用alarm函数的进…

HSCSEC 2023 个人练习

😋 大家好,我是YAy_17,是一枚爱好网安的小白。本人水平有限,欢迎各位大佬指点,欢迎关注😁,一起学习 💗 ,一起进步 ⭐ 。⭐ 此后如竟没有炬火,我便是唯一的光。…

聊一聊国际化i18n

i18n 概述i18n 是国际化的缩写,其完整的写法是 Internationalization,翻译为国际化。国际化是指在软件开发中对于不同语言和地区的支持。目的是为了让一款软件可以在不同的语言和地区环境下正常运行,使其适应全球各地的用户。这通常包括对语言…

Simulink 自动代码生成电机控制:低阶滑模观测器仿真实现及生成代码在开发板上运行

目录 理论参考 仿真实现 运行演示 总结 前段实时搭过高阶的滑模观测器,相比于高阶的,普通的滑模观测器计算量小更适合计算能力低的MCU,这里参考Microchip的16位MCU所使用的观测器,通过Simulink建模仿真实现系统控制&#xff0…

【查看多个长图】如何方便地在安卓手机上查看多个长图?如何更便捷地浏览长图合集

经常我会看到有些知识分享是通过长图形式进行。 往往在手机本地的图片浏览器中不能很方便地查看很多长图(能放大,但是横向滑动时,无法保证同样的放缩比例浏览同一个文件夹)。 我推荐下面一个APP和曲折解决办法。 1、perfect vi…

Error: Timeout trying to fetch resolutions from npm

总目录: 如何使用VSCode插件codesight扫描出前端项目的风险依赖包并借助 npm-force-resolutions 修复之?blackduck issue fix 文章目录问题描述【最终解决】我搜索到的解决方案npmjs 该依赖各版本列表及对应的被下载次数github issue 说降级到0.0.3就可以…

(十五)、从插件市场引入问题反馈页面【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】

1,插件市场问题反馈页面 插件市场链接 dloud插件插件市场中找到问题反馈插件: 首先确保登录了dcloud账号。 使用hbuilderX导入插件到自己项目中。 选择合并导入。 从插件市场导入意见反馈页面的路径地址如下: 2,点击跳转到…

论文阅读_AlphaGo_Zero

论文信息 name_en: Mastering the game of Go without human knowledge name_ch: 在没有人类知识的情况下掌握围棋游戏 paper_addr: http://www.nature.com/articles/nature24270 doi: 10.1038/nature24270 date_publish: 2017-10-01 tags: [‘深度学习’,‘强化学习’] if: 6…

【C++封装】C++面向对象模型

文章内容如下: 1)成员变量和函数的存储 2)this指针 3)const修饰成员函数 4)有元 一。成员变量和函数的存储 C实现了封装,数据(-变量)和处理数据的操作(-函数)是分开存储的,C中的非静态数据…

SpringBoot Notes

文章目录1 SpringBootWeb快速入门1.1Spring官网1.2 Web分析2. HTTP协议2.1 HTTP介绍34 SpringBootWeb请求响应5 响应6 分层解耦6.1 三层架构6.1.1 三层架构介绍6.1.2 基于三层架构的程序执行流程:6.1.3 代码拆分6.2 分层解耦6.2.1 内聚、耦合6.2.2 解耦思路6.3 IOC&…

[LeetCode周赛复盘] 第 333 场周赛20230219

[LeetCode周赛复盘] 第 333 场周赛20230219 一、本周周赛总结二、 [Easy] 6362. 合并两个二维数组 - 求和法1. 题目描述2. 思路分析3. 代码实现三、[Medium] 6365. 将整数减少到零需要的最少操作数1. 题目描述2. 思路分析3. 代码实现四、[Medium] 6364. 无平方子集计数1. 题目描…

操作系统闲谈08——系统调用、中断、异常

操作系统闲谈08——系统调用、中断、异常 一、系统调用 IDT - GDT - 系统调用表 找到对应系统调用号将系统调用号以及一些现场信息存入寄存器eax中(ebx、ecx、edx存放其他信息),然后触发软中断(x86中,0x80为中断号&…

设计模式 状态机

前言 本文梳理状态机概念,在实操中状态机和状态模式类似,只是被封装起来,可以很方便的实现状态初始化和状态转换。 概念 有限状态机(finite-state machine)又称有限状态自动机(英语:finite-s…

ThreadLocal知识点总结

什么是ThreadLocal?它的作用是什么? ThreadLocal是线程Thread中属性threadLocals的管理者。 ThreadLocal是Java中lang包下的一个类,可以用于在多线程环境中为每个线程维护独立的变量副本。它的作用是让每个线程都拥有自己的数据副本&#xff…

Java面向对象的特性:封装,继承与多态

Java面向对象的特性 在学习Java的过程是必须要知道的Java三大特性:封装、继承、多态。如果要分为四类的话,加上抽象特性。 封装 1.封装概述 是面向对像三大特征之一(封装,继承,多态) 是面向对象编程语言对客…

语音增强学习路线图Roadmap

语音增强算是比较难的研究领域,从入门到精通有很多台阶,本文介绍一些有价值的书籍,值得反复阅读。主要分为基础类和进阶类书籍,大多都是理论和实践相结合的书籍,编程实践是抓手,让知识和基础理论变扎实。基础书籍《信号…

RT-Thread初识学习-01

1. RT-Thread 简介 1.1 RT-Thread 是什么 据不完全统计,世界有成千上万个 RTOS(Real-time operating system,实时操作系统),RT-Thread 就是其中一个优秀的作品。 RT-Thread 内核的第一个版本是熊谱翔先生在 2006 年…

分布式-分布式存储笔记

读写分离 什么时候需要读写分离 互联网大部分业务场景都是读多写少的,读和写的请求对比可能差了不止一个数量级。为了不让数据库的读成为业务瓶颈,同时也为了保证写库的成功率,一般会采用读写分离的技术来保证。 读写分离的实现是把访问的压…

LeetCode-384-打乱数组

1、列表随机 为了能够初始化数组,我们使用nums保存当前的数组,利用orignal保存初始化数组。为了实现等可能随机打乱,考虑到随机数本质上是基于随机数种子的伪随机,我们采用如下的方式实现等可能随机:我们将所有元素压…