一句话定义:多任务学习(Multi-Task Learning, MTL)是让同一个模型在训练时同时学习多个相关任务,并共享一部分网络层或表征,让任务之间互相借力,而不是各训各的。
为什么能互相借力:可以把它想成一个厨师同时学川菜和粤菜。刀工、火候、食材处理这些基本功是共用的,只有调味和装盘分两条支线。模型也一样:底层共享层学通用特征,上层为每个任务接一个“任务头”(task head),各自输出结果。训练时把所有任务的损失加权求和,一起反向传播更新共享参数。数据少的任务能从数据多的任务里“蹭”到通用规律,相当于多了一层正则化,往往泛化更好。
收益与冲突:收益是数据效率、泛化能力和部署成本——一套共享主干加几个轻量头,比维护多个独立模型更省资源。冲突则来自任务目标不一致:比如一个任务希望特征关注颜色,另一个希望关注形状,梯度方向可能打架,出现负迁移(negative transfer);某个任务数据量大或损失尺度大,还可能主导共享层,把别的任务带偏。常见应对是共享底层加任务专属层、动态调整任务权重、按任务采样,或引入门控/专家结构让不同任务各取所需。
和相邻概念的区别:
| 概念 | 核心 |
|---|---|
| 多任务学习 | 多个任务联合训练,互相借力或冲突 |
| 迁移学习 | 从源任务预训练,再迁移到目标任务,通常单向 |
| 多标签分类 | 一个样本可带多个标签,常是同一任务的多输出 |
| 持续学习 | 按顺序学多个任务,重点是不忘旧任务 |
| 集成学习 | 多个独立模型组合,通常不共享训练过程 |
实际意义:从业者常把它用在推荐系统(同时预测点击、转化、停留时长)、搜索排序、内容审核、自动驾驶感知等场景;普通用户也会间接受益,比如相册一次识别场景、物体和文字,输入法同时做纠错和下一个词预测。关键提醒:多任务不是“任务越多越好”,任务相关性、权重和容量分配决定它是互相成就还是互相拖累;具体实现和效果以官方页面与实验为准。
