【论文笔记】2017-ACL-Neural Belief Tracker: Data-Driven Dialogue State Tracking

共计 3412 个字符,预计需要花费 9 分钟才能阅读完成。

概述

问题动机

  当时的方法都无法扩展到更大、更复杂的对话领域中,问题在于:

  • SLU 需要大量的标注训练数据
  • 用手工制作的词汇来捕捉用户语言中的一些语言变化

主要贡献

  作者提出了一种新的神经信念跟踪 (NBT) 框架,基于 表示学习 的最新进展,克服了上述问题。NBT 模型是对预先训练好的单词向量进行推理,学习将它们组合成用户话语和对话上下文的分布式表示。我们对两个数据集的评估表明,这种方法超过了过去的局限性,匹配了最先进的模型的性能,这些模型依赖于手工制作的语义词汇,并在不提供这些词汇时表现优于它们。

  • NBT 模型是第一个成功地使用预先训练好的单词向量空间来提高信念跟踪模型的语言理解能力的模型
  • 由于使用的是基于语义相似度训练的预训练词向量,因此模型的参数可以在不同槽之间共享
  • 具有学习领域特定释义和其他变体的灵活性,这使得依靠精确匹配和去词缀化作为一种可靠的策略是不可行的

模型

  神经信念跟踪器 (NBT) 是一种模型,设计用于检测在对话过程中在给定回合中构成用户目标的槽值对。它的输入包括在用户输入之前操作的系统对话、用户话语本身以及它需要做出决定的单个候选插槽值对。例如,模特可能不得不预测 "FOOD=IATLIAN" 的目标是否在“I am looking for good pizza”中表达出来。为了执行信念跟踪,NBT 模型迭代所有候选插槽值对(由本体定义),并决定哪些插槽值对刚刚由用户表示。

【论文笔记】2017-ACL-Neural Belief Tracker: Data-Driven Dialogue State Tracking

  上图显示了模型中的信息流。NBT 层次结构中的第一层在给定三个模型输入时执行表示学习,为用户话语 (r)、当前候选槽值对(c) 和系统对话作用 $(t_q、t_s、t_v)$ 生成向量表示。随后,学习到的向量表示通过上下文建模和语义解码子模块进行交互,获得中间交互 (summary vectors) 摘要向量 $d_r、d_c$ 和 $d$。这些作为最终决策模块的输入,该模块决定用户是否表示候选槽值对所表示的意图。

Representation Learning

  对于任何给定的用户话语、系统行为和候选槽值对,表示学习子模块生成向量表示,作为模型下游组件的输入。并且,所有的表示学习子组件都使用预先训练好的词向量集合。作者使用的是 Paragram-SL999 word vectors,一种基于语义相似度训练的词向量表示。这样,在测试时,unseen 的单词与熟悉的槽值语义相关。将纯粹通过它们在原始向量空间中的位置来识别。

令 $u$ 表示一个长度为 $k_u$ 的用户话语表示 $u = [u_1,u3,...,u{k_u}]$,设 $v_i^n$ 是从索引 $i$ 开始的 $n$ 个词向量的连接:
$$
v_i^n = ui \oplus ... \oplus u{i+n-1}
$$

$\oplus$: vector concatenation

作者提出了两种不同于生成 $u$ 表示的方法的模型变体:NBT-DNN 和 NBT-CNN。两者都作用于话语的组成 n -gram 表示。

NBT-DNN

【论文笔记】2017-ACL-Neural Belief Tracker: Data-Driven Dialogue State Tracking

