摘要:
之前还没有人做过multi-turn dialogue的有关省略和共指词汇的研究,只有短文本恢复省略词汇的研究。本文作者通过构造一个数据集(数据集中将dialogue的省略词和共指词都标记了出来),然后结合attention和copynet提出了一个end2end的multi-task学习框架。学习在结合上文的情况下,如何生成省略词和共指词。并且EM,BLEU,F1的效果不错。
主要贡献:
1.提出了一个端到端的框架,试图解决省略词和共指词的问题
2.结合了生成省略词,共指词的任务与multi-turn task-oriented dialogue的任务,这样可以提高dialogue的效果
3.构造了一个数据集
模型:
第一步:左边是针对上一句话,右边是dialogue context,也就是之前的所有对话
1.先对左右两边进行encoder,使用glove词向量,分别经过双向GRU编码。然后左边经过一个attention层,获得当前句子中词与词之间的联系。并且将这个联系以及现在已经生成词汇的编码传递到一层GRU。从GRU出来的hidden在传递到右边的机制中。此外,GRU本身可以获得一个生成的词表可能性。
2.右边编码之后进入一个copy机制,这个copy机制结合从左边来的信息,以及历史文本信息,然后获得一个当前应该copy哪个词的概率。
3.最后左右两边决定一下,到底是生成还是copy
以上是编码层和decoder层。此外他还和dialogue的任务结合起来做了multi-task。
分为两个encoder和三个decoder,简单介绍一下三个decoder:
第一个decoder:
主要是根据前面得到的BSpan(就是一些关键词)以及当前的话语,生成当前这句话的Bspan。
第二个decoder:
同之前介绍的那个架构,一个一个词的完成当前这个句子,消去当前这个句子的省略和共指,并且将他们替换成名词。
第三个decoder:
就是dialogue的任务了,需要生成这句话的response。
一句话总结:
在dialogsystem的NLU任务中,通过attention和copynet机制消除省略和共指词,并且和dialogue的训练构成一个multi-task形式的任务,以提高dialogue生成的质量。