Tag Archives: IBM Watson

Evaluating Amazon Lex – AI Digital Agent / Assistant Implementation

Evaluating AI chatbot solutions for:

  • Simple to Configure – e.g. Wizard Walkthrough
  • Flexible, and Mature Platform e.g. Executing backend processes
  • Cost Effective and Competitive Solutions
  • Rapid Deployment to XYZ platforms

The idea is almost anyone can build and deploy a chat bot for your business, small to midsize organizations.

Amazon Lex

Going through the Amazon Lex build chat process, and configuration of the Digital Assistant was a breeze.  AWS employs a ‘wizard’ style interface to help the user build the Chatbot / Digital Agent.  The wizard guides you through defining Intents, Utterances, Slots, and Fulfillment.

  • Intents – A particular goal that the user wants to achieve (e.g. book an airline reservation)
  •  Utterances – Spoken or typed phrases that invoke your intent
  • Slots – Data the user must provide to fulfill the intent
  • Prompts – Questions that ask the user to input data
  • Fulfillment – The business logic required to fulfill the user’s intent (i.e. backend call to another system, e.g. SAP)
Amazon Lex Chabot
Amazon Lex Chabot

The Amazon Lex Chatbot editor is also extremely easy to use, and to update / republish any changes.

Amazon Chat Bot Editor
Amazon Chat Bot Editor

The challenge with Amazon Lex appears to be a very limiting ability for chatbot distribution / deployment.  Your Amazon Lex Chatbot is required to use one of three methods to deploy: Facebook, Slack, or Twilio SMS.  Facebook is limiting in a sense if you do not want to engage your customers on this platform.   Slack is a ‘closed’ framework, whereby the user of the chat bot must belong to a Slack team in order to communicate.  Finally, Twilio SMS implies use of your chat bot though a mobile phone SMS.

Amazon Chatbot Channels
Amazon Chatbot Channels

 

I’ve reached out to AWS Support regarding any other options for Amazon Lex chatbot deployment.  Just in case I missed something.

Amazon Chatbot Support
Amazon Chatbot Support

There is a “Test Bot” in the lower right corner of the Amazon Lex, Intents menu.  The author of the business process can, in real-time, make changes to the bot, and test them all on the same page.

Amazon Chatbot, Test Bot
Amazon Chatbot, Test Bot

 

Key Followups

  • Is there a way to leverage the “Test Bot” as a “no frills” Chatbot UI,  and embed it in an existing web page?  Question to AWS Support.
  • One concern is for large volumes of utterances / Intents and slots. An ideal suggestion would allow the user a bulk upload through an Excel spreadsheet, for example.
  • I’ve not been able to utilize the Amazon Lambda to trigger server side processing.
  • Note: there seem to be several ‘quirky’ bugs in the Amazon Lex UI, so it may take one or two tries to workaround the UI issue.

IBM Watson Conversation also contends for this Digital Agent / Assistant space, and have a very interesting offering including dialog / workflow definition.

Both Amazon Lex and IBM Watson Conversation are FREE to try, and in minutes, you could have your bots created and deployed. Please see sites for pricing details.

AI Digital Assistant verse Search Engines

Aren’t AI Digital Assistants just like Search Engines? They both try to recognize your question or human utterance as best as possible to serve up your requested content. E.g.classic FAQ. The difference in the FAQ use case is the proprietary information from the company hosting the digital assistant may not be available on the internet.

Another difference between the Digital Assistant and a Search Engine is the ability of the Digital Assistant to ‘guide’ a person through a series of questions, enabling elaboration, to provide the user a more precise answer.

The Digital Assistant may use an interactive dialog to guide the user through a process, and not just supply the ‘most correct’ responses. Many people have flocked to YouTube for instructional type of interactive medium. When multiple workflow paths can be followed, the Digital Assistant has the upper hand.

