We aim to build a dialogue system that can answer COVID-19 related question from patients automatically. Briefly, we build the system with following steps:
- Dialogue State Tracking (DST): extract patients' INTENTION (their demand) and/or INFORM (their conditions) and encode them into a set of dialogue states till the current turn.
- Policy Learning: determine the next system ACTION and/or contents to QUERY from external services based on current dialogue states.
- Natural Language Generation (NLG): generate system response based on ACTION and/or returned QUERY results.
Main challenges lie in the Covid Dialogue System:
- Reliability/robustness: a medical dialogue system needs to track the states correctly and act correspondingly.
- Tracking in time span: the development of patient's condition (e.g., symptoms, medication) matters and it's non-trivial to track & use.
- Service: how to acquire supporting services, and how to let dialogue system interact with them.
- Response quality: generated responses need to be natural, coherent, and consistent with ACTION.
- Efficiency: inference time complexity needs to be small.
- Data insufficiency: large medical dialogue datasets are typically hard to obtain.
Given that current CovidDialog dataset is a corpus without semantic labels, we might have few choices if we directly build a task-oriented system from it. For instance, an unstructured Ubuntu Dialogue Corpus considered the task of best response selection, which might not be practical for real-life scenarios. Current mainstream datasets for DST, such as MultiWoz and DSTC 8, use structured semantic labels to keep track of dialogue states that are vital for system responses. Hence, our plan is to further annotate the CovidDialog dataset with labels at each turn.
Specifically, our plan is to build up the system with following steps:
DST is the core component in a dialogue system. It aims to track the dialogue states from the first to current turns. Please refer to README for more details.
A dialogue state tracker requires to understand the dialogue and track the states in patients' utterance.
The tracker first encodes the dialogue history up till current turn into a latent space. Then, we use a state generator to generate the states for each slot. (Optionally, we can add a slot gate before the generator to filter out irrelevant slots.)
Given the dialogue states, the policy maker aims to produce system actions for the next step.
The policy maker first needs to decide whether to inquire the external services. We need to devise rules for the interaction between dialogue system and services, e.g., how to send the query to services and how to store the returned results. Then, the policy maker chooses which ACTION to take.
The response generator aims to generate responses based on patients' utterance, dialogue states, system action and query results.
Language generation model typically generates from scratch. In our dialogue system, we may need to design a copy mechanism that incorporates query results into the response.
@article{ju2020CovidDialog,
title={CovidDialog: Medical Dialogue Datasets about COVID-19},
author={Ju, Zeqian and Chakravorty, Subrato and He, Xuehai and Chen, Shu and Yang, Xingyi and Xie, Pengtao},
journal={ https://github.com/UCSD-AI4H/COVID-Dialogue},
year={2020}
}
@article{10.1145/3166054.3166058,
author = {Chen, Hongshen and Liu, Xiaorui and Yin, Dawei and Tang, Jiliang},
title = {A Survey on Dialogue Systems: Recent Advances and New Frontiers},
year = {2017},
issue_date = {November 2017},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {19},
number = {2},
issn = {1931-0145},
url = {https://doi.org/10.1145/3166054.3166058},
doi = {10.1145/3166054.3166058},
journal = {SIGKDD Explor. Newsl.},
month = nov,
pages = {25–35},
numpages = {11}
}
@inproceedings{wu-etal-2019-transferable,
title = "Transferable Multi-Domain State Generator for Task-Oriented Dialogue Systems",
author = "Wu, Chien-Sheng and
Madotto, Andrea and
Hosseini-Asl, Ehsan and
Xiong, Caiming and
Socher, Richard and
Fung, Pascale",
booktitle = "Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics",
month = jul,
year = "2019",
address = "Florence, Italy",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/P19-1078",
doi = "10.18653/v1/P19-1078",
pages = "808--819"
}