GithubHelp home page GithubHelp logo

hunyuanfeng / multiwoz Goto Github PK

View Code? Open in Web Editor NEW

This project forked from budzianowski/multiwoz

0.0 1.0 0.0 44.87 MB

Source code for end-to-end dialogue model from the MultiWOZ paper (Budzianowski et al. 2018, EMNLP)

License: MIT License

Python 100.00%

multiwoz's Introduction

MultiWOZ

Multi-Domain Wizard-of-Oz dataset (MultiWOZ), a fully-labeled collection of human-human written conversations spanning over multiple domains and topics. At a size of 10k dialogues, it is at least one order of magnitude larger than all previous annotated task-oriented corpora.

The new, corrected version of the dataset is available at MultiWOZ_2.1 thanks to the Amazon crew..

The dataset used in the EMNLP publication can be accessed at: MultiWOZ_2.0

The dataset used in the ACL publication can be accessed at: MultiWOZ_1.0

Data structure

There are 3,406 single-domain dialogues that include booking if the domain allows for that and 7,032 multi-domain dialogues consisting of at least 2 up to 5 domains. To enforce reproducibility of results, the corpus was randomly split into a train, test and development set. The test and development sets contain 1k examples each. Even though all dialogues are coherent, some of them were not finished in terms of task description. Therefore, the validation and test sets only contain fully successful dialogues thus enabling a fair comparison of models. There are no dialogues from hospital and police domains in validation and testing sets.

Each dialogue consists of a goal, multiple user and system utterances as well as a belief state. Additionally, the task description in natural language presented to turkers working from the visitor’s side is added. Dialogues with MUL in the name refers to multi-domain dialogues. Dialogues with SNG refers to single-domain dialogues (but a booking sub-domain is possible). The booking might not have been possible to complete if fail_book option is not empty in goal specifications – turkers did not know about that.

The belief state have three sections: semi, book and booked. Semi refers to slots from a particular domain. Book refers to booking slots for a particular domain and booked is a sub-list of book dictionary with information about the booked entity (once the booking has been made). The goal sometimes was wrongly followed by the turkers which may results in the wrong belief state. The joint accuracy metrics includes ALL slots.

FAQ

  1. File names refer to two types of dialogues. The MUL and PMUL names refer to strictly multi domain dialogues (at least 2 main domains are involved) while the SNG, SSNG and WOZ names refer to single domain dialogues with potentially sub-domains like booking.
  2. Only system utterances are annotated with dialogue acts – there are no annotations from the user side.
  3. There is no 1-to-1 mapping between dialogue acts and sentences.
  4. There is no dialogue state tracking labels for police and hospital as these domains are very simple. However, there are no dialogues with these domains in validation and testing sets either.
  5. For the dialogue state tracking experiments please follow the datat processing and scoring scripts from the TRADE model (Wu et al. 2019).

Benchmarks

Belief Tracking

MultiWOZ 2.0MultiWOZ 2.1
ModelJoint AccuracySlotJoint AccuracySlot
MDBT (Ramadan et al., 2018) 15.57 89.53
GLAD (Zhong et al., 2018)35.5795.44
GCE (Nouri and Hosseini-Asl, 2018)36.2798.42
Neural Reading (Gao et al, 2019)41.10
HyST (Goel et al, 2019)44.24
SUMBT (Lee et al, 2019)46.6596.44
TRADE (Wu et al, 2019)48.6296.9245.60
COMER (Ren et al, 2019)48.79
DSTQA (Zhou et al, 2019)51.4497.2451.1797.21
DST-Picklist (Zhang et al, 2019)53.3

Policy Optimization

MultiWOZ 2.0MultiWOZ 2.1
ModelINFORMSUCCESSBLEUINFORMSUCCESSBLEU
Baseline (Budzianowski et al. 2018)71.29 60.96 18.8
TokenMoE (Pei et al. 2019)75.30 59.70 16.81
HDSA (Chen et al. 2019)82.968.9 23.6
Structured Fusion (Mehri et al. 2019)82.7072.10 16.34
LaRL (Zhao et al. 2019)82.879.2 12.8
ARDM (Wu et al. 2019)87.472.8 20.6
DAMD (Zhang et al. 2019)89.277.9 18.6

