我们期望输入效率越高越好;同时,我们也会关注每种语言对应的线上用户的回删率,在此不再赘述。
下图是在一些语言上 LSTM 引擎相对 N-gram 引擎输入效率的提升幅度。

图 5 LSTM 引擎相对 N-gram 引擎输入效率的提升幅度
高级预测功能
高级预测功能在第一部分提到过,输入法引擎也需要能够准确预测用户可能输入的 Emoji 或表情图片,而这些内容往往具有多义性,因此此类预测的复杂度会更高。
同时,对于 Emoji 来讲,用户往往会创造出一些有趣的 Emoji 组合,例如「????????????」,如何自动挖掘出这样的 Emoji 组合,并将其整合进 LSTM 的模型框架中,也是一个很有趣的问题。
另一方面,从文字输入效率的角度看,如果每次预测能够准确预测不只一个词,而是词组,对用户的体验会是一个很大的提升。如何发现有意义的尽可能长的词组,并且整合进 LSTM 的模型框架中,也会是一个很有挑战的工作。
Q/A 环节
Q1: 请问老师,这里 softmax 输出是?

A1: 因为这个网络的目的是预测下一个词,所以 softmax 的输出是预测词的 id 和概率值。在实际产品中,我们会选择 Top 3 的预测词,按照概率值从高到底显示在候选区。
Q2: 输入法本质上就是根据用户前面的输入预测他接下来要输入什么。图像识别 神经网络训练数据集和预测模型是在云端完成然后定期更新到手机端的吗?还是完全在手机上端完成的?
A2: 我们的方案是包含两个部分。对每种语言,我们会在云端迭代训练一个新 general language model,在新 model 效果得到离线评测验证后,下发到手机端。并且,在手机端,会根据每个用户的个人输入历史,来训练 personalized model (这个 model 的训练频率会更高)。在实际预测时,会将这两个 model 的 inference 结果 merge 起来得到最终结果。在手机端的训练,需要尤其注意训练的时机,不能在用户手机负载高的时候执行训练。
Q3:TF Lite 对手机有要求吗?
A3:TF Lite 对手机没有要求。但是 TF Lite 为了性能的考虑,砍掉了很多的 operators,我们在实现的过程中实现了自己模型 inference 必需的 operators.
Q4: 接上 Q1 的问题,针对英文情况,假如词表为 1w,softmax 层 1w 个节点,怎么优化 softmax 层呢?
A4:softmax 层的压缩,本质上就是 softmax 向量矩阵的压缩,其原理就是将巨大的向量矩阵转换为少量的过完备基向量组合,而过完备基向量可以自动学习获得。
Q5: 请问:每训练一次模型 LSTM 需要多少个 cell 这个是由什么决定的?
A5: 每训练一次模型 LSTM 需要多少个 cell,决定因素大体有两类:1)我们可以接受的模型的复杂度,这直接决定了最终量化压缩后的模型的大小;2)我们期望达到的效果。最终的决定主要是在这两类之间进行平衡。当然,也同语言本身的复杂度有关,比如德语同英语对比,会更加复杂,因此 cell 的数量多一些会更好。如果不考虑这个限制,我们可以通过云端 service 的方式来进行 inference.
Q6:未来输入法会支持语音输入吗?
A6: 我们正在开发 Kika 的语音识别和语义理解引擎,目前在英文上的语音识别水平接近 Google 的水平,所以会逐步上线 Kika 的语音输入功能。同时,我们基于 Kika 的一系列语音技术,已经在 CES 2018 发布了 KikaGO 车载语音解决方案,获得了很多好评和 CES 的四项大奖,并正在准备产品的正式发布。我们的全语音解决方案除了为车载场景下提供服务外,还会在场景上做出更多的尝试。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-81276-5.html
将用导弹迎接之
三聚氰胺
的瑟的很