多任务学习
多任务学习(Multi-Task Learning, MTL)是一种同时学习多个相关任务的机器学习范式。通过共享不同任务之间的表示信息,多任务学习能够提升每个任务的泛化性能,尤其当单个任务的标注数据有限时效果显著。
核心思想
多任务学习的核心在于共享表示(Shared Representation)。模型在学习多个任务时,底层特征提取部分被所有任务共享,而每个任务拥有各自独立的输出层(任务特定层)。
这种共享机制使得:
- 一个任务学到的特征可以帮助其他任务的学习
- 模型被迫学习更加通用、鲁棒的特征表示
- 多个任务相互约束,起到隐式正则化的作用
共享方式
硬参数共享(Hard Parameter Sharing)
最常用的多任务学习方式。所有任务共享底层的隐藏层参数,仅在输出层分离:
硬参数共享大大降低了过拟合风险(参数越多越容易过拟合,而共享参数数量远少于各任务独立时的总和)。
软参数共享(Soft Parameter Sharing)
每个任务拥有各自的模型参数,但通过正则化(如L2距离)鼓励不同任务的参数彼此接近。这种方式更加灵活,适用于任务间差异较大的情况。
损失函数
多任务学习的总损失是各任务损失的加权和:
其中 是第 个任务的权重系数,用于平衡各任务的重要性或损失尺度。
优势与应用
优势:
- 数据增强效应:多个任务的数据共同训练,弥补单个任务数据不足
- 注意力聚焦:任务间的相关性引导模型关注更有意义的特征
- 表示偏置:共享表示倾向于泛化能力更强的特征
应用:
- 自然语言处理:同时进行词性标注、命名实体识别和句法分析
- 计算机视觉:同时进行目标检测、语义分割和深度估计
- 推荐系统:同时优化点击率和转化率预测