1 Introduction

2 Preliminaries

3 Data-Centric Approaches

4 Neural Architectural Approaches

5 Learning-Focused Approaches

6 Experimental Design

7 Open Challenges and Future Research Directions

8 Conclusions