【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

GCDST: A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

概要

问题动机

​ 大多数现有的方法都在单个领域上独立训练 DST,而忽略了跨领域之间的信息的有效共享。

主要贡献

​ 为了解决多域 DST 任务,我们首先构建了一个 对话状态图 ,在跨域的相关域 - 插槽对之间传输结构化特征。然后,我们通过 图卷积网络 对对话状态的图信息进行编码,并利用 硬拷贝机制 直接复制之前对话的历史状态。

​ 与 TRADE 相比,在 MultiWOZ2.0 和 MultiWOZ2.1 上的联合精度分别提高了 2.0% 和 1.0%。

模型

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

​ 上图说明了基于图的和拷贝增强的多域对话状态跟踪器 (GCDST) 的编码器 - 解码器框架。与之前的工作不同 (TRADE),我们在编码器和解码器中引入 状态图表示 ,以 建模跨域对话状态之间的相关信息 。此外,我们还提出了一种对话解码器中的 硬拷贝机制 从最后一个预测中获得历史状态。该框架由四个主要组件组成。

State Graph Representation

​ 实际对话通常包含多个领域的对话状态。不同的域通常有许多相同的插槽,可能共享相同的值或具有相似的表达式和语言特征。因此,在跨域或具有相同值的不同域槽对之间表示和传输特征是非常必要的

Graph Construction

​ 之前的工作主要通过 共享参数 来跟踪跨领域的插槽信息如 TRADE。然而,很难显式地和直接地 在插槽之间传输信息 。因此,本文提出了用一个图结构来表示对话中对话状态之间的关系。根据该图,从一个领域的状态中学习到的特征能够 直接迁移 到其他领域。

​ 对话状态图 $G = {N,E}$, 其中 $N = {(d,s) }$ 表示 节点集 ,$E $ 表示 无向边集 。对于两个节点 $N_i = (d_i,s_i)$ 和 $N_j = (d_j,s_j)$,他们之间的链接情况用一个 邻接矩阵 $A$​ 来表示,4 种边链接如下:

  • Domain-connection: If $d_i = dj, A{ij} = 1$;
  • Slot-connection: if $s_i = sj, A{ij} = 1$;
  • Value-connection: $\exists v_i,v_j: $ if $v_i=vj, A{ij} = 1$ where $v_i$ is one of value of $N_i$;
  • Slot/value-connection: union of slot and value connection.

Graph Encoding

​ 为了在图上的对话状态节点之间传播信息,我们引入了图卷积网络 (GCN) 通过池化相邻节点的特征来更新具有结构感知功能的节点表示。

​ GCN 的输入包含一个节点嵌入矩阵 $H \in \R^{|V|\times d}$, 以及 邻接矩阵 $A \in \R^{|V|\times |V|}$ 它表示对话状态图的结构。在对话状态图中,节点间的信息传播最多只占用两跳。因此,我们考虑一个两层的 GCN,其中每一层都可以写成一个非线性函数和一个对称的邻接矩阵:

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

其中 $\hat{A} = A + \lambda I$ , 在经过 $l$ 层的 GCN 后追踪得到节点特征矩阵 $E_{node} = H^{l+1} \in \R^{|V| \times d}$ .

Dialogue Encoder

​ 之前的方法 只利用话语来编码对话历史 。但是,先前的对话状态是信息丰富的,并与当前状态有关。例如,当用户询问酒店的区域或人数时,她很可能在接下来的对话中也有类似的询问,比如餐厅。因此,本文提出了一种话语编码器和状态编码器,利用双向门控循环单元(GRU) 分别 编码历史话语和状态。

