Skip to content

Latest commit

 

History

History
 
 

README.md

Dialog system categories

  • Task-oriented (in closed domain) vs Non-task-oriented (i.e., chat bots [8], in open domain) [1]
  • Generative vs retrieval-based
  • Question answering tells us how to do and dialogue system tells us the steps to do it successfully.

1. Task-oriented

1.1 Pipeline

  • ASR -> NLU -> DM -> NLG

  • 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
    • Industrial
      • 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
        • Zero-shot learning
  • DM: Dialogue Management

    • Dialogue State Tracking: estimates the goal at every turn. A probability distribution over each slot for each turn.

    • 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
    • Models

  • 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

1.2 End-to-end

2. Non-task-oriented

2.1 Retrieval-based

  • Given pre-defined responses, retrieval based model predict one response given current input context [2]
  • Single/Multi turn response matching
  • Two steps [3]:
    • retrieval top-k response candidates by directly matching
    • reranking and give best candidate by incorporing context
  • Multi-turn
  • AIML for pattern matching

2.2 Generative

2.3 Hybrid

Video open courses

Leading Researchers

Dataset

Tutorials

Implementation

Products

Rasa demo

  • Rasa is a framework, we can define new component to replace official one
  • Steps:
    • Generate data with Chatito
    • Train rasa-nlu, define new component if necessary
      • Increase nlu accuracy with button attribute

References

[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