  This research proposes a new recommender system algorithm for online grocery
shopping. The algorithm is based on the perspective that, since the grocery
items are usually bought in bulk, a grocery recommender system should be
capable of recommending the items in bulk. The algorithm figures out the
possible dishes a user may cook based on the items added to the basket and
recommends the ingredients accordingly. Our algorithm does not depend on the
user ratings. Customers usually do not have the patience to rate the groceries
they purchase. Therefore, algorithms that are not dependent on user ratings
need to be designed. Instead of using a brute force search, this algorithm
limits the search space to a set of only a few probably food categories. Each
food category consists of several food subcategories. For example, "fried rice"
and "biryani" are food subcategories that belong to the food category "rice".
For each food category, items are ranked according to how well they can
differentiate a food subcategory. To each food subcategory in the activated
search space, this algorithm attaches a score. The score is calculated based on
the rank of the items added to the basket. Once the score exceeds a threshold
value, its corresponding subcategory gets activated. The algorithm then uses a
basket-to-recipe similarity measure to identify the best recipe matches within
the activated subcategories only. This reduces the search space to a great
extent. We may argue that this algorithm is similar to the content-based
recommender system in some sense, but it does not suffer from the limitations
like limited content, over-specialization, or the new user problem.
