Bi-level Optimization in Machine Learning: 

Foundations and Applications