What is a Chatbot?

A Chat bot is a computer programme that mimic conversation with people using artificial intelligence.

They can transform the way you interact with the internet from a series of self-initiated tasks to a quasi-conversation.

Source

What are the benefits ?

In devising our initial key requirements to solve the most crucial problems that client currently face, we first research on the benefits of chatbots. We analysed the driving factors for the relevant benefits and used them as a guide for our requirements and use cases.

Chatbots now presents great opportunities for businesses. A chatbot is the medium in which users can access all sorts of services, and is now highly enabled with the development in Artificial Intelligence. Businesses want to focus their resources on targeting users where they are at.

A study by BI Intelligence shows that people are now using messaging apps more than social networks. There are 4 main benefits for NET-A-PORTER:


  • More personalised marketing and sales

    A chatbot is a way to make your online website stand out through personalised marketing and sales. E-commerce is a highly competitive business. A typical customer’s entire user experience from our client is on the NET-A-PORTER website. A well developed and usable chatbot will make NET-A-PORTER more memorable amongst customers. Insights derived from permitted use of customer data will also allow thoughtful and timely product recommendations that will seek to improve customer loyalty, which is an crucial factor for successful e-commerce businesses.

  • Fully scalable customer service

    NET-A-PORTER has 24 million monthly unique visitors worldwide with customers in over 180 countries. It was mentioned in our problem and solution analysis that an assistance chat is currently deployed. However, it is outsourced to a 3rd party company with real human customer service staff. Our client feedback was that this assistance chat is not always available on the website and there is no analysis of customer queries to better solve future customer service problems. The key points deficiencies of our client’s existing solution are that it is not immediately available to everyone, has a very low limit of handling concurrent customer queries and provides little enhancement to improve future customer service. A chatbot is a fully scalable to provide customer service to all users who visit the website. It can be programmed to scale and handle large amounts of customers queries simultaneously. As it is fully automated, it will provide a consistent and predictable user experience that our client can work with. The customer queries can be also be analysed internally within the company to work out the current deficiencies in service.

  • Better navigational experiences

    For a customer that visits NET-A-PORTER, whether she is a first-time visiter or part of the loyal following, it is clear that she either knows what she wants or she does not know what she wants. I know that this is obvious but so should the website navigation. For a customer who does not know she exactly wants, she has to click through filters after filters to zoom on to exactly she might want. Likewise, a customer is who clear on she wants to buy also has to go through the painstaking process on clicking link after link to get to the page. A chatbot can provide better navigational experiences. It can provide the exact link to the desired page through a simple line of text specifying where a customer wants to navigate to. It is more natural and seamless process compared to traditional website navigation.

  • Reducing the costs of coordination and complexity

    A customer’s query can be varied in form and function. In terms of function, it can be about delivery dates, return policies, product recommendations (based on a myriad of considerations such as price, colour, etc.) and the list goes on and on. In terms of form, it can be about languages, accents, timing (timezone differences), etc. A chatbot can work through the complexity of the customer’s query and provide clear and unambiguous responses to the customer. It is a sustainable and cost-effective solution as compared to a 24/7 fully dedicated customer service response team.
Source

Components and Technologies required to build a chatbot

For our team to have an overview of our project, we delved into the components and technologies required to build a chatbot. This is part of our research before the client meeting. Although some research was not necessarily relevant after our client meeting, the research area for each component was broad and allowed us to fully explore our options. From our research, there are 4 main components of a chatbot: Graphical User Interface (GUI), Deployment Channel, Understanding User Input and Information Analysis and Processing.

  • Graphical User Interface (GUI)

    The GUI is a vital component to chatbots because it is the only component that the user will see. No matter how good the backend programming is, unless the GUI is aesthetically pleasing, interactive, and well-organised, it will have limited usability. It is even more relevant in our case as NET-A-PORTER is a fashion e-commerce company. The customer-facing elements of chatbot definitely needs be aligned with the company’s design goals. Our team plans to work closely on validating the look and feel of our GUI with our client and will use the NET-A-PORTER website design theme after a reference.

  • Deployment Channel

    A deployment channel is the way the chatbot is going to be delivered to users, i.e. the platform from which user can access the chatbot. The main deployment channels that we have researched are Web, Mobile and popular messaging apps such as Facebook Messenger, WhatsApp, Slack and Skype. The Web and Mobile deployment channel was our team’s instinctive choice as we wanted to maximise user engagement on NET-A-PORTER. As compared to messaging apps, this means that we have to customise a solution to be integrated to NAP. However, this was not an obstacle since our project was specially tied to NAP and therefore the information input and output will be specific yet relevant. We did not prefer popular messaging apps such as those mentioned above as the user is on a 3rd party platform. We thought that it does not create any novelty and brand recognition amongst its consumers, i.e. it will not seem different from another chatbot by its competitors.

  • Understanding User Input

    Our team knows that this is the most technically challenging component of the chatbot: to accurately understanding what the user’s is asking. The technology that enable it is Natural Language Processing (NLP). It is one of the core research area of computer science. However, through our conversations with our client, we know that it is impossible to devise our own NLP implementation in the short period of time for our project (researchers work on NLP for 15-20 years to develop the core algorithms). We will therefore look into existing platforms and libraries that abstracts away the NLP analysis component. We will instead focus on the business insights and information processing component of our chatbot (knowing what the kind of questions that customers ask and giving the most appropriate response).

  • Information Analysis and Processing

    Our team be mainly focusing on this component of the chatbot as the majority of development time for a chatbot will be spent on backend programming. This component requires getting the query intent and entities and converting them to an appropriate response. These responses will involve API calls to NET-A-PORTER’s database to fetch company/product information. This component determines the relevance of our chatbot to handle customer service and will be a key metric to the success of our project.
