Data- and Theory-driven Techniques for Surrogate-based Optimization