【论文笔记】2017-ACL-Neural Belief Tracker: Data-Driven Dialogue State Tracking
概述
问题动机
当时的方法都无法扩展到更大、更复杂的对话领域中,问题在于:
- SLU 需要大量的标注训练数据
- 用手工制作的词汇来捕捉用户语言中的一些语言变化
主要贡献
作者提出了一种新的神经信念跟踪 (NBT) 框架,基于 表示学习 的最新进展,克服了上述问题。NBT 模型是对预先训练好的单词向量进行推理,学习将它们组合成用户话语和对话上下文的分布式表示。我们对两个数据集的评估表明,这种方法超过了过去的局限性,匹配了最先进的模型的性能,这些模型依赖于手工制作的语义词汇,并在不提供这些词汇时表现优于它们。
- NBT 模型是第一个成功地使用预先训练好的单词向量空间来提高信念跟踪模型的语言理解能力的模型
- 由于使用的是基于语义相似度训练的预训练词向量,因此模型的参数可以在不同槽之间共享
- 具有学习领域特定释义和其他变体的灵活性,这使得依靠精确匹配和去词缀化作为一种可靠的策略是不可行的
模型
神经信念跟踪器 (NBT) 是一种模型,设计用于检测在对话过程中在给定回合中构成用户目标的槽值对。它的输入包括在用户输入之前操作的系统对话、用户话语本身以及它需要做出决定的单个候选插槽值对。例如,模特可能不得不预测 "FOOD=IATLIAN" 的目标是否在“I am looking for good pizza”中表达出来。为了执行信念跟踪,NBT 模型迭代所有候选插槽值对(由本体定义),并决定哪些插槽值对刚刚由用户表示。
上图显示了模型中的信息流。NBT 层次结构中的第一层在给定三个模型输入时执行表示学习,为用户话语 (r)、当前候选槽值对(c) 和系统对话作用 (t_q、t_s、t_v) 生成向量表示。随后,学习到的向量表示通过上下文建模和语义解码子模块进行交互,获得中间交互 (summary vectors) 摘要向量 d_r、d_c 和 d。这些作为最终决策模块的输入,该模块决定用户是否表示候选槽值对所表示的意图。
Representation Learning
对于任何给定的用户话语、系统行为和候选槽值对,表示学习子模块生成向量表示,作为模型下游组件的输入。并且,所有的表示学习子组件都使用预先训练好的词向量集合。作者使用的是 Paragram-SL999 word vectors,一种基于语义相似度训练的词向量表示。这样,在测试时,unseen 的单词与熟悉的槽值语义相关。将纯粹通过它们在原始向量空间中的位置来识别。
个词向量的连接:
\oplus: vector concatenation
作者提出了两种不同于生成 u 表示的方法的模型变体:NBT-DNN 和 NBT-CNN。两者都作用于话语的组成 n -gram 表示。
NBT-DNN
该模型生成话语的 累加 unigrams, bigrams, trigrams 表示:
再难过 softmax 函数归一化:
最后将三者相加后得到最终表示:
该模型使用的累加 n -gram 表示只是话语中所有单词向量的未加权和。理想情况下,该模型应该学会识别话语的哪些部分与后续的分类任务更相关。例如,它可以学会忽略动词或停止词,并更注意更有可能表达插槽值的形容词和名词。
NBT-CNN
, 则 3 个中间表示为:
F_n^s : 滤波器
之后经过非线性变化和最大值池化:
同样三者相加后得到最终表示:
Semantic Decoding
这个模块对表征 r 检测是否包含候选 slot-value 对 c,处理方法也比较简单。(c_s,c_v)分别是 slot 和 value 的词向量表示,投影映射成与 r 相同维度的向量,点积求相似度 d。
Context Modelling
当用户询问时,仅从当前用户的输入还不足以抽取意图,belief tracker应该考虑对话的上下文,特别是上一句系统的动作。作者提出了两种动作:System Request和System 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) 是零向量。):
Binary Decision Maker:
将输入 x xx 映射到维度为 size 的向量,softmax 二分类,完成 slot-value 对的存在检测:
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) 在用户的口语输入中的概率:
对于当前和历史对话的 belief state 更新,引入一个权重系数 \lambda:
然后对于 slot s ss检测到的 values,取概率最大的作为当前的 goal value。
实验
数据集
实验仍然是 task-oriented 的对话任务,数据集有两个:DSTC2 和 WOZ 2.0。
结果
可以看到,NBT-DNN 和 NBT-CNN 都能超过基于语义词典的模型,当然 NBT-CNN 多了不同 n -grams 特征的权重学习,会更好一点。论文还做了不同词向量对结果影响的实验。
可以看出,专门针对语义任务的词向量 Paragram-SL999 对实验效果提升明显,这也很显然,先验知识更丰富,对下游的任务当然效果更佳。
相关文章
- [GN+Ninja学习 0x05] GN编写规范
- 微软 Windows 11 22H2 新 Bug:任务管理器中英伟达 GPU 数值“颠倒”了
- 微软 Windows 开发套件 2023 发布:搭载骁龙 8cx Gen 3,约 4300 元
- 微软 Windows 11 22H2 终于有了标签式文件资源管理器,但存在一些明显 Bug
- 微软 Windows 11安卓子系统 WSA v1 正式版推出:面向 31 个国家 / 地区,支持超 5 万个 App
- OpenHarmony羊了个羊复刻学习
- [gn+ninja学习 0x02] GN入门示例
- 微软 Windows 11 Beta 预览版 Build 22621.870 和 22623.870 (KB5018499) 发布:改进平板电脑优化的任务栏等
- 微软 Windows 11 Beta 预览版 Build 22621.870 和 22623.870 (KB5018499) 发布
- 微软 Windows 11 安卓子系统 WSA 预览版 2209.40000.26.0 发布
- 微软 Windows 11 22H2 Build 22621.754 (KB5018496) Release 预览版发布,附更新内容
- 微软 Windows 10 21H2 Build 19044.2192 (KB5018482) Release 预览版发布(附更新内容)
- 微软 Windows 11 Build 22000.1163 (KB5018483) Release 预览版发布(附更新内容)
- 啃论文俱乐部—统计压缩编码机理分析
- 面试突击:什么是三范式?它有什么用?
- 微软 Windows 11/10 DirectStorage 1.1 将至:支持 GPU 解压游戏资源,加载速度提升 2 倍
- 面试又问HashMap了 ,看这篇文章就够了!
- 微软出手,为更多 Windows 11/10 设备实施暴力破解攻击保护
- 微软 Win11/10 Edge 浏览器正获得 Workspaces、新安全功能和可访问性改进
- 微软 Visual Studio 2022 17.3 全面发布:支持.NET MAUI、Teams、C++ 改进等