文章来源
paper link:
Generating Informative Conversational Response using Recurrent Knowledge Interaction and Knowledge-Copy
https://www.aclweb.org/anthology/2020.acl-main.6.pdfwww.aclweb.org原文概述
原文聚焦于知识驱动的对话生成领域[尽管原文中没有看到知识驱动,仅看到利用外部知识],想要解决的挑战是在不失去流畅性和连贯性的情况下,用多种相关知识生成信息丰富的response。基于知识的对话生成主要有两种方法:一种是pipeline式,即依次进行知识的选择和生成;另一种是joint式,即将知识选择集成到生成过程中。pipeline式知识驱动对话生成将知识选择与生成分离开来,导致知识与生成的融合不足。另外在集成各种知识时,pipeline式方法缺乏灵活性。joint式知识驱动对话生成与memory module连接的方法通常是静态地使用知识信息,因此在解码过程中knowledge attention的置信度降低,有可能产生知识词的不恰当搭配。原文针对这些问题,提出了一种有效的基于知识的神经会话模型,该模型增强了知识选择和生成之间的结合,以产生更多信息和更有意义的响应。
具体地,原文在response decode步骤中利用知识交互(recurrent knowledge interaction)来合并适当的知识,并且引入了一种利用知识感知指针网络的知识复制机制(knowledge-aware pointer network),根据知识注意分布从外部知识中复制单词。knowledge-aware pointer network用于解决OOV问题,因为为response生成的来自外部知识的描述词更有可能是OOV的,所以一定程度上缓解了生成非平凡词的负担。另外原文的模型使用了transformer编码知识进而可以适合于结构化以及非结构化的知识编码,原文说该模型也适用于不同语言[中文英文]。
原文model的感觉是将不同的query-response生成方式扩充到带知识的response生成,比方说解码考虑到query的信息以及知识的信息的融合,也就是都与解码状态求attention,根据权重加和;copy机制也从单源的query到query以及konwledge的多源copy。整体思路比较concise,效果也不错。
原文模型
原文模型结构如上图所示,整体框架基于seq2seq。对于数据集
Utterance Encoder
双向LSTM编码对话历史得到隐状态序列:
Knowledge Encoder
原文直接用Transformer来编码知识,这样的话可以编码结构化知识和非结构化知识,最后使用普通版本attention计算得到整个知识的表征:
对于每一个候选知识都作上述的编码,
Recurrent Knowledge Interactive Decoder
原文的重点部分,与先前decode的每一步仅仅与X的隐状态求attention上下文向量不同,原文多了knowledge的部分。公式上:
该时间步更新的隐状态为:
Copy Mechanism的指针网络在生成模型中被广泛用于处理oov问题。原文的copy mechnism知识感知指针网络主要利用知识表示的注意力分布扩展了原始指针网络的范围。此外,知识感知指针网络在utterance和知识之间共享扩展词汇,有利于oov词汇的解码。其实就是多元的copy mechanism,计算生成概率和copy概率:
其中
最终生成词的概率为:
其中
原文实验
数据集
- Wizard-of-Wikipedia。数据集包含22311个对话,201999次,166787/17715/17497用于train/valid/test,测试集被分成两个子集,test Seen(8715)和test Unseen(8782)。Test Seen与训练集有533个重叠主题;Test Unseen包含58个在训练或验证中从未见过的主题。
- DuConv。该数据集具有29858个对话框和270399次会话的前瞻性会话数据集。该模型主要扮演具有明确目标的主角角色,以及由两个主题组成的知识路径,并提供与这两个主题相关的知识。这个数据集中的知识是三元组(subject、property、object)的格式,总共包含大约144k个实体和45个属性。
基线
- Seq2Seq
- MemNet(hard/soft)
- PostKS(concat/fusion)
- KIC (原文model)
实验结果
544

被折叠的 条评论
为什么被折叠?



