Chatbots & Natural Language Processing: A Reality Check
Chatbot is a computer program powered by a Set of Rules or by Artificial Intelligence, which conducts a conversation in natural language via auditory or textual methods, understands the intent of user, and tries to send an appropriate response. A chatbot that relies on rules can only accept a limited number of inquiry types, and can only respond in limited ways. A chatbot that uses “Artificial Intelligence“ employs sophisticated algorithms, such as Natural Language Processing, to handle user requests.
Currently, 43 percent of the chatbot market is devoted to customer service experiences. From handling customer complaints to standardized requests like adding or canceling a service, chatbots take over and add an element of guided self-service to customer interactions. Now, increasingly sophisticated chatbots are also making their way into the marketing landscape. Messaging apps are the new paradigm that consumers use to communicate. Messaging apps boast a staggering 5 billion active monthly users, and these apps are out performing social media. Connecting with consumers through their preferred lines of communication has always been a top marketing goal and chatbots are making that easier and more personalized than ever.
The difficulty in building a chatbot is less a technical one and more an issue of user experience. Users quickly abandon sites that employ chatbots that provide an awkward and difficult user experience. As chatbots get more complex, and start being more lifelike, the one-size-fits-all approach starts not being viable. When choosing a chatbot vendor today or implementing your own chatbot, it is important to make sure that the chatbot you use will learn from its past experiences. Automation is a great way to save on costs while improving efficiency and productivity, and this extends into all areas of business. Chatbots simply offer one way to help automate some of the most basic marketing activities.
A major component to the success of a chatbot lies less in its ability to deliver the builders' message, and more on its ability to “listen” and deliver the message the customer needs.
As on date, Chatbots still have not succeeded to execute all kinds of interactions that are currently being performed by humans related to online business. Even the most advanced chatbot abilities will be limited by the pertaining models since they are not capable of cognitive perception. We still await some revolutionary highly skilled AI to come up.
Below are the reasons why Natural Language Processing is way harder than we perceive and is causing major setbacks in the Chatbot success stories:
1. Knowledge of the world is still difficult for computers to acquire As humans, we can use our intuitions to make logical leaps, to understand what somebody is saying even if they do not explicitly tell us some of the information necessary to understand them. A computer does not have that kind of intuition, and it will never have unless it starts to experience the life outside of the texts it has been provided with.
2. It is hard to understand whether two sentences or two concepts are equal For any given idea, we can write infinitely many sentences that roughly define the same idea. Unless what you are describing has a very specific definition, it is likely that the way you describe something is the first time somebody has defined it that exact way. This creates a problem for NLP applications, as they will never have enough data to cover all the ways in which things can be defined. No amount of data will solve this problem.
3. Optimizing the Wrong Metrics In Machine Learning research, we try to make models that generalize to as many problems as possible. One of the key aspects of Machine Learning models is the objective (loss) function. That function defines what you are optimizing for, what the training wants to achieve. As we have mentioned before, these objective functions are generally very general. They also generally have some mathematical properties to make sure that common learning algorithms work well with them. The main problem is that you usually cannot use the exact objective function you want. There are two reasons for this: either the function you want does not have the mathematical properties necessary to work well with the existing Machine Learning ecosystem, or it is very hard to train. We therefore try to transform our problem to a more commonly used one. We might, for example, try to train a chatbot by optimizing it for guessing the next word in a sentence correctly, given the previous sentence and the current sentence. Although you can sometimes construct objective functions that aim to optimize for some metric at the expense of others, these can only be verified after the training is done.
A chatbot that is very good at predicting the next word might struggle if the questions are given with a different phrasing than it has been trained on, producing grammatically correct but wrong answers. An even bigger problem is that we don’t exactly know what metrics we want to optimize. It is great if we can have a chatbot that gives correct answers 99% of the time. But that does not say how it gives out those answers, and whether there is a trend in the remaining 1%.
4. The Human Bias As we are dealing with natural languages, the data you use is ultimately generated by humans. Since it is hard to gather a lot of data, we prefer to use representations of words that have been previously computed using large datasets, and use our own data to fine-tune those representations. Common choices include Wikipedia, Twitter, Common Crawl (most frequently visited websites), and Google News. The thing you have to keep in mind is that your chatbot will carry the characteristics of the underlying text data. That is generally desirable, as it makes your chatbot more human-like, but your chatbot also adopts the biases (large and small) that the people who wrote parts of your data carry.