10. A system comprising: at least one memory configured to store a plurality of tuples, each tuple in the plurality of tuples corresponding to an item in a plurality of items, and at least one data structure encoding a preference graph to represent user preferences, wherein the user preferences comprise a plurality of first-order user preferences indicative of a user's preferences among items in the plurality of items, and at least one second-order user preference indicative of the user's preferences among first-order user preferences in the plurality of first-order user preferences; wherein the at least one second-order user preference is indicative of the user's preference among attributes of at least one item in the plurality of items; and at least one processor coupled to the at least one memory, the at least one processor configured to: calculate a ranking of at least one item in the plurality of items based, at least in part on, the at least one data structure encoding the preference graph that represents the user preferences; and identify and output at least a subset of the plurality of items to a user, in accordance with the ranking.
10. A system comprising: at least one memory configured to store a plurality of tuples, each tuple in the plurality of tuples corresponding to an item in a plurality of items, and at least one data structure encoding a preference graph to represent user preferences, wherein the user preferences comprise a plurality of first-order user preferences indicative of a user's preferences among items in the plurality of items, and at least one second-order user preference indicative of the user's preferences among first-order user preferences in the plurality of first-order user preferences; wherein the at least one second-order user preference is indicative of the user's preference among attributes of at least one item in the plurality of items; and at least one processor coupled to the at least one memory, the at least one processor configured to: calculate a ranking of at least one item in the plurality of items based, at least in part on, the at least one data structure encoding the preference graph that represents the user preferences; and identify and output at least a subset of the plurality of items to a user, in accordance with the ranking. 13. The system of claim 10 , wherein the at least one processor is further configured to: construct the preference graph based at least in part on the received user preferences, wherein the preference graph comprises a plurality of nodes, wherein each node in the plurality of nodes corresponds to an item in the plurality of items; and wherein the preference graph further comprises a plurality of edges, wherein each edge corresponds to a first-order user preference in the plurality of first-order user preferences, the first-order user preference indicating a user preference for one of the two items represented by nodes terminating the each edge.