数据集
DSTC
本论文方案参与DSTC的竞赛,队名为: ‘team1/entry1’.
模型结构
一个槽位S训练一个模型,训练过程:
1.计算该槽位s被slu识别的所有槽值v(加UNK)特征得分,作为模型输入,维度为T*M
2.再经过三个全连接层,得到最终的编码向量E(t,v)
3.对于出现过的槽值v,直接使用E(t,v)计算即可;对于没有出现过的槽值,定义它为B,然后进行归一化。得到该槽位的槽值分布。
- t:第t轮对话
- St,s:从第0轮到当前第t轮,槽位s通过SLU可能得到的槽值集合
- St,s ∪ {other槽值对}:槽位s在当前轮的用户目标goal。也是tracker需要预测的概率分布。“other”的概率表示用户的真实目标尚未出现,为SLU假设的概率。
本文神经网络结构:, 0-t轮当做输入;输出|St, s|+1 的离散分布
图 1: 对St,s集合中每一个可能取值v计算概率 E (t, v) ∈ R . f向量是所有输入节点的串联拼接.
fi (t, v) for i = 1 . . . M:在第t轮时,M个特征函数能从SLU识别结果和机器人动作中提取信息
例如:
fSLU (t, v):在第t轮时,SLU给出s=v的得分
t为负数时,f值为0:
∀i∀v,t′ <0⇒fi(t′, v)=0.
滑动窗口大小为T,此时输入层 v 是固定的,因此
当轮数 ≤ t − T ,特征函数为他们的求和。
输入层维度为:T × M
t′ = t − T+1 到 t时,输入为:fi (t′, v)
i = 1到M,M节点输入为
隐藏层为全连接神经网络,最后映射为单个节点E (t, v)。每个 s 单独训练一套网络。
最后,tracker的分布为:
其中 B 为网络新参数,与v无关,可对每个槽位 s 分别训练。
特征函数
特征函数是函数f(t,v),它(对于给定的对话)返回一个实数,表示在第t轮,槽位s取值为v的概率。一轮对话由机器动作和随后的SLU的结果决定。本文探讨的函数如下:
- SLU 得分; SLU认为s=v的得分.
- Rank score; 1/r , r 为当前v 在SLU的最好n个v中的排序。0为未出现在前n中。
- Affirm score; SLU确认s=v时,确认性得分.
- Negate score; SLU否定s=v时,否定性得分.
- Go back score; SLU分配给与s=v匹配的goback动作的分数
- Implicit score; 1−在SLU中给出一个矛盾动作的分数,如果系统只是隐式地确认s=v,则否则为0。
- User act type; 每个可供选择的用户行为类型的特征函数,给出SLU中用户行为类型的总分。s & v是独立的.
- Machine act type; 为每一种可能的机器动作类型提供一个特征函数,给出与该类型在当前轮的机器动作总数。s & v是独立的.a feature function for each possible machine act type, giving the total number of machine acts with the type in the turn.
Independent of s & v. - Cant help; 为1,如果系统刚刚说它不能提供关于s=v的信息,否则0。
- Slot confirmed; 1 if s=v′ was just confirmed
by the system for some v′, otherwise 0. - Slot requested; 1 if the value of s was just requested by the system, otherwise 0.
- Slot informed; 1 if the system just gave infor- mation on a set of bus routes which included a
specific value of s, otherwise 0.