Task-Oriented Conversation Generation Using Heterogeneous Memory Networks

EMNLP 2019 录用长文
 
Abstract
如何将外部知识库与对话模型结合起来是一个重要的问题。传统上人们是使用了Memory Network。然而当面对多种来源的、异构的info时,Mem对这些info的处理并不好(我理解的是权重的问题)。因此提出了HMN,它能同步的使用user utterances,dialogue history和backgroud knowledge tuples。
 
总体来说是将
Dialog history => context-aware memory
Knowledge base triples => context-free memory
 
在context-aware里面加入了门机制(GRU),经过Dialogue和KB的两个Mem处理之后,将输出的隐状态输出给decoder部分,再经过Dialogue和KB两个Mem,从而在KB,vocab和history中选择输出。
 
Introudction
两种目的的Dialogue system
  • task-oriented dialogue system的目的是根据背景知识,解决特定的任务
  • chitchat 闲聊机器人
 
背景知识的task-oriented对话系统由三部分组成:
  1. understanding user utterances
  2. fetching right knowledge from external storage
  3. replying right answer
 
现有的Mem都是同等地对待那些从不同信息源来的info。从不同类型的source得到信息之后,传统Mem难以model两种信息:
  1. 不同类型的结构化信息
  2. 知识的effectiveness有效性
所以针对这种弱点,很自然的就会想到,加入权重的思想。
 
这篇文章整体架构与传统的Mem的输入一样,这里的输入
  • dialogue history
  • ground knowledge
结合encoder-decouder,以及加入门控机制
 
本文的主要贡献:
  1. 将对话历史和外部知识存在两个不同的网络中,然后将context-aware的输出转到free里面,目的是找相似的knowledge
  2. 这里面的context-aware MemNN部分通过 门控机制能学习潜在的表示和将这些潜在表示存入memory slot中
  3. 结果好。并且context-aware部分能学习到有意义的representation
 
模型架构
  • encoder部分采用context-aware,更好的理解dialogue history和query
  • decoder使用HMN,能够在生成words时,将外部知识库和对话历史dialogue history结合起来
 
3.1 Encoder
首先,输入一句话,这句话中的每个词汇被extend成三个部分
  • token itself
  • turn tag
  • identity tag
Exp:”may i help you” =>[(may, t1, sys),(I, t1, sys),(help, t1, sys), (you, t1, sys)]
 
encoder部分其实就一个extend编码加一个context-aware Memory,这部分的图在论文中没有单独列出,初看可能造成混淆(我也是捋了半天)
如果要算图的话,是这样:
 
图1
encoder部分将最终的输出oc作为decoder的输入h0,在原本Mem的基础上加了门控机制(原文的3.1.1部分其实就是列了下GRU和Mem中的那些公式)
 
需要说的一个细节:在不同的hop之间的参数共享方式是adjacent weight sharing
 
3.2 Decoder
以下是整个论文的架构图,在绿色方块里加入了省略掉的encoder的context-aware memory,它的输出作为RNN的initial state h0(其实有个疑问,g0是从哪里来的)
 
图2
 
红框里是HMN架构,具体结构如图3
 
图3
 
图其实也就这样,理解成两个Mem结合在一起,第一部分加门控机制,然后将第一部分的输出隐状态作为第二部分的输入query。
 
然后在图2中,根据图3的两个Mem的输出,从KB,vocab和history三种representation中找word,逐步生成g,并作为RNN的下一步的输入。
 
在图2中最后一步select word时,有策略(虽然没看懂):
看word是不是在标记位置,标记位置优先选择,都在的话,就选vocab里的
 
就这样,逐步的把generative word生成,就是答案
 
一个KB以及HMN生成的words的exp:
 
 
 
Experimental setup
数据集:
  1. DSTC2:追踪对话系统的状态,内容主要是找餐馆restaurant search
  2. Key-value retrieval dataset:主要包括日程计划、天气信息以及兴趣导航
  3. dialog bAbI tasks: 餐馆预定restaurant reservations
 
评估方法:
  1. Bilingual Evaluation Understudy(BLEU):侯选文本中存在于任何参考文本中的n-gram的分数
  2. F1 score(F-measure):评估模型是不是能准确地从KB中提取info
  3. per-response accuracy and per-dialog accuracy:评估模型是否能学习重构(预测?)事实的细节
 
一个细节:在使用这些数据集的时候,除了对话和KB,数据集中的其他标签都没用
 
Conclusion
在本文中,我们提出了一种能够在端到端对话系统中纳入异构信息的模型。 该模型应用异构内存网络(HMN)对连续历史记录和结构化数据库进行建模。 在多个数据集上的结果表明,模型可以显着提高生成响应的性能。 我们提出的上下文感知内存网络在学习对话历史的分布和检索知识方面表现出卓越的性能我们提出了在端到端的面向任务的对话中有效使用各种结构化数据的可能性,而无需任何额外的标签和模块培训
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值