18. The device of claim 13 , further comprising: user model comparison logic, executed by the processor for determining a similarity of the user model to a disparate user model of a second user; contact suggestion logic, executed by the processor, for suggesting the second user as a contact to the user based on the similarity of the user model to the disparate user model of the second user.
13. A computing device comprising: a processor; a storage medium for tangibly storing thereon program logic for execution by the processor, the program logic comprising: user request receiving logic, executed by the processor, for receiving a user request for content recommendations; user information receiving, executed by the processor, for receiving information regarding the user comprising at least a subset of content sources from which the user desires content recommendations; category selection providing logic, executed by the processor, for providing categories for selection by the user; category selection receiving logic, executed by the processor, for receiving category selections made by the user; aggregating logic, executed by the processor, for aggregating category vectors of respective categories selected by the user; generating logic, executed by the processor, for generating 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; recommendations providing logic, executed by the processor, for providing recommendations of content items to the user based on the user model; user model updating logic, executed by the processor, comprising: logic for monitoring, by the processor, the length of the user vector; logic for detecting via the monitoring, that the length of the user vector exceeds the maximum length; logic for changing the respective weights of at least a subset of the terms in response to user operations, logic for identifying 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, and logic for deleting the term with the respective weight below the lower bound from the list of terms; and recommendations updating logic, executed by the processor, for updating the recommendations provided to the user based on the deletion of the term.