多任务学习

多任务学习(Multi-Task Learning, MTL)是一种同时学习多个相关任务的机器学习范式。通过共享不同任务之间的表示信息,多任务学习能够提升每个任务的泛化性能,尤其当单个任务的标注数据有限时效果显著。

核心思想

多任务学习的核心在于共享表示(Shared Representation)。模型在学习多个任务时,底层特征提取部分被所有任务共享,而每个任务拥有各自独立的输出层(任务特定层)。

这种共享机制使得:

  • 一个任务学到的特征可以帮助其他任务的学习
  • 模型被迫学习更加通用、鲁棒的特征表示
  • 多个任务相互约束,起到隐式正则化的作用

共享方式

硬参数共享(Hard Parameter Sharing)

最常用的多任务学习方式。所有任务共享底层的隐藏层参数,仅在输出层分离:

硬参数共享大大降低了过拟合风险(参数越多越容易过拟合,而共享参数数量远少于各任务独立时的总和)。

软参数共享(Soft Parameter Sharing)

每个任务拥有各自的模型参数,但通过正则化(如L2距离)鼓励不同任务的参数彼此接近。这种方式更加灵活,适用于任务间差异较大的情况。

损失函数

多任务学习的总损失是各任务损失的加权和:

其中 是第 个任务的权重系数,用于平衡各任务的重要性或损失尺度。

优势与应用

优势

  • 数据增强效应:多个任务的数据共同训练,弥补单个任务数据不足
  • 注意力聚焦:任务间的相关性引导模型关注更有意义的特征
  • 表示偏置:共享表示倾向于泛化能力更强的特征

应用

  • 自然语言处理:同时进行词性标注、命名实体识别和句法分析
  • 计算机视觉:同时进行目标检测、语义分割和深度估计
  • 推荐系统:同时优化点击率和转化率预测

链接到