Understanding chatbot platforms: which one for your business? (part 1/2)
What are chatbots and how are they used today ?
Chatbots, or conversational agents, are software programs that are able to carry on a conversation.
Be it extremely complex or extremely simple, textual or voiced, chitchatting or goal-oriented, there are several different properties that it can have.
Some popular examples are Amazon Alexa, Apple Siri or Google Assistant, yet, they are more and more used in a wider variety of applications every day. If you have used the Internet in the last year, you probably got in contact with chatbots more than once 😉.
In fact, Gartner predicted that: “By 2022, 70% of white-collar workers will interact with conversational platforms on a daily basis”, and in the industry, we can really see the trends going that way.
The very first chatbots (back in 1960’s) were completely rule-based: they analyzed the sentences and responded according to some predefined rules programmed by the developer.
Those bots required to be carefully designed in order to take into account every possible case of interest, and it was extremely time-consuming to do.
With today’s advances in Machine Learning (ML) and more particularly in Natural Language Processing (NLP), commercially used chatbots were enhanced with smarter capabilities: Natural Language Understanding (NLU).
To understand better how commercial chatbots are built, have a look at the diagram below:
You can see that a chatbot platform implements two main components: an NLU engine, which handles processing the input sentences (understanding, extracting information, storing context for later) and the Implemented Logic, which takes care of answering the appropriate answer according the case, most often requiring external information or being able to execute some actions, which can be done by making API calls. In fact, most successful chatbot companies implement way more than that, complete user interfaces or analytics modules for example, but we will keep it simple and focused on the chatbot part.
The NLU engine implements 3 sub-modules:
- Intent classification: its goal is to understand the intent behind a user’s sentence or query. It is using state-of-the-art ML models, which extract the sense of a sentence. It can be expressed as a regular classification problem, but most often, it uses pretrained language models which are very good at extracting the semantics of sentences. Those models are often trained on huge copora such as Wikipedia for example. When the developer creates a new intent, he/she gives examples of sentences that a user might say to express this intent. The pretrained model is then fine-tuned to match more specifically those intents. The use of machine learning in this component allows to avoid having to program explicitly all the possible cases (meaning all the possible different sentences), instead, giving a small number of real-case examples.
- Entities extraction: its goal is to extract useful information from sentences. For example: when a user says “Play Ed Sheeran on Spotify”, if the recognized intent is “Play a song on Spotify”, the chatbot still has to extract Ed Sheeran as the content to search on Spotify. This is called an entity. Once again, the entity extraction is performed by giving examples of sentences in which the entity appears, and flagging it. Chatbot platforms actually implement this as a mix of machine learning and regular expressions, as most of common entities have common structures (e.g.: dates, mail addresses, …).
- Context manager: this sub-module often seems to be encapsulated in other components but I feel like it is important to emphasize on it. It allows to keep a context of the conversation. In fact, it depends highly on the implemented logic as it consists in keeping some intents/entities or other information depending on them in memory. For example: a user saying “How much is it ?” can be recognized easily as an intent to know the cost of a product, but knowing how to answer to that will highly depend on the previous messages exchanged with the user, where the product was mentioned.
The most popular chatbot platforms: comparison
When we started evaluating chatbot solutions, it was almost impossible to miss the following solutions: Google Cloud DialogFlow, IBM Watson Assistant, AWS Lex and Nuance Nina. We did not take Microsoft Azure solution into account but it surely compares very well to the formers.
We actually gathered information about those solutions, tested them when it was possible and compared them on different aspects: features/functionalities, integrations and usability as well as viability and cost.
Features, integrations and usability
Actually, DialogFlow, Watson Assistant and Lex are chatbot microservices in a cloud environment: they do not really offer advanced features beside the basic chatbot working modules (intents, entities, context and implemented logic) as specialized chatbot solutions offer, such as Nina does.
This means: if you go and choose one of those cloud providers’ solutions, you most likely will need to spend more time designing and implementing or enhancing features. It is however important to note that DialogFlow offers generally more out-of-the-box integrations than Watson Assistant (e.g.: , even though those features might not be the most important ones depending on the application).
Depending on your roadmap, one or the other might be more suited. For example, when a unified cloud environment is designed, one might want to use a chatbot engine from the same cloud provider. However, if more of a “built” solution is needed with out-of-the-box features such as tools for analytics and design of conversations, Nuance Nina might be more suited.
One important point to take into account with AWS Lex: it is only available in English!
In AI and, obviously, also in NLP, Google has always been leading the R&D. Most of the current state-of-the-art technology and algorithms used in modern chatbots have been developed by or in collaboration with Google. This obviously has an impact on the results that their NLP engines can achieve and it, in some sense, a guarantee.
However, IBM Watson Assistant is not outdone as they have been on the market for several years as well, even breaking the news by winning the game Jeopardy! in 2011.
AWS is also a tough concurrent with Alexa and all the R&D it has needed.
Regarding Nuance, they have been present on the NLP market since 1992, with a continuous development of their product and solution portfolio. Their specialization in NLP makes them experts in the field.
It is worth noting that two different business models are commonly used for chatbots: pay-per-use as for Watson, Lex and DialogFlow (cloud providers with microservice pricing plan) and licensing (as Nuance Nina).
The detailed pricing are:
- Watson Assistant is free until 10K requests/month, then paid: 0,0025 $ per API request
- AWS Lex is free the 1st year, then paid: free first 10K request/month then 0,00075$ per request
- Google DialogFlow 0,002 $ per request for 600 requests per minute
- Nuance Nina has a personalized pricing based on the expected volume of conversation
In my opinion, choosing a chatbot platform goes far beyond choosing nice and adapted features. Every aspect of the choice should be taken into account.
On the tests that we carried on, most of the platforms finally offered the same capabilities. Even though some features are present on some platforms and not on others, everything is feasible and any feature can be implemented on top of a chatbot platform.
This is why you should make your choice, not only based on features, but a platform that is aligned with your business’ roadmap.