1. A method of optimizing an output ranked list of recommended items given an input user, an input item list, and an input context, comprising: providing a multidimensional data set that comprises information of interactions from a plurality of users with a plurality of items and in a plurality of contexts; factorizing the multidimensional data set into a number of two-dimensional matrices, the number of two-dimensional matrices being equivalent to the number of dimensions that the multidimensional data set has; computing a mathematical recommendation model by optimizing an objective function over the two-dimensional matrices into which the multidimensional data set has been factorized, the recommendation model comprising a score value for each combination of user, item and context; and computing the output ranked list by applying the computed recommendation model to the input user, input item list and input context, wherein the recommendation model further comprises a ranked list of recommended items for each user and context, being each ranked list determined by sorting the scores of the plurality of items for each user and context; and wherein the objective function is a continuous function with infinite continuous derivatives that quantifies a relevance of the recommended items of each ranked list of the recommendation model, calculated over at least some of the plurality of users and over at least some of the plurality of contexts.
10. The method of claim 1 wherein the plurality of contexts comprise at least one context variable selected from a group comprising: time, date, season, location, activity, weather, emotional state, social network, user device, company and speed.