1. A computer-implemented method of providing recommendations, comprising: obtaining a user history for a user; associating a plurality of items in the obtained user history with a sequence of tokens; applying the sequence of tokens as inputs to a neural network language model, wherein at least one token of the sequence of tokens corresponds to a word in the language model; receiving a predicted word as an output from the language model in response to the applied sequence of tokens, the predicted word corresponding to a predicted item; and providing a recommendation to the user based on the predicted item.