艾达AI

AAAI 2019 | 采用聚类集束搜索机制的知识对话系统

2019-04-03  本文已影响0人  LC震荡电路

DSTC7 Track 2「Sentence Generation」任务要求基于 Fact 和对话历史自动生成回答。该任务它要求利用端到端的对话系统自动读取 Fact。这就像使对话系统具备阅读理解的能力,能够基于 Fact 产生正确的答案。文章《Cluster-based Beam Search for Pointer-Generator Chatbot Grounded by Knowledge》以pointer-generator为基础,在解码时采用了聚类集束搜索机制,提高了模型生成句子的丰富性,在DSTC7中拿下Sentence Generation任务冠军。

论文地址:

http://workshop.colips.org/dstc7/papers/03.pdf

引言

Pointer-Generator机制可以从历史会话和知识语料中直接提取有用的信息,该文采用这种方法在对话生成中解决OOV问题并进行知识提取。通过将聚类机制引入到beam search解码过程,提高了模型生成回复的丰富性,最后通过语言模型过滤掉在回复中经常出现但无意义的结果。

数据集

本文数据集为DSTC官方在reddit社区上抓取的300万对话问答,以及从 reddit 网页上相关的网页中提取的 2 亿个句子。经该文作者处理后,共组成1426601组对话的数据集,其中训练集大小为1408951,验证集大小4542,测试集大小为13108.每个句子的长度为8到20个token。

模型

整体架构

模型的整体架构如下图1,采用端到端的编码器解码器架构,编码器部分对对话中的Conversational history和Fact Extraction分别采用bi-LSTM模型编码。解码器部分在beam search时做K-means聚类处理,然后通过N-gram语言模型去除重复token,最后用N-gram Language Model过滤掉语义上无意义的safe response。

图1 模型整体架构

解码器结构

模型的解码器结构如下图2,主要包括三个部分:

(1)对Conversation history和Facts进行Attention计算;

(2)模式预测,即解码器预测分别从history copy、从fact copy、直接generation的概率,下式中m表示三种模式的编号;

(3)输入词的概率估计,将(2)中的模式预测与每个token在每个模式下的概率进行插值计算,得到总的概率;

图2 解码器结构图

聚类集束搜索

如图3所示,解码进行beam search时,算法将扩展的候选集

图3 聚类集束搜索算法流程

进行聚类操作,然后分别选出每一类的BS/K个候选集作为新的候选集数据,之后分别经过语言模型去重和过滤safe response,然后选出最好的一个候选句作为解码结果。

实验

本文共对比了三个官方提供的baseline模型和比赛中其他两组模型、以及自己的两个模型(含聚类集束搜索、不含聚类集束搜索),衡量指标也分为机器评价、人工评价两大组。

机器评价用了NIST-4、BLEU-4、Meteor评价结果的相关性,并用Entropy-4、Div-1、Div-2评价结果的丰富性,如下表1所示,结果显示该文模型具有最好的相关性结果;

表1 机器评价结果

人工评价由三个人分五档进行评分,分别给出六组模型的平均得分和95%置信得分区间,如下表2所示,结果显示该文模型具有最好的丰富性,并且综合得分也排名第一;

表2 人工评价结果

结论

1)本文将pointer-generator的copy机制引入到知识对话生成模型中,模型成功地结合了上下文和外部知识生成回复,生成的结果具有较好的知识相关性。另外聚类、语言模型等机制的引入,较好地处理了生成结果的丰富性问题。这两点都对知识对话系统的构建具有借鉴意义。

                                                                                    扫码识别关注,获取更多新鲜论文解读

上一篇下一篇

猜你喜欢

热点阅读