当前位置: 首页 > news >正文

为什么Siri总是像个智障?智能助手背后的技术到底有多难?

导读:本文带你简单了解一下智能助手背后的会话式人工智能技术。

作者:木羊同学

来源:大数据DT(ID:hzdashuju)

01 大话智能助理

智能助理应该是当前人工智能技术最为成功的落地方向之一。我还记得,当初iPhone4S率先推出著名的人工智能助理Siri,马上就有不少评论家预测,Siri也将像iPhone一样,为人类开创一个全新的时代,而调戏Siri也成了当时最流行的游戏之一。当时我们在看视频演示的时候,心中都对Siri充满的期待。

我们一直说,智能手机智能手机,但以前总感觉所谓智能手机,也就是传统的手机+迷你版的电脑,“智能”体现在什么地方呢?现在有了Siri,手机真的能像个老友一样和你聊天打屁,感觉要名副其实得多了。

我们都听过智能助理,可是你是否认真想过一个问题:智能助理对于用户,到底意味着什么?也许不同人能给出很多不同的看法,不过,业界最常见的答案是,提供了全新的交互界面。

我们说Windows是桌面霸主,它的成功,就成功在提供了在当时来说相当友好的交互界面,相比黑乎乎的命令输入,Windows的桌面简单、直观,一下降低了PC的使用门槛。

而智能助理则是在这个已经不太高的门槛上再打一个“骨折”,几乎不需要额外的学习曲线,不用学习使用键盘鼠标,也不用熟悉系统界面,只需要用对话这种最自然的交互方式就能操控机器。相信在今年疫情期间,很多人说话最对的对象,就是家里各式各样的智能助理,譬如智能音箱。

02 新的交互界面

采用对话作为交互方式有很多优点,我觉得有两样最为重要。一样就是自然,人类从一出生就开始学习的技术也就两样,除了蹒跚学步,就只有牙牙学语,说话应该是我们日常中最常见也是最习惯的交互方式。

另一样是便捷,回想一下,手机也好、电脑也好,虽然给我们带来了种种便利,但也禁锢了我们最为重要的双手,而现在回归了用说话的方式操控机器,双手就被解放出来可能干别的事情。

正因为这两样有点,现在智能助理的应用场景很多,所以产品也很多,智能手机、智能音箱,甚至不少汽车也将智能助理作为重要卖点,现在我家电梯里经常播的一个汽车广告就是这样,里面的车载智能助理细心得就像亲妈一样,车主一回到车里就各种嘘寒问暖,就差非要加上一条秋裤。

不过,从今天往回看,智能助理的优势很大,推出自然是理所当然,但是,智能助理背后运用了一整套互相配合的智能技术,发展也是一波三折充满坎坷。

就拿Siri来说吧,别看今天Siri好像是一位高冷的知识女性,在它波折的成长路途中,说伤痕累累都是轻的,感觉好几次都差点在一片唾沫星子当中遭到灭顶之灾。

Siri的槽点很多,第一个就是语种。没错,虽然Siri可以算是iPhone 4S最大的卖点,很多人干脆就是冲着Siri去果断卖了肾。可是到手一看,发现自己吃了没文化的亏,人家Siri只听得懂英文,说完Hello以后,95%的用户都猛然发现自己像是头一次相亲一样,接下去就不知道该说什么好,词穷了。好不容易找到点句子吧,结果口音还必须纯正。

在大多数时候,Siri需要识别半天不说,最后返回结果经常是牛头不搭马嘴。语音识别时间长、识别结果不准在后来很长一段时间都是Siri的重要槽点,给人一种蠢笨难忍的感觉。哪怕后来iOS 6以后,Siri终于学会了中文,仍然距离那种与用户谈笑生风的形象相去甚远。

03 智能助理的耳朵和嘴巴

当时大家对智能助手还很新奇的时候,最想知道的问题之一,就是这个小葫芦里面究竟装了一副怎样的药,是不是真的把人缩小了然后塞进里面去。

我当时就十分好奇Siri的原理,究竟要做到以自然语言的形式,做到自然对话来控制机器,背后是怎样的一套机制在运行呢?但是查了好多资料,感觉大家也都还不甚清楚,只是模模糊糊说很高大上。

大家都容易高估不了解的东西的难度。其实,智能助理还真不太“复杂”,说起来,结构和我们熟悉的电脑还十分类似。

先说外设,智能助理要开口说话,同样需要一套输入输出设备,具体来说,我们不妨将智能助理的大脑当作电脑的CPU,CPU是需要得到数据输入,然后经过计算,在将结果输出,而所谓外设,就是能够能够将外部的语音转化为机器能懂的输入,以及将机器经过运算得到的结果转化成语音输出。

这是两项独立的任务,当然也都是采用人工智能技术来完成,分别为负责将语音转化为机器输入的自动语音识别技术(ASR),以及将结果转化为语音输出的语音生成技术(TTS)。这两项技术虽然听着复杂,背后的技术原理也确实足以写一本书,不过已经发展得较为成熟,人工智能方面有较为丰富的技术积累。

简单来说,ASR负责将声音转成文本,而TTS则负责将文本转成声音。具体就不介绍了,市面上已经有太多类似的技术,譬如微信就有声音转文本,这就是典型的ASR,而许多读书工具都有AI朗读功能,虽然吧效果一言难尽,从感情到灵魂一路都缺,不过用来理解ASR应该没有问题。

04 智能助理的大脑

最难也是最复杂的部分,就是实现智能语音助手的大脑,通常可以切分为三项独立的任务,分别为自然语言理解(NLU)、对话管理(DM)和自然语言生成(NLG)。这里出现了很多缩写,其实核心就是自然语言处理(NLP)。

