【每日一读】ACL2020:基于动态目标下的分层注意力网络进行对话状态追踪
作者:互联网
Paper: ACL2020-A Contextual Hierarchical Attention Network with Adaptive Objective for Dialogue State Tracking
Link: https://www.aclweb.org/anthology/2020.acl-main.563.pdf
Code: https://github.com/ictnlp/CHAN-DST
这是一篇关于 对话状态追踪(DST) 任务的论文,在 Intro 部分,作者提出了当前DST任务存在的两个问题:
- 传统的一些工作在进行状态追踪时,往往只考虑了当前轮次下的对话内容而忽略了历史对话内容;且目前考虑到利用历史对话内容的工作,仍旧没能充分地利用对话历史中的上下文信息。
- 在DST任务中,不同的slot出现的频类差异是很大的,也就是存在所谓的 slot imbalance 问题,而现有的工作往往忽略了这一问题。
基于以上的两个问题,本文分别设计了Contextual Hierarchical Attention Network (CHAN) 和 Adaptive Objective 来进行解决:
具体地,Contextual Hierarchical Attention Network 由如下几部分构成:
-
Sentence Encoder: 通过BERT学习每一轮 t t t下的对话内容表示:
每个 slot 及其对应的 value 的表示:
-
Slot-Word Attention: 从对话内容中抽取出word-level的与slot有关的信息:
-
Context Encoder: 对上一步抽取出的slot有关信息与对话的轮数间的相关性进行建模, 具体的计算方法如下所示,其中 m n m^n mn是第 n n n 层Context Encoder的输出,PE 表示位置编码:
-
Slot-Turn Attention: 从对话内容中抽取出turn-level的与slot有关的信息:
-
Global-Local Fusion Gate: 为了对全局的上下文信息与当前的对话内容的信息进行平衡,设计一个Gate结构来动态地控制这两种信息的比例:
通过线性层得到此时的输出表示,并基于L2 norm计算关于values的概率分布:
-
State Transition Prediction: 为了更好地捕捉上下文信息, 作者设计了一个名为 State Transition Prediction (STP) 的辅助任务来进行联合训练。具体地,STP 通过二分类来预测 slot 的 value 较之上一轮是否发生了更新:
关于 Slot Imbalance 的问题,作者设计了 Adaptive Objective , 通过评估每个类型 slot 预测的难度来自适应地设计该slot对应的权重, 具体包括如下步骤:
- (1) 计算slot级别的任务难度指数: 在验证机上计算每个 slot 对应的 acc,若 Slot s 的 acc 小于等于 s’ 的 acc, 则认为此时Slot s 是更加困难的任务,定义它在slot-level的难度如下:
- (2) 计算样本级别的任务难度指数: 假设有两个样本,则认为置信度低的那个样本是一个更困难的任务, 定义它的难度如下, 其中 γ 是一个超参数:
*(3)定义自适应的目标函数如下:
与目前流行的 Focal Loss赋予每个slot一个静态权重的方法不同,Adaptive Objective 能够动态地根据任务难度调整每个 slot 对应的权重,不仅可以促进样本较少slot的学习,还可以平衡所有slots之间的学习。
作者在 MultiWOZ2.0 和 MultiWOZ2.1 上进行了实验,均取得了 SOTA 效果:
并通过消融实验验证了不同模块对最终结果的影响:
了解更多深度学习相关知识与信息,请关注公众号深度学习的知识小屋
标签:slot,Slot,DST,Attention,任务,分层,对话,一读,ACL2020 来源: https://blog.csdn.net/carrie_0307/article/details/113250989