论文部分内容阅读
摘要:在AI技术快速发展的今天,AI应该应用到每一个角落。本文选择在最常用的工具软件输入法软件中加入深度神经网络算法,利用长短期记忆网络算法进行数据建模来实现输入法引擎。实验证明,利用深度神经网络算法改进传统的N-gram输入法引擎语言模型,可以大大的提高预测精准度,减少客户回删率。
关键词:输入法引擎;AI;深度神经网络;N-gram
1 引言
当前,能见到的输入法都具备在用户第一次敲击键盘就进行输入预测的功能,而且可以推荐常用词组。在输入法中引入AI技术,进行充足的词组、语义的学习,可以让输入法引擎充分了解人的用语习惯。当输入法充分地了解用户之后,设备与人之间的交流得以加深,人机交互的体验得到巨大提升,进而提高用户体验度。输入法引擎引入 AI技术是发展的趋势。本文主要讨论在手持终端的文本输入场景下,通过AI技术改造传统的输入法引擎语言模型以实现准确高效预测用户输入的方法。
2 输入法引擎语言模型
输入法 (Input Method,简称 IME)是日常使用最多的软件。用户按照大脑的意识,通过一定顺序来点击键盘(包含虚拟屏幕键盘)上的按键,按键敲击序列称为键码序列;在用户点击按键的过程中,键码序列以及之前用户输入的词组会被传入输入法软件下层的「输入法引擎,引擎会对这些大量的数据进行训练,得到用户个性化的语言模型,用来在后续客户输入中预测用户要输入的词组,并将预测的词组展现出来供用户选择。
客户输入的次序为x1,x2,x3......,x(N-1),利用argmaxWNP(XN|x1,x2,x3......,x(N-1)来预测客户意识中要输入的下一个词组,这就是输入法引擎的语言模型。
3 深度神经网络语言模型
深度神经网络语言模型的实现分为两个阶段,首先需要实现并分析传统的N-gram语言模型,设计合适的神经网络结构,再将深度神经网络算法融入传统算法,实现最终的AI语言模型。
N-gram统计语言模型是针对大数据量的语料进行统计分析,来分析客户在输入前N-1个词形成的序列(N-gram)后,第N个词出现的统计学概率。但由于手持设备硬件性能(内存和CPU)的限制,仅适合对较短词序进行预测,一般词序长度不会超过三个(N <= 3),预测能力存在明显短板。
根据最大似然估计原则,只有在语料数据规模足够大以至于具备统计意义时,上述概率计算才会具有意义。但事实上,如果 N 值过大,并不存在足够大的语料数据可以支撑所有概率值的计算;并且,由于第N个词实际上仅同前N-1中的部分词相关,上述计算会造成大量的计算资源浪费。
通过以上分析,可以得出,传统N-gram语言模型构建的输入法引擎有以下问题:
1)预测能力存在明显短板:在有限的硬件资源支持下,N-gram中的N很难突破3,这导致不能完整的预测关键信息。
2)对于未出险过的词序不能实现智能关联预测。例如,统计语料数据库中有”go home”,而没有”go to meeting”。及时客户输入”go to m”,引擎也会把”go home”排在首位。
上述问题,利用深度神经网络技术(Neep Neural Networks, DNN)可以完美的解决。利用DNN算法的网络模型,对大量的语料数据进行训练,可以轻易突破N的限制;并且可以进行语义关系的学习,实现智能预测的效果。
针对语言模型序列到序列的特点,并且在词序神经状态层之间传递信息的有效性,我们选择长短期记忆网络 (Long-Short Memory Networks, LSTM) 對数据进行建模,以实现更准确的预测。
为了实现更好的预测效果,我们队LSTM的网络结构进行改造,在词与词之间的语义训练过程中添加一个嵌入层(Word Embedding Layer,WEL)。通过WEL,即使在语料数据中没有出现过”I love study”,但是因为”I love job”出现在语料库中,而通过 WEL可以发现”study”和”job”具有强烈的语义关联;这样,当用户输入”A leader guide to go to s”时,引擎会根据”study”和”job”的语义关联,以及 LSTM 中学习到的”leader”同”job”间存在的预测关系,而准确地向用户推荐”job”,而非”swimming”。
还剩下最后一个问题需要解决,那就是保证客户端的流畅运行。一个完备的输入法客户端,在保证良好性能的情况下(按键响应时间保证在60毫秒以内),要稳定的保持尽量低的内存占用。以美式英语的LSTM原型为例,模型量化超过1G,响应时间也超过1000毫秒,这就要求在保证效果的前提下优化模型结构,减少不必要的层数和神经元。这就要求我们在进行语言模型建设的时候加入稀疏表示与学习的技术,来压缩LSTM 网络中的 word/ch embedding矩阵及输出节点softmax向量矩阵,同时利用 Kmeans 聚类对模型参数进行自适应量化学习,可以将模型量化从1G压缩到5M,响应时间也可以满足需求。
4 实验结果与讨论
基于以上的云端建模和客户端预测技术,我们完成了基于深度神经网络 (LSTM) 的输入法引擎方案的整体部署,并在大量语言上,同基于N-gram的语言模型进行了对比测试。在日常输入操作中,引入AI算法的输入法引擎在精准预测性上具备明显优势,大大降低了客户回删率。
参考文献:
[1]IanGoodfellow、YoshuaBengio,Deep Learning,人民邮电出版社,2017年7月.
[2]海金,神经网络与机器学习,机械工业出版社,2011年03月.
[3]吴岸城,神经网络与深度学习,电子工业出版社,2016年06月.
[4]余天照,跨平台笔画输入法引擎的设计与实现,哈尔滨工业大学 ,2013年7月.
作者简介:潘福山(1983.11-),男,汉族,山东潍坊,本科,高级程序员,高级项目经理,研究方向:人工智能应用。
关键词:输入法引擎;AI;深度神经网络;N-gram
1 引言
当前,能见到的输入法都具备在用户第一次敲击键盘就进行输入预测的功能,而且可以推荐常用词组。在输入法中引入AI技术,进行充足的词组、语义的学习,可以让输入法引擎充分了解人的用语习惯。当输入法充分地了解用户之后,设备与人之间的交流得以加深,人机交互的体验得到巨大提升,进而提高用户体验度。输入法引擎引入 AI技术是发展的趋势。本文主要讨论在手持终端的文本输入场景下,通过AI技术改造传统的输入法引擎语言模型以实现准确高效预测用户输入的方法。
2 输入法引擎语言模型
输入法 (Input Method,简称 IME)是日常使用最多的软件。用户按照大脑的意识,通过一定顺序来点击键盘(包含虚拟屏幕键盘)上的按键,按键敲击序列称为键码序列;在用户点击按键的过程中,键码序列以及之前用户输入的词组会被传入输入法软件下层的「输入法引擎,引擎会对这些大量的数据进行训练,得到用户个性化的语言模型,用来在后续客户输入中预测用户要输入的词组,并将预测的词组展现出来供用户选择。
客户输入的次序为x1,x2,x3......,x(N-1),利用argmaxWNP(XN|x1,x2,x3......,x(N-1)来预测客户意识中要输入的下一个词组,这就是输入法引擎的语言模型。
3 深度神经网络语言模型
深度神经网络语言模型的实现分为两个阶段,首先需要实现并分析传统的N-gram语言模型,设计合适的神经网络结构,再将深度神经网络算法融入传统算法,实现最终的AI语言模型。
N-gram统计语言模型是针对大数据量的语料进行统计分析,来分析客户在输入前N-1个词形成的序列(N-gram)后,第N个词出现的统计学概率。但由于手持设备硬件性能(内存和CPU)的限制,仅适合对较短词序进行预测,一般词序长度不会超过三个(N <= 3),预测能力存在明显短板。
根据最大似然估计原则,只有在语料数据规模足够大以至于具备统计意义时,上述概率计算才会具有意义。但事实上,如果 N 值过大,并不存在足够大的语料数据可以支撑所有概率值的计算;并且,由于第N个词实际上仅同前N-1中的部分词相关,上述计算会造成大量的计算资源浪费。
通过以上分析,可以得出,传统N-gram语言模型构建的输入法引擎有以下问题:
1)预测能力存在明显短板:在有限的硬件资源支持下,N-gram中的N很难突破3,这导致不能完整的预测关键信息。
2)对于未出险过的词序不能实现智能关联预测。例如,统计语料数据库中有”go home”,而没有”go to meeting”。及时客户输入”go to m”,引擎也会把”go home”排在首位。
上述问题,利用深度神经网络技术(Neep Neural Networks, DNN)可以完美的解决。利用DNN算法的网络模型,对大量的语料数据进行训练,可以轻易突破N的限制;并且可以进行语义关系的学习,实现智能预测的效果。
针对语言模型序列到序列的特点,并且在词序神经状态层之间传递信息的有效性,我们选择长短期记忆网络 (Long-Short Memory Networks, LSTM) 對数据进行建模,以实现更准确的预测。
为了实现更好的预测效果,我们队LSTM的网络结构进行改造,在词与词之间的语义训练过程中添加一个嵌入层(Word Embedding Layer,WEL)。通过WEL,即使在语料数据中没有出现过”I love study”,但是因为”I love job”出现在语料库中,而通过 WEL可以发现”study”和”job”具有强烈的语义关联;这样,当用户输入”A leader guide to go to s”时,引擎会根据”study”和”job”的语义关联,以及 LSTM 中学习到的”leader”同”job”间存在的预测关系,而准确地向用户推荐”job”,而非”swimming”。
还剩下最后一个问题需要解决,那就是保证客户端的流畅运行。一个完备的输入法客户端,在保证良好性能的情况下(按键响应时间保证在60毫秒以内),要稳定的保持尽量低的内存占用。以美式英语的LSTM原型为例,模型量化超过1G,响应时间也超过1000毫秒,这就要求在保证效果的前提下优化模型结构,减少不必要的层数和神经元。这就要求我们在进行语言模型建设的时候加入稀疏表示与学习的技术,来压缩LSTM 网络中的 word/ch embedding矩阵及输出节点softmax向量矩阵,同时利用 Kmeans 聚类对模型参数进行自适应量化学习,可以将模型量化从1G压缩到5M,响应时间也可以满足需求。
4 实验结果与讨论
基于以上的云端建模和客户端预测技术,我们完成了基于深度神经网络 (LSTM) 的输入法引擎方案的整体部署,并在大量语言上,同基于N-gram的语言模型进行了对比测试。在日常输入操作中,引入AI算法的输入法引擎在精准预测性上具备明显优势,大大降低了客户回删率。
参考文献:
[1]IanGoodfellow、YoshuaBengio,Deep Learning,人民邮电出版社,2017年7月.
[2]海金,神经网络与机器学习,机械工业出版社,2011年03月.
[3]吴岸城,神经网络与深度学习,电子工业出版社,2016年06月.
[4]余天照,跨平台笔画输入法引擎的设计与实现,哈尔滨工业大学 ,2013年7月.
作者简介:潘福山(1983.11-),男,汉族,山东潍坊,本科,高级程序员,高级项目经理,研究方向:人工智能应用。