Several approaches could be considered while building conversational software, on a spectrum from hand-coded (flow charts) to completely data driven (seq2seq models).
Right now we have promising building blocks, but very little understanding of how to put them together to make really engaging experiences. And these are just the rudiments of conversation: questions and answers, interwoven threads, knowing when to remember and when to forget. There are equally difficult challenges in the design of conversational experiences. How do users know what your system can do? How can you learn from your users and adapt to them in real time? How do we empathise – and send emotionally appropriate responses?
Interesting work is happening in the middle ground, where systems don’t rely on a rigid flow chart, but can still guide users and perform useful tasks. By making fewer assumptions, these systems show greater flexibility, but also an increased need for training data.
A number of existing technologies are promising building blocks for achieving a big breakthrough in conversational software. These include unsupervised learning algorithms like word2vec and skip-thought vectors, which allow us to generate continuous representations of words and sentences. Another example are memory-augmented neural architectures which can be trained to ‘reason’ over these continuous spaces, albeit within narrow domains.
Yet another is reinforcement learning, which enables models to learn sophisticated behaviours without labeled examples, but comes with its own set of limitations.
While the building blocks are there, this field is very much in an experimental stage, with clever ideas coming from both academia and industry.
The event took place on October 28th, 2016.
Find Alan’s slides on SlideShare.