你和小冰聊天,把各位好朋友的照片放进FaceApp改个性别加个灿烂笑容,靠的都是深度神经网络等机器学习技术。
机器学习很强大,它需要的计算资源也很强大。于是机器学习算法往往是在服务器上运行的:不联网,FaceApp才不会帮你手动微笑。
现在,Google终于把机器学习算法压缩到了移动设备里边,而且是个配置远不如手机的智能手表。
Google昨天发布的Android Wear 2.0智能手表操作系统加入了智能回复功能,这一功能不依赖服务器,完全在智能手表本地实现。
Google Research研究科学家Sujith Ravi在博客中表示,长短时记忆(LSTM)等循环神经网络(RNN)与图学习的结合,非常适用于自然语言理解任务,但是这样的模型很难压缩到计算能力有限的移动设备中,因此,他们选择了一种替代方法。
他们先将类似的消息投射到相同的位向量(bit vector)上,然后用局部敏感哈希算法(locality sensitive hashing,简称“LSH”)将数百万不同词语带来的维度缩减到一串二进制字符,提升了计算速度。
接下来,这个系统用消息和投射的位向量共同训练一个“信息投射模型”,让这个模型根据Google的半监督图学习框架(点击文章最底下的“阅读原文”,有一篇相关论文等你读)来预测可能的回复。
这样,就有了Android Wear 2.0上的智能回复功能。智能手表上运行的智能回复软件处理用户收到的信息,向用户推荐回复语句,还能逐渐学习用户的语言风格和个人偏好,变得更像主人。
其实,Google之前也做过类似的事情:把人工神经网络压缩到智能手机上,让iOS和Android版的Google翻译能够不联网即时运行。
Facebook也在努力将机器学习算法压缩到移动设备上,贾扬清研究的Caffe2go就是在一款在手机上训练神经网络的框架,这一框架嵌入到了Facebook App中,可以在手机上不联网实现风格迁移,也就是Prisma那样的功能。
这些将机器学习算法简化、压缩、装进移动设备的努力,源自于对于“实时性”的需求。发送到服务器-进行处理-再发回设备上这样一个流程,无论怎样号称“实时”,也还是会有一定的延迟,而且对网络的速度和可靠性都有着极高的要求。