Please enable JavaScript.
Coggle requires JavaScript to display documents.
FastSGT(2020) - Coggle Diagram
FastSGT(2020)
模块
Utterance Encoder(语言编码器)
-
实现
将系统发现S_t和用户发现U_t用[SEP]拼接,然后用BERT编码,结果的[CLS]作为句子的表示
Schema Encoder(结构编码器)
概述
使用服务、意向和结果的描述(slot)通过BERT生成他们的语义的结构表示
实现
- 在开始训练前实例化一个和Utterance Encoder一样权重的编码器
- 将语料组合成4类结构embedding,如意向embedding就是用服务描述+意向描述组合而成
- 将上述四类组合描述的各个句子组逐一放入Schema Encoder并生成schema embedding然后存储起来重复使用
State Decoder(状态解码器)
模块
Intent Decoder
概述
每一个服务都包含相对当前对话可能的用户意图,但在一轮对话中,最多只有一个意图是被激活的,也可能存在NONE意图,就是没有意图被激活
实现
使用Single-token projection
Requested Slot Decoder
概述
每一轮对话,用户可能想要待补全的信息,而不是告诉系统关于这个待补全的值,随意就需要判断客户需要的是哪一个待补全的信息,例如客户想知道航班的起飞时间,那么这待补全的置信度就会大于0.5
实现
使用Single-token projection
-
Slot Status Decoder
-
状态
- inactive:用户的当前轮次的话没有更新这个插槽的值
- dont_care:用户当前轮次的话更新了这个插槽的值,但不感兴趣
- active:用户当前的话更新了这个插槽的值
- carry_over:用户
实现
使用Attention-based projection
-
组件
Single-token projection
公式
-
-
$$F_{FC}^K(x,y;p)=Softmax(W_3^Kh_2+b_3^K)$$
说明
- y是schema embedding,y是utterance encoder的输出
- oplus代表拼接
-
State Tracker(状态跟踪器)
概述
从前面所有用户状态解码器获取预测,然后生成当前的用户状态
用户状态
概述
包含激活的意图,插槽的集合和对应的值,以及想要的插槽
来源
- 想要的插槽:Slot Request Decoder
- 激活意向:Intent Decoder
- 插槽的集合和值:
追踪逻辑
概述
通过当前Slot Request Decoder计算状态,然后根据不同的状态赋予slot不同的值,如果值不在这一轮,那么还需要追踪以前的状态获得对应的值
-
-
背景
- 像MultiWOZ和M2M在不同的领域使用一个固定序列的问答,在数据集中没有关于插槽和领域的语义信息,导致系统不能理解相似语义的领域和对答
优点
- 模型的一次运行预测整个状态,以减少训练和预测时间
- 模型采用结转的方式转换插槽间的值,在对话期间启用服务之间的切换并接受系统提供的值
- 提出一个基于注意力的映射,将主编码器所有token考虑进去,使模型能更好的编码语言
- 相比其他使用SGD的模型,这个模型有更高的准确率和更高效的计算、存储利用
- 在没有增加训练次数的情况下,证明了SGD数据增强的有效性