Search and Recommendation

Search and recommendation are very interrelated concepts.

What is search, but query-directed recommendation? Or recommendation, but zero-query search?

My students asked me about this relationship in my recommender systems class last spring. Trying to answer this question brought me to a formulation that seemed to help them, and perhaps it will be more broadly illuminating as well. For some of you this may well be old hat.


In information seeking, there are several things that may influence the suitability of an item. These include:

Further, most common recommendation and retrieval algorithms operate by first computing a score for each candidate item, and then ranking items by score. There are exceptions, of course, and many algorithms post-process either the score or the recommendation list (e.g. for diversification). But at the core of many algorithms is a scoring function:

\[ s(i;u,q,x): I \times U \times Q \times X \to \mathbb{R} \]

The purpose of this function is to score an item i for a user u who articulated a query q in context x. We could also envision a direct retrieval function \(r(u,q,x): U \times Q \times X \to I^n\).

Under this formulation, the difference between traditional recommendation, traditional search, and other retrieval settings is simply the variables taken into account when computing the scores. We can define several kinds of tasks:

We discussed this formulation in a couple different class sessions, and it seemed to click with students. I’m thinking that I’ll work it in more deeply next time I teach the class, perhaps even as the overall framing: our goal, students, is to study this function and different ways of computing it, assessing its effectiveness, and building it in to a user experience.