Neural machine translation with domain adaptation, quality estimation and back-translation validation