Recommendations
The providing recommendation pattern often involves features of the collecting information pattern. This is because providing recommendations is broken into two parts, which can loop on each other: collecting user preferences (input) and providing a recommendation (output). Recommendation systems are built to narrow a set of possible alternatives down to something the user is likely to like. Doing this can start with a recommendation that the user responds to (e.g. like or dislike), or it can start with collecting user preferences and then offering a recommendation.
The collection of user preferences tends to be either system driven or user driven. In a system driven approach, a bot would guide the interaction, asking a user for things like their shoe size, color, running style and more. In a user driven approach, a bot may ask the user to state their own preferences. In response, a user may say something like “I’d like some size 10 running shoes for women,” which the system then needs to process appropriately (which can be a challenge). Mixed-initiative approaches are a mix of bot-asked questions and user questions of the bot. Done well, this is probably the best. Many recommendation systems are one-shot, but multi-turn approaches where users can ask questions and give feedback can be more robust.
A good recommendation system requires not just dialog management, but also user modeling and knowledge elements. That is, the system needs a way to keep track of the user’s preferences, and to organize the set of recommendable items with their attributes. This discussion of the providing recommendations pattern will focus on the dialog side of things, but for it to work well it needs all three parts.
The channel can also affect how to implement a recommendation pattern. If you’re voice-only or text-only, then you have to work within those constraints. But situations of disambiguation work best with a mix of interfaces (e.g. NLP with buttons) (Narducci et al.). It is not always clear how much guidance a user wants, so offering flexibility and adaptability can help.
Last updated