美文网首页
论文精读-Transferable Multi-Domain S

论文精读-Transferable Multi-Domain S

作者: tianchen627 | 来源:发表于2019-08-18 14:55 被阅读0次

    ACL2019
    文章简介:
    本文提出了一个可迁移多领域的的状态生成器模型(transferable dialogue state generator,TRADE)来实现任务型对话系统。在多领域(Multi-Domain)和zero-shot domain对话数据集中获得了不错的表现。

    原文
    代码
    先验知识:
    对话系统任务综述与POMDP对话系统
    任务型对话系统公式建模&&实例说明
    DST,Dialogue State Tracking
    Zero-Shot Learning


    目录:

    1.Introduction

    2.TRADE Model

    2.1 Utterance Encoder

    2.2 State Generator

    2.3 Slot Gate

    2.4 Optimization

    3.Unseen Domain DST

    3.1 Zero-shot DST

    3.2 Expanding DST for Few-shot Domain

    4.Experiments

    4.1 Dataset

    4.2 Training Details

    Multi-domain Joint Training
    Domain Expanding

    4.3 Results

    Multi-domain Training
    Zero-shot
    Domain Expanding

    5. Error Analysis

    6. Related Work

    Dialogue State Tracking
    Zero/Few-Shot and Continual Learning

    7. Conclusion


    1.Introduction

    DST,Dialogue State Tracking是任务型对话系统的核心组成部分,DST用来抽取用户在对话中表现的意图然后编码为表示对话状态的紧凑集合。常见的DST输入An-1和Sn-1,输出Sn。An为Action即系统收到用户消息后做出的回复,Sn={Gn,Un,Hn},Gn为当前任务所有的槽(slot),Un为{意图(Intention对应本文中领域domain),槽值对(slot-value pair)},Hn为聊天历史即U和A的集合。详细见上方先验知识链接。注本文中DST有些许差别见第二节中架构描述。
    传统的State Tracking假定本体(ontology)已经提前定义,即所有槽值对已知。这样DST就是一个分类问题了,然而这有两个问题:
    1.在工业界应用中,对话数据库往往仅通过一个API提供给外界,使得获取全部槽位槽值似乎不可能完成。
    2.就算所有的本体存在,然而槽值取值范围很大并且可变,比如餐厅的名称可能有很多很多个。
    所以这类神经网络分类DST在现实场景中应用不多。
    Budzianowski et al. (2018) 发布了一个多领域对话数据集MultiWOZ,给DST带来了新的挑战。


    实线表示一段对话对应一个领域(domain),虚线表示一段对话对应数个领域,即需要在这些不同领域中填入槽值

    如上图所示,一个用户可以以预订餐厅开始,然后询问附附近有什么好玩的地方,最后租出租车。在这种情况下,DST模型需要在每轮对话中决定对应的领域,槽和槽值,这当中有大量的本体组合。
    另外一个挑战是多轮映射(multi-turn mapping),对应上图中的虚线,实线为单轮映射。单轮映射中场景:(领域,槽,槽值)三元组可以由单轮对话得出,在多轮映射中场景则需要由多轮对话才能得到。比如途中Attraction中的area是在上一轮对话中得到的信息。
    为了解决这些问题,DST模型需要在多个领域间共享追踪到的知识。有一些槽,比如说area,在多个领域中都会出现。为了让模型能在未知领域中追踪槽位,在不同领域间传送知识是必要的。我们期待DST模型可以在zero-shot 领域追踪槽位。
    本文提出的可迁移多领域的的状态生成器模型(transferable dialogue state generator,TRADE),目的是:
    1.TRADE提出了基于上下文(context-enhanced)的slot gate和copy mechanism来追踪对话历史中提到的槽值,以解决多轮映射问题。
    2.通过各领域间共享参数并且不需要预定义的本体,TRADE可以在各领域间共享知识去追踪未知的槽值。这在多领域DST中获得了先进的表现。
    3.TRADE可以实现zero-shot DST,如果未知领域有一些训练样本,TRADE可以适应新的少样本领域(few-shot domain)并且不忘记之前的领域。

    2.TRADE Model

    模型架构

    模型由三部分组成:utterance encoder,slot gate, state generator。不同于之前的模型预测预定义本体的概率,TRADE直接生成槽值。 和Johnson et al. (2017) 基于多语言的神经翻译机相似,模型共享参数,state generator在生成每一个(领域,槽)时都会有不同的起始标记(start-of-sentence token)。
    utterance encoder将输入(Un:{意图(Intention),槽值对(slot-value pair)})编码为一个定长的向量。
    slot gate通过一个三分类分类器来判定本轮对话中是否有任意的(领域,槽)被提及。
    state generator挨个解码所有输入(领域,槽)的多路输出并预测槽值。
    注意这里的参数定义及模型架构和上面先验知识中的定义有稍许不同,X表示经历了T轮的对话历史,B表示每轮的对话状态(dialogue state),B为(领域D,槽S,槽值Y)。有领域D有N个取值,槽S有M个取值,假设有J对可能的(领域,槽)对,Yj是第j对(领域,槽)的槽值。

    2.1 Utterance Encoder

    这里使用双向GRU(Chung et al., 2014) 来编码。
    输入为Xt为t轮的对话历史:
    X_t=[U_{t-l},R_{t-l},...U_t,R_t]\in\mathbb{R}^{|X_t| \times d_{emb}}为所有向量的拼接。l代表考虑的前l轮对话。
    编码后的输出为:
    H_t=[h_1^{enc},...,h_{|X_t|}^{enc}]\in\mathbb{R}^{|X_t| \times d_{hdd}}

    2.2 State Generator

    为了生成槽值,我们需要copy mechanism,一般有三种方式index-based copy (Vinyals et al., 2015), hardgated copy (Gulcehre et al., 2016; Madotto et al., 2018; Wu et al., 2019),和soft-gated copy (See et al., 2017; McCann et al., 2018)。这里使用soft-gated copy来把词汇分布和对话历史分布结合为单个输出分布。
    使用GRU作为解码器来预测每一个(领域,槽)的槽值。把领域和槽的嵌入相加作为解码器的第一个输入,设第j对(领域,槽)的第k步解码(可以看模型架构图中第一步解码输出Ashley,第二步解码输出Hotel因为槽值可能由多个词组组成所以有k步解码)输出为h^{dec}_{jk}。state generator使用可训练的嵌入E\in\mathbb{R}^{{|V|}\times d_{hdd}}h^{dec}_{jk}映射到P^{vocab}_{jk},同时h^{dec}_{jk}也会被用来计算对话历史attentionP^{history}_{jk}
    总结一下,就是:

    state generator输入领域和槽的嵌入相加,输出小h。注意大H是Utterance Encoder的输出
    随后根据上文提到的soft-gated copy结合两个分布,最后的输出为:
    p为引入的对历史对话的attention见下式
    标准的attention,w为k步输入(领域和槽的嵌入相加)
    由公式(2)可以看到,即使词语没有在词汇表中本模型可以生成。(怎么看出来的?)

    2.3 Slot Gate

    在多领域的DST任务中,有大量的(领域,槽)对。因此在当前轮对话t预测领域和槽是一个很大的挑战。
    slot gate的作用是把Utterance Encoder输出的Ht映射到包含ptr,none,dontcare的三类。对于每一个(领域,槽)对,如果gate预测none或dontcare,则忽视2.2节中最后输出的槽值而是填入"not-mentioned"和"does not care"。若gate预测ptr,则填入State Generator得到的槽值。


    slot gate

    c见公式(3)。

    2.4 Optimization

    State Generator和Slot Gate都需要训练(Utterance Encoder按照2.1节的意思应该是之前别人有的直接用)。


    slot gate的交叉熵损失
    State Generator的交叉熵损失

    |Yj|代表了槽值输出词组的长度,即解码中的k步。J为(领域,槽)对个数。


    总损失
    权重为超参数。

    3.Unseen Domain DST

    本节聚焦TRADE在zero-shot transferring和few-shot domain expanding上的表现。zero-shot的情况下我们假设在新的领域没有训练数据,在few-shot情况下只有1%的数据(20到30个对话)。

    3.1 Zero-shot DST

    如果之前在别的领域中学习(训练)过,DST可以在新的领域中直接追踪到这些槽 。举例就是如果在"火车"领域学习过"出发"槽,那在"出租车"领域就能追到到"出发"槽。DST输入对话历史X,领域D,槽S,输出槽S对于的槽值。训练样本(X,D_{source},S_{source},Y_{source}^{value}),测试时(X,D_{target},S_{target},Y_{target}^{value})。对于新领域Dtarget,Zero-shot DST需要在未使用任何D_{target}训练样本的情况下输出正确的的槽值。若D_{target}中的槽S_{target}在之前训练的领域D中未出现过,则这项任务非常艰巨。

    3.2 Expanding DST for Few-shot Domain

    few-shot的情况下只有少量的(X,D_{target},S_{target},Y_{target}^{value})训练样本。模型few-shot domain expansion的能力有两个好处:
    1.在少量数据下可以适应新的领域并且获得不错的表现。
    2.不需要重新训练,因为在新的领域中之前的数据并不可靠并且重新训练非常费时。
    可以在没有约束的情况下直接微调,也可以使用两个带约束的微调训练方法:elastic weight consolidation (EWC) (Kirkpatrick et al., 2017) 和 gradient episodic memory (GEM) (Lopez-Paz et al., 2017) 。

    4.Experiments

    4.1 Dataset

    Multi-domainWizard-of-Oz(Budzianowskietal., 2018) (MultiWOZ) 是目前最大的人与人对话语料库。其涉及7个领域,包含8438个多轮对话平均每个对话有13.68轮。与WOZ (Wen et al., 2017) 和DSTC2 (Henderson etal.,2014a)不同,这两个数据集只包含了10个不到的槽和几百个槽值。而MultiWOZ有30个(领域,槽)对并有超过4500个可能的槽值。我们训练时只用到(restaurant, hotel, attraction, taxi, train) 五个领域,因为另外两个(hospital, police) 对话太少了。


    MultiWOZ五个领域的情况

    4.2 Training Details

    Multi-domain Joint Training

    优化器选择Adam,batchsize为32,学习率[0.001,0.0001] 0.2的衰减,公式(7)中权重超参都设置为1,嵌入向量由拼接 Glove(Pennington et al., 2014)和单词级嵌入(Hashimoto et al., 2016)初始化嵌入维度为400。解码器用了贪婪搜索(注sequence2sequence的输出Beam Search用的比较多)。同时为了加强模型泛化能力 utterance encoder 加入了word dropout(和drop out类似随机屏蔽掉几个词,出处 Bowman et al. (2016))。

    Domain Expanding

    加入3.2中的EWC,GEM微调。

    4.3 Results

    这里有两个评价指标,共同目标准确率(joint goal accuracy)和槽准确率(slot accuracy)。前者要求DST输出的第t轮对话状态(dialogue state)Bt=(领域,槽,槽值)和标签完全一致,即这一轮中每一个槽值都预测正确才算这一轮正确,而后者只计算(领域,槽,槽值)三元组的准确率。

    Multi-domain Training

    本文和四个base-line做了比较, MDBT (Ramadan et al., 2018), GLAD (Zhong et al., 2018), GCE (Nouri and Hosseini-Asl, 2018), 和 SpanPtr (Xu and Hu, 2018),结果如下:


    最高的joint goal accuracy
    槽嵌入余弦相似度矩阵

    可以看到拥有相近槽值的槽嵌入相似度高(颜色深),比如destination和departure对于的槽值都是城市名,people和stay槽值都是数字。

    Zero-shot
    左列代表只在当前领域的样本训练,右边表示没有在当前领域样本训练

    可以看到只有taxi领域的Zero-shot最接近左列,作者的解释是因为taxi领域的四个槽槽值都相似。

    Domain Expanding
    在四个领域上训练,随后再新的领域上测试

    可以看到fine-tune的方式,往往比重新训练(training 1% new domain)效果好。

    5. Error Analysis

    多领域训练,横轴是错误率,可以看到name系列错误率最高因为名称的取值太多了
    Zero-shot下的错误分析,横轴为正确率,可以看到book day,area,price range,book people这类可以很好的被迁移学习到。而像parking,stars这种只出现在hotel这一个领域里的槽可以说是无法被预测出槽值

    6. Related Work

    Dialogue State Tracking
    Zero/Few-Shot and Continual Learning

    7. Conclusion

    将来会加强meta learning在多领域DST中的应用。

    相关文章

      网友评论

          本文标题:论文精读-Transferable Multi-Domain S

          本文链接:https://www.haomeiwen.com/subject/vddrsctx.html