Source 1 2 3

Natural Language

After researching on the components of a chatbot, we realised that we needed to abstract away the NLP component of a chatbot. We therefore looked into a few widely used NLP APIs.

The mentioned NLP APIs researched are Api.ai, Wit.ai, Luis.ai and IBM Watson’s AlchemyLanguage, amongst many others. These former 3 APIs are the most popular and widely used NLP APIs and have since been acquired by technology giants - api.ai acquired by Google, Wit.ai acquired by Facebook and Luis.ai acquired by Microsoft.

In our research, we were concerned with a few things such as pricing, effectiveness and sustainability.

Our research found out that the mentioned APIs are either completely free to use, or free to use on a “basic” plan with limitations on features. Therefore we had no issues with pricing.

These APIs are also very similar in effectiveness as all of them offered similar features and support. For example, all of them uses machine learning, integrates with web, mobile, messaging platforms, and supports cross-platform developments using most of the mainstream programming languages.

In terms of sustainability, we had the concern where support for some APIs might cease as chatbots are only recently becoming popular and there are many competing NLP APIs in the market. Our solution for our client must be long-term and losing support for the NLP component will break the product.

Overall, we preferred Api.ai the most as it was already widely used even before the acquisition by Google and the documentation for the library was very extensive and easy to follow.

However, we ended up choosing the AlchemyLanguage as NET-A-PORTER has an enterprise partnership with IBM. Our client confirmed that we are able to have access to the IBM team regarding the use of IBM Watson’s suite of products. Therefore, we value our client’s long-term goals and the additional support from the NET-A-PORTER’s IBM team will be very helpful throughout our development process in term 2.

Source 1 2 3 4 5 6

Bot Platforms

After our research on NLP APIs, we noticed that some NLP APIs are integrated into what are called bot platforms.

A Bot Platform is a full end to end service for developers to build, deploy and manage chatbots. Examples of popular bot platforms include IBM Watson Conversation, Microsoft Bot, Facebook Bot, PandoraBot, ChatScript, Robot.me, Imperson, Gupshup and Meya.

Our team found that there were many similarities between the main NLP APIs and bot platforms. This is because the main NLP APIs are the backbone of popular bot platforms - Watson Conversation (AlchemyLanguage), Microsoft Bot (Luis.ai), Facebook Bot (Wit.ai). We also considered the separate use of the NLP APIs mentioned, instead of employing the bot platforms. However, we found little reasons to do so as many of the bot platforms not platform-specific and allows deployment to many channels.

We had similar determining factors with Bot Platforms as with NLP APIs, which was long term support and product documentation. The most promising were platforms from IBM and Microsoft (Facebook Bot only allows deployment to its Messenger app). We realised that the distinguishing factor between NLP APIs and Bot Platforms is the provision of a target user base.

In the end, we decided to use IBM Watson Conversation as a platform for our chatbot as our main deployment channels were web and mobile. We did not want to use a bot platform which has a messaging app counterpart, such as Microsoft (Skype). We were concerned that potential strategic decisions might restrict the deployment of chatbots to other channels. Lastly, it was also to align with the AlchemyLanguage NLP API decision as it is built into the Watson Conversation platform.

Source 1 2 3 4 5

Medium of Input and Output - Speech vs Text

As we have decided to use IBM Watson’s suite products, it includes services for speech-to-text and text-to-speech. We looked at the benefits of its implementation.

