I am trying to create a model that would capture the usual behavior of a user : ie create a model for user profiling. I do have 2 million rows of data indicating normal behaviour of an user and want to define a model that can detect any variation from the normal behavior of the user.I am contemplating of using one class svm / isolation forest  trained on normal behavior. I  would like to get opinion whether that looks as a good direction . Or should I venture into deep learning  or unsupervised clustering based model and gather data for abnormal behavior of user as well to possibly use supervised models.
ML algorithms for defining NORMAL user behavior
deep learning;clustering;unsupervised learning;supervised learning