1. A method comprising: receiving, at a processor, a user request for content recommendations; receiving, by the processor, information regarding the user comprising at least a subset of content sources from which the user desires content recommendations; providing, by the processor, categories for selection by the user; receiving, by the processor, category selections made by the user; aggregating, by the processor, category vectors of respective categories selected by the user; generating, by the processor, a user model representing the user's interests, the user model is generated from the aggregated category vectors in combination with vector representations of the user information, the user model comprises a user vector of a maximum length formed from a list of terms, each term having a respective weight; providing, by the processor, recommendations of content items to the user based on the user model; changing, by the processor, the respective weights of at least a subset of the terms in response to user operations; monitoring, by the processor, the length of the user vector; detecting, by the processor via the monitoring, that the length of the user vector exceeds the maximum length; identifying, by the processor in response to the length of the user vector exceeding the maximum length, a term in the subset whose respective weight has fallen below a predetermined lower bound due to the change; deleting, by the processor from the list of terms, the term with the respective weight below the predetermined lower bound; and updating, by the processor, the recommendations provided to the user based on the deletion of the term.