1. A computer-implemented method for generating a stream of content for each of a plurality of channels, the method comprising: generating, with one or more processors, a model for a user comprising an interest of the user and prior interaction of the user with heterogeneous data sources; computing, with the one or more processors, an interestingness score for each content item received from the heterogeneous data sources by summing properties of each content item over single-attribute properties using the model and based upon interestingness of each content item to the user and an extent to which the content item's popularity has increased within a geographic area associated with the user; categorizing, with the one or more processors, content items received from the heterogeneous data sources by annotating each content item with a dynamic feature including the interestingness score; identifying, with the one or more processors, a first channel category for the user based on a historical trend and the prior interaction of the user with the heterogeneous data sources, the historical trend including a change in a number of content items categorized under the first channel category; receiving an input through a user interface specifying a second channel category; querying the content items based on the first channel category, the second channel category and at least one channel attribute; in response to the query, receiving candidate content items that include the first channel category, the second channel category and the at least one channel attribute and comparing the interestingness score for each candidate content item with a threshold for the first channel category and the second channel category to determine the candidate content items that have an interestingness score that exceeds the threshold; and generating the stream of content from the candidate content items that have an interestingness score that exceeds the threshold.