SLi-Rec, which is short for Short term and Long term preference Integrated RECommender system, is the new state of the art sequential recommender from Microsoft Research Asia.
The authors designed a recommendation model that encodes long term (static) and short term (dynamic) preferences of users. Furthermore, the model can accommodate contextual features.
Long term preferences are encoded using a matrix factorization based algorithm: A2SVD (Attentive Asynchronous Singular Value Decomposition) that adds an attention mechanism to Yehuda Koren's traditional algo.
Short term preferences are encoded using a modified LSTM that addresses the problem of time irregularity (time intervals between two successive actions can vary) and semantic irregularity (items within a user’s behavior sequence may not always share the same semantic topic).
For coping with the time irregularity, they add two time gates, one that encodes the absolute temporal distance between current and prediction states, and another one that encodes the relative temporal distance between two consecutive states.
For coping with the semantic irregularity, the authors add an attention mechanism to filter out irrelevant items and distinguish different levels of influence scores for relevant ones.
The fusion between short, long term preferences and contextual features, far from being a simple sum, is computed using an attention-based adaptative method. This adaptative methodology allows to control the actions context, if two actions are produced in a short period, the short term preference should be more informative, however, if an item is related to another item that the user has interacted with in the past, the long term preference component should be more informative.
In a production scenario, the long term component of the model can be computed offline, while the short term can be computed in real-time using the more recent user-item historical behavior. For people interested in SLi-Rec algorithm, a Tensorflow implementation can be found in the Recommenders repository.