End-to-end Adversarial Learning for Generative Conversational Agents

Oswaldo Ludwig
11/28/2017
cs.CL

Official code: oswaldoludwig/Seq2seq-Chatbot-for-Keras (329 stars, Apache-2.0, TensorFlow, last commit 2019-02-17). 1 more implementation below.

Abstract

This paper presents a new adversarial learning method for generative conversational agents (GCA) besides a new model of GCA. Similar to previous works on adversarial learning for dialogue generation, our method assumes the GCA as a generator that aims at fooling a discriminator that labels dialogues as human-generated or machine-generated; however, in our approach, the discriminator performs token-level classification, i.e. it indicates whether the current token was generated by humans or machines. To do so, the discriminator also receives the context utterances (the dialogue history) and the incomplete answer up to the current token as input. This new approach makes possible the end-to-end training by backpropagation. A self-conversation process enables to produce a set of generated data with more diversity for the adversarial training. This approach improves the performance on questions not related to the training data. Experimental results with human and adversarial evaluations show that the adversarial method yields significant performance gains over the usual teacher forcing training.

View on arXivView PDF

Code Implementations(2)

TensorFlowApache-2.0

This repository contains a new generative model of chatbot based on seq2seq modeling.

32995PythonJul 10, 20177 years agoApache-2.0
chatbotconversational-agentsdeep-learningdialoguedialogue-generation+6 more

This repository contains a new adversarial training method for Generative Conversational Agents

8027PythonDec 1, 20178 years ago
adversarial-learningchatbotdialoggangenerative-adversarial-network+2 more

Similar Papers

Cite this paper

@article{ludwig2017endtoend,
  title  = {End-to-end Adversarial Learning for Generative Conversational Agents},
  author = {Oswaldo Ludwig},
  year   = {2017},
  eprint = {1711.10122},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1711.10122}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1711.10122.svg)](https://codeofpaper.com/paper/1711.10122)

Discussion