该模型生成话语的 累加 unigrams, bigrams, trigrams 表示
$$
rn = \sum{i=1}^{k_u - n + 1} v_i^n
$$
再难过 softmax 函数归一化:
$$
r^{'}_n = \sigma(W_n^s r_n + b_n^s)
$$
最后将三者相加后得到最终表示:
$$
r = r'_1 + r'_2 + r'_3
$$
该模型使用的累加 n -gram 表示只是话语中所有单词向量的未加权和。理想情况下,该模型应该学会识别话语的哪些部分与后续的分类任务更相关。例如,它可以学会忽略动词或停止词,并更注意更有可能表达插槽值的形容词和名词。

NBT-CNN

【论文笔记】2017-ACL-Neural Belief Tracker: Data-Driven Dialogue State Tracking

令 $m_n = [v_1^n;v2^n;...;v{k_u-n+1}^n]$, 则 3 个中间表示为:
$$
R_n = F_n^s m_n
$$

$F_n^s$ : 滤波器

之后经过非线性变化和最大值池化:
$$
r'_n = maxpool(ReLU(R_n + b_n^s))
$$
同样三者相加后得到最终表示:
$$
r = r'_1 + r'_2 + r'_3
$$

Semantic Decoding

  这个模块对表征 $r$ 检测是否包含候选 slot-value 对 $c$,处理方法也比较简单。($c_s,c_v$)分别是 slot 和 value 的词向量表示,投影映射成与 $r$ 相同维度的向量,点积求相似度 $d$。
$$
c = \sigma(W_c^s(c_s+c_v) + b_c^s) \
d = r \otimes c
$$
这个模块主要是计算 slot-value 对和用户句子的关系,简单而言的话,slot 的词向量(如果有多个词则简单相加)和 value 的词向量(如果有多个词则简单相加),通过一个全连接层和非线性映射后得到表征 c(该表征将 slot 和 value 的信息融合成一个向量),与句子表征 r 进行 element-wise 的乘积,得到 d(依然是一个向量)。

Context Modelling

  当用户询问时,仅从当前用户的输入还不足以抽取意图,belief tracker应该考虑对话的上下文,特别是上一句系统的动作。作者提出了两种动作:System RequestSystem Confirm

  • 系统请求(System Request):系统上一轮在向用户请求一个具体的信息,比如”what price range would you like?”,此时用户需要给出一个具体的信息,此时用 t(q)表示”price range”这个 slot;
  • 系统确认(System Confirm):系统上一轮在让用户在确认一个具体的信息,比如”‘how about Turkish food?’”,此时用户一般只需要回答是与不是即可,此时用 (t(s),t(v)) 表示(food, Turkish)这个 slot-value 对。

第一种情景是,系统对一个特定的 slot 发出提问,用户一般会给出具体的 value。第二种是系统询问用户,某个 slot-value 是否正确,用户一般只会回答对或错。这两个场景应分别计算。$t_q$ 是 request 的参数,$(t_s,t_v)$ 是 comfirm 的参数。$t_q,t_s,t_v$ 都是 slot/value 的词向量,多个词直接求和得到。通过系统动作,候选对 $(c_s,c_v)$ 作为一个 gate, 控制输入表征 $r$ 的信息输出般情况下系统要么是请求,要么是确认,那么此时 $t_q$ 为 0 向量或者 $(t_s,t_v)$ 是零向量。):
$$
m_r = (c_s \cdot t_q) r\
m_C = (c_s \cdot t_s)(c_v \cdot t_v)r
$$
该机制有点类似于将候选槽值与系统请求某个槽的信息或确认某个槽值对,计算一个相似度(上面公式都是点乘),然后通过这个相似度对用户的句子表征进行一个类似于门的控制(主要是 scale 作用)。

Binary Decision Maker:

  最后的二分类决策层。$\phi_{dim}(x) = \sigma(W_x + b)$ 将输入 x xx 映射到维度为 size 的向量,softmax 二分类,完成 slot-value 对的存在检测:
$$
y = \phi2(\phi{100}(d)+\phi_{100}(mr)+\phi{100}(m_c))
$$

Belief State Update Mechanism

  论文提出了一种简单的 belief state 的更新机制:先估计当前轮对话的 slot-value,再更新历史记录。在嘈杂的环境中,取 ASR 输出的前 N 个最佳结果(N-best list)进行分析。对于第 $t$ 轮对话,$sys^{t-1}$ 表示前一个系统动作,$h^t$ 是 ASR 输出的结果假设,$h_i^t$ 是 N-best list 中的第 $i$ 个,$s$ 是 slot, $v$ 是 value,NBT 模型需要估计 $(s,v)$ 在用户的口语输入中的概率:

【论文笔记】2017-ACL-Neural Belief Tracker: Data-Driven Dialogue State Tracking

对于当前和历史对话的 belief state 更新,引入一个权重系数 $\lambda$:

【论文笔记】2017-ACL-Neural Belief Tracker: Data-Driven Dialogue State Tracking

然后对于 slot s ss检测到的 values,取概率最大的作为当前的 goal value。

实验

数据集

实验仍然是 task-oriented 的对话任务,数据集有两个:DSTC2 和 WOZ 2.0。

结果

【论文笔记】2017-ACL-Neural Belief Tracker: Data-Driven Dialogue State Tracking

可以看到,NBT-DNN 和 NBT-CNN 都能超过基于语义词典的模型,当然 NBT-CNN 多了不同 n -grams 特征的权重学习,会更好一点。论文还做了不同词向量对结果影响的实验。

【论文笔记】2017-ACL-Neural Belief Tracker: Data-Driven Dialogue State Tracking

可以看出,专门针对语义任务的词向量 Paragram-SL999 对实验效果提升明显,这也很显然,先验知识更丰富,对下游的任务当然效果更佳。

正文完
 
yhlin
版权声明:本站原创文章,由 yhlin 2023-01-17发表,共计3412字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。