​ 具体来说,话语编码器 的输入为历史话语的单词序列 ${w_1, w_2,...,w_U}$ , 状态编码器 的输入表示为 ${(d_1s_1,v_1), ...,(d_Ms_M, v_M) }$ 其中 $M$​ 表示历史状态的数量。对于每个域插槽对,我们使用图嵌入来对其进行编码。在少数情况下,域 - 插槽对的值是一个包含多个单词的短语。为了简单起见,我们 只根据话语编码器的第一个单词来编码 $v_j$ 的值 。最后,我们将 $d_js_j$ 和 $v_j$​ 连接 起来作为输入表示,并将其送入状态编码器。

​ 在测试过程中,我们只 使用预测状态作为状态编码器的输入,尽管在预测状态中可能会有一些错误。为了模拟这种情况,我们在训练步骤中随机替换、添加和删除一些历史状态。具体来说,对于替换或添加操作,只选择具有相同域、插槽或值的状态作为候选状态。

Dialogue decoder with copy mechanism

​ 为了预测一个对话的当前状态,可以考虑到历史话语和状态。TRADE 利用拷贝机制拷贝来自历史话语的单词,但是历史上下文可能会随着对话的进行而变得非常冗长。在这种情况下,RNN 可能会丢失从前几个回合中提取的状态信息。为了解决这个问题,本文首先提出了一种 硬拷贝机制 来直接从以前的状态复制该值,因为作为 上下文摘要 的历史状态对当前的预测很重要。然后,我们使用一个 软门 来结合基于 词汇表 历史话语 MARKDOWN_HASHe3d8e1aa090e426337b0f9cac3f72afdMARKDOWNHASH的概率。特别地,使用 GRU 来解码每个域插槽对的值,并应用节点嵌入 $E{node}(d_ks_k)$ 来表示每个对话候选状态。当解码 $d_ksk$ 的第 t 个字时,GRU 从上一步 $w{t−1,k}$ 中嵌入的一个单词作为输入。GRU 的隐藏状态记为 $h_{t,k}$。在词汇和历史话语上的分布计算如下:

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

其中 $h_{0,k} = h_u^{enc} + hs^{enc}$, $w{0,k} = E_{node}(d_ks_k)$ , $W_1$ 是一个从隐藏状态大小到词汇表大小的映射矩阵;$H^{utter}$​ 为对话话语状态编码器中的历史状态。

​ 由于在每个对话回合中可能有许多不变的状态,我们试图参考以前预测的历史状态。因此,我们探索了两种方法,即 硬拷贝机制 。(Eq.4)和一种 基于注意力的方法(Eq.5),以获得在对话历史状态上的分布。虽然硬拷贝机制将生成一个独热向量,但基于注意的方法的输出是在词汇表上的分布,如下所示:

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

其中 $state_{t,k}$​​​ 是最后一回合域槽对 $d_ks_k$​​的第 t 个单词。如果状态 $t,k$ 不存在,我们通过 padding 来填充它。$W_2$ 是一个用于训练的映射矩阵。

​ 最终的输出分布是上述三个分布的加权和:

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

参数 β 和 γ 是可训练的门,计算如下:

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

Slot Gate

​ 与 TRADE 相似,使用一个插槽门来预测 ptr、none 和 dontcare 上的概率。输入话语和状态的上下文向量,$d_ks_k$​的槽门表示为:

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

优化

​ 在训练过程中,我们优化了解码器的交叉熵损失 $L_v$​和槽门的 $L_g$​的和:
$$
L = L_g + L_v
$$

实验

主要结果

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

分析

不同边链接类型的影响:

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

解码器对历史状态的影响:

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

超参数 $\lambda$​ 的影响:

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

上下文长度的影响:

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

2020-ACL-Rethinking Dialogue State Tracking with Reasoning

概要

问题动机

​ 目前 DST 常见的做法是将它视为一个问题,将对话内容分类为一组预定义的槽值对,或为给定对话历史的不同槽生成值。两者在考虑对对话发生的依赖关系方面都有局限性,并且缺乏推理能力

​ 具体来说,对话历史的依赖和推理的关键问题尚未得到充分的研究。比如:

  • 许多现有的方法只关注回合级,它接受当前回合的话语,并输出相应的回合信念
  • 与联合信念相比,由此产生的回合信念只反映单一回合信息,因此缺乏实际应用

