Multi-Task Learning for Speaker-Role Adaptation in Neural Conversation Models

Multi-Task Learning for Speaker-Role Adaptation in Neural Conversation Models

Yi Luan, Chris Brockett, Bill Dolan, Jianfeng Gao, Michel Galley

UW, MSR

Intro

在个人助理类的产品中,都有一个核心的conversational engine。其中一个挑战就是如何让engine能够根据不同的特征生成对应的有意义的输出。

一种方法是为每一个用户建立基于个人数据训练的模型,而这里使用了multi-task的方法进行knowledge transfer。

Background

任务的定义是在给定一个上下文的情况下,生成一个response。这里每一条数据都是由(context, message, response) triple组成:context是前面几个turn的回复,message是当前turn的输入,而response则是当前turn的真实输出。

Seq2Seq对话模型是给定一个输入序列,和对应的输出序列,使用LSTM进行的预测。

persona-based 对话模型(个人对话模型)是将每个用户的个人信息encode到decoder中。如同公式1展示的,如果有K个用户,那么就会在输出端concatenate一个K维度的One-hot vector来表示用户信息。也正是因此,对于每一个用户都需要大量的训练数据。

A Multi-task Learning Approach

使用multi-task的方法来减少对于数据大量需求的限制。定义这么两个任务:

  1. Seq2Seq task,来学习对话相关的内容,如同前面章节描述的一样
  2. Autoencoder,使用大量与对话无关的personal data

Parameter sharing: 给定相同的上下文,希望产生的response能够模拟每一个不同的说话者。因此,在进行multi-task training的时候,只将Seq2Seq和autoencoder的decoder参数进行共享。而因为上下文并不是有限的,并且会根据不同的用户不一样,因此encoder的参数并不会共享,而是不同人物之间相互独立。

简单的说,就是Seq2Seq和autoencoder部分共享了decoder部分,Seq2Seq是如同前几章描述,学习的是如何给定上下文生成回复,而autoencoder只是对应每一个特殊用户的自编码,希望能够学习到的是用户自身的说话特性。

Experimental Setup

从Twitter FireHouse中获取的对话数据进行训练。

eva方法是BLUE,同时也输出perplexity来作为评估模型capability的方法。

results matching ""

    No results matching ""