I host a meet up in Christchurch called AChristchurch Azure Evening Meetup and this week we had a two great presenters Akmal Fazleen and Aurora Lin from Jade Software talking about chat bots, Luis and Azure Machine Learning. The thing that was blew me away is that both the presenters were not "technical" people and weren't developers. Akmal is a business analyst and Aurora is a graduate intern and they spoke about their experiments building a chat bot that can help you buy insurance. This is the story of TOBi the chat bot.
Fitting the pieces together
I think one thing Microsoft is doing well with many of their recent cloud tools is making them at different levels of abstraction for different audiences and purposes. You can see this with the when you compare the more raw Bot Framework to the "as a service" Bot Service offering. You also see it with the choice between Flow, Logic Apps, Functions and WebJobs which are all basically automated and managed ways to run pieces of logic or code.
This is also how Akmal and Aurora and the rest of their team at Jade were able to develop their chat bot with very little coding.
What does the chat bot do?
The chat bot is a live and you could try out yourself but it's just for demo... Don't expect the insurance to payout! But basically the concept is that the bot is able to understand certain intents from you as the user and initiate dialogs that will result in collecting information and in purchasing life insurance. If you'd like to try the chat bot out then visit the blog post here on Jade's site.
How does it work?
What they have done is stitched together pieces that Microsoft provides you and its made up of three main parts.
LUIS (Language Understanding Intelligent Service)
LUIS is a service that is provided by Microsoft and it allows you to "train" it to understand certain phrases or words and figure out the intent behind them as well as associated information that you need from your user. The process of training is done using the LUIS user interface to add certain "Utterances" (sentences, phrases, words etc), "Intents" behind the utterances and "Entities" which represent associated data you are collecting from the utterances such as "topic" or "category" for example. Basically LUIS acts as your interpreter for your user's input and you can train it up to understand the needs of your user's and your business.
The user interface is simple and it requires no coding at all. One very cool feature is that it lets you look at phrases that have been received and you can continue to train the LUIS model based on the real input to your chat bot.
The Bot Framework
Bot Framework is made up of a service and web interface to register your bot and configure it as well as some libraries written, in a few different programming languages, that provide you a few easy ways to create your chat bot's conversations with your users. This does require a little bit of coding but a lot of the pain is taken out of it. Now there is even the Bot Service which is another layer on top that manages the deployment and the hosting of the dialogues and chat bot code. The bot framework also has integrations with LUIS so that means that you can easily wire up various dialogues in your chat bot with the requests to the LUIS service and get back the intents and entities that it can determine. Using all this the team from Jade were able to make a chat bot that can guide a user through the questions needed to purchase life insurance. But they didn't want to stop there... They wanted to add an Amazon style "people who bought this also bought this" type of recommendations after the user bought life insurance.
Azure Machine Learning
Azure Machine Learning is a great example of taking something that implementing yourself can be quite complex, time consuming or infeasible if you don't have the technical knowledge or time to learn it. Machine learning is an umbrella term that describes the various techniques and methods using statistical modeling to make predictions and decisions based on datasets. For example you could use a machine learning algorithm to take historic car action sales data and make predictions on the about the price a car might sell for.
What Microsoft have done is pulled together a selection of the most useful machine learning algorithms used in the world today and created an easy to use user interface to create and build machine learning models.
Using this the team at Jade was able to use a Two-Class Boosted Decision Tree algorithm to feed in data from a customer purchase database to create models that will help figure out what product to recommend to a user based on what they have just bought or have bought before.
What does this mean for the future?
The main thing that really excites me is the idea that more people can get involved in the "techy" things that all businesses are doing or beginning to do. Not only are things like Cognitive Services democratizing machine learning and A.I. but things like Azure Machine learning and LUIS are democratizing it outside of your usual technical audience. I'm looking forward to seeing more collaboration than ever between the business people in organizations and I.T. creating innovative solutions using the technologies.