One of our issues with the chatbot was the way the user gives the input of a query and how the chatbot outputs the response. We wanted to find a simple and seamless mode of input and output when users experience the chatbot. With the popularity of Voice Assistants such as Siri, Cortona and Alexa, we naturally thought of speech-to-text for the input and text-to-speech for the output, as compared to the traditional text.

The main advantage is that the user do not have to be physically linked to a computer (web) or be looking down at the phone (mobile). However, while text-to-speech is a nice feature to include, NET-A-PORTER is mostly about its physical products such as dresses and shoes, which require the use of sight to appreciate. Therefore, speech will have a limited functionality on the output of responses, where physically looking at the chatbot response will be more useful as it will include pictures or videos.

We concluded that we will include speech-to-text in the input implementation, as it gives a better user experience to be able to navigate the site and use the chatbot simultaneously. However, this is dependant on the availability of time and our development progress as it does not constitute as part of the minimum viable product.

Source 1 2

Single Command vs Conversational

The methodology in which users interact with the chatbot.

The single command chatbot methodology is a single-way conversation. This means that the chatbot will only produce an output response when a user inputs a query. The output response will serve to answer the user’s input query and is often implemented as a 1-1 query-response format. This approach is common in rule-based chatbots (discussed more in another research section).

The Conversational chatbot methodology is a two-way conversation. The chatbot actively engages the user regardless of whether an input query was initiated. It will analyse previous user inputs and it’s responses within the conversation to provide prompts and follow-ups. For example, if the chatbot provides product recommendations in response to a user query, the chatbot will initiate a follow-up to the conversation if the user did not open and view the product recommended in its response.

While the single command method is easier to implement and gives a higher certainly in the output of the chatbot, our team thought that it will be too rigid and less beneficial. On the other hand, the conversational method will give a more human feel and provide the personalisation aspect, where product recommendations are given without being explicitly requested and follow-up prompts and responses better guide the user towards making an informed purchase.

Source

Rule-based vs Machine Learning

The methodology in which conversations are structured in a chatbot. There are two types of chatbots, the rules-based chatbot and the more advanced version that uses machine learning.

The rules-based chatbot involves hand-writing rules for the system, where the developer hard-codes the type of queries that might arise through the use of pattern matching. This type of chatbot is very limited in its scope as it can only respond to very specific queries. A programmed response to “Show me a red dress” might not work for “I would like to see a red dress”. Therefore the chatbot is only as smart as it is programmed to be. A popular way to develop such chatbots is to use the Artificial Intelligence Markup Language (AIML).

The machine learning chatbot involves the use of natural processing to classify queries into Intents and Entities. An intent is a purpose or goal expressed in a user input, such as product recommendation or track delivery. An entity is a description that is classified under the intent to provide more information. For example, “dress” and “price” are entities for recommending products and “time” and “location” are entities for tracking delivery. By recognising the intents and entities expressed in a customer’s input, the chatbot can process the information and provide an appropriate response. The machine learning aspect is that the chatbots will learn to recognise and group unfamiliar sentences into intents and entities, given a sufficient set of sample data. This allows the chatbot to be smarter over time and process information that might be structured differently, but mean the same thing.

It is clear that our team decided with the machine learning approach to develop our chatbot. The rules-based approach is simpler to implement and provides a high predictability in responses. However, it requires too much maintenance for an e-commerce company like NET-A-PORTER, where new products and features are regularly added, and is not able to handle the myriads way at which a query can be asked, dampening the user experience. The machine learning approach is much more maintainable through the classification system of intents and entities. We also do not have to worry about the language structure of a user query as the NLP will handle it and instead focus on what types of questions users will ask and what are the keywords to represent the types of questions.

Source 1 2 3

Pre-trained Models vs a Self-trained Model

As the chatbot platforms seek to increase popularity amongst developers, it introduced the idea of pre-trained models (similar to libraries in programming languages) to speed up the development process.

There are currently pre-trained models that are supported by individual chatbot platforms that leverage pre-defined knowledge to handle common questions such as weather, calculator and times and dates. These models are encapsulated in its domain and therefore able to be integrated into a larger chatbot structure. Using such models accelerate the development process as we do not have to reinvent the wheel.

A self-trained model involves defining your own intents and entities, having to craft and manage dialogs. This provides a customised conversation experience and is required for unique applications.

For our purposes, our client recommended that we do not include pre-trained models as part of our chatbot as they wanted us to focus on queries that are specific to NET-A-PORTER. A self-trained model is a necessity as there are obviously no open knowledge base that cater to NET-A-PORTER. However, we are keeping our options open as pre-trained models can be easily integrated into our self-train model.

Source 1 2