10 年前,苹果发布其智能语音助手 Siri,开启了人机交互新时代。
此后十年,巨头纷纷入场,诞生了 Google Assistant、亚马逊 Alexa、百度度秘、天猫精灵、小爱同学、OPPO 小布助手和 vivo Jovi 等智能助手,整个行业变得热闹起来。与此同时,人工智能技术的大阔步前进,驱使着智能助手不断进化,从“智障”迈向智能。
纵观整个智能助手市场,OPPO 小布助手有点“不一样”:它出现比较晚,但发展迅猛,成绩突出。
OPPO 小布助手 2019 年诞生,到 2021 年底,它已经累计搭载 2.5 亿设备,月活用户数突破 1.3 亿,月交互次数达 20 亿,成为国内首个月活用户数破亿的手机语音助手。出色的成绩也让 OPPO 小布助手一跃成为国内新一代智能助手的代表。
智能助手的关键是对话交互,而对话交互的核心能力之一是算法。算法决定了智能助手能达到的智能化水平,具有极高的技术挑战与价值。作为新一代智能助手代表,OPPO 小布助手的 AI 算法有何特点?过去三年,其 AI 算法如何演进?...... 为弄清上述问题,InfoQ 记者采访了 OPPO 小布助手首席研究员杨振宇博士。
OPPO 小布助手首席研究员杨振宇博士
2018 年,杨振宇加入 OPPO,主导小布助手 NLP 与对话算法系统建设。此前,他曾在华东师大、国防科大担任讲师。
在他看来,AI 算法领域,学术界和工业界的侧重点存在差异。学术界关注的是“你是针对新问题给出了一种很好的解决方案,还是针对老问题提供了一种有突破性的新解法”,面向的问题一般都是高度抽象化的、具有代表意义的。而工业界面对的问题则更实际些,它存在很多约束条件和资源限制,关注的是“你能不能综合所有受限资源提供可带来显著收益的解决方案”。
随着 AI 基础设施的逐渐成熟,学术界和工业界的差异在缩小,前沿算法应用落地的节奏在加速。以超大模型为例,这个领域,工业界反而走得比较靠前。
“有工业界积累的数据后,你就可以快速地进行验证,不像以前,一篇论文可能要在理论阶段停留数年,甚至十年或二十年,才能有机会等到其基础设施成熟,从而进行工业验证,再大规模应用”。
杨振宇对 InfoQ 表示,“现在,AI 基础设施已经非常完善,这为大规模应用带来了土壤,提供了很大便利性。另外,工业界也有一些诉求,因为竞争越来越激烈,大家希望可以更激进地引入一些新技术,带来一些差异化的竞争力”。
相比学术界,工业界在 AI 算法领域积累了与实际场景吻合的大量数据,面向真实案例的研究会更便利,而且在算力方面一般也能得到更好地支持。
工业界在 AI 算法领域的优势和便利吸引杨振宇投身企业。他入职 OPPO 后,带领团队主导小布助手 NLP 与对话算法能力的建设。作为对话式 AI 产品,小布助手的交互流程与行业主流产品一致,由唤醒、语音识别、语义理解、对话管理、对话生成,以及语音播报多个环节组成。
整个流程中,核心在于“用户可以方便地唤醒小布助手,小布助手不仅能听得清用户的话,而且还能听懂用户的诉求并给出令人满意的响应”。其中,每个环节对 AI 算法的依赖都比较强,算法的效果直接影响用户的体验。
2019 年 4 月,杨振宇所在团队快速构建并上线了小布助手第一个版本。当时的首要目标是尽快构建一个可面向用户的产品,再通过用户的实际使用促进产品的快速迭代。那么,如何快速构建一款智能助手产品?他们以快速组装为主,引入很多外部 AI 技术。但是,问题随之而来,由于很多环节都单独引入一些技术,导致各个环节相对割裂,相互之间的适配效果也不是很理想,从端到端看,效果的折损比较大。
其次,小布助手的第一个版本技能覆盖面也比较窄,主要是用户的高频、刚需的技能,比如对设备的一些基础操作控制。杨振宇表示,“更多的垂直域和开放域的技能,要么没来得及建设,要么建设了没精细打磨,体验不佳”。
他说:“在语义理解和对话交互上,当时我们做得很浅,也有很多不完善的地方。比如,针对一些问题的回答,会经常跳到浏览器,通过传统搜索的方式,把结果展示给用户。这会让用户觉得智能助手的体验比较割裂。”
那时,在对话交互上,他们使用了一些比较简单的算法。由于这些算法的效果天花板比较低,虽然能简单高效地解决一些问题,但是如果想获得更好的效果,它们明显会存在一些局限性,比如即使补充更多的数据,它们也会存在拟合能力不足等问题。另外,它们还表现出泛化能力比较脆弱的一些缺陷,“纯粹从量化评测指标看,它们能做到 90 分,甚至超过 90 分。但是,拿到实际场景中试验,面对大量用户的口语化表达时,效果就不是很好。因为实际场景要复杂得多,比如用户各种非标准的表达方式、环境噪声带来的输入干扰等”。
第一个版本出来后,团队继续优化 AI 算法,不断迭代小布助手。据杨振宇介绍,小布助手 AI 算法的发展大致可从广度和深度两个维度看。
广度上,从指令型的操控类技能,拓展到到垂域资源型的技能(如音乐、影视等),以及开放域的技能。具体说来,指令型技能相对简单,因为用户输入往往已经包含足够的信息,智能助手可以判断出用户想干什么,比如打电话还是发短信,或者打开某个功能设置等。针对指令型技能,他表示,“使用教科书上的一些算法基本就能搞定,效果还不错”。
垂域资源型技能相对复杂些。既要基于用户输入的信息,也要结合一些领域知识,智能助手才能做出准确的判断,比如结合知识会发现“原子弹”原来还是一首歌。因此,智能助手只有具备领域知识,才能做出更准确的判断。
当然,最复杂的还是开放域。以知识问答为例,杨振宇他们正在持续建设中,但眼下还没有一个非常完美的解决方案,这也是行业存在的普遍问题。因为用户的问题五花八门,涉及各种各样不同的学科和领域,仅用单一算法很难解决所有问题,因此要融合多种技术手段。杨振宇解释,有些属于结构化问题,要基于知识图谱才能回答,比如询问姚明的身高、刘德华的年龄等;另一些问题要依赖大量问答库的积累,然后基于问答库做检索匹配等。此外,开放域聊天也存在很大的技术挑战,不仅要聊得相关,还要贴心、有趣,甚至有情感。
深度上,小布助手 NLP 与对话算法经历了从规则引擎、简单模型到强深度学习,再到预训练模型几个阶段。早期以规则引擎为主,优势是简单可控,缺点是天花板比较低。后来,过渡到强深度学习的方案,“以 CNN、RNN、Transformer 为代表的深度学习算法,我们都有实践、评测和落地的方案,效果提升了一个大台阶”。
现在,预训练模型备受他们关注。随着预训练模型在工业界应用的突破,杨振宇他们做了一些技术升级,在很多方向取得不错突破,比如面对特别复杂的百科,基于预训练模型做问题识别,取得一些非常显著的收益。
在小布助手不断演进过程中,杨振宇也坦承,他们遇到过不少挑战。对话系统并非单纯的算法问题,更多是系统架构的挑战。因为对话系统是一个系统工程。比如海量用户有多样化的复杂需求,针对这些需求如何高效迭代。这是一个很大的挑战。为解决这个问题,杨振宇他们采用分治和抽象统一的解决方案,针对不同设备、不同场景的数百项技能,按业务特点进行解耦,形成系统服务、泛娱乐、生活服务、知识问答、开放聊天等多个子业务,每一个子业务可以相对独立建设,高效迭代。
其次,他们早期采用一些定制方案来进行技能建设。但随着技能的增多和长尾技能的增加,这对研发人员的消耗很大,因此,他们后来引入平台化解决方案,构建了小布自己的技能平台和开放平台,让非技术人员、外部合作伙伴也能参与技能建设,降低研发门槛和成本。
具体到一些技术问题,比如语义理解,挑战在于目前算法还不能完美理解用户口语化的表达,总会遇到一些 badcase,“一旦出现 badcase ,用户可能就会质疑智能助手的智商,进而失去兴趣不太愿意再去使用”。得益于深度学习的发展,近几年业界出现了一些相对成熟的方案,不过深度学习方案也同样并非完美。因此,综合考量下,他们以深度学习的方案为主,保障基本面,再辅助一些传统的规则与策略来解决边角问题,最终让语义理解的效果整体相对较好、可控。而开放域问题则更复杂,因为这个领域特别广,“像聊天,用户可能希望助手可以给他解闷,有时也希望你能安慰他,甚至陪他玩点游戏,这就比较难处理。针对这些问题,我们针对性的通过检索式与生成式相结合的方式,提升话题覆盖的多样性。另外为提升智能性,我们也构建了记忆机制,让小布能记住曾经和用户交互过的内容,并影响后续的交互”。
过去几年,智能助手的发展有两大趋势:一是从单轮对话到多轮对话,二是从单模态到多模态。这两大趋势,标志着智能助手的巨大进步,并对 AI 算法有着完全不同的要求。
从单轮对话到多轮对话,意味着人机交互向前迈出一大步,但是复杂度也大大提升。在单轮对话中,每一轮对话拿到的信息比较完整,无论是识别用户意图,还是提取 Query 中的关键信息,比如人名、地名、歌名等,都能从源数据中获得。多轮对话则有所不同,这种对话方式中,用户不可避免地会对前面的对话进行省略、指代,此时理解用户当前这句话,要结合历史交互的信息,这时处理起来就相对比较复杂。
另外,在对话管理上,多轮对话也带来很大挑战。杨振宇指出,单轮对话一般不涉及特别复杂的策略,可能会有技能间的跳转,但也不会特别复杂。但是,多轮对话,要根据用户交互过程来处理这个流程,让它显得更自然、更流畅,难度很高。
此外,在多轮对话场景中,经常遇到用户不按套路出牌的情况。此时,如何应对变得非常重要,需要有一些灵活的过渡方案。
在多模态方向,复杂性同样是个巨大挑战。在输入上,单模是基于语音来理解用户诉求,一般流程是把语音转换成文本,再理解文本,从字面上分析用户意图。
升级多模态后,其信息量明显增大,既有语音,也有用户表情、肢体语言等,输入信息大大丰富。杨振宇指出,理论上,智能助手对用户意图的理解应该更准确。输出方面也类似,既可以用声音呈现,也可以用视觉形象展现。
这样,输入输出都会变得更复杂。一方面,其算法模型本身的容量要更大,以支撑更强的建模拟合能力需求,另外也需要更综合和更大量的优质数据支撑。不像单模态,通过少量数据样本就能获得相对可控的基于文本理解的信号。
现在,多模态对数据的要求也更高。并且,模型复杂度提升后,它在算力上的要求也会更高。甚至,它对端侧算力的要求也更高,比如多模态下,每个用户与智能助手交互时,可能会处在不同的阶段,很难低成本地做到全部通过云端渲染再推到端上,无论是交互的及时性,还是对网络流量带宽的要求,都不太现实。有些渲染的实现可能还依赖端侧算力的支撑,“对应的,也需要我们一些算法模型要有端侧适配的能力”。
通过三年的研究与沉淀,小布助手在对话交互的 AI 算法方面形成自己的创新。
据杨振宇介绍,小布助手起步相对较晚。与行业里的老大哥相比,典型的区别是“早期智能助手可以看成是搜索技术的延续和积累,其技术架构多少有搜索技术的影子。这时,它不可避免地会受到历史包袱的影响。而小布助手不同,在开始投入时,深度学习技术已经相对比较成熟,使得他们有机会来构建强深度学习驱动的对话系统。它不仅没有之前的历史包袱,而且其效果的天花板理论上更高。”
没有历史的包袱,让小布助手在 AI 算法上可以快速前进,采用成熟技术,试点前沿技术,这样迭代更快,效果更好。
此外,他们考虑到对话系统的一个典型特征是较难获得用户的反馈。
他说:“智能助手与用户交互,无论用户满意还是不满意,他一般都是用完即走,不会给你直接的反馈。它不像搜索推荐,通过点击、时长等行为数据获得直接反馈,再促进算法模型改进。为了应对这个问题,我们构建了一个自学习系统,通过它获得信号,促进算法更高速、更有效的迭代,让智能助手的效果越来越好。”
那么,小布助手的能力在行业处于何种水平?2020 年 12 月,小布助手的语义理解模型在行业最权威的中文语言理解测评基准(CLUE)总排行榜上位列前五,该语义由分类、文本相似度、阅读理解、上下文推理等多类共 10 个子任务组成。小布助手在文本相似度、上下文推理、成语阅读理解三个子任务上获得最高分,进入行业第一梯队。
三年,从 0 开始,水平做到行业前列,实属不易。针对这个成绩,杨振宇觉得“并不算特别突出”,参与这个排行榜主要是“想验证我们的技术水平和行业的差距怎么样”。他认为,应该保持持续快速的学习和进步。
据他透露,过去一年多,他们做了几件事,让小布助手效果得到较大提升。一是利用小布助手积累的海量用户数据,获得口语化的语言数据,促进算法模型对智能助手场景的语言有更好的理解。其次,团队保持着开放的成长型的心态,及时跟进学术界和工业界的最新进展,并加以实践,“结合我们自己的业务场景做适配和改进”。此外,小布助手与外部组织机构建立了广泛连接,比如清华大学、北京智源人工智能研究院等,让团队有更多的外部输入。最后,坚定地在最新预训练模型方向进行投入,完成了基础语料数据和算法的积累,并在实际场景中探索落地应用。
在采访中,杨振宇也谈到 OPPO 对用户隐私的敬畏。他说:“对 OPPO 来说,我们的要求非常高,一方面用户隐私安全是一个优先级非常高的红线,另一方面也是团队发自内心的对用户隐私的尊重。”具体而言,小布助手会从几个方面保护用户隐私安全。
第一,明显详细的用户隐私安全告知,只有用户确认后,才能使用智能助手与用户交互过程中产生的数据。
第二,对云端存储的数据进行严格脱敏。比如无法长期存储用户的语音数据,虽然这可能会给算法优化升级带来困难。实际工作中,他们会利用如数据增强的方式,用假数据拟合真实数据保证算法模型训练时不太受影响。
第三,针对必须要用到用户数据的场景,他们会限定采用一些端侧方案,确保用户隐私数据不会被上传和泄漏。
提到未来,杨振宇认为高智能的助手一定要懂情感,其交互过程能融合情感。通过情感,可以产生更好的信任度,让用户和助手间的黏性更高,让交互从低阶走向高阶。在这方面,他认为小布助手还需继续努力。
“从用户的行为和表达中分析其情感倾向,在交互中附加一些情感等,这些工作虽已落地,但远未达到水乳交融的状态。我们希望未来在情感方面做得更系统化、更有表现力”。
其次,在记忆方面有更深的建设与探索。在他看来,记忆是非常重要的一个体现人性化的智能维度,“虽然我们有一些探索,但还有很大的发挥空间。希望通过记忆技能,让用户与助手交互时有亲切感。它是专门为我服务,了解我的喜好和习惯,对用户有‘润物细无声’的影响”。
此外,在多模态方向,他们也会持续探索,通过更拟人化的形象,让助手与用户间的交互更有趣,更有表现力。同时提供一些个性化能力,让用户可以构建自己喜欢的智能助手形象。
领取专属 10元无门槛券
私享最新 技术干货