November 2017
Stavros Vassos, Dimitris Balaouras
Helvia.io
Intro to Chatbots
Chatbot AI
Chatbot UX
A Framework in Nodejs
Takeaways
On the right side AI Assistants
The vision: AI Assistants can
March 2016, Microsoft releases @TayandYou on Twitter, a bit before the beginning of chatbot spike
Tay is a chatbot that is intended to talk on twitter about any topic like a teenage girl
Microsoft showcases the power of (its) AI, by allowing the chatbot to train itself on the responses by users
The experiment goes bad and Tay shuts down..
"Microsoft terminates its Tay AI chatbot after she turns into a nazi" -- arstechnica.com
This serves as evidence that it's (still) tough to make machines that understand and use natural language in an intended human-like way
Messaging Mobile Apps, e.g., Facebook Messenger, have the basic UI elements that one needs in order
to build a mobile app:
Input: Textboxes and Buttons
Output: Text bubbles and Images
Also: voice and pictures both for input and output
Images in carousel
Buttons
Links
An "answering machine" that gives digital marketing content and information
Very similar to what you would do on the website or the mobile app, with a touch of natural language
Popular chatbots offer a funny chat experience with emoticons, animated GIFs, chat slang
Relying solely on AI is still a research problem
Not mature for commercial use (yet!)
A practical approach that works well!
A practical approach that works well!
We know what UX means in web and mobile apps (I guess!)
But what does UX mean for chatbots?
Use emojis!
Use short sentences!
Write a lot of "texture" intents to avoid going to the default fallback intent!
Always pivot the user to options to continue the conversation!
...
Equally important is to handle the conversation flow
UX1: Don't give the same text response twice
UX2: Don't give the same options the second time that the user reaches the same point in a conversation
UX3: Control the possible transitions to focus on a theme and respect context
There are similar challenges in other digital media, in particular extensive studies in videogames
No golden standards for designing interactive stories
Linear storyline similar to the “one story” of films
Strict order of plot points, only one way to move forward
Players may visit plot points in any order they choose
E.g., World of Warcraft, Grand Theft Auto
Several open-world groups (islands) in a linear order
E.g., in Syberia all chapters start and end in a fixed way but the order of sub-parts of the story can vary
Branching depending on player action that may lead to different endings
E.g., Heavy Rain, Beyond Two Souls
Typically a custom approach is followed
As the storytelling graph grows, designing, maintaining, and debuging easily becomes a mess!
Chatbot development frameworks provide some solution that typically falls in one of two main categories
QnA-based transitions
(Open-world storytelling)
Screen-based transitions
(Linear-islands storytelling)
Each one offers different features; some indicative examples on the right
We present a framework for the Conversational Manager that unifies the available mechanisms
Useful for understanding the challenges and solving them when needed in the available frameworks
All possible responses of the chatbot are layed out as nodes that may trigger or not
For each node there is a an intent (that is detected from the NLU) that is required for the node to trigger
For controlling the flow, a blackboard is used to store labels that affect which nodes may be able to fire
Preconditions specify labels that need to be present on a blackboard in order for the node to fire
Postconditions specify which labels to add and delete on the blackboard
Blackboard
Node
The nodes play a game of leaving marks behind in order to control better the flow
When the User says "voxxed" for the first time they get back a brief message about the conference
When the User says "voxxed" for the second time the they get back a different message
Two nodes that behave differently and use the blackboard to "coordinate" the conversation flow
Post
Pre
Pre
Post
When the User says "voxxed" for the second time the User is asked whether they want to receive updates
The User can respond Yes/No to set his preference
Chatbot Blockitecture
State: Persists and Restores the Blackboard
NLU: Parses and analyzes user input
Conversation Manager: Business Logic and Decision Making
NLG: Generates the output (rich) messages
Messenger: Sends the (rich) messages to the end user
Chain of Responsibity design pattern
Component Base Interface
Blackboard evolution through NLU component
Nodes described as data
Available at GitHub:
https://github.com/Helvia/storynodes-demo
Targets well a large demographic (Millennials)
Can be seen as an additional channel along with Website, Social Media, Mobile Apps
The user doesn't need to install a new app
It's suggested that it may be "the new mobile app"
Plenty of DIY solutions for common use cases
Plenty of developers available for custom solutions
There is a hype similar to the "mobile app craze", you can't go wrong with building one now ;-)
AI is over-hyped and in reality it needs a lot of effort to build "human-like" assistants
No real guidelines for Conversational UX yet!
No mature tools for building a Conversation Manager!
Content is king (here as well)!
Similar to website design and development: it's the narrative and the experience that matters ;-)
Every month the big platforms release more features (Facebook Messenger is leading)
Group chat with chatbots
C2C (Chatbot to Chatbot) communication
Chatting as a common API
Hybrid chatbot and human operator ecosystems
Stavros Vassos, AI Architect at Helvia.io
Dimitris Balaouras, CTO at Helvia.io
About us: https:helvia.io
Email: hi@helvia.io
Google+: Chat is the new black
slides.com/stavrosvassos/chatbot-ux/
*Especially young people!
**Millennials: 20-40 years old at time of writing (2017)
A lot of chatbots recast existing solutions such as:
Facebook pages support chatting
Users can send "Inbox" messages on Messenger
Human operators can handle the messages (when they are online) and chat on Messenger