Advances In Machine Learning: Nearest Neighbour Search, Learning To Optimize And Generative Modelling