Xia C, Zhang C, Yan X, et al. Zero-shot user intent detection via capsule neural networks, EMNLP 2018
引言
我们之前公众号中写过关于
胶囊网络
的系列分析,本次的推送是实验室该文章的第一作者Congying写的中文介绍,详细介绍了如何使用胶囊神经网络在无标注的新场景下进行用户意图检测。
用户意图检测是QA以及对话系统的一个重要环节。传统的用户意图检测利用标注数据在预定义好的用户意图上进行分类。对于新出现的用户意图,传统方法需要重新收集标注数据并重新训练模型,非常的耗时耗力。
因此,我们希望可以利用上已经训练好的模型,在没有新的标注数据的情况下,也可以检测出新出现的用户意图。
为了解决零数据检测用户意图的问题,本文利用胶囊网络来进行迁移学习:利用已经训练好的用户意图分类器以及新旧意图之间的关系来分类新出现的用户意图。
背景
随着语音交互技术的发展,科技公司都开始研发智能语音产品,比如Google Home,AmazonAlexa,Siri,微软小冰。
在语音交互中,理解用户意图是其中最基本的一项技术。现有的用户意图识别技术依赖大量的人工标注数据来训练深度神经网络。随着产品新功能的增加,用户意图也会逐渐增多。对于新出现的意图,原有的模型就无法进行识别。因此,我们会遇到在零数据的情况下进行用户意图识别的场景。
模型
本文提出了两个基于胶囊网络的模型来进行用户意图检测:
INTENTCAPSNET
INTENTCAPSNET-ZSL
INTENTCAPSNET用于检测已经出现的用户意图, 如获取天气信息(GetWeather)、播放音乐(Play Music)等;INTENTCAPSNET-ZSL用于进行零数据用户意图检测,如加入播放列表(Addto Playlist) 、评价一本书(Rate a Book)等。
在训练的过程中,我们用在已有用户意图上的标注数据来训练INTENTCAPSNET。
INTENTCAPSNET由SemanticCaps和DetectionCaps组成。其中SemanticCaps是一个multi-head self-attention的RNN模型,用于对输入语料抽取可解释的语义特征。
DetectionCaps是一个胶囊网络,利用动态路由进行已有的用户意图分类。
在测试时,我们利用INTENTCAPSNET-ZSL在INTENTCAPSNET的基础上对新的用户意图进行分类。INTENTCAPSNET-ZSL由SemanticCaps,DetectionCaps及Zero-shotDetectionCaps三个部分组成。
SemanticCaps对新出现的语料进行语义抽取;输入至DetectionCaps中获得在已有用户意图上的路由信息;再利用新的用户意图与已有用户意图之前的相似度,将已有用户意图上的路由信息迁移至新的用户意图上。利用新的用户意图上的路由信息,另一个胶囊网络Zero-shotDetectionCaps便可以利用动态路由算法进行新的用户意图分类。
实验
本文在SNIPS-NLU及CVA两个数据集上对现有用户意图分类及新出现的用户意图分类两个任务进行了实验。
其中,SNIPS-NLU是英文数据集,有5个已有的用户意图,2个新出现的用户意图;CVA为中文数据集,有80个已有的用户意图,20个新出现的用户意图。
结论
本文首次利用胶囊网络将知识从已有的用户意图模型中迁移到新出现的用户模型当中,使用胶囊网络能够捕捉到文本数据中的层级(hierarchical)结构信息。
同时,本文在胶囊网络结构中利用带有自注意力机制的RNN模型,一方面能够获取语句中的语义信息,另一方面,这种语义信息能够与胶囊网络中的动态路由相结合来提高模型的可解释性。
领取专属 10元无门槛券
私享最新 技术干货