The Digital Assistant has the capability of interfacing with 3rd parties (E.g. data stores with API access). For example, there may be a Digital Assistant hosted by Medical Insurance Co that has the ability to not only check the status of a claim, but also send correspondence to a medical practitioner on your behalf. A huge pain to call the insurance company, then the Dr office, then the insurance company again. Even the HIPPA release could be authenticated in real time, in line during the chat.  A digital assistant may be able to create a chat session with multiple participants.

Digital Assistants overruling capabilities over Search Engines are the ability to ‘escalate’ at any time during the Digital Assistant interaction. People are then queued for the next available human agent.

There have been attempts in the past, such as Ask.com (originally known as Ask Jeeves) is a question answering-focused e-business.  Google Questions and Answers (Google Otvety, Google Ответы) was a free knowledge market offered by Google that allowed users to collaboratively find good answers, through the web, to their questions (also referred as Google Knowledge Search).

My opinions are my own, and do not reflect my employer’s viewpoint.

AI Personal Assistant Needs Remedial Guidance for their Users

Providing Intelligent ‘Code’ Completion

At this stage in the application platform growth and maturity of the AI Personal Assistant, there are many commands and options that common users cannot formulate due to a lack of knowledge and experience.  Using Natural Language to formulate questions has gotten better over the years, but assistance / guidance formulating the requests would maximize intent / goal accuracy.

A key usability feature for many integrated development environments (IDE) are their capability to use “Intelligent Code Completion” to guide their programmers to produce correct, functional syntax. This feature also enables the programmer to be unburdened by the need to look up syntax for each command reference, saving significant time.  As the usage of the AI Personal Assistant grows, and their capabilities along with it, the amount of commands and their parameters required to use the AI Personal Assistant will also increase.

AI Leveraging Intelligent Command Completion

For each command parameter [level\tree], a drop down list may appear giving users a set of options to select for the next parameter. A delimiter such as a period(.) indicates to the AI Parser another set of command options must be presented to the person entering the command. These options are typically in the form of drop down lists concatenated to the right of the formulated commands.  Vocally, parent / child commands and parameters may be supplied in a similar fashion.

AI Personal Assistant Language Syntax

Adding another AI parser on top of the existing syntax parser may allow commands like these to be executed:

  • Abstraction (e.g. no application specified)
    • Order.Food.Focacceria.List123
    • Order.Food.FavoriteItalianRestaurant.FavoriteLunchSpecial
  • Application Parser
    • Seamless.Order.Food.Focacceria.Large Pizza

These AI command examples uses a hierarchy of commands and parameters to perform the function. One of the above commands leverages one of my contacts, and a ‘List123’ object.  The ‘List123’ parameter may be a ‘note’ on my Smartphone that contains a list of food we would like to order. The command may place the order either through my contact’s email address, fax number, or calling the business main number and using AI Text to Speech functionality.

All personal data, such as Favorite Italian Restaurant,  and Favorite Lunch Special could be placed in the AI Personal Assistant ‘Settings’.  A group of settings may be listed as Key-Value pairs,  that may be considered short hand for conversations involving the AI Assistant.

A majority of users are most likely unsure of many of the options available within the AI Personal assistant command structure. Intelligent command [code] completion empowers users with visibility into the available commands, and parameters.

For those without a programming background, Intelligent “Command” Completion is slightly similar to the autocomplete in Google’s Search text box, predicting possible choices as the user types. In the case of the guidance provided by an AI Personal Assistant the user is guided to their desired command; however, the Google autocomplete requires some level or sense of the end result command. Intelligent code completion typically displays all possible commands in a drop down list next to the constructor period (.). In this case the user may have no knowledge of the next parameter without the drop down choice list.  An addition feature enables the AI Personal Assistant to hover over one of the commands\parameters to show a brief ‘help text’ popup.

Note, Microsoft’s Cortana AI assistant provides a text box in addition to speech input.  Adding another syntax parser could be allowed and enabled through the existing User Interface.  However, Siri seems to only have voice recognition input, and no text input.

