1. A method for recommending content items, the method comprising: determining a plurality of accessed content items associated with a user, wherein each of a plurality of content items is associated with a plurality of topics; determining the plurality of topics associated with each of the plurality of accessed content items; generating a model of user interests based on the plurality of topics, wherein the model implements a machine learning technique to determine a plurality of weights for assigning to each of the plurality of topics and wherein the model of user interests is generated by: retrieving a user interest profile that includes the plurality of topics associated with the plurality of content items accessed by the user and a plurality of other user interest profiles; generating a decision tree, wherein a portion of the decision tree identifies which of the plurality of other user interest profiles are similar to the user interest profile; determining a subset of the plurality of topics corresponding to the user interest profile and the similar user interest profiles in the portion of the decision tree; determining a conjunction that models interaction between the subset of the plurality of topics and the plurality of content items; applying the model to determine, for the plurality of content items, a probability that the user watches a content item of the plurality of content items; ranking the plurality of content items based on the determined probability; and selecting a subset of the plurality of content items to recommend to the user based on the ranked plurality of content items.