[NLG] Zero-Shot Dialog Generation with Cross-Domain Latent Actions

摘要:

    简单来说,就是实现了对话生成的zero shot(零次学习)。首先在一些source domain当中学习一些domain的基本描述,希望学到的这些基本描述能够用于target domain的对话生成,其中source domain的领域和target domain完全不一样。但是属性是共同的。

主要工作:

   1.提出来一种新的抽取domain 属性和描述的方法:seed responses as domain descriptions,就是说从source domain的对话中选一些回答的句子,这些句子要尽可能的不同且带有该domain的特色。且这些句子需要被标注,包括dialog act(对话动作)和slot(槽值)。所以这些句子+句子对应标注称为:SRs,也就是种子回答,作者希望在这些回答当中,蕴含中包含target domain回答的信息。

  2.提出了一个action matching 机制,目标在于学到两个东西:a.学到一个在source domain和target domain都适用的cross-domain的分布F。b.学到如何将target domain的SRs融合到已经学到的F中,生成新的适合于target domain的对话。

  3.做了一个适用于zero-shot dialogue的数据集,其中包含各个领域的SRs。

模型:

SRs机制其实已经比较清楚了,主要介绍一下他的核心机制:Action Matching Encoder-Decoder

上面已经介绍了,AM需要实现两个功能,下面是这两个功能的具体实现图,看图说话。

右图主要是对句子级别的抽取。在这里作者主要做了如下几件事情。x表示当前对话句子,a表示抽出来的标注

1.首先,在每个句子和每个句子的标注之前显示加了domain,说这样效果会变好?(玄学)

2.然后把句子和句子标注全部encoder

3.用一个RNN+attn来生成,此外还融合了copynet机制,看图中有一个copy的概率。这个copy机制是怎么样使用的呢,他主要用来从前面的context中看哪些词可以copy,就是lstm+attn从当前词表中有一个概率,然后对之前的对话context有一个概率,将这两个概率加起来看最后哪一个词的概率最大。

左图主要是对前面对话历史的信息抽取,其主要操作步骤是一样的。那作者是如何实现两个功能的呢,主要在于他的loss函数。

前一个是句子级别抽取信息时候的loss,后一个是对话历史的loss。每个loss都由两项组成。

对于第一个loss而言,第一部分,实现的是一个在给出标注情况下,求当前语句的X的概率,第二部分,是指生成一句话之后,这句话的标注和原来对话的标注之间的差别。这实际上就是实现的第二个功能(使得当前生成的话语融合target domain的标注)。

对于第二个loss而言,主要是在对话历史的影响下求分布F,使得F变得各个领域通用。

一句话总结:

  本文主要介绍了一个SRs抽取domain信息的机制,以及AMencoder-decoder机制来生成通用属性以及融合domain属性到生成当中,实现了zero-shot dialogu的极好效果,且是第一篇end-to-end的zero-shot dialogue 论文,可以说开了zero-shot  dialog generat 的先河。

论文网址:https://arxiv.org/abs/1805.04803?context=cs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值