20. The computer program product of claim 19 , wherein the computer readable program when executed on the computer causes the computer to: receive the content items; extract the features from the content items; determine relevancy of the features; and apply a weight to the features based on the relevancy to form weighted features.
19. A computer program product comprising a non-transitory computer useable medium including a computer readable program, wherein the computer readable program when executed on a computer causes the computer to: generate global scores for content items from heterogeneous data sources that are normalized for the heterogeneous data sources; receive user activities on a social network server for a user, the user activities relating to at least one of the content items; generate a log of the user activities for a content item by joining the user activities for the content item; expand attributes of the log by at least one of content and by the user based on aggregating responses from the user to features of the content items and profile data of the user and associating the features of the content items with the profile data; generate an expanded log based on expanding the attributes of the log; generate a model based on the expanded log; identify candidate items for the user based on the global scores for the content items; generate a stream of content comprising selected items based on the candidate items and the model; provide an explanation for why a selected item is included in the stream of content, the explanation including a user interest associated with the selected item; generate a feedback mechanism for display with the explanation; receive a user's rejection of the user interest through the feedback mechanism; train the model using the user's rejection to the user interest and the user's recent activity that identifies a recent interest for the user; and dynamically update the model based on training the model.