1. A method of ranking articles comprising: extracting user attributes from a static user profile, wherein there are one or more user attributes for each of one or more users; extracting content features from a content profile, wherein there are one or more content features for each of one or more articles, and wherein one or more content features are dynamically updated; forming an interest model, wherein the interest model comprises: the user attributes; the content features; and interest values, wherein there is one interest value associated with each combination of one of the one or more user attributes and one of the one or more content features; optimizing the interest model to form an optimized interest model by varying the interest values; and returning a ranking of articles based on the optimized interest model.