Exploiting Structure In Large-Scale Optimization For Machine Learning