- History
- Rule-based (e.g., AIML)
- Statistical-based (e.g., POMDP (Partially Observable Markov Decision Process): the next action is determined by an estimated current state)
- Deep learning-based
- Categories
- Task-oriented (in closed domain)
- Non-task-oriented (i.e., chat bots [8], in open domain) [1]
- Question answering
- FAQ based
- KBQA
- Question answering tells us how to do and dialogue system tells us the steps to do it successfully
-
NLU: maps the utterance into semantic slots
- Domain identification: text classification
- User domain specific intent detection: text classification (We can incorporate preceding text information during perform classification, see [7])
- Slot filling: sequence labeling
- Parameters of the INTENT
- Since slots are intent-specific, we can Joint learning of intent identification and slot filling, but put more emphasis on slot error
- Add lexicon feature
- Industrial
- Not slot: for example, the user do not like something
- Interchange of different intents: when the bot ask the slot of one intent, the user ask another intent
- To avoid OOV
- Character-based classification and sequence labeling
- Fasttext sub n-gram
- Combine CNN or LSTM on character embedding and word embedding
- New intent or new domain
- For intent conflicts in multiple domain, we can use adversarial multi-task learning
-
DM: Dialogue Management
-
Dialogue State Tracking: aka belief state, is a probability distribution over each slot for each turn
- DSTC
- TRADE, with implementation
-
Policy Learning: generates next action
- Supervised learning
- Reinforcement learning
- Entity: agent and environment
- Rule: agent takes action and environment gives reward and state
- Policy: a rule that the agent should follow to select actions given the current state
-
- Rule-based is popular in production system [8]
- Frame based
- Finite state machine
- Agenda based
- Markov Decision Process
- Neural network
- Rule-based is popular in production system [8]
-
-
NLG: convert action to utterance
- Action template
- Hybrid model [8]
- If the user dialogue actions can be found in the predefined sentence templates, the **template-based NLG ** is applied; otherwise, the utterance is generated by the model-based NLG
-
2017_IJCNLP_End-to-End Task-Completion Neural Dialogue Systems.pdf, A_User_Simulator_for_Task-Completion_Dialogues: RL to train DM based on simulation data
- RL is based on whole dialogue, not each turn. A rule-based agent is used to warm-start the system (i.e., experience replay), via supervised learning. Episode is a whole dialogue.
s_t, a_t, r, s_t+1
- Error control to mimic mistake of real user
- Based on
request_slots
(i.e., user want to ask) andinform_slots
(i.e., user can provide) to generate simulation data - A simplified version, and blog, RECOMMEND!
- RL is based on whole dialogue, not each turn. A rule-based agent is used to warm-start the system (i.e., experience replay), via supervised learning. Episode is a whole dialogue.
-
2017_EACL_A Network-based End-to-End Trainable Task-oriented Dialogue System
-
2017_ICLR_Learning_end-to-end_goal_oriented_dialog: memory network
-
Report of Dr.Che
- Dialog act: more general intentions, such as statement, question, option
- Given pre-defined responses, retrieval based model predict one response given current input context [2]
- Two steps [3]:
- retrieval top-k response candidates by directly matching
- reranking and give best candidate by incorporing context
- Multi-turn matching
- [https://github.com/JasonForJoy/Leaderboards-for-Multi-Turn-Response-Selection](Leaderboard of state-of-the-art models)
- Generative new responses from scratch [2]
- Multi-turn
- Avoid generic responses
- CS224s slides
to do...
- Alternating view k-means: two encoders (one for user first utterance, another for remaining dialogue), one encoder -> clustering -> update another encoder by prototypical training, and alternating the above step
- bAbI: book a table at a restaurant
- Ubuntu Dialogue Corpus v2.0
- A New Multi-Turn, Multi-Domain, Task-Oriented Dialogue Dataset
- Dialog State Tracking Challenge
- Douban Conversation Corpus
- 2017第六届全国社会媒体处理大会之中文人机对话技术评测
- MultiWOZ: contains 7 domain and 30 (do-main, slot) pairs
- CrossWOZ: Chinese Cross-Domain WOZ, it contains 5 domains (i.e., hotel, restaurant, attraction, metro, and taxi)
-
Baidu UNIT and lecture
-
- Rasa NLU
- Rasa Core
- Transformer Embedding Policy, refer to arXiv for latest version
- Rasa UI
tensorflow_embedding
in NLU from StarSpace: Embed All The Things!- Chinese chatbot example
-
ConvLab: multi-domain end-to-end dialog system platform, aiming to enable researchers to quickly set up experiments
-
WeRoBot: weChat bot
-
Awesome-Chatbot gives a list of public repositories about chatbot
-
pyDial: The Cambridge University Python Multi-domain Statistical Dialogue System Toolkit
[1] A Survey on Dialogue Systems: Recent Advances and New Frontiers
[2] Deep Learning for Chatbots part 1, part 2
[3] https://c.m.163.com/news/l/180148.html?spssid=fba792c95ad60299db5435a91da37e10&spsw=1&spss=other.
[4] A Network-based End-to-End Trainable Task-oriented Dialogue System, and implementation, Ali Xiaomi
[5] End-to-end LSTM-based dialog control optimized with supervised and reinforcement learning, Hybrid Code Networks: practical and efficient end-to-end dialog control with supervised and reinforcement learning, and implementation
[6] Learning End-to-End Goal-Oriented Dialog from Facebook, and implementation
[7] Sequential Short-Text Classification with
Recurrent and Convolutional Neural Networks
[8] “Chitty-Chitty-Chat Bot”: Deep Learning for Conversational AI
[9] End-to-End Task-Completion Neural Dialogue Systems, implementation
[10] 任务型对话系统研究综述
[11] 多轮人机对话与对话管理技术探索与实践
[12] 任务导向型对话系统——对话管理模型研究最新进展
[13] 阿里巴巴高级算法专家李永彬:小蜜智能对话开发平台的技术探索与场景实践
[15] How to use question to increase Chatbot's interactivity ?