因此,最近的工作针对的是总结对话历史的共同信念。一般来说,它们通过规则积累回合信念或通过各种递归神经网络建立转向模型信息(RNN)。

​ 虽然这些基于 RNN 的方法依次建模对话,但它们通常将整个回合的话语直接传递给包含大部分噪声的 RNN,并导致不令人满意的性能。

主要贡献

​ 本文提出在 后端数据 的帮助下,通过对对话回合的推理,逐步跟踪对话状态。实证结果表明,该方法在 MultiWOZ2.1 的联合精度方面显著优于现有的方法 38.6%,这是一个跨多个领域的大规模人机对话数据集。

  • 重新考虑面向任务代理的对话状态跟踪问题,指出需要对后端数据进行转换和推理进行适当的推理
  • 将数据库表示成一个 二部图,并对其进行信念传播,这使信念跟踪器能够深入了解潜在的候选者,并在对话过程中检测到相互冲突的需求
  • 在预训练的 BERT 的帮助下,增强短话语以实现更准确的回合信念,我们通过轮流推理逐步推断联合信念(增量推理模块、退火训练策略),并大幅度优于 最先进 的方法。

问题定义

​ 定义 $X = {(U_1,R_1),...,(U_T,R_T) }$ 为对话历史;$B={B_1, ..., B_t}$ 作为每一回合的联合信念。$Q_t$ 表示第 $t$ 回合 $(U_t,R_t)$ 的回合信念。每一个 $B_t 或 Q_t$ 都由 $(domain, slot, value)$ 元组组成。假设总共有 K 个不同的 $(domain, slot)$ 对,$Y_k$ 是第 K 个 $(domain, slot)$ 对的真实插槽值。

模型

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

​ 图上中提出的 ReDST 模型由三个组成部分组成:一个 转向信念生成器 、一个 二部图信念传播器 和一个 增量信念生成器。我们没有直接从对话历史中预测联合信念,而是进行两阶段推理:首先通过 BERT 标记和序列分类从增强的单回合话语中获得回合信念。然后,利用二部图的传播结果,推理回合信念和最后一个联合信念。在此基础上,它逐渐推断出最终的联合信念。

回合信念生成器

​ 将 $X_t=(U_t,R_t)$ 表示为第 t 个回合的话语,回合信念发生器的目标是预测这种特定话语的准确状态。虽然对话历史 $X$ 可以以任意长度积累,但回合话语 $X_t$​​ 往往相对较短。为了利用上下文表示提取信念,并享受预先训练的编码器的良好性能,我们微调 BERT 作为基础网络,同时在多任务学习设置中附加 序列分类 token 分类 层。token 分类任务提取特定的槽值跨度,序列分类任务决定特定的(domain、slot)的值为:yes、no、dontcare、none 或 generate 从 token 分类等生成的值。