Is Siri handling the iOS ‘Global Search’ requests ‘behind the scenes’?  If so, the textual parsing, i.e. the period(.) separator would work. Siri does provide some cursory guidance on what information the AI may be able to provide,  “Some things you can ask me:”

With only voice recognition input, use the Voice Driven Menu Navigation & Selection approach as described below.

Voice Driven, Menu Navigation and Selection

The current AI personal assistant, abstraction layer may be too abstract for some users.  The difference between these two commands:

  • Play The Rolling Stones song Sympathy for the Devil.
    • Has the benefit of natural language, and can handle simple tasks, like “Call Mom”
    • However, there may be many commands that can be performed by a multitude of installed platform applications.

Verse

  • Spotify.Song.Sympathy for the Devil
    • Enables the user to select the specific application they would like a task to be performed by.
  • Spotify Help
    • A voice driven menu will enable users to understand the capabilities of the AI Assistant.    Through the use of a voice interactive menu, users may ‘drill down’ to the action they desire to be performed. e.g. “Press # or say XYZ”
    • Optionally, the voice menu, depending upon the application, may have a customer service feature, and forward the interaction to the proper [calling or chat] queue.

Update – 9/11/16

  • I just installed Microsoft Cortana for iOS, and at a glance, the application has a leg up on the competition
    • The Help menu gives a fair number of examples by category.  Much better guidance that iOS / Siri 
    • The ability to enter\type or speak commands provides the needed flexibility for user input.
      • Some people are uncomfortable ‘talking’ to their Smartphones.  Awkward talking to a machine.
      • The ability to type in commands may alleviate voice command entry errors, speech to text translation.
      • Opportunity to expand the AI Syntax Parser to include ‘programmatic’ type commands allows the user a more granular command set,  e.g. “Intelligent Command Completion”.  As the capabilities of the platform grow, it will be a challenge to interface and maximize AI Personal Assistant capabilities.

AI Assistant Summarizing Email Threads and Complex Documents

“Give me the 50k foot level on that topic.”
“Just give us the cliff notes.”
“Please give me the bird’s eye view.”

AI Email Thread Abstraction and Summarization

A daunting, and highly public email has landed in your lap..top to respond.  The email thread goes between over a dozen people all across the globe.  All of the people on the TO list, and some on the CC list, have expressed their points about … something.  There are junior technical and very senior business staff on the email.  I’ll need to understand the email thread content from the perspective of each person that replied to the thread.  That may involve sifting through each of the emails on the thread.  Even though the people on the emails are English fluent, their response styles may be different based on culture, or seniority of staff (e.g. abstractly written).  Also, the technical folks might want to keep the conversation of the email granular and succinct.
Let’s throw a bit of [AI] automation at this problem.
Another step in our AI personal assistant evolution, email thread aggregation and summarization utilizing cognitive APIs | tools such as what IBM Watson has implemented with their Language APIs.  Based on the documentation provided by their APIs, the above challenges can be resolved for the reader.   A suggestion to an IBM partner for the Watson Cognitive cloud, build an ’email plugin’ if the email product exposes their solution to customization.
A plugin built on top of an email application, flexible enough to allow customization, may be a candidate for Email Thread aggregation and summarization.  Email clients may include IBM Notes, Gmail, (Apple) Mail, Microsoft Outlook, Yahoo! Mail, and OpenText FirstClass.
Add this capability to the job description of AI assistants, such as Cortana, Echo, Siri, and Google Now.   In fact, this plug-in may not need the connectivity and usage of an AI assistant, just the email plug-in interacting with a suite of cognitive cloud API calls.

AI Document Abstraction and Summarization

A plug in may also be created for word processors such as Microsoft Word.   Once activated within a document, a summary page may be created and prefixed to the existing document. There are several use cases, such as a synopsis of the document.
With minimal effort from human input, marking up the content, we would still be able to derive the  contextual metadata, and leverage it to create new sentences, paragraphs of sentences.
Update:
I’ve not seen an AI Outlook integration in the list of MS Outlook Add-ins that would bring this functionality to users.