技术编程|ACL 2019 使用胶囊网络联合训练词槽填充及意图检测( 二 )


当点积 p_{k|t}·v_k 大时 。也就是说 , 当预测矢量 p_{k|t} 与时隙表示 v_k 更相似时 , 点积较大 , 表明该词更有可能路由到第 k 个时隙类型(第 7 行) 。更新的更大的 b_{kt} 将在下一次迭代中导致第 t 个词和第 k 个词槽之间的一致值 c_{kt} 更大 。另一方面 , 当 p_{k|t} 和 v_k 之间不一致 。通过无监督的迭代算法获知的协议值可确保迭代迭代后 , WordCaps 的输出被发送到适当的后续 SlotCaps 。
技术编程|ACL 2019 使用胶囊网络联合训练词槽填充及意图检测
文章图片

文章图片

词槽填充部分的损失函数使用的是常见的交叉熵(Cross Entropy)
技术编程|ACL 2019 使用胶囊网络联合训练词槽填充及意图检测
文章图片

文章图片

IntentCaps
技术编程|ACL 2019 使用胶囊网络联合训练词槽填充及意图检测
文章图片

文章图片

IntentCaps 同样使用动态路由来进行意图检测 , 其中对数优先级概率 q_{l|k} 表示 SlotCap 中的第 k 个词槽胶囊同意被路由到 IntentCaps 中的第 1 个意图胶囊 。之后的计算和更新方式与 SlotCaps 完全一致 。
技术编程|ACL 2019 使用胶囊网络联合训练词槽填充及意图检测
文章图片

文章图片

意图检测部分使用 Max-magrin 损失函数进行优化 。
Re-Routing
动态路由协议显示了诸如词槽之类的低级特征如何帮助构建诸如意图之类的高级特征 。高级特征还可以作为指导 , 辅助低级特征的学习 。例如 , IntentCaps 中的 AddToPlaylist 意图激活向量还可以在填充 SlotCaps 中的 Sungmin 单词期间 , 帮助增强现有的词槽 , 例如 ArtistName 。
技术编程|ACL 2019 使用胶囊网络联合训练词槽填充及意图检测
文章图片

文章图片

本文中 Re-Routing 的实现方式是在更新 SlotCaps 的 b_{kt} 时在原来的基础上引入 IntentCaps 的输出 u_z 。
论文实验
本文在 SNIPS、ATIS 数据集上对 CapsuleNLU 进行了评估 , 作为 baseline 的模型有:CNN TriCRF, RNN, Attention BiRNN, Slot-gated Full Atten (gate function in LSTM), DR-AGG (使用动态路由为文本分类聚合词层面的信息), IntentCapsNet (使用多头自注意力机制从句子中获取中间语义信息) , 此外 , 本文还与 DialogFlow, Waston Assistant, Luis, wit.ai, snips.ai, recast.ai, Amazon Lex 等商业 NLU 服务进行了对比实验 。
技术编程|ACL 2019 使用胶囊网络联合训练词槽填充及意图检测
文章图片

文章图片

结果表明 , 本文提出的的方法优于之前的一些工作 , 刷新了联合训练词槽填充与意图检测的 SOTA , 与一些商业 NLU 服务的效果也比较接近(需要注意的是 , 本文模型中并未引入 GloVe、ELMo、BERT 等预训练模型 , 其词表示全部通过 WordCaps 学习得到) 。
上表中 CapsuleNLU w/o Intent Detection 仅在 WordCaps 与 SlotCaps 之间使用了动态路由 , CapsuleNLU w/o Joint Training 在训练词槽填充时使用 L_slot 进行优化 , 使用词槽表示训练意图检测任务 , 并使用 L_intent 进行优化 。
【技术编程|ACL 2019 使用胶囊网络联合训练词槽填充及意图检测】技术编程|ACL 2019 使用胶囊网络联合训练词槽填充及意图检测


推荐阅读