Skip to main content
Bots are nothing new. Most bots, or virtual assistants, use simple, rule-based logic and are fairly easy to implement: create a set of rules and corresponding set of actions to deliver certain results to the user. For example, using marketing automation you can set up automatic emails to be sent out as leads enter your system. This rule-based approach is quite common in digital marketing, search engine optimization, customer support, etc. But what if you wanted your virtual assistant to process more complex queries and learn from available data? This is where machine learning can help.Pattern Recognition: Algorithm Based vs. Rules BasedWe see and use machine learning almost everywhere: product recommendations (Amazon), content recommendation (Facebook), personal assistants (Apple’s Siri and Amazon’s Alexa) just to name a few. What differentiates the machine learning approach from the rule-based one is pattern identification and matching--which is algorithm based. At its core machine learning uses pattern identification to drive product and content recommendations (based on previously viewed content or other behaviors), provide driving directions (based on weather and traffic data), and perform certain tasks based on your location/proximity. Thanks to cloud computing and big data, more patterns can be recorded, identified, and analyzed. The faster the pattern can be recognized and processed, the more intelligent the system becomes. In healthcare, machine learning is being used to search vast amounts of data, such as pathology reports, and extract useful clinical information at a large scale. This data can then be processed and analyzed to help create better patient outcomes [6].New Technologies Open Doors to Highly Targeted ExperiencesIt's also possible to deliver a highly personalized user experience using cloud computing and machine learning. Technologies, such as  IBM Watson Personality Insights Service [5], are being used to analyze and connect many facets of information about a person's social media entries, blog posts, etc., and provide a profile of that user’s personal attributes. The service can automatically infer, from potentially noisy social media, portraits of individuals that reflect their personality characteristics. The service can also determine individuals' consumption preferences, which indicate their likelihood to prefer various products, services, and activities.Machine Learning and the Age of BotsMachine learning can also help information systems serve better, more accurate information to the users. You could, for example, tune the search engine on your site using a machine learning library, such as Apache SparkML, to provide better results that learn from past users’ search queries. The library allows developers to create models that can then be trained based on user queries, interactions with the site, and content rankings (e.g. search engine score) to identify patterns. Based on this information the site then creates the best outcome for the user given the query and pattern recognition. Bots rely on machine learning to understand user intent and provide the best answer based on user history and other available data. An untrained instance of a bot starts off with no knowledge of how to communicate back to the user, but with the help of machine learning the bot can record and analyze user response in relation to the input and pick the best responses (based on the same or similar question) from the available responses in the library. By asking questions, the bot learns, enhances its response library, and starts building patterns. A common way to build such systems is to use a system called seq2seq [4], which is essentially a computer model that contains an encoder (process user input) and a decoder (generates output). Such system can predict the probability of the next words or sentences given the current context. This can be useful for building systems such as translation services, customer service, lookup tools, etc.Bots are Doing Real Work In the WorkplaceToday, bots are being used as time saving assistants for basic, yet very time consuming tasks, such as scheduling meetings. The bot can instantaneously scour through many schedules to find optimal meeting times for multiple parties. A service called Clara helps recruiters schedule meetings with their prospective clients simply by CC-ing the bot in an email [2]. Bots are also being used to help automate IT tasks. For example, Netflix recently released HubCommander - a bot that helps their IT folks with source control administration [1]. Netflix developers issue commands to the bot using Slack (a team collaboration tool) to perform certain IT tasks and help users with the setup of their source control project. The bot can create source code repositories and assign privileges to the right users based on predefined rules and machine learning. This not only saves time for the IT administrators but also enhances security since only the bot has access to the underlying GitHub API that can create repositories and assign user permissions. At Primacy, we use bots to integrate with other systems and automate mundane tasks. For example, through Slack our QA team can issue commands to our source control integration server (Jenkins) to build and test projects. We’re also enhancing our CMS personalization offering using predictive analytics and cloud computing to deliver more contextual, relevant experiences. We are also seeing opportunities to bolster search technology to better understand and react to complex search queries – more on this in the next post!1) http://techblog.netflix.com/2017/02/introducing-hubcommander.html 2) https://claralabs.com/3) http://www.donotpay.co.uk/g4) https://www.tensorflow.org/tutorials/seq2seq5) https://www.ibm.com/watson/developercloud/personality-insights.html6) http://news.mit.edu/2017/putting-data-in-the-hands-of-doctors-regina-barzilay-0216