1. A method comprising: tracking user interaction with items on a website during a first time window of a session on the website; extracting first user preference data based on the user interaction with the items during the first time window; generating a first user profile of a user based on the first user preference data and user demographic information of the user; computing a first utility value of an tern based on the first user profile and item models, the item models built based on user preference data of a plurality of users and item information of a plurality of items; selecting a subset of terns with highest utility values as a recommendation list; generating recommendations for the user based on the recommendation list; generating a first user preference distribution based on the user interaction with the items during the first time window; tracking user interaction with the items on the website during a second time window of the session on the website; extracting second user preference data based on the user interaction with the items during the second time window; generating a second user preference distribution based on the user interaction with the items during the second time window; comparing the first user preference distribution with the second user preference distribution; detecting whether an activity change of the user has occurred based on a distance between the first user preference distribution and the second user preference distribution; in response to detecting the activity change of the user based on the distance meeting a threshold condition: generating a second user profile corresponding to the second time window based on the second user preference data and exclusion of the first user preference data, computing a second utility value of the item based on the second user profile and the item models and exclusion of the first user preference data, and updating the recommendations based on the second utility value and exclusion of the first user preference data; and in response to not detecting the activity change of the user based on the distance not meeting the threshold condition: updating the first user profile of the user based on the second user preference data, updating the first utility value of the item based on the updated first user profile, and updating the recommendations based on the updated first utility value.