自然语言处理,被誉为人工智能皇冠上的宝石,也是现在人工智能研究的重点方向,不断有模型推陈出新,很有一点一代版本一代神的意思。现在NLP的扛把子叫Bert,各大顶会只要和NLP沾边,都会现在肯定都会有一个占比颇重的环节,叫花式玩弄Bert。

说远了说回来。在智能助手的大脑中,NLU、DM和NLG就是NLP的两项重要任务。

NLU很好理解,人的语言和机器指令有个很大的不同点,就是前者属于非结构化数据,而后者属于结构化数据。非结构化数据机器是听不懂的,必须转化成结构化数据,机器才好理解和执行。那谁来扮演中介商呢?就是NLU。道理很好懂,但是实现很复杂,还有无数的坑在前面等着大家去填。

在智能助手中,NLU的角色是这样的,首先ASR将声音转成文本,当然,是非结构化文本,然后将这些文本输入给NLU,有NLU做一些阅读理解,把理解以后的意思按固定格式填写,也就是形成机器能懂得结构化文本,交给下游环节处理。

NLU的下游环节就是DM,对话管理,名字起得有点莫名其妙,其实就干两件事,一件事是状态追踪,解释起来很复杂,不过可以简单理解为根据上下文理解当前输入的意思,也就是做了个阅读理解。另一件事就是动作生成,你得根据人说话的意思作出回答。

那NLG是什么呢?和NLU正好反过来,是文本生成。上游不是通过DM作了阅读理解,输入了结构化文本吗?那根据这个输入,咱得通过动作生成思考一下该回答啥,一般的机器知道回答个Yes和No就了不起了,顶多再多给一点选项,不过光这样一点也不像自然对话,还得扩展扩展,也就是根据某个意思,“生成”一点文本内容,这就是NLG的工作。到了这一步,整条链子就串起来了。

现在这种智能助理应用已经非常多了,而还有一种类似但应用更广的技术,叫对话机器人技术,譬如双十一肯定能遇到的淘宝机器人客服,这种客服不需要听说能力,直接用文字对文字的形式进行沟通,相信看完了上文,大家应该也清楚对话机器人技术的基本原理。

不过,上面只是很浅显地介绍了会话式人工智能技术,还有很多细节的问题,譬如中文分词问题,需要在实际实践是加以解决。我推荐一本书,叫《会话式AI:自然语言处理与人机交互》,里面系统地介绍了会话式人工智能的相关内容,想要更深入了解该技术的同学可以仔细阅读。

关于作者:莫凡,网名木羊同学。娱乐向机器学习解说选手,《机器学习算法的数学解析与Python实现》作者,前沿技术发展观潮者,擅长高冷技术的“白菜化”解说,微信公众号“睡前机器学习”,个人知乎号“木羊”。

延伸阅读《会话式AI:自然语言处理与人机交互》

点击上图了解及购买

转载请联系微信:DoctorData

推荐语:腾讯、阿里、国家标准委&AIIA人工智能专家多年大型项目经验总结,详解NLP和人机交互核心技术,从技术、算法、实战3维度讲解聊天机器人原理、实现与工程实践。

更多精彩回顾

书讯 | 12月书讯 | 年末上新,好书不断

书单 | 机器人时代已来!推荐几本机器人学硬核好书

资讯 | DB-Engines 12月数据库排名:PostgreSQL有望获得「2020年度数据库」荣誉?

干货 | “九章”计算机助力我国首次实现“量子计算优越性”

收藏 | 你熟悉的新华书店,已经变样了 | 数字化案例

上新 | 全球首本 | 系统介绍深度学习计算机视觉方法

点击阅读全文购买

相关文章:

  • IT之火,下一个25年的技术更迭 | 华章2020年媒体交流会回顾
  • Web前端开发敲门砖 ——《Web前端工程师修炼之道》
  • 8个Python高效数据分析的技巧
  • 为什么“蜥蜴书”是机器学习入门必读书?
  • 互联网消费金融行业从业者的实战指南
  • 中台的本质及中台建设的4点思考
  • 复杂的密码学也可以人人可懂
  • Python循环语句代码逐行详解:while、for、break和continue
  • 基于Vite搭建Electron+Vue3的开发环境
  • 国产首款——飞桨PaddlePaddle深度学习框架介绍
  • “MySQL Analytics Engine”来了
  • 【第35期】数字化转型到底该怎么做?
  • 详解华为12种数据采集技术及应用实践
  • JavaScript 25 岁了!
  • 43种机器学习开源数据集(附地址/调用方法)
  • 深入了解以太坊
  • 2017 年终总结 —— 在路上
  • Angular 4.x 动态创建组件
  • JavaScript学习总结——原型
  • Kibana配置logstash,报表一体化
  • sessionStorage和localStorage
  • springMvc学习笔记(2)
  • 技术发展面试
  • 开发基于以太坊智能合约的DApp
  • 三分钟教你同步 Visual Studio Code 设置
  • 深度学习入门:10门免费线上课程推荐
  • 学习使用ExpressJS 4.0中的新Router
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 追踪解析 FutureTask 源码
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • Spring第一个helloWorld
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (安卓)跳转应用市场APP详情页的方式
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)EOS中账户、钱包和密钥的关系
  • (转)linux 命令大全
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .CSS-hover 的解释
  • .NET 反射的使用
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET开发者必备的11款免费工具
  • .NET委托:一个关于C#的睡前故事
  • @Autowired自动装配
  • @RunWith注解作用
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [AIGC] Redis基础命令集详细介绍
  • [Apio2012]dispatching 左偏树
  • [bzoj 3534][Sdoi2014] 重建
  • [C#]winform制作仪表盘好用的表盘控件和使用方法
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法