基于LSTM,kika在输入法引擎上的构建
极客时间编辑部
讲述:杜力大小:1.20M时长:02:37
近日,kika 的高级技术总监黄康在专访中,介绍了 kika 开发输入法 AI 引擎(项目代号:Alps)所采用的深度学习模型,以及在移动端轻量化部署遇到的各种挑战,本文重点介绍了 kika 基于 LSTM,也就是长短期记忆单元构建输入法引擎的挑战和做法。
一直以来,kika 都关注输入法,并且成功地将基于循环神经网络的深度学习模型应用到了安卓版的手机输入法引擎中,在克服工程化问题的情况下,大大提升了输入体验,不仅使上下文的词预测更加准确,同时还使得词纠错功能更加强大。
在构建这样的输入法引擎的过程中,kika 也遇到了一些挑战,他们不仅需要考虑到底使用 LSTM 还是 GRU 来实现高效的语言模型,同时还需要探索如何使整个方案更轻量化,以及如何快速的进行部署。
在这之中,输入法最重要的部分就是输入法引擎,kika 的很多算法和项目都围绕它展开。具体而言,输入法引擎的输出是给定所有上下文和当前输入键码所“预测”的词,它包含两个部分,即当前输入词汇的补全和纠错,这是输入法最为核心的模块。最开始,kika 是使用谷歌半开源的 LatinIME 来实现这样的功能,现在则是基于循环神经网络(RNN)的解决方案。
为了构建强大的语言模型,kika 选择了 LSTM(长短期记忆单元)作为网络的基础。LSTM 是标准循环神经网络的变体,在语言模型上一直都有非常好的性能,它引入自循环的巧妙构想来更新“记忆”,如果通过门控控制这样的自循环,那么累积的历史记忆或时间尺度就可以动态地改变。
Kika 表明,最开始 LSTM 只是用来实现标准的语言模型,它不会将正在输入的键码作为模型输入。这一套方案使用 LSTM 语言模型,根据上下文预测当前词,而键码部分仍然使用传统的基于 n-gram 和字典等的解决方案。后来 kika 使用一种新的策略将两个部分结合在一起,因此模型不仅能接受上下文的输入,同时还能接受键码的输入。
总体而言,kika 花了很大一部分时间完成参数调优,因而能基于一体化的 LSTM,来实现效果非常好的输入法引擎。当然只是构建模型还远远不够,将这种深度学习模型部署到移动端,仍然面临着非常多的挑战,例如深度学习框架的选择和模型压缩的方法等。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论