A method of identifying recommended media content items (C1...Cn) for a user associated with a local device for displaying content to the user, the method comprising, at the local device: a. accessing media content item tokens (F1...Fn) for respective media content items (C1...Cn) available to the user, wherein the media content item tokens (F1...Fn) each comprise a plurality of media content item attributes (A1...A5) having corresponding attribute values; b. accessing a user preference token (Tn) relating to the user, the user preference token (Tn) comprising a plurality of user preference attributes each relating to a respective one of the media content item attributes, and each user preference attribute comprising a set of affinity values corresponding to at least some of the possible attribute values of the corresponding media content item attribute; c. for at least some of the attributes of each of the media content item tokens, identifying a corresponding affinity value of the corresponding user preference attribute; d. for each media item token, combining the identified affinity values of the attributes to generate on overall affinity value for the corresponding media item; e. identifying the recommended media content items based on the corresponding overall affinity values; and f. presenting or storing the recommended media content items for consumption by the user, wherein the media content item attributes (A1...A5) include at least one consumption attribute having a value relating to consumption of the corresponding media content item (Cn), and wherein the at least one consumption attribute value is determined by clustering different users into user clusters based on similar consumption of a plurality of media content items (C1... Cn) including said corresponding media content item, and determining the at least one consumption attribute value from the cluster or clusters having the highest number of users that have consumed the corresponding media content item. a. accessing media content item tokens (F1...Fn) for respective media content items (C1...Cn) available to the user, wherein the media content item tokens (F1...Fn) each comprise a plurality of media content item attributes (A1...A5) having corresponding attribute values; b. accessing a user preference token (Tn) relating to the user, the user preference token (Tn) comprising a plurality of user preference attributes each relating to a respective one of the media content item attributes, and each user preference attribute comprising a set of affinity values corresponding to at least some of the possible attribute values of the corresponding media content item attribute; c. for at least some of the attributes of each of the media content item tokens, identifying a corresponding affinity value of the corresponding user preference attribute; d. for each media item token, combining the identified affinity values of the attributes to generate on overall affinity value for the corresponding media item; e. identifying the recommended media content items based on the corresponding overall affinity values; and f. presenting or storing the recommended media content items for consumption by the user, wherein the media content item attributes (A1...A5) include at least one consumption attribute having a value relating to consumption of the corresponding media content item (Cn), and wherein the at least one consumption attribute value is determined by clustering different users into user clusters based on similar consumption of a plurality of media content items (C1... Cn) including said corresponding media content item, and determining the at least one consumption attribute value from the cluster or clusters having the highest number of users that have consumed the corresponding media content item. wherein the media content item attributes (A1...A5) include at least one consumption attribute having a value relating to consumption of the corresponding media content item (Cn), and wherein the at least one consumption attribute value is determined by clustering different users into user clusters based on similar consumption of a plurality of media content items (C1... Cn) including said corresponding media content item, and determining the at least one consumption attribute value from the cluster or clusters having the highest number of users that have consumed the corresponding media content item.