意图识别在图书馆应用的研究和实现
2022-06-21孙萍
孙 萍
(平顶山学院 图书馆,河南 平顶山 467000)
OPAC检索和FAQ在线服务是帮助读者了解图书馆、利用图书馆资源的关键服务,长期以来这两项服务相互独立,尤其是FAQ服务,只能提供最简单的目录检索功能。随着NLP(Natural Language Processing)技术的发展,人们研究出了基于词向量近似度计算的算法模型,FAQ开始向具有人机交互对话功能的智能客服演变,并在极少数图书馆得到了应用。
如何将OPAC和智能客服结合在一起,使之能准确识别读者的意图并执行相应的操作,比如读者提问:“图书馆几点开门”,或者“图书馆有没有深度学习的书”。系统能准确识别前者为FAQ咨询,返回相应的帮助信息,而后者为资料检索需求,返回OPAC检索结果。解决这个问题将有助于为读者提供更加友好智能的服务,并有助于整合图书馆数据,提供简洁单一的服务入口。
1 意图识别的发展以及在图书馆的应用研究
1.1 意图识别的发展
意图识别的研究起源于搜索引擎,搜索引擎必须能够准确地理解用户的搜索意图。随着苹果公司人机对话系统Siri的推出,为人们指明了人机对话的应用前景。如今,各种人机交互系统如雨后春笋一样,Google Now、微软小娜、小米小爱等等,已经深入人们的生活。而所有这些系统的核心技术之一,就是意图识别,其准确性决定着人机交互的质量和用户体验。
1.2 意图识别在图书馆的应用研究现状
虽然以深度学习和自然语言处理为代表的人工智能研究近几年得到了较大的进展,人工智能技术在很多行业得到了广泛的应用,出现了以自动驾驶、智能助理为代表的典型技术应用,但是在目前的图书馆界,人工智能的应用几乎还是空白,图书馆的办公系统经过这么多年的迭代,本质上还是针对传统业务模式、基于关系数据库开发的MIS应用,针对AI在图书馆应用的研究,也少之又少。笔者以CNKI数据库为对象,以“图书馆”“人工智能”“意图识别”作为主题词,统计了近十年图书馆AI研究论文和其他研究论文之间的数据分布。
从表1可以看出,2011年—2020年,以图书馆专业人工智能技术为研究对象的论文数量在整体论文中占比很少,在2019年之前,论文数不足百篇,占比不到0.5%,从2019年开始迎来爆发性增长,达到533篇,占比1.6%。2020年虽然数量略有下降,为513篇,但是总体占比达到2%。
表1 图书馆研究论文和图书馆人工智能研究论文数量统计
在这1 500多篇关于图书馆人工智能研究的论文当中,涉及意图识别地到目前为止只有3篇[1-3],表明这项极有应用价值的研究目前还处于萌芽阶段。
1.3 图书馆意图识别研究的难点
1.3.1 自然语言的灵活性和模糊
自然语言的灵活性和模糊性一直是阻碍意图识别的一大障碍,有的语言具有明确的意图,比如“我明天早上8点从平顶山开车去北京”,这句话里面的行为主体、时间、出发地、目的地和出行方式都很明确,这句话如果变成“明天早上8点开车去北京”,虽然省略了行为主体和出发地,但是人们也可以理解,计算机通过语义槽填充算法,可以还原这个句子默认的行为主体是“我”,出发地是“我”当前所在的“平顶山”。但是并不是所有的自然语言都可以通过语义槽填充方式来获取其意图,很多句子的意图不明显甚至是指向其他互不相干的意图。再比如图书馆的读者在人机交互界面的提问是“我的书丢了”。其真实语义是寻求帮助,计算机从单纯的字面分析很难得出这样的结论。再比如“图书馆有没有计算机类的书”和“图书馆有没有老人与海这本书”,这是两个极为相似的语句,即便是人工识别其意图,也可能将其意图识别为寻求FAQ帮助,但是实际上,前者包含的信息过于宽泛,可以认为其意图是寻求帮助,而后者信息则较为具体,可以认为其意图是OPAC数据检索。
1.3.2 评价标准主观
很多时候,同一句话,不同的人会有不同的理解,就像我们经常所说的,一千个人眼中有一千个哈姆雷特,不同的算法、甚至是不同的数据标记方法都会产生不同的识别结果,所谓“言者无心,听者有意”其实也反映了这个问题。因此,评价的主观性决定了意图识别的准确率不可能达到100%的准确性。
1.3.3 样本数据量不足
对于大部分部门来说,其业务较为简单,因此可用于研究的业务数据也很少。比如对于高校图书馆来说,其涉及的业务范围基本上和“借书证”“书籍借还”“规章制度”“资源使用”等内容相关,即便是研究人员穷举读者所有可能遇到的问题,所生成的FAQ数据量还是不足以作为研究对象,这也是限制意图识别研究的一个原因。
1.4 利用深度学习判断意图的可行性
研究和实践表明,经验知识有助于我们对未知情况的判定,比如下棋,每一步对弈就是建立在已有经验知识基础上做出的新的判断。又比如一个非图书馆专业的研究者,对于诸如“图书馆几点开门”这样的问题,仍然可以准确判断出其意图是一个服务咨询性质的问题,而非一个图书检索需求。
而有监督计算机深度学习正是基于这个原理:机器通过监督性学习,从而在大量数据训练的基础上,具备一定的分类(判断)能力,比如基于神经网络的情感分析系统[4-6],经过学习后可以准确预测文章的情感。
通过分析,发现基于神经网络深度学习的意图识别和情感分析都是在已有知识(语料)的基础上,判断出有限结果:即分类的过程,二者具有一定的相似性。因此利用深度学习进行意图识别是可行的。
2 基于深度学习的意图识别研究与实践
2.1 影响意图识别算法的因素
2.1.1 模型的影响
不同结构的人工神经网络有其不同的特征和擅长处理的数据对象,比如卷积神经网络更适合处理数据量较大的图像数据,常用于图像数据的识别和分类;循环神经网络适合处理有序数据,比如一段文字、一段音乐,用于学习序列模型,并预测输出的序列。
神经网络的深度对识别模型的结果也有一定的影响,一般来说较深的模型能够更好地拟合训练数据并得到较高的测试结果,但是也会显著增加系统的时间复杂度和空间复杂度,另外,误差在反向传递的过程中,超过三层后的节点,误差对其权重的影响就变得很小。
2.1.2 样本数据的影响
分类样本数据量对比悬殊是影响识别的主要因素,对于本研究来说,用于训练的书目数据有35万多条,而问答类型的数据,能搜集到的仅有3万多条,数据数量对比悬殊,采用通常的数据混合、打乱再训练的方法,虽然仍然可以得到稳定的误差下降:基于样本数据的训练准确率可以达到90以上,但是测试数据的准确率却在30%以下,显然,这样的模型不具备任何应用价值。
2.1.3 分词粒度的影响
分词粒度的大小通过以下几个方面影响意图的理解:①首先影响语义的识别,比如“苏东坡”,如果分词为“苏”“东”“坡”,显然破坏了原有的语义,因此,过小的粒度不仅无助于理解语义,在实际搜索应用中,也会影响搜索结果,增加无关噪音结果。②影响词向量的近似度,词向量的粒度也影响隐藏马尔可夫模型的统计计算结果。进而影响词向量的近似度。因此,分词时候的词向量粒度应合理、科学,尤其是应当加强命名实体数据词袋的建设。
2.2 各个因素的优化
2.2.1 采用BP网络模型
本研究的述模型框架,如图1所示。
图1 意图识别系统结构框架
从图1可知,本研究采用BP神经网络,之所以选用BP神经网络:①因为BP神经网络具有任意复杂的模式分类能力和优良的多维函数映射能力,具有广泛的适用性。②同CNN相比,BP神经网络没有卷积和池化层,因此也不会降低本来就稀疏的文档向量的维度,不会引起数据特征的丢失。③BP网络更具有弹性,层数以及中间的节点数可以根据问题的规模设定。
2.2.2 小批数据量对等的方法
针对图书数据和问答数据数量对比悬殊的情况,笔者采用小批量数据对等的方法来解决这个问题,总体思路为:根据小批量问答数据的条数,将大批量的书目数据分割为数目大致相等的若干组,分别与小批量问答数据乱序混合训练,经过验证,该方法优于通常的不分批乱序训练方法。基于测试数据的识别的准确率达到98.6%,而基于平顶山学院图书馆有限FAQ数据的实测准确率为100%。
2.2.3 分词、词向量和文档向量维度的规范方法
2.2.3.1 中文分词的实现。本模型采用Jieba分词,最新的Jieba分词不仅支持利用PaddlePaddle深度学习框架分词,同时支持传统的词袋分词,利用这个特征,我们可以在数据处理阶段提取责任者、出版社、出版地等数据,并以此构造命名实体数据词袋,提高分词的准确性,控制分词的粒度。
2.2.3.2 词向量。 神经网络利用文档向量作为训练数据,从而在不断的学习过程中、获取一组能够较为完美拟合所有数据的参数,实现识别或判断的功能。而文档向量的质量与构成文档的词向量有关,因此,系统实现的重点在于词向量的生成以及文档向量的构造。
虽然神经网络通常采用浮点张量作为训练数据,理论上低纬数张量也可以表示大量的样本数据,但是实践经验表明,维数的高低对于神经网络的准确率有较大的影响,究其原因,笔者认为,维数过低的张量在表示大量样本数据的时候,会降低样本数据之间的离散度,弱化样本数据数字特征之间的区别。而过高维数的数据则又会增加运算量,必须采用适当的特征提取方法降低维度,比如卷积神经网络。因此采用合理的维数表示词向量十分重要,本系统采用Word2Vect计算词向量,维数设置为200,具有较好的识别效果和较低的计算量。
2.2.3.3 文档向量的合成。 咨询问题和书目数据具有不同数量的词向量,显然,这样的数据必须统一到相同维度和维数才可以被神经网络处理,本系统采用简单平均算法计算文档向量。
2.3 系统的演化和学习机制
深度神经网络的智能化基于大数据的学习,而再多的有限数据也不可能涵盖所有的问题,比如笔者在最初设计系统的时候,考虑采用腾讯AILAB开源的词向量工具,限于开发平台硬件配置,采用其100万词向量精简版本,理论上可以覆盖90%以上的常用分词,对于业务简单的图书馆来说足够用,但是实际使用中发现很多分词匹配不到对应的词向量。
同样道理,Wrod2Vect基于有限的书目数据和百度知道数据生成的词向量也不可能在实际应用中适用于新词汇,因此,系统必须具备学习演化的能力。
系统的学习演化还体现在对新问题的学习方面:对于读者的问题,如果系统没有遇到并收录,则将之作为训练数据保存,并在适当的时候重新学习。
2.4 系统的表现
根据训练样本数据在系统中50次迭代训练过程中损失的表现,实验针对测试数据的识别准确度达到98.6%。表明本系统模型对于意图识别具有良好的适用性,可用于图书馆智能客服系统,准确判断读者的意图。
3 结束语
新技术从产生到应用从来不是一帆风顺的事情,涉及技术成熟度、业务需求等,甚至需要我们大胆思维、敢于想象、勇于实践。
本文阐述的“利用神经网络模型实现读者意图识别”的方法,首次提出并探讨了整合图书馆OPAC业务和智能客服业务的观点,并验证了利用人工神经网络准确分析读者意图的可行性,并在模型构建、数据处理、数据向量化等方面做了较为细致的研究,对有兴趣整合图书馆业务,或者挖掘图书馆智能化服务的业界同人具有一定的借鉴意义。