Computing has advanced significantly in the past ten years, and for most of us, it’s going to get even bigger in our lifetime. Machine Learning and Artificial Intelligence have attributed a lot to recent advances in computing. It’s kind of amazing to throwback to the days of feature phones and computers being dumb with limited processing and hardware which we’ve almost discarded. On one end of the spectrum we have such legacy devices and systems almost approaching extinction and then we have devices and services like Microsoft’s Holo Lens and Amazon Alexa giving us a peek into what the future beholds.
One of the recent feats of AI has been context aware assistant software and bots. Companies like Google, Apple, Microsoft, and others have contributed a lot towards making their homegrown version of what we consider smart assistants, more human-like.
The History of AI and Smart Assistants
Now, it’s critical to examine what has exactly happened in this field and how we’ve come along to use this technology like it’s no big deal. Back in the days when Apple launched Siri, smart assistants weren’t really a thing, and the only time you heard the word “bot”, you could be certain it had something to do with actual physical hardware robots. The way in which we as users, were able to interact with these assistants was sort of one way. When I say one way, it means that these assistants or bots (if there were any at the time) used pre-programmed replies to certain hot words or questions to respond to the user’s queries.
The problem with this approach was that it got repetitive, pretty quickly. This one reason was big enough in itself to attribute to the fact that no one found assistants useful, and they quickly became just a gimmick instead of becoming a useful feature.
As Apple (in those days) was the pioneer in technology, every other company tried to get on the bandwagon and build their own offering and so we saw Samsung release S Voice on their Galaxy devices and many others which just withered away with time.
What can be considered to be a pivotal moment in the advancement of smart assistants was when Google got into the game and decided to give this whole smart assistant a shot. If you have even the slightest idea of how much data Google has been sitting on, you won’t deny that Google had the best shot at doing it right. Google Now was the first time smart assistant looked something like we could use on a daily basis. The sheer amount of data that Google threw in to train the system made the whole experience feel natural. With recent advances in the field of Machine Learning and specifically Neural Networks, we’ve definitely reached an inflection point, with systems getting capable of performing tasks at human level accuracy. This is the biggest reasons why today you can have a two-way, context-aware conversation with the assistant. And this is the primary reason why bots and assistants have started becoming useful. (Special shout out to Microsoft for showing what AI is capable of my creating the bot called Tay!)
While Siri and Google Now, as smart assistants have been in the game for only a small amount of time (considering that they were launched only in 2012), IBM was already quite ahead of the curve in the AI sector. The company has research and innovations backing its 40+ years worth of work in this field. This is one key factor which determined its victory in Jeopardy 2011 (before any smart assistants existed).
What is Jeopardy?
Jeopardy is an American television game show created by Merv Griffin. The show features a quiz competition in which contestants are presented with general knowledge clues in the form of answers, and must phrase their responses in the form of questions, read more here. While you may think it was just another quiz show, here’s the deal with Jeopardy, understanding the question in itself is a big deal, let alone figuring out the answer. This alone makes Watson one of the smartest machines ever built.
Another testament to IBM’s innovation is when IBM’s Deep Blue system defeated the then world chess champion, Garry Kasparov back in 1997. While the defeat of Lee Sedol at the game of Go drew more attention, the innovation in this field started way back in 1997 after Deep Blue’s defeat.
Today we have companies like IBM, Microsoft, and Facebook investing a lot on platforms which allow you to build bots without a great deal of expertise required. Now before we even get to how you can build one, it’s trivial to ask why you would want build one in the first place.
If you see a little closer, you’ll find a ton of situations where bots can not only be assistive but exceed the efficiency in which a human can accomplish a task. A few of those examples would be customer support, healthcare (you need to check out how IBM Watson is helping doctors and medical professionals in cancer research. Visit this link for more on that) and e-commerce extensions. The scale at which major companies are operating and the sheer amount of data they’re sitting on, it will not only help scale their businesses more but would also offer richer and more engaging experiences for their consumers.
In this post, we’ll look at how easy it is for someone with absolutely no programming knowledge, to create a bot which is smart and contextual using IBM’s Watson Conversation Service(WCS).
What’s this Watson you Ask?
Well, Watson is IBM’s supercomputer which makes use of AI and analytics software to create a question answering system which is optimized for performance. Watson is capable of processing at a rate of 80 teraflops per second. To reach the human level accuracy while processing queries and giving out answers, Watson accesses over 90 servers with a combined data store of 200 million pages of information. It was named after the first CEO of IBM (not the one from Sherlock Holmes you literature nerds!). It’s worth noting that while we are focusing more on the Watson Conversation Services in this article, Watson isn’t just limited to this one task. Watson is capable of processing information more like a “smart human” than a computer, which means it is capable of contextual analysis of the given data. The system is so advanced that it is capable of determining if data is structured or unstructured, it knows that data is not created equal. Apart from contextual analysis, it is also capable of differentiating between different types of information. It is also capable of reading, analyzing and learning from natural language, just like humans. It’s a very sophisticated system and we can’t go on about all of its capabilities but the ones listed above are more than sufficient to put it ahead of any other system currently operational, because Watson has learned and evolved with time and now IBM is allowing you, the developers to tap into its features to power your application and services.
Watson Conversation Service
Watson Conversation Service sits on top of IBM’s Bluemix Cloud and allows you to create interfaces for popular clients like Slack and Facebook Messenger to be used by users to get to what they want in a simple way. (Indeed conversational interfaces would be replacing visual interfaces in future!).
Watson Conversation Service is so advanced and so well laid out that you can have your chatbot up and running in less than 10 minutes and this is not me saying it, it’s what IBM claims. Its simplicity of use makes it a great toolkit for any developer’s arsenal. Imagine how smart your next app or service can get with the integration of such intelligence and the best part about it is that there’s absolutely no machine learning experience required.
Before you start building out a chatbot, you need to understand a few key things about how Watson works. Watson makes use of 3 key things:
An intent is a group of example that a user might say to communicate a specific goal or idea. In simpler words, an Intent is a broad description of a task that a user may want to perform.
Entity, on the other hand, allows the application and the service to decide at a more lower /granular level what exactly is it that the user wishes to do. Entities are Watson’s way of handling significant ways to handle users input. It’s used to clarify the intents and allow a different response for each case.
Lastly, a dialog is what ties intents and entities. It enables a bot to recognize intents and entities to respond to the user’s queries. Dialogs are used to ask clarifying questions if the provided information isn’t sufficient or guide users through more elaborate processes.
Using just the knowledge I imparted on you above, you can easily use IBM’sweb tooling to create a chat bot that responds to your questions. The only requirement is that you need to have an IBM Bluemix account. Apart from that, everything is fairly straightforward. You can go signup for a Bluemix account on this link.
There are plenty of guides and videos available online for you to get started, not to mention that IBM’s documentation is pretty self-sufficient for getting started. Considering the fact that, Bluemix is free for a 30-day trial, you should wait around, instead just get your hands dirty.
There’s a blog by IBM on building chatbots which is particularly helpful, head over to this link to have a look at that. As a helpful resource, IBM has also made a walkthrough video which is embedded below, you can use that as a reference for a detailed overview.
Also, IBM is hosting 2 CrowdChats and a Facebook Live Session for developers interested in building things with Watson. I highly encourage you to register for them via the links given below.
- Crowdchat 02 – http://ibm.co/2jgrrq9 (13th February 2017)
- Facebook Live – http://ibm.co/2jo6rM1 (16th February 2017)
In case you need a quick walkthrough here’s a video that will teach you to build your own bot in under 6 minutes.
Lastly, for any further details and to check out the development of Watson, you can check out their GitHub page on this link.
The pace at which technology is advancing, it’s extremely evident that smart assistants and bots will power the next generation of services while hardware and even software take the back seat. Users will be able to directly engage with the services in the most natural way possible. In the time when IBM is experimenting with offerings like Bluemix and Watson Conversation Service, the only bottleneck that the companies will face in developing these experiences will be the lack of talent. So you should clearly give AI and Machine Learning a harder look as a possible career prospect.