《Modeling Multi-turn Conversation with Deep Utterance Aggregation》
本文来自COLING2018, 文章提出, 诸如Multi-view和SMN模型都是将对话历史视为整体, 或者说每一句对于response都是平等的, 这样做会忽略对话历史的内部特征, 例如一段对话过程经常包含多个主题; 此外一段对话中的词和句的重要性也都不同。针对这些对话历史中的信息特征, 作者设计了下图所示的DUA模型:
- 第一部分: 通用的词向量 GRU做embedding
- 第二部分: 开始着手处理上面提到的对话历史交互问题, 首先虽然history中的多句话都对response有影响, 但最后一句通常是最关键的, 这一层的每个utterance(除最后一句)和response都和最后一句utterence做aggregation操作, aggregation操作有三种: 连接(concatenation), 元素加(element-wise summation), 元素乘(element-wise multiplication), 其中连接操作的效果最好
- 第三部分: 以utterance为单元做self-attention, 目的是过滤冗余(比如无意义的空洞词句), 提取关键信息, 由于self-attention会失去序列信息, 作者在attention上又加了一层GRU获得带顺序信息的P
- 第四部分: 完全采用SMN中构建和处理双通道匹配矩阵的策略, 用第一层的词向量和上一层的GRU输出P分别构建词汇级和语句级的匹配矩阵, 过CNN Pooling获得交互特征
- 第五部分: 先将交互特征传给一层GUR获得隐状态h, 再对h和第三部分的GRU输出P做attention(h, P)操作, 将输出传给softmax获得预测匹配结果