语言理解
在各种类型的对话系统中,私人助理是一种非常重要的类型。它是通过自然语言对话的方式,完成用户发出的指令类任务,或者回答一些常识知识,例如,天气查询、机票预定、知识问答等。有很多著名的科技公司涉猎这一类型的对话系统,如苹果Siri,微软小娜,谷歌助理(Google Assistant),百度度秘,讯飞AIUI等。
一个对话系统通常有三个关键模块,即语言理解(Language Understanding)、对话管理(Dialogue Management)和语言生成(Language Generation)。其中语言理解技术指的是将用户面向机器说出的自然语言转换为语义表示[1],随后对话管理模块根据语义表示、语义上下文、用户元信息等,找到合适的执行动作,再根据具体的动作生成一句自然语言来回复用户[2]。
任务型对话系统的语言理解模块通常可以拆分为领域识别、意图识别、语义槽1(slot)填充等三个子任务。例如,对于用户输入的语句:
查一下明天北京到上海的机票。
表1列出了这句话的领域、意图、语义槽,其中,“明天”的语义槽类型是出发时间,“北京”和“上海”的语义槽类型分别是出发地和到达地。
知识问答型对话系统的语言理解模块通常指的是对问题进行分类,即为问题返回一个类别标签,该类别标签是问题期望答案的类别,如时间、地点等。
领域/意图与问题分类
任务型对话中的领域识别和意图识别,以及知识问答型对话系统中的问题分类通常都可以视为文本分类任务来解决。
其中,领域和意图的定义与对话系统自身的定位和所具有的知识库有很大关系,即具有非常强的领域相关性。而问题分类的类别通常相对通用,具有一定的领域无关性,如哈尔滨工业大学信息检索和社会计算研究中心提出的中文问题的分类体系[3],主要包括描述类(DES)、人物类(HUM)、地点类(LOC)、数字类(NUM)、时间类(TIME)、实体类(OBJ)6个大类,每个大类又划分为若干小类,共计84个小类(见表2)。
国内外学者已经对文本分类技术进行了大量的研究,基于深度学习的方法依然是目前的主流。Kalchbrenner等人[4]构建了一种动态卷积神经网络(DCNN),对句子语义信息进行建模从而对文本进行分类,在DCNN中使用了一种全局k-max池化操作方法。Mou等人[5]利用依存句法树和成分树构建了一种基于树的卷积神经网络(TBCNN)。TBCNN利用最大池化方法融合了句子的结构特征及其他多种特征。Komninos等人[6]在神经网络模型中使用基于上下文的词嵌入特征。基于深度学习的方法可以自动抽取特征,在减少了工作量的同时,还可以抓取到直觉上无法获取的特征,从而提高分类的精度。
语义槽填充
任务介绍
语义槽填充任务的主要目标是在已知特定领域或意图的语义框架(semantic frame)的前提下,从输入语句中抽取出该语义框架中预先定义好的语义槽的值。语义槽填充任务可以转化为序列标注任务,即使用经典的IOB2标记法。用此标注法,“查一下明天北京到上海的机票”,标注结果为:
研究现状
基于特征抽取的传统机器学习方法
基于特征抽取的传统机器学习模型已经在语义槽填充任务上大量应用。例如,基于隐马尔科夫模型(HMM)或上下文无关文法(CFG)[7~9],隐向量状态(HVS)[10]等的生成模型,以及基于条件随机场(CRF)[11~17],支持向量机(SVM)[18]等的判别模型。
基于深度学习的方法
随着深度学习技术在自然语言领域的发展,基于深度学习的方法也广泛应用于语义槽填充任务。相比于传统的机器学习方法,深度学习模型不仅能够自动学习输入数据的隐含特征,同时也能够融入人工抽取的特征。
Yao等人[19]和Mensil等人[20]最早将循环神经网络(RNN)应用于语义槽填充的任务上。之后双方总结了一篇使用RNN进行语言理解任务中语义槽填充的文章[2]。文章将语义槽填充视为序列标注任务,对不同种类RNN、双向RNN、RNN-CRF等网络结构的表现做了详细实验,结果表明,相对于CRF的基线方法,这些模型结构能够获得更好的结果。Yao等人使用了LSTM网络及相关变种[21],还有学者使用了CNN网络[22~24],Chen等人[25, 26]使用了Encoder-Decoder的框架进行语义槽标签标注,并引入了注意力机制。
意图识别-语义槽填充联合模型
基于语言理解的工作流程:领域/意图识别、语义槽填充,相关工作默认已经获知了意图识别的结果,并在该意图的语义框架下进行语义槽填充。其中的问题是,如果领域/意图识别错误,会直接影响到语义槽填充任务,从而产生错误传播。为了解决这个问题,很多学者[27~30]使用了领域/意图识别和语义槽填充的联合模型。其基本思想是使用一个网络结构学习输入的句子的信息,同时输出每个词的标签以及句子的领域、意图类别。
引入外部知识
一些工作考虑引入外部知识来提升模型性能。文献[31, 32]等引入了Freebase3或者Wikipedia等外部知识来提升系统的性能。Chen 等人[33]在Encoder-Decoder框架下,引入依存句法分析、语义依存分析等先验知识在数据集较小的情况下能够显著提升模型效果。
数据集
ATIS数据集
任务型对话语言理解的研究工作中,使用最广泛的数据集是航空旅游信息系统 (Airline Travel Information System, ATIS)的数据[34]。该数据集是采集自真实预订飞机票录音,再经过转写后的文本。
ATIS在语言理解任务上使用最广泛的版本4是来自于He等人[10]和Raymond等人[14]的工作,其中训练数据共4978句,来自ATIS25和ATIS36数据集;测试数据包含893句,来自ATIS3 NOV93和DEC94数据集。其中包含了127种语义槽标签和18种意图。
其他数据集
在一些研究工作中,使用了非公开的数据集。例如Guo等人的工作中,使用了微软Cortana英文对话数据集[27]。Yao等人使用了微软必应查询(Bing Query)理解英文数据集[35]。
在Luo等人的工作中,使用了Nuance公司私有的数据集[36]。这个数据集包含了200万句训练数据,26万句测试数据,涵盖了170种意图。
对话系统服务平台
如果自己开发一个对话系统,通常需要完成以下工作。
1.定义和准备:定义该对话系统支持的领域/意图或问题类别,定义语义槽,进行相关的数据标注;
2.训练和实现:训练领域/意图或问题分类模型,实现语言理解、对话管理和语言生成模块;
3.部署:在自己的服务器上,部署实现好的工程,对用户提供服务。
在不同的对话系统中,由于领域不同,第一步的定义和数据标注通常会有区别;而第二步和第三步的工作往往是重复的,所以可以考虑将这两步抽象为一个通用工作流程,作为一个算法的黑箱,为开发者提供一个通用的对话系统服务平台。在该平台上,用户只需完成第一步的任务定义和数据标注工作,后面两个步骤由平台自动提供,因此极大地简化了对话系统的开发和部署流程。
各大互联网公司纷纷推出了各自的对话系统服务平台,如微软推出的LUIS.AI,谷歌收购的API.AI和脸书收购的Wit.ai等。
表3是对上述三个平台的主要功能支持度进行的对比。
三个平台都提供了基本的语言理解功能,基本上可使开发者便捷地开发出一个人机对话系统。 ■
脚注:
1 语义槽相当于意图中所涉及的关键信息,包含语义槽名称和语义槽值。语义槽名称如“出发地”,语义槽值为对应的具体实体内容,如“北京”。语义解析后,返回语义槽名称和语义槽值。
2 IOB指的是一个词是某一语义槽的开始(begin)、延续(inside)或者非语义槽(outside)。
3 Freebase是一个类似维基百科(Wikipedia)的创作共享类网站,所有内容都由用户添加,采用创意共用许可证,可以自由引用。两者之间最大的不同在于,Freebase中的条目都采用结构化数据的形式。
4 https://www.dropbox.com/s/3lxl9jsbw0j7h8a/atis.pkl?dl=0
5 https://catalog.ldc.upenn.edu/LDC93S5
6 https://catalog.ldc.upenn.edu/LDC94S19
参考文献
[1] Tur G, De Mori R. Spoken language understanding: Systems for extracting semantic information from speech. John Wiley & Sons, 2011.
[2] Mesnil G, Dauphin Y, Yao K, et al. Using recurrent neural networks for slot filling in spoken language understanding[J]. IEEE/ACM Transactions on Audio, Speech and Language Processing (TASLP), 2015, 23(3): 530-539.
[3] 张志昌, 张宇, 刘挺, 等. 基于线索词识别和训练集扩展的中文问题分类[J]. 高技术通讯, 2009, 19(2): 111-118.
[4] Kalchbrenner N, Grefenstette E, Blunsom P. A convolutional neural network for modelling sentences[J]. arXiv preprint arXiv:1404.2188, 2014.
[5] Mou L, Peng H, Li G, et al. Discriminative neural sentence modeling by tree-based convolution[J]. arXiv preprint arXiv:1504.01106, 2015.
[6] Komninos A, Manandhar S. Dependency based embeddings for sentence classification tasks[C]//Proceedings of NAACL-HLT. 2016: 1490-1500.
[7] Pieraccini R, Tzoukermann E, Gorelov Z, et al. A speech understanding system based on statistical representation of semantics[C]//Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing. IEEE Press, 1992,1(1): 193-196.
[8] Wang Y Y, Deng L, Acero A. Spoken language understanding[J].IEEE Signal Processing Magazine, 2005, 22(5): 16-31.
[9] Macherey K, Och F J, Ney H. Natural language understanding using statistical machine translation[C]//Proceedings of the European Conference on Speech Communication & Technology, 2001: 2205-2208.
[10] He Y, Young S. A data-driven spoken language understanding system[C]//IEEE Workshop on Automatic Speech Recognition and Understanding. IEEE, 2003: 583-588.
[11] Lafferty J D, Mccallum A, Pereira F C N. Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data[C]//Proceedings of the Eighteenth International Conference on Machine Learning. Morgan Kaufmann Publishers Inc. 2001:282-289.
[12] Wang Y Y, Acero A. Discriminative models for spoken language understanding[C]//Proceedings of the International Conference on Spoken Language Processing. DBLP, 2006:1766-1769.
[13] Wang Y Y, Deng L, Acero A. Spoken language understanding[J]. IEEE Signal Processing Magazine, 2005, 22(5):16-31.
[14] Raymond C, Riccardi G. Generative and discriminative algorithms for spoken language understanding[C]//Proceedings of the 8th Annual Conference of the International Speech Communication Association. 2007:1605-1608.
[15] Viterbi A. Error bounds for convolutional codes and an asymptotically optimum decoding algorithm[J]. IEEE Transactions on Information Theory, 1967, 13(2):260-269.
[16] Liu J, Cyphers S, Pasupat P, et al. A conversational movie search system based on conditional random fields[C]//Proceedings of the 13th Annual Conference of the International Speech Communication Association. 2012:2454-2457.
[17] Jeong M, Lee G G. Structures for Spoken Language Understanding: A Two-Step Approach[C]// IEEE International Conference on Acoustics, Speech and Signal Processing. IEEE, 2007:IV-141 - IV-144.
[18] Kudo T, Matsumoto Y. Chunking with support vector machines[C]//Meeting of the North American Chapter of the Association for Computational Linguistics on Language Technologies. Association for Computational Linguistics, 2001:1-8.
[19] Yao K, Zweig G, Hwang M, et al. Recurrent neural networks for language understanding[C]//INTERSPEECH-2013. 2013:2524-2528.
[20] Mesnil G, H X, Deng L, et al. Investigation of recurrent-neural-network architectures and learning methods for spoken language understanding[C]//INTERSPEECH-2013. 2013:3771-3775.
[21] Yao K, Peng B, Zhang Y, et al. Spoken language understanding using long short-term memory neural networks[C]//Proceedings of the Spoken Language Technology Workshop (SLT). IEEE, 2014:189-194.
[22] Vu N T. Sequential convolutional neural networks for slot filling in spoken language understanding[C]//INTERSPEECH-2016.2016:3250-3254.
[23] Heike A, Roth B, Schütze H. Comparing convolutional neural networks to traditional models for slot filling[OL]. (2016).arXiv preprint arXiv:1603.05157.
[24] Xu P, Sarikaya R. Convolutional neural network based triangular CRF for joint intent detection and slot filling[J].Automatic Speech Recognition and Understanding(ASRU), 2014,9(2):78-83.
[25] Chen Y, Hakkani-Tür D, Tur G. Deriving local relational surface forms from dependency-based entity embeddings for unsupervised spoken language understanding[C]//Proceedings of the Spoken Language Technology Workshop (SLT). IEEE, 2014:242-247.
[26] Chen Y, Rudnicky A I. Dynamically supporting unexplored domains in conversational interactions by enriching semantics with neural word embeddings[C]//Proceedings of the Spoken Language Technology Workshop (SLT). IEEE, 2014:590-595.
[27] Guo, Daniel, et al. "Joint semantic utterance classification and slot filling with recursive neural networks." Spoken Language Technology Workshop (SLT), 2014 IEEE. IEEE, 2014.
[28] Hakkani-Tür, Dilek, et al. "Multi-Domain Joint Semantic Frame Parsing Using Bi-Directional RNN-LSTM." INTERSPEECH. 2016.
[29] Zhang, Xiaodong, and Houfeng Wang. "A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding." IJCAI. 2016.
[30] Liu, Bing, and Ian Lane. "Attention-based recurrent neural network models for joint intent detection and slot filling." arXiv preprint arXiv:1609.01454 (2016).
[31] Heck, Larry, Dilek Hakkani-Tür, and Gokhan Tur. "Leveraging knowledge graphs for web-scale unsupervised semantic parsing." (2013).
[32] Ma, Yi, et al. "Knowledge graph inference for spoken dialog systems." Acoustics, Speech and Signal Processing (ICASSP), 2015 IEEE International Conference on. IEEE, 2015.
[33] Chen, Yun-Nung, et al. "Syntax or semantics? knowledge-guided joint semantic frame parsing." Spoken Language Technology Workshop (SLT), 2016 IEEE. IEEE, 2016.
[34] Hemphill, Charles T., John J. Godfrey, and George R. Doddington. "The ATIS spoken language systems pilot corpus." Proceedings of the DARPA speech and natural language workshop. 1990.
[35] Yao, Kaisheng, et al. "Recurrent conditional random field for language understanding." Acoustics, Speech and Signal Processing (ICASSP), 2014 IEEE International Conference on. IEEE, 2014.
[36] Luo, Wencan, and Fan Yang. "An Empirical Study of Automatic Chinese Word Segmentation for Spoken Language Understanding and Named Entity Recognition." HLT-NAACL. 2016.
[37] Wang, Ye-Yi, and Alex Acero. "Evaluation of spoken language grammar learning in the ATIS domain." Acoustics, Speech, and Signal Processing (ICASSP), 2002 IEEE International Conference on. Vol. 1. IEEE, 2002.
所有评论仅代表网友意见