Conversational User Interfaces
Some thoughts about how conversational user interfaces are likely to develop.
CUI could solve three big problems.
First, chat-tools (Whatsapp, Messenger, WeChat, Slack) can help mitigate the app-management problem. Like browsers were the “one PC app” through which users could access a diverse set of web services, chat-platforms could become the single gateway for accessing services from a mobile device.
Second, by providing a simpler and more familiar interface, will provide a gentler on-ramp for the next X billion users who will be experiencing online services users for the first time on their mobile devices.
Third, most current systems are geared towards one person completing one task. But these systems struggle when coordination is needed amongst many people to complete a task — e.g. project management, scheduling, reviews and approvals, community efforts, and three-party negotiations (real-estate, recruiting). In these areas, a conversational system can act as a “virtual secretary” to coordinate and push the work along.
Chat interfaces will evolve significantly. Most current chat UIs are a vertical 1-D sequence of alternating text-bubbles with a text input field - similar to early command line interfaces. Future chat interfaces will be far richer, with interactive cards, prompted actions, and a mixture of the “browse” paradigm and the “dialog” paradigm. These interfaces will need to be invented through trial and error. We will need to understand each of the use-cases deeper - first build custom interfaces for each use-case and then abstract out the common patterns into generic UX elements.
Humans + Bots = Hubots
There will be many use-cases that can be solved purely rule-based or AI-based bots — especially in the enterprise space. However, in the medium-term, there will be a big space for hubots — systems that leverage humans and bots in efficient ways of working together. For such hubot systems, we will need to design systems that leverage humans at the maximum efficiency possible. Instead of thinking of these as “AI assisting humans”, we should think of these as “Humans assisting AI”, because the end-goal should be to progressively reduce the human assistance that is needed. Hubot systems should be constructed in a way that every human intervention is used as a learning opportunity and improves the AI.
Discovery of chat apps
Once each user starts using/needing more than a dozen chat-apps, discovering and remembering the right chat-apps will become a key problem. This the problem that Google search solved for the web, and App stores solved for mobile. This is likely a problem that the chat platforms will solve, but just like IE/Netscape (browsers) let a Google sneak up - it might be that a new Chat-bot discovery system emerges on top of multiple chat platforms.
Chat interfaces will largely be “prompted” — prompting users to click on suggested options. However, there will be many use-cases where the user expresses their intent in more unstructured ways. For chat interfaces to work well, this interface has to be “robust” — with a lot of room for user-input variation and high success-rate in understanding user intent. This will require a new field in “dialog-programming” to emerge, which will be very different from current programming — likely a mix of rule-based systems and machine learning. A key aspect of these languages will be the ability to be self-improving and the ability to wiggle through unspecified control flows. The initial versions of these languages (AIML, Watson Dialog) are static and constrained (like early HTML, before CSS and JS )— but efforts like ChatScript and SuperScript will make things more dynamic.
Doman specificity and composition
Being specific to a domain will be the key to achieve initial successes in this area. This will help constrain the problem (vocabulary, ontology, dialog rules). Later, platforms and tools will emerge to make these solutions more domain agnostic. This requires some new models of product composition to emerge — just like software can be built by leveraging other open-source packages, we will need to be able to import dialog modules for greeting users, for general chit-chat (how are you, i like you etc.), and so on. Building a domain-specific bot then becomes a lot easier.