Motivation: The Recurrent Entity Network (EntNet) maintain a set of dynamic long-term memory blocks which can be update simultaneously to represent high-level concepts or entities together with their properties. In goal oriented dialog systems, it is important to keep track of the current state of dialog and being able to reasoning on the fly as we receive user's utterances. Thus, this project explores the EntNet architecture for question answering and goal oriented dialog systems. We will train on (6) dialog bAbI tasks. Tensorflow is used for building the models.
This section presents the set of 6 tasks for testing end-to-end dialog systems in the restaurant domain. Each task tests a unique aspect of dialog.
# python2 is not supported
sudo -H pip3 install -r requirements.txt
# if this doesn't work, raise an issue
# run main.py without arguments, for usage information
# usage: main.py [-h] (-i | -t) [--task_id TASK_ID] [--batch_size BATCH_SIZE]
# [--epochs EPOCHS] [--eval_interval EVAL_INTERVAL]
# [--log_file LOG_FILE]
# main.py: error: one of the arguments -i/--infer -t/--train is required
python3 main.py --train --task_id=3 --log_file=log.task3.txt
Task | Training Accuracy | Validation Accuracy |
---|---|---|
1 | 100 | 99.7 |
2 | 100 | 100 |
3 | 100 | 74.71 |
4 | 100 | 56.67 |
5 | 100 | 98.42 |
6 | 76.61 | 47.08 |
- Learning End-to-End Goal-Oriented Dialog, review
- Tracking the World State with Recurrent Entity Networks
- A Copy-Augmented Sequence-to-Sequence Architecture Gives Good Performance on Task-Oriented Dialogue
- Hybrid Code Networks: practical and efficient end-to-end dialog control with supervised and reinforcement learning
- Gated End-to-End Memory Networks
- Query-Reduction Networks for Question Answering
- Ask Me Even More: Dynamic Memory Tensor Networks
- OOV : Out Of Vocabulary
-
Big thanks to Jim Fleming's tensorflow implementation of EntNet
-
Thanks to Suriyadeepan Ramamoorthy n2n_dialog_system's interactive interface