Natural Language Generation

ModelSERBLEU
Baseline (Budzianowski et al. 2018)2.99 0.632

Requirements

Python 2 with pip, pytorch==0.4.1

Quick start

In repo directory:

Preprocessing

To download and pre-process the data run:

python create_delex_data.py

Training

To train the model run:

python train.py [--args=value]

Some of these args include:

// hyperparamters for model learning
--max_epochs        : numbers of epochs
--batch_size        : numbers of turns per batch
--lr_rate           : initial learning rate
--clip              : size of clipping
--l2_norm           : l2-regularization weight
--dropout           : dropout rate
--optim             : optimization method

// network structure
--emb_size          : word vectors emedding size
--use_attn          : whether to use attention
--hid_size_enc      : size of RNN hidden cell
--hid_size_pol      : size of policy hidden output
--hid_size_dec      : size of RNN hidden cell
--cell_type         : specify RNN type

Testing

To evaluate the trained model, run:

python test.py [--args=value]

To evaluate the outside model, run:

python evaluate.py

where in line 611 you need to load your generation predictions.

Benchmark results

The following benchmark results were produced by this software. We ran a small grid search over various hyperparameter settings and reported the performance of the best model on the test set. The selection criterion was 0.5match + 0.5success+100*BLEU on the validation set. The final parameters were:

// hyperparamters for model learning
--max_epochs        : 20
--batch_size        : 64
--lr_rate           : 0.005
--clip              : 5.0
--l2_norm           : 0.00001
--dropout           : 0.0
--optim             : Adam

// network structure
--emb_size          : 50
--use_attn          : True
--hid_size_enc      : 150
--hid_size_pol      : 150
--hid_size_dec      : 150
--cell_type         : lstm

References

If you use any source codes or datasets included in this toolkit in your work, please cite the corresponding papers. The bibtex are listed below:

[Budzianowski et al. 2018]
@inproceedings{budzianowski2018large,
    Author = {Budzianowski, Pawe{\l} and Wen, Tsung-Hsien and Tseng, Bo-Hsiang  and Casanueva, I{\~n}igo and Ultes Stefan and Ramadan Osman and Ga{\v{s}}i\'c, Milica},
    title={MultiWOZ - A Large-Scale Multi-Domain Wizard-of-Oz Dataset for Task-Oriented Dialogue Modelling},
    booktitle={Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (EMNLP)},
    year={2018}
}

[Ramadan et al. 2018]
@inproceedings{ramadan2018large,
  title={Large-Scale Multi-Domain Belief Tracking with Knowledge Sharing},
  author={Ramadan, Osman and Budzianowski, Pawe{\l} and Gasic, Milica},
  booktitle={Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics},
  volume={2},
  pages={432--437},
  year={2018}
}

[Eric et al. 2019]
@article{eric2019multiwoz,
  title={MultiWOZ 2.1: Multi-Domain Dialogue State Corrections and State Tracking Baselines},
  author={Eric, Mihail and Goel, Rahul and Paul, Shachi and Sethi, Abhishek and Agarwal, Sanchit and Gao, Shuyag and Hakkani-Tur, Dilek},
  journal={arXiv preprint arXiv:1907.01669},
  year={2019}
}

License

MultiWOZ is an open source toolkit for building end-to-end trainable task-oriented dialogue models. It is released by Paweł Budzianowski from Cambridge Dialogue Systems Group under Apache License 2.0.

Bug Report

If you have found any bugs in the code, please contact: pfb30 at cam dot ac dot uk

multiwoz's People

Contributors

budzianowski avatar pawel-polyai avatar soeque1 avatar ivkrotova avatar vaishnavmenon avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.