从一开始,Google Wear团队开始踏上从零开始开发这项技术时,对于模型的预测是否有用和准确率其实心里没底。但是完成整个项目后,他们惊奇的发现这项技术在即便在计算能力和存储资源非常有限的Android可穿戴设备上效果能够达到预期,这使得整个团队都非常的兴奋。

【51CTO.com原创稿件】近几年,人工智能范畴显得反常的活泼。除了传统的组织学术圈外,Google、Microsoft、Facebook、苹果以及国内的百度、阿里等等优异的互联网企业也纷繁成立了相关的研讨团队,并取得了许多令人瞩意图作用。

Google的AlphaGo向全世界展示了强壮的运算才能,Siri和Google Now中的语音辨认才能,国内百度的小度机器人在“***大脑”上展示的语音、图像辨认才能,这些优异的项目都极大的反响了人类在人工智能范畴的飞速发展。可是,无论是语音仍是图像辨认,很大程度上都依赖于云核算来满意许多的运算和存储,而移动、PC设备,都需求时时刻刻经过互联网的衔接,获取核算资源来到达人工智能的意图。

不过近期,在Google发布的Android Wear 2.0中,除了答应手表脱离手机直接运用外,愈加让人震动的是“智能回复”(Smart Reply)才能,官方技能团队以为,这是根据离线AI完结的,无需接入网络去寻求云核算协助,就能够完结自我学习的意图。

Android Wear 2.0智能回复 Google要逆天!Google 2.0 最新离线AI技能解析  人工智能 AI技术 第1张

(图片来自 engadget)

在此之前,包含作者在内,都以为关于智能手表这样的移动设备,在有限的核算才能和内存容量上,假如不衔接云端就能够具有自我学习,“智能回复”等才能,这几乎是不或许的作业。直到Google的一支名为“Expander”的AI研制团队做到了,并移植到Android Wear 2.0上且得到很好的作用!他们经过从头规划了一套愈加轻量、全新的机器学习结构,不仅能驱动 Android Wear 2.0 上的 Smart Reply,还能够给更多其他离线移动运用带来巨大的协助。不过在此之前,他们也测验了许多比较盛行的神经网络和图形学习技能,可是树立的模型并不适宜运用在移动渠道,约束回复的数量也打不到预期作用。经过这套轻量,简略的体系,能够将预期回复相似的音讯,比方“你最近好吗?”“过得怎么样?” 敏捷归类到一同,以此减轻Smart Reply给内存带来的压力。

在此之间,作者联络到了在Google 担任Android作业的梁宇凌教师,他介绍说,AI一般指的都是机器学习,首要分为练习和猜测两个流程。练习时需求海量数据和强壮的核算才能,因而一般仍是在云端进行练习。练习完毕今后得到的模型,进行单次猜测时不需求海量数据和核算才能,所谓的离线AI,往往是指把网上练习好的模型存在移动设备上,进行猜测。因而技能难点往往在于怎么把模型的size缩小,以及削减猜测时的核算量和加速猜测速度。这方面有许多办法,现在很热的AI芯片加速便是其间一种办法。

其实Android Wear 2.0的离线AI技能并没有选用深度学习,而是经过一种叫semi-supervised graph learning(半监督图学习[1])的技能,其间技能中心部分在于对设备上的信息内容(例如谈天,短信等等)高效地映射到相应或许的主动回复。而在Smart Reply中选用了一套全新、且比较轻量化的机器学习架构,他不仅仅能够满意智能回复功用,将来还会在许多离线的移动运用中带来巨大的协助。

接下来,作者整合了梁教师的主张以及Google官方技能团队的博客,详细分析Android Wear 2.0离线AI技能的实践思路。

Android Wear 2.0智能回复 Google要逆天!Google 2.0 最新离线AI技能解析  人工智能 AI技术 第2张

Google Wear 2.0 智能回复

学习与投射

树立轻量级会话模型的一个简略的战略是,在设备上创立的内容是常见的、且有规矩的小字典(比方输入→回复映射),并且在推理时运用一种较为朴素的查询战略。这儿牵涉到运用几个特征的一小组类猜测使命,(比方二元情感分类,“我爱这部电影”传递了一种活跃的情感,而“演得很糟糕”这句话传递了消沉的情感)。可是,它缺少杰出的扩展性,无法支撑谈天音讯中常见的丰厚词汇和很多杂乱的言语改变。另一方面,递归神经网络(比方LTSM)等机器学习模型是功用极端强壮的东西,适用于自然言语了解使命中的杂乱序列学习,包含“智能回复”。可是,紧缩这类丰厚的模型用来习惯很小的内存设备,并经过下降核算成本取得牢靠的猜测(敏捷依照需求处理),那十分有挑战性。Android Wear 2.0团队前期测验经过约束模型、只猜测一小批回复,或许运用量化(quantization)或字符级模型(character-level model)等技能,可是都未能取得很好的成果。

***,经过为设备端机器学习体系构建一套不同的解决方案。思路是,先运用一种快速、高效的机制,将相似的音讯分红一组,并将它们投射到相似(“附近”)的位向量表明。尽管有几个办法能够履行这个投射过程,比方运用单词嵌入或许编码器网络,但***Android Wear 2.0选用了一种经过改动的部分灵敏哈希算法(LSH), 将维度从数百万个一同的单词简化为矮小的、固定长度的位序列。这样能够十分快地为音讯即时核算投射,并且在设备上占用的内存空间更小,由于不需求存储音讯、单词嵌入或许乃至是用来练习的整个模型。

离线AI投射流程 Google要逆天!Google Wear 2.0 最新离线AI技能解析  人工智能 AI技术 第3张