​ 假设当前回合输入 $X_t = x_1,x_2,...,x_N$, 增强后的输入语句为 $X^{'}_t = [CLS],domain,slot,[SEP],x_1,...,x_N$​ 特定的(domain, slot)作为查询,以提取话语中的跨度。BERT 的输出为 $H = h1,...,h{N+5}$​ .

​ 使用 [CLS] 对应的隐藏状态 $h1$ 作为聚合序列表示来进行分类:
$$
z^k = softmax(W^k
{sc}\cdot (h1)^T + b{sc}^k)
$$
​ 对于 token 分类,将除 [CLS] 外的输出输入到 softmax 层将 token 分类为 $S,I,O,[SEP]$ :


$$
yn^k = softmax(W{tc}^k\cdot (hn)^T + b{tc}^k)
$$
​ 为了共同建模序列分类和标记分类,我们共同优化了它们的损失。对于前者,计算了预测的 $z^k$​和真实的独热标签 $\hat{z}^k$ 之间的交叉熵损失 $L{sc}$:
$$
L
{sc} = -\sum{k=1}^K log(z^k \times (\hat{z}^k)^T)
$$
对于后者:
$$
L
{tc} = -\sum{k=1}^K \sum{n=2}^{N+5} log(y_n^k \cdot (\hat{y}n^k)^T)
$$
联合后:
$$
L
{turn} = \alpha L{sc} + \beta L{tc}
$$

联合信念推理

​ 现在我们可以预测每个回合的回合级信念状态。直观地说,我们可以直接将我们的回合信念生成器应用于连接的对话历史上,以获得联合信念 (TRADE)。然而,这几乎不是一个最佳的实践。首先,将所有话语作为长序列处理将失去对话的迭代特性,从而导致信息丢失。其次, 目前的模型如循环网络或 Transformer 模型不能很好地建模长期依赖关系。因此,我们将对话过程模拟为一个递归过程,其中当前的联合信念 $Bt$​​依赖于最后一个联合信念 $B{t−1}$​​和当前的转向信念 $Qt$​​。一般来说,我们使用 $B{t−1}$​和 $Q_t$ 对基于后端数据库构建的二部图进行信念传播,以获得每个插槽值对的可信度评分。然后,我们使用不同的方法对递归过程进行增量信念推理。

二部图信念传播

​ 作为对话系统的核心组件,对话状态跟踪器可以访问后端数据库。在面向任务的对话过程中,用户和代理相互交互,达到信息意识的同一阶段。用户表达了许多难以满足的要求。代理求助于后端数据库并相应地响应。然后,用户将调整其需求,以完成任务。在大多数现有的 DST 中,跟踪器必须从对话历史中推断出这种调整需求。通过对代理数据库的推理,我们希望获得明确的更准确的线索。

​ 首先将数据库抽象为二部图 $G=(V,E)$​ , 其中顶点被划分为两组:实体集 $V{ent}$​ 和 属性集 $V{attr}$​ , 其中 $V = V{ent} \cup V{attr}$​ 并且 $V{ent} \cap V{attr} = \emptyset$​ . $V{ent}$​和 $V{attr}$​中的实体已完全断开连接。边链接来自 $V{ent}$​和 $V{attr}$​的两个顶点,表示属性属于关系。在每个回合过程中,我们首先通过函数 $g(\cdot)$​将预测的 $Qt$​和最后一个联合信念 $B{t−1}$​映射到图上的信念分布。这里我们应用精确匹配并计算与阈值的相似性来实现 $g(\cdot)$​。

​ 在通过 $g(\cdot)$​将信念映射到数据库的二部图之后,开始在图上的信念传播。有两种在二部图上的信念传播方式:

  • $V{ent} \rightarrow V{arrt}$ : 它模拟了提到实体的情况,其属性将被激活。例如,在推荐了一家餐厅后,附近的酒店将具有相同的位置值。
  • $V{attr} \rightarrow V{ent}$ : 这模拟了当提到一个属性时的情况,所有具有该属性的实体也将接收传播的信念。

如果一个实体有更多被提到的属性,它将收到更多被传播的信念。假设当前 t 回合的传播结果为 $c_t$​,它可以看作是在对数据库图进行推理后的状态值的可信度分数。我们通过在二部图中进行信念传播来对这组条目进行推理,以获得它们的确定性分数如下:
$$
ct = \gamma \cdot g(V{t-1}) + \eta \cdot g(Q_t) \cdot (I + W^{adj})
$$
其中,γ 是建模可信度衰减的超参数,因为新提供的插槽值通常反映了更多更新的用户意图。$W^{adj}$ 是二部图的邻接矩阵。在二部图中总共只有 273 个节点。

增量信念生成器

​ 利用从信念传播器中获得的可信度分数 $c_t$,我们现在逐步推断出当前的联合信念 $B_t$。在数学上有:
$$
B_t = f(Qt, B{t-1}, c_t)
$$
函数 f 整合了来自回合信念、最后一个联合信念和传播的可信度分数。又由于信念生成器的顺序性质,我们也可以应用 GRU 单元来依次预测信念。对于 GRU 的情况,详细的公式如下:
$$
g(B_t) = GRU(W\cdot [g(Q_t);ct],g(B{t-1}))
$$

优化策略

​ 在训练开始时,由于模型没有得到很好的训练,使用预测的 $B_{t−1}$​作为输入往往会导致非常缓慢的收敛,甚至被困在局部最优状态中。因此,我们定义了用一个依赖于训练时代数 e 的衰减函数从真實值中选择的概率 p:
$$
p = \frac{\mu}{\mu + exp(e/\mu)}
$$
其中,$\mu$​是一个超参数。$p$ 的值会不断减小,这与在训练过程中输入真實值的概率相对应。

实验

数据集

​ 数据集为 $MultiWOZ 2.1$ , 这是一个最近发布的多领域对话数据集,跨 7 个不同的领域,包含 1 万多个对话。

主要结果

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

Schema-Guided Multi-Domain Dialogue State Tracking with Graph Attention Neural Networks

概要

问题动机

​ 对于多域 DST,由于候选状态数量的增加,数据稀疏性问题成为一个主要障碍。现有的方法通常是 独立预测每个槽的值,不考虑槽关系,这可能会加剧数据稀疏性问题。

主要贡献

​ 本文提出了一种带有 gat 的模式引导的多域对话状态跟踪器。利用 gat 来提取模式信息是很优雅的。

  • 第一个在多域 DST 中包含槽关系和模型槽交互的人。这也是第一次在 DST 中利用图神经网络
  • 为了对模式图和对话上下文(用户和系统话语)进行完全编码,本文介绍了图注意匹配网络(GAMTs),其中包括内部和外部注意机制。
  • 为了利用对话中先前的状态,提出了一种具有门控循环单元的新型循环 GAT(RGAT), 用于学习保存或忘记历史。
  • 实验结果表明,该方法在 MultiWOZ2.0(+2.57%)和 MultiWOZ2.1(+9.63%)基准测试上都实现了 最先进的性能(联合目标精度)。消融研究也证实了模式图是重要的。

相关研究(GATs)

​ 定义图 $G = (V,E)$ 其中 $V = {xi }$ 为节点集合,$E = {e{ij} }$ 为边集合。$\mathcal{N}(x_i)$ 表示节点 $xi$ 的邻居集合。$\mathcal{N}{+}(x_i) = \mathcal{N}(x_i) \cup {x_i}$ 包含了 $x_i$ 与其邻居节点。

​ 对于图中的每一个节点 $x_i$ 都有一个输入特征 $\bf{x}_i$ , GNN 将其作为节点 $x_i$ 的初始化嵌入 $h_i^0$,然后通过以下操作将其嵌入从一步(或一层)更新到下一个:

Sending Messages: 在第 1 步,每个节点 $x_i$​将向所有邻居节点 $xj∈\mathcal{N}+(x_i)$ 发送一条消息 $m^l_i$:
$$
mi^l = f{msg}^l(h_i^{l-1})
$$

$f_{msg}^l(\cdot)$ : 在第 $l$​层每个节点的信息函数

简单来说该函数可以为一个线性变换 $f_{msg}^l = W_m^lh_i^{l-1}$

Aggregating Messages: 在发送信息之后,每个节点 $x_i$ 将聚合来自其邻居及其自身的消息:
$$
ei^l = f{agg}^l({m_j^l|xj \in \mathcal{N}{+}(x_i) })
$$

$f^l_{agg}(\cdot)$: 是第 1 步中每个节点的聚合函数

​ GAT 与传统 GNN 的 最大区别在于它们具有不同的聚合功能。在传统的 GNN 中,所有接收到的消息都是平等对待的(取平均):
$$
ei^l = f{agg}^l ({m_j^l|xj\in \mathcal{N}{+}(x_i) }) = \frac{1}{Ni} \sum{vj\in \mathcal{N}{+}(x_i)} m_j^l
$$

$N_i$: $x_i$ 的邻居数加 1

然而,在实践中,一些信息比其他信息更重要。类似于机器翻译的自我注意模型,在 GAT 中对不同的消息 $m^lj$​​指定不同的权重 $a^l{ij}$​。这里 $a^l_{ij}$ 是两个节点 $x_i$ 和 $xj$ 在统一空间中嵌入的归一化相似度:
$$
a
{ij}^l = \frac{e^{f_{sim}^l(h_i^{l-1},hj^{l-1})}}{\sum{xk\in \mathcal{N}{+}(xi)}e^{f^l{sim}(h_i^{l-1},h_k^{l-1})}}
$$

$f_{sim}^l(h_i^{l-1},hj^{l-1}) = (W{a1}^lhi^{l-1})^T(W{a2}^lhj^{l-1})$: 相似度函数, 其中 $W{a1}^l、W_{a2}^l$ 为可学习的权重参数。

一旦得到这些归一化的注意系数 $a^l_{ij}$ 被用来计算消息的线性组合:
$$
ei^l = f{agg}^l({m_j^l|xj\in \mathcal{N}{+}(xi) }) = \sum{xj\in \mathcal{N}{+}(xi)} a{ij}^lmj^l
$$
​ 注意,在上面的方程中,由于 $a^l
{ij}$ 是一个标量,这意味着 $m^lj$ 中的所有维数都是被平等对待的。这可能会限制建模复杂依赖关系的能力。因此,修改注意力函数为:
$$
\hat{a}
{ij}^l = f_{sim}^l(h_i^{l-1},hj^{l-1})+f{md}^l(hj^{l-1}) \
f
{md}^l(hj^{l-1}) = W{md2}^l\sigma(W_{md1}^lhj^{l-1}+b{md1}^l) + b{md2}^l
$$
一旦得到,$\hat{a}
{ij}^l$​​将用特征化的多维 softmax 函数进行归一化,得到特征水平上 $a^l_{ij}$​​的分类分布:
$$
ei^l = f{agg}^l({m_j^l|xj\in \mathcal{N}{+}(xi) }) = \sum{xj\in \mathcal{N}{+}(xi)} a{ij}^l \odot m_j^l
$$

$\odot$: element-wise product of two vectors

Updating Embedding: 聚合消息后,每个节点将其嵌入从 $h^l_{i−1}$​更新到 $h^l_i$:
$$
hi^l = f{ue}^l(e_i^l,hi^{l-1}) = W{ue2}^l\sigma(W_{ue1}^lei^l + b{ue1}^l) + b_{ue2}^l
$$

值得注意的是,$h^{l−1}_i$​并没有直接用于上述 MLP 函数,因为 $e^l_i$​已经包含了来自 xi 本身的消息.

为了使训练稳定,在两个步骤 / 层周围使用残差连接,然后进行层归一化 $LayerNorm(h^li+h^l{i−1})$​。在更新节点嵌入 $L$ 步骤后,我们将获得每个节点 $x_i$ 的上下文感知嵌入 $h^L_i$。

模型

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

​ 设在第 $t$ 回合时的对话状态为 $S_t$ , 作为框架数据库查询的约束。根据数据库查询的结果和 $St$,系统给予用户一个回应 $U{t+1}^{sys}$ . 然后用户输入一个新的语句 $U{t+1}^{usr}$ . 对话追踪模型根据 $U{t+1}^{sys}、U_{t+1}^{usr}$ 来将状态 $St$ 更新为 $S{t+1}$。整个对话过程可以表示为:
$$
{S_0, U_1^{sys},U_1^{usr},S_1, U_2^{sys},U_2^{usr},...,S_T, U_T^{sys},U_T^{usr}, }
$$
传统上,许多 DST 模型都是 根据最新的整个对话上下文来预测对话状态 的。它们MARKDOWN_HASH3ca9d4f53b24e45a52f698af9e874543MARKDOWNHASH。相比之下,本文提出的 SST 模型根据 $U{t+1}^{sys}$ 和 $U_{t+1}^{usr}$ 明确地更新对话状态从 $St$ 到 $S{t+1}$:
$$
S{t+1} = f{sst}(St, U{t+1}^{sys}, U_{t+1}^{usr})
$$
​ SST 模型包含两个部分:本体模式图和话语匹配模块 状态更新模块。第一个模块学习域模式和话语中每个令牌的上下文表示,并从彼此中获取有用的信息。第二模块根据第一模块获得的槽指定信息将对话状态从 $St$ 更新到 $S{t+1}$​。

Ontology Schema and Utterance Matching with GAMT

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

​ 在以往的工作中,本体模式信息在学习中没有得到充分利用。在这里,我们提出了图注意匹配网络 (GAMTs) 来同时学习本体模式和对话话语的表示。

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

​ 首先根据原始本体模式,定义 token 级别的模式图 $G^1 = (V^1, E^1)$​,该图的节点由所有的域 token 以及所有的槽 token。槽和槽所属的域之间有边。如果一些插槽 / 域用多个一个词来描述,例如。,它将被分为单一 token。

​ 然后根据对话语句定义另一个图 $G^2 = (V^2, E^2)$​​,图节点由最新的系统响应和用户话语对中的所有单词组成组成。图中的所有节点都已连接起来。

​ 在 GAMT 中,对于每个节点的 $x^k_i∈V^k(k=1,2)$​​​​​​,嵌入 $h^{k,l}_i$​​​​​​在每一步都会更新,不仅考虑来自其邻居的聚合消息,还考虑来自另一个图的跨图消息。$G^1$​​​​​中每个节点的输入特征为对应的token 嵌入,$G^2$​​​​​中每个节点的输入特征为token 嵌入、分割嵌入和位置嵌入的总和,这里我们使用预先训练的单词嵌入作为 token 嵌入,随机初始化嵌入作为分割嵌入。它们会在训练过程中进行更新。我们使用不同频率的正弦和余弦函数作为位置嵌入。与 GAT 相比,这里对节点嵌入的更新过程进行了如下修改。在不失去一般性的情况下,使用 $G^1$​中的节点来描述更新过程,并且 $G^2$​中的节点的更新过程是相似的:

Sending Message:
$$
mi^{1\rightarrow 1,l} = f{msg}^{self,l}(h_i^{1,l-1}) \
mi^{1\rightarrow 2,l} = f{msg}^{cross,l}(h_i^{1,l-1})
$$
Aggregating Message:
$$
ei^{1\rightarrow 1,l} = f{agg}^{self,l}({m_j^{1\rightarrow 1,l}|xj^1\in \mathcal{N}{+}(x_i^1) }) \
ei^{2\rightarrow 1,l} = f{agg}^{cross,l}({m_j^{2\rightarrow 1,l}|x_j^2\in V^2 })
$$
Updating Embedding:
$$
hi^l = f{ue}^l([e_i^{1\rightarrow 1,l},e_i^{2\rightarrow 1},l], h_i^{l-1})
$$
用 GAMT 更新节点嵌入 $L_1$ 步后,我们可以得到 $G_1$ 中每个节点 $x^1_i$ 的上下文表示 $h^{1,L_1}_i$,$G_2$ 中每个节点 $x^2_j$ 的上下文表示 $h_j^{2,L_1}$ 不仅包括来自相关令牌的信息也有来自对话话语的有用信息。同样,$h_j^{2,L_1}$​不仅包含对话话语中的上下文信息,而且还包括本体模式中的有用信息。

​ 然后获得基于 $h^{1,L_1}$ 槽的向量表示 $g_s$ . 假设 $G^1$ 中的一个槽包含一个或多个 token,每个 token 用 MLP 计算特征化得分向量,然后用 MD-softmax 进行归一化。最后,节点嵌入 $h_i^{1,L_1}$​ 用归一化的分数进行加权,得到 $g_s$.

Dialogue State Updating with RGAT

​ 状态更新模块以 $g_{s_i}$ 作为输入,并更新每个插槽 $s_i$​的对话状态。如之前介绍,在多域对话状态跟踪中,槽之间可能存在潜在的关系。为了捕捉插槽之间的相互作用,使用循环注意图神经网络 (RGAT) 进行状态更新。

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

​ 首先定义一个特定于领域的插槽级模式图 G。G 的节点由所有的插槽组成。如果两个插槽属于同一域,则在它们之间有一条边。如果两个插槽属于不同的域,但它们的一些候选值是相同的,那么它们之间也有一条边。

​ 每一个节点 $x_i$ 的输入特征是第 $t$ 轮对应槽 $s_i$ 值的嵌入向量 $\bf{v}_i$ , RGAT 将 $\bf{v}_i$ 作为节点 $x_i$ 的初始化隐藏状态 $h_i^0$​. 然后将其嵌入从一步更新到下一步,类似于 GAT。然而,GAT 和 RGAT 之间最显著的区别是,RGAT 在所有步骤中的参数都是共享的,且其节点嵌入更新函数也不同:

Sending Messages:
$$
m_i^l = h_i^{l-1}
$$
Aggregating Messages:
$$
ei^l = f{agg}({m_j^l|x_j\in \mathcal{N}(x_i) })
$$
Updating Embedding:
$$
hi^l = f{ue}(e_i^l,hi^{l-1},g{s_i})
$$

其中 $f_{ue}(\cdot)$ 为一个 GRU 单元:

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

MD-softmax 是特征级多维 softmax 函数

$z{i,1},z{i,2},z_{i,3}$​ 为 GRU 的 3 个信息控制门:

$z_{i,1}$ : 控制来自最新对话背景下的信息

$z_{i,2}$​ : 控制其上次对话状态中的信息

$z_{i,3}$​ : 控制来自其邻居的信息

所有参数 W 和 b 都是跨步骤共享, 因此才叫 循环 GAT

在更新节点嵌入 $L_2$ 步骤后,我们将得到每个节点 $x_i$ 的嵌入 $h^{L_2}_i$。这是插槽 $si$ 的新的隐藏状态。我们计算了隐藏向量与候选值的每个嵌入向量之间的点积。对结果进行软极大函数,给出所有候选值的概率 $p{t+1,i}$ 的分布,即:
$$
\bf{P}_{t+1,i} = softmax(E_vh_i^{L_2})
$$
其中,$E_v$​为值嵌入矩阵。每一行对应于一个候选值的嵌入向量。$E_v$​通过预先训练好的单词嵌入进行初始化。如果一个槽值由多个单词组成,则 初始化的嵌入是所有单词的平均池和最大池的连接 。嵌入矩阵在训练过程中进行了更新。当训练整个 DST 模型时,我们最小化了所有插槽的预测概率和给定标签之间的交叉熵(CE) 损失。

General SST models

​ 在前面的介绍中,SST 模型只在最近的回合中使用对话上下文。每次都要考虑到最新的用户话语和系统响应。它可以自然地扩展到编码对话上下文,即下式中的 DST 公式:
$$
St = f{sst-k}(S{t-k},U{t-k+1}^{sys},U_{t-k+1}^{usr},...,U_t^{sys},U_t^{usr})
$$

实验

数据集

  • MultiWOZ 2.0
  • MultiWOZ 2.1

主要结果

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

消融研究

【论文笔记】A Graph-based and Copy-augmented Multi-domain Dialogue State Tracking

正文完
 
yhlin
版权声明:本站原创文章,由 yhlin 2023-01-17发表,共计11925字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码