1. A method of optimizing an output ranked list ( 5 ) of recommended items given an input user, an input item list, and an input context, comprising: providing a multidimensional data set ( 2 ) that comprises information of interactions from a plurality of users ( 6 ) with a plurality of items ( 7 ) and in a plurality of contexts (B); computing a mathematical recommendation model ( 3 ) by optimizing an objective function over the multidimensional data set ( 2 ), the recommendation model comprising a score value for each combination of user, item and context; and computing the output ranked list ( 5 ) by applying the computed recommendation model to the input user, input item list and input context; wherein that the recommendation model ( 3 ) 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 ( 7 ) for each user and context; and in that the objective function is a smooth function that quantifies a relevance of the recommended items of each ranked list of the recommendation model ( 3 ), calculated over at least some of the plurality of users ( 6 ) and over at least some of the plurality of contexts ( 8 ).