1 Introduction
2 Multi-Task Architectures
2.1 Architectures for Computer Vision
2.2 Architectures for Natural Language Processing
2.3 Architectures for Reinforcement Learning
2.4 Multi-Modal Architectures
2.5 Learned Architectures
2.6 Conditional Architectures
3 Optimization for Multi-Task Learning
3.1 Loss Weighting
3.2 Regularization
3.3 Task Scheduling
3.4 Gradient Modulation
3.5 Knowledge Distillation
3.6 Multi-Objective Optimization
4 Task Relationship Learning
4.1 Grouping Tasks
4.2 Transfer Relationships
4.3 Task Embeddings
5 Multi-Task Benchmarks
5.1 Computer Vision Benchmarks
5.2 Natural Language Processing Benchmarks
5.3 Reinforcement Learning Benchmarks
5.4 Multi-Modal Benchmarks
6 Conclusion