Flexible Dialog Management in Chatbots
This story is a rough-draft. Check back later for the fully-polished story or post a comment telling me what you’d like me to research and write for you.
One of the most common complaints of conversational artificial intelligence (CAI) is inflexible dialog management. At the same time, the most common ways of defining dialog management for chatbots could be reduced to a state machine or dialog graph, e.g. a decision tree. If you need to predefine a dialog structure in terms of a graph or anything similar, you’re already lost. To allow for flexible dialog management, you need to give the agent principles to use in coming up with its own dialog policies. Otherwise, expect your chatbot will eventually run off the rails.
Contents
- Summary
- Contents
- Existing Paradigms
- Finite State Dialog Management
- Single Initiative
- Single Initiative + Universals
- Mixed Initiative
- Frame-based Mixed Initiative
- My Ideas
- References
Existing Paradigms
Finite State Dialog Management
About
Chatbot controls flow of dialog (system initiative or single initiative)
Successive states represent filling slots in a predetermined order, leading to a final action.
Pros
Simple, easy to build and understand
Okay for simple tasks
Cons
Too limiting and inflexible
Do not allow the user to speak spontaneously or to fill multiple slots per turn
Example
Single Initiative
Single Initiative + Universals
Augment finite states with universals (global-scope commands)
Examples
Help
Cancel
Start over
Correct
Pros
Slightly more flexible by allowing user to break out of current state in state machine
Cons
Still too inflexible
Mixed Initiative
Frame-based Mixed Initiative
About
Frame slots can be filled in any order.
User can take initiative by providing multiple slot values.
My Ideas
Pieces
Recognize user intent
Is the user’s text a response/answer to existing goal path or a new request/question?
Recognize when there is more than one per input.
Recognize when there is an unknown intent (not trained for)
Identify goal from user intent
Identify path to goal in goal dependency lattice
Execute path by generating statements/questions and interpreting responses/answers
Repeat:
Flexibly update all of the above on the fly
References
- Chapter 26 on Dialogue Systems and Chatbots from Speech and Language Processing (3rd ed. draft) by Dan Jurafsky and James H. Martin, October 16, 2019
- Standford chatbot slides
- Panel discussion among three experts on dialog flexibility
- Conversica uses deep reinforcement learning in CAI
Join the CAI Dialog on Slack at cai-dialog.slack.com
Other stories in TP on CAI you may like: