Deep Learning For Music Composition: Generation, Recommendation And Control