Bots for Business

Alex Bunardzic, October 2016

All bots available on the market today are focused on

individual user

This universally accepted approach is clearly setting bots for a failure

Current state of NLP technology is immature, resulting in bots that are confusing and frustrating to use

Even the simplest of bot interactions quickly deteriorate, leaving users disenchanted

This is caused by the focus on serving the human user

People are fickle

People keep changing their minds in the middle of conversation

Even fairly experienced human experts often face challenges when fielding customer requests

Bots stand little, or no chance dealing with all the quirks and foibles humans throw at them

The state of AI would have to advance significantly before we could rely on bots to serve finicky users

In the meantime?

Focus on building

bots for business!

Why?

Bots for business are easier to tame

Also, bots for business are very helpful to the businesses

Much more likely to get funding when building something that helps the business

Two families of bots

1. Concierge

2. Butler

Concierge

Loyal to the Corporation

Butler

Loyal to the Individual

Butler

  • Focused on learning about its owner's habits
  • Focused on detecting recurring behavioural patterns
  • Trained to respect the owner's preferences

Butler Bot

  • Stars in many Hollywood movies
  • Needs heavy duty AI

Concierge

  • Focused on learning about the corporate goals
  • Focused on consistent customer service
  • Trained to detect business opportunities (i.e. up-sell/cross-sell)
  • Sets the tone of the conversation

Concierge Bot

Establishes the conversational protocol

Concierge Bot

Doesn't need beefy AI

Conversation with a

narrow focus

Example: Medical Receptionist

Typical experience with a Medical Receptionist (Concierge)

Typical experience with a Medical Receptionist (Concierge)

  • Receptionist sets the tone of the conversation

Typical experience with a Medical Receptionist (Concierge)

  • Receptionist sets the tone of the conversation
  • Establishes the conversational protocol

Typical experience with a Medical Receptionist (Concierge)

  • Receptionist sets the tone of the conversation
  • Establishes the conversational protocol
  • Asks for pertinent information (name, insurance, phone, date of birth)

Typical experience with a Medical Receptionist (Concierge)

  • Receptionist sets the tone of the conversation
  • Establishes the conversational protocol
  • Asks for pertinent information (name, insurance, phone, date of birth)
  • Impervious to any attempts to spark up irrelevant conversation

Typical experience with a Medical Receptionist (Concierge)

  • Receptionist sets the tone of the conversation
  • Establishes the conversational protocol
  • Asks for pertinent information (name, insurance, phone, date of birth)
  • Impervious to any attempts to spark up irrelevant conversation
  • If a visitor refuses to comply, receptionist may ask them to leave

Concierge Bot model requires rudimentary NLP

Challenges

Challenges

Even rudimentary NLP is a huge challenge!

Google Assistant

What do businesses value?

What do businesses value?

  • Predictability

What do businesses value?

  • Predictability
  • Coherent behaviour

What do businesses value?

  • Predictability
  • Coherent behaviour
  • Consistent behaviour

What do businesses value?

  • Predictability
  • Repeatability
  • Coherent behaviour
  • Fully controllable behaviour

Four Levels of Communication Protocol

Four Levels of Communication Protocol

  1. Command protocol

Four Levels of Communication Protocol

  1. Command protocol
  2. Keyword protocol

Four Levels of Communication Protocol

  1. Command protocol
  2. Keyword protocol
  3. Structured phrase protocol

Four Levels of Communication Protocol

  1. Command protocol
  2. Keyword protocol
  3. Structured phrase protocol
  4. Free form (informal) protocol

Command protocol

Command protocol

  • CLI (Command line interface)

Command protocol

  • CLI (Command line interface)
  • Escape syntax ('/', forward slash, or '@' or '!' etc.)

Command protocol

  • CLI (Command line interface)
  • Escape syntax ('/', forward slash, or '@' or '!' etc.)
  • Example: '/help', or '@help', or '!help' and so on

Command protocol

  • CLI (Command line interface)
  • Escape syntax ('/', forward slash, or '@' or '!' etc.)
  • Example: '/help', or '@help', or '!help' and so on
  • Globally scoped (same meaning regardless of context)

Conversation context

Keyword protocol

Keyword serves to alert the bot that the context of the conversation has changed

Example: @doctor

  • User may interrupt the conversation by mentioning the keyword @doctor

Example: @doctor

  • User may interrupt the conversation by mentioning the keyword @doctor
  • The bot will realize that @doctor is not found in the list of commands

Example: @doctor

  • User may interrupt the conversation by mentioning the keyword @doctor
  • The bot will realize that @doctor is not found in the list of commands
  • The bot will find @doctor in the list of keywords

Example: @doctor

  • User may interrupt the conversation by mentioning the keyword @doctor
  • The bot will realize that @doctor is not found in the list of commands
  • The bot will find @doctor in the list of keywords
  • The bot was trained to switch the conversation context upon hearing @doctor and will pick the appropriate subsequent question, such as "would you like me to schedule doctor's appointment?" etc.

Structured phrase protocol

Less formal than keyword protocol

Less predictable/controllable/repeatable than keyword protocol

Useful for enhancing natural flow of the conversation

To be used judiciously and sparringly

Free form (informal) protocol

Bot will receive many messages that do not contain commands, keywords, nor structured, predefined phrases

Honesty is the best policy?

Being 100% honest and replying with "I don't know"

Copout

Better to meet the user halfway

Fake it till you make it?

Risks and Pitfalls

Prank calls

Malicious calls

Messages that don't contain commands, keywords or predefined structured phrases must be scrubbed

How?

Protocall

curl --data "content=Some word or phrase" http://protocall.herokuapp.com/sentiments/find

If everything else fails -- humour :)

https://medium.com/bots-for-business

Questions?

  • https://twitter.com/alexbunardzic

  • https://medium.com/@alexbunardzic

deck

By Alex Bunardzic

deck

  • 1,346