投射过程:相似的音讯分到一组,被投射到附近向量。比方说,“hey, how's it going?”和“How's it going buddy?”这两条信息有着相似的内容,或许被投射到同一个11100011。另一个相关的信息“Howdy, everything going well?”被映射到只相差2位的附近向量11100110。

接下来,体系经过音讯及其投射后,一同练习成“音讯投射模型”,该模型学会运用半监督式图形学习结构,猜测或许适宜的回复。图形学习结构想要练习成一个牢靠的模型,其办法是结合来自多个来历的语义联系(音讯/回复交互、单词/短语相似性、语义聚类信息),并且学习有用的投射操作,这些投射操作能够映射到超卓的回复猜测。

离线AI学习流程 Google要逆天!Google Wear 2.0 最新离线AI技能解析  人工智能 AI技术 第4张

学习过程:(上面)音讯连同投射和相应回复一同用于机器学习结构,一同学习一个“音讯投射模型”。(下面)音讯投射模型学会将回复与相应的音讯投射相关起来。比方说,该模型将两个不同的音讯:“Howdy, everything going well?”和“How’s it going buddy?”(底部中心)投射到附近位向量,并学习将其映射到相关回复(底部右边)。

上述值得一提的是,尽管能够运用杂乱机器学习和云核算的才能,练习音讯投射模型,可是模型自身驻留在设备上,并且彻底在设备上履行并推理。设备上运转的运用程序能够传递用户的音讯,并从设备端模型接纳回复猜测,而数据不必脱离设备。并且还能够改动该模型,以适运用户的书写风格和个人偏好,然后提高个性化的体会。

离线AI推理流程 Google要逆天!Google Wear 2.0 最新离线AI技能解析  人工智能 AI技术 第5张

推理过程:该模型将学到的投射运用于音讯(或音讯序列),并主张相关的不同回复。推理作业在设备上履行,让模型得以适运用户数据和个性化书写风格。

为了让设备端体系能够开箱即用,Android Wear团队也不得不进行几个额定的改善,比方专门进行了优化,以便加速设备端核算,以及从模型生成丰厚多样的回复。

离线AI从手表交流到运用

从一开端,Google Wear团队开端踏上从零开端开发这项技能时,关于模型的猜测是否有用和准确率其实心里没底。可是完结整个项目后,他们惊讶的发现这项技能在即便在核算才能和存储资源十分有限的Android可穿戴设备上作用能够到达预期,这使得整个团队都十分的振奋。接下来他们还会持续改善模型,为用户供给更超卓的会话体会,也会充分利用这个设备端机器学习渠道,带来全新的运用,相似此前Google推出根据人工智能运用Allo 的APP,让交流愈加简略,作业效率更高。

Smart Reply菜单 Google要逆天!Google Wear 2.0 最新离线AI技能解析  人工智能 AI技术 第6张

因而,Android Wear团队还供给了十分丰厚的API接口,为第三方运用Wear的设备接入并运用Smart Reply才能,比方,假如想要对您的告诉操作发动Smart Reply,需求履行以下操作:

  • 运用NotificationCompat.MessagingStyle
  • 对告诉操作调用setAllowGeneratedReplies(true)
  • 保证告诉操作具有RemoteInput(相应驻留)

以下示例为怎么运用智能回复呼应创立MessagingStyle告诉:

  1. //Createanintentforthereplyaction
  2. IntentreplyIntent=newIntent(this,ReplyActivity.class);
  3. PendingIntentreplyPendingIntent=
  4. PendingIntent.getActivity(this,0,replyIntent,
  5. PendingIntent.FLAG_UPDATE_CURRENT);
  6. //Createthereplyactionandaddtheremoteinput
  7. NotificationCompat.Actionaction=
  8. newNotificationCompat.Action.Builder(R.drawable.ic_reply_icon,
  9. getString(R.string.label),replyPendingIntent)
  10. .addRemoteInput(remoteInput)
  11. //1)allowgeneratedreplies
  12. .setAllowGeneratedReplies(true)
  13. .build();
  14. Notificationnoti=newNotificationCompat.Builder()
  15. .setContentTitle(messages.length+"newmessageswith"+sender.toString())
  16. .setContentText(subject)
  17. .setSmallIcon(R.drawable.new_message)
  18. .setLargeIcon(aBitmap)
  19. //2)setthestyletoMessagingStyle
  20. .setStyle(newNotificationCompat.MessagingStyle(resources.getString(R.string.reply_name))
  21. .addMessage(messages[0].getText(),messages[0].getTime(),messages[0].getSender())
  22. .addMessage(messages[1].getText(),messages[1].getTime(),messages[1].getSender()))
  23. //3)addanactionwithRemoteInput
  24. .extend(newWearableExtender().addAction(action)).build();

假如想要接入更多的扩展才能,需求进入>>

***,梁教师还跟作者表明,Google现在有好几个项目都有离线AI,例如Google翻译。但针对不同运用场景,详细的完结技能有所不同,例如Google翻译上的办法和Wear 2.0的Smart Reply用的就不是同一种技能。针对Smart Reply是否能够开源的问题,梁教师没有去谈论,不过他主张我们能够重视一下刚刚发布的TensorFlow 1.0版别[2],里边演示了在Android和ios上完结根据深度学习的图像辨认的才能,也有十分好的比如。

[1]:https://arxiv.org/pdf/1512.01752

[2]:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android

【51CTO原创稿件,协作站点转载请注明原文作者和出处为51CTO.com】

转载请说明出处
知优网 » Google要逆天!Google Wear 2.0 最新离线AI技能解析

发表评论

您需要后才能发表评论