作者简介:

胡一川,来也联合创始人 & CTO,前"今晚看啥"联合创始人,于清华大学硕士毕业,之后前往宾夕法尼亚大学并拿到电子与系统工程系博士学位。回国开始创业,作为联合创始人创立了影视推荐引擎"今晚看啥",并被百度收购。后加入百度任资深架构师。2015年合伙创立来也,专注于智能对话技术。

本文根据胡一川在神策 2017 数据驱动大会人工智能论坛演讲整理所得。主要分享了智能助理产品的发展,以及深度学习在智能助理中的应用。下面是本次分享的详细内容。

▌什么是智能助理

随着智能手机和移动互联网的普及,越来越多原来发生在线下的交互场景,逐渐从线下转移到线上。人们也开始习惯通过在线沟通的方式来获取各种服务,让秘书安排出差的机票和酒店、向英语老师咨询学习中的问题、找旅行达人制定旅游计划等等。今天,类似这样的场景逐渐从面对面或电话沟通转移到线上沟通。因为沟通从线下变为线上,大量的数据能够被沉淀下来,基于数据我们可以通过机器学习等方法来提升人工效率,甚至在某些场景下替代人,从而实现智能助理。

我们给智能助理的定义是:基于人工智能技术,通过理解语音或文本形式的自然语言来满足用户需求的软件应用或平台。

那么智能助理是不是就是智能客服呢?我们认为智能客服是智能助理的一种形态,但智能助理比智能客服有更深层次的意义和更广泛的应用。与智能客服不同,智能助理有以下 3 个特点:

1.更主动的双向交互:在客服场景下,通常是用户主动联系客服,客服被动响应。而在助理场景下,助理和用户的交互是双向的,助理可以主动联系用户,在适合的时候主动为用户提供合适的服务。

2.更长期的伙伴关系:在助理场景下,用户和助理的关系是长期,用户可以在长时间内通过同一个助理持续获得专属化的服务。相反,在客服场景下,用户和客服之间的关系往往是短暂的,双方的连接只在服务的那一刻建立,服务完成后即断开。

3.更丰富的价值场景:因为双向的沟通与长期的关系,助理能够为用户提供更丰富和更有价值的服务。这些服务不仅仅限于售后,还包括售前咨询,甚至一些专业化的服务也可以通过在线助理的方式来完成。

通过智能助理来获得信息、商品和服务将成为趋势。那么,这个趋势会首先发生在哪些行业中?我们通过两个维度来思考这个问题。第一个维度是在线交互需求度,即该行业中在线交互的需求强不强,场景多不多。第二个维度是领域知识专业度,即这个行业的领域知识是否比较复杂,用户的决策过程是否需要借助外部知识。只有当这两个维度都比较强的时候,以自然语言对话为主要交互方式的助理产品才能给用户带来比较高的价值。

在线秘书是一个非常典型的例子。今天,如果我有一个秘书,大部分时候我不需要和秘书见面,通过在线沟通的方式就可以把我想让他做的事情交代清楚了。再比如说,母婴、教育、旅游等行业都是非常典型的在线交互需求度较强和领域知识专业度较高的领域,适合智能助理的落地。可以预见,随着越来越多线下交互场景迁移到线上,智能助理会在更多的行业中成为一种主流的产品形态。

▌基于深度学习的自然语言处理框架

在线交互的场景会产生大量自然语言对话数据,基于这些数据我们可以训练机器学习模型,让机器具备一定自然语言处理和理解的能力,从而打造智能助理。自然语言处理在智能助理产品的各个环节中都有应用,从分词、词性标注,到意图识别、实体抽取,再到问答、对话等。过去两年,学术界和工业界开始将深度学习应用在自然语言处理任务上,取得了很多不错的进展。在某些特定任务下,基于深度学习的方法明显优于基于传统机器学习模型的方法。因此,本节我们主要介绍深度学习技术在智能助理中的应用。

上面提到自然语言处理中有很多种不同的任务,但从机器学习模型的角度来说这些任务都有相同之处:模型的输入都是自然语言文本,输出都是某些预测结果,只不过在不同任务下模型需要预测的东西不一样。比如,在意图识别中,模型需要预测的是一段文本表达的用户意图;在实体抽取中,模型需要预测的是一段文本中的每个字或词所对应的实体;在问答或对话中,模型需要预测的是用户的问题和机器的回答的匹配度。虽然预测的内容不同,基于深度学习的自然语言处理框架可以总结为以下 4 步:

1.Embed。这一步所做的事情是将待处理文本中词或字用分布式向量的方式表示,作为下面步骤的输入。这些向量又称为词向量或字向量,可以事先训练得到,也可以先初始化成随机向量,然后在训练当前任务的过程中调整。当然,这一步中也可以将其他对实现当前任务有价值的信息作为输入,如用户行为等。

2.Encode。当我们把一句话用词向量表示后,这些词向量并不能表示这句话的语义,因为一句话的意思并不等于其包含的词的意思的简单组合。因此,Encode 这一步所做的主要工作是对整段文本进行编码,编码的过程考虑到每个词和它上下文之间的关系。 我们通常使用卷积神经网络(CNN)或者循环神经网络(RNN)对文本进行编码,这样可以充分利用词与词之间的关系。编码的输出是一个新的向量或矩阵,能更好地表征整段文本。

3.Attend。这个步骤又称为注意力机制(Attention Mechanism), 其主要思想是通过训练让模型关注在文本中能够解决当前任务的最重要的部分。用通俗的话来说,注意力机制就是给文本“划重点”,从而提升模型预测的效果。

4.Predict。这一步目标非常清晰,即将上一步中的输出通过一个网络完成当前的预测任务,通常使用到的网络模型是全连接的前馈神经网络。根据预测任务的不同,预测结果可以是一个标签的概率,一个实数值或者一个向量等。

下面我们来看一下,基于上述框架使用深度学习能够应用在智能助理的哪些场景中,解决哪些具体问题。

▌深度学习的应用:意图识别

第一个场景是意图识别。意图识别的作用是根据自然语言判断用户的意图。例如,在助理来也的场景里,当用户通过自然语言发起一个需求时,用户的意图是问天气、订机票还是其他,是意图识别模型需要解决的问题。上面介绍的框架能够非常好的应用在解决意图识别问题上。

首先,意图识别模型的底层是一个双向的 LSTM 网络,即一种特殊的循环神经网络,该网络的输入是经过向量化表示(Embed)的用户消息,该网络的作用是对用户的消息进行编码(Encode),输出是若干个隐向量。编码后的结果经过一个注意力层(Attend),使模型学习到不同词对应的隐向量对于预测结果的权重。最终,经过注意力层加权后的隐向量经过 Softmax 层来预测(Predict)用户消息对应意图的概率。

和基于传统机器学习模型的方法相比,该方案最大的优点是完全靠数据驱动,无需人工进行特征工程,能最大化的利用数据本身蕴含的信息来进行意图预测。同时,基于深度学习的方法效果也明显优于传统的方法。

在助理来也的产品中,我们在 20 多类的意图识别问题上对不同的方法进行了对比。最初,在缺乏数据的情况下,我们使用传统基于规则的方法,准确率只有 70% 左右。随着数据的积累,我们切换到基于传统机器学习的方法,准确率迅速提升到 90%。但是,当传统机器学习模型准确率到达 90% 之后,我们发现很难进一步提升,因为传统的方法依赖于特征提取,怎么选择和构造特征直接决定了模型的效果。随着特征数的增加,构造新的特征变得更难,而增加新的特征对模型效果的影响也越小。

为了解决这些问题,我们切换到基于深度学习的模型上,不依赖特征提取,完全靠数据驱动,效果明显比传统方法好,准确率达到 96% 以上。当然,在实际使用过程中还会遇到很多其他的挑战,比如用户的意图不仅仅和当前用户消息有关,可能和用户的历史消息甚至历史行为有关。基于此,我们可以在模型中引入更多的输入,如历史消息、历史行为等,来进一步提升意图识别的准确率。

▌深度学习的应用:知识挖掘

接下来介绍深度学习在知识挖掘上的应用。在智能助理的场景中,用户会问各种各样和该领域相关的问题,每个问题都有特定的答案,我们把这些问题和答案称为领域知识。要让智能助理具备自动问答的能力,首先需要把这些知识从非结构化的对话语料中挖掘出来,作为自动问答模型的训练数据。具体而言,知识挖掘的目标是从自然语言对话语料中将用户问题挖掘出来,并将相同语义的问题归到同一个知识点下。下面是母婴助理场景中两个例子。

表达方式不同,但属于同一个知识点:

  • 刚出生 1 个多月的小孩能晒太阳吗?

  • 新生儿是不是要满月才可以晒太阳?

表达方式接近,但属于不同的知识点:

  • 新生儿晒太阳,每次多久比较合适?

  • 新生儿晒太阳,多大开始比较合适?

在上面的两个例子中,知识挖掘需要将第一个例子中的两句话归为同一个知识点(宝宝多大可以晒太阳),而将第二个例子中的两句话归为不同的知识点(宝宝每次晒太阳时间 vs 宝宝多大可以晒太阳)。因此,知识挖掘的主要难点是对文本进行语义表示,然后进行聚类。

传统的知识挖掘方法使用基于词向量的无监督聚类。具体的做法是,对于任意两句文本,使用它们包含的词和词向量来计算文本间的距离,再基于文本间的距离来实现无监督的聚类。这种方法有两个比较明显的缺陷:1)基于词向量来计算文本间的距离,不能很好的反映文本的语义相似度;2)使用无监督的聚类,很难确定类的数目,导致结果聚类结果不可控。

针对这两个问题,我们采用基于深度学习的方法,在词向量的基础上训练句向量,将无监督的方法和有监督的方法结合起来。

具体而言,我们首先通过传统的方法挖掘出一部分知识点,人工审核后进入知识库,我们称之为种子知识库。在种子知识库的基础上,我们能够构造训练数据:同一知识点下的问题对作为正样本,不同知识点下的问题对作为负样本。基于上述训练数据,我们能训练出一个针对问题对的语义匹配的模型。这个模型和上面提到的框架完全一致,也包括 Embed、Encode、Attend、Predict 这 4 个步骤。模型训练好之后,我们将其中的编码器(Encoder)单独拿出来使用,对语料中的其他问题进行编码,编码结果可以认为是句向量,能够表征句子的语义。基于句向量,我们再做基于聚类,效果和效率比基于词向量的方法都会有很大的提升。

▌深度学习的应用:自动问答

最后再来看一看深度学习在自动问答中的应用。自动问答模型的主要目标是针对一个用户的问题,返回知识库中最适合回答该问题的知识点。传统的自动问答使用基于检索的方法,将用户问题作为输入去检索知识库,并返回相关性最高的若干个结果。基于检索的方法存在两个问题:1)检索是基于关键词的,检索相关性不能代表语义相关性;2)实际场景中的问答通常和上下文有关,在这种情况下仅基于单句用户消息的检索无法返回合适的结果。针对这个问题,我们采用基于上下文检索加深度学习匹配排序的方法。下面详细介绍。

首先,我们从用户当前消息和上文中抽取关键词,去知识库或历史语料中进行检索,返回若干个候选回复。因为检索关键词不仅来自于当前用户消息,也来自当前对话的上文,检索结果会既包含和当前消息相关的回复,也包含和上文历史消息相关的回复。

接下来,这些候选回复逐一输入到一个基于深度学习的文本匹配模型中,模型返回每个候选回复和当前对话上文的语义匹配度。

最后,根据匹配模型返回的分数,系统返回分数最高的若干个候选回复。深度匹配模型使用 CNN 对一个候选回复与当前用户消息以及历史消息序列进行匹配,最终计算出候选回复和整个对话上文的匹配分数。模型的训练数据来自于历史语料,将历史对话切割成若干个“上文”和“真实回复”的配对作为正样本,将“上文”和“随机回复”配对作为负样本。

基于此,该匹配模型能够充分利用历史数据,同时考虑到上下文关系,实现候选回复和上文历史消息的匹配。这个模型也完全符合我们前面介绍到的框架:候选回复和若干条上文消息的匹配可以看作是 Encode 步骤,而若干个匹配后的向量进行池化等操作可以认为是 Attend步骤,最终输出语义匹配度则是 Predict 步骤。

▌智能助理在行业中的落地

前面提到,不同行业的在线交互需求度和领域知识专业度都有所不同,靠数据驱动的智能助理产品更适合在不同行业中以行业助理的形态落地,而不是以通用助理的形态落地。当我们聚焦行业后,能够积累足够多的领域对话数据,打造更加智能、用户体验更好的智能助理产品。

基于这个思路,我们首先针对在线秘书行业打造了一款助理产品“助理来也”。用户可以通过自然语言的方式获取 20 多项和工作、生活相关的服务,包括日程提醒、打车、咖啡、跑腿等等。目前,“助理来也”是微信平台上深受欢迎的助理产品,为超过 300 万用户提供一站式的在线助理服务。在这个过程中,我们积累了大量的交互数据,将深度学习技术成功的应用在意图识别、实体抽取、问答、对话等各环节中,提升模型的效果和产品的体验。除此之外,我们也通过“吾来”输出语义、问答、对话等技术,帮助各领域企业客户打造行业助理。目前已经在母婴、商旅、汽车等行业的标杆企业实现商业化落地。

▌结束语

最后我们进行总结。首先,随着移动互联网的普及和物联网时代的来临,基于自然交互的智能助理产品将逐渐成为主流。不同于智能客服,智能助理更加强调双向的沟通,长期的关系和个性化的服务。在这个场景下,基于数据驱动我们可以使用深度学习等技术提升语义理解、问答、对话等模型的效果。


参考文献:

1,Honnibal M. Embed, Encode, Attend, Predict: The NewDeep Learning Formula for State-of-the-art NLP Models. Available at https://explsion.ai/blog/deep-learning-formula-nlp, 2017.

2,Conneau A, Kiela D, Schwenk H, et al.Supervised Learning of Universal Sentence Representations from Natural LanguageInference Data. In Proc. EMNLP, 2017.

3,Wu Y, Wu W, Xing C, et al. SequentialMatching Network: A New Architecture for Multi-turn Response Selection inRetrieval-Based Chatbots. In Proc. ACL, 2017.

相关阅读:

百果园付凌峰:线上单月 1.2 亿背后的数据化运营

短融网杨夏耘:数据如何驱动金融科技业务升级?

“大数据星火联盟”成立背后有哪些深意?

聚焦 AI + 大数据全球视野引领行业创新升级

点击下图或“阅读原文”,下载产品经理必备白皮书

助理来也胡一川:用数据驱动打造智能行业助理(技术+业务)相关推荐

  1. 如何打造智能按摩椅?代码如何实现?

    打造智能按摩椅需要考虑多个方面,包括机械结构.电子电路和软件控制等.以下是一个基本的实现方案: 1. 机械结构:设计按摩椅的机械结构,包括座椅.扶手.腿部支撑等部分.座椅需要能够调节高度和角度,扶手需 ...

  2. 西元发布智能管理系统工程技术实训室解决方案

    2012年2月,西元团队经过两年的研发和试用,精心打造的西元智能管理系统工程技术实训室解决方案正式发布,全线产品上市销售. 一.西元实训室填补了国内智能管理系统工程技术实训的空白,适合培养技能型专业人 ...

  3. “数据驱动、智能引领”,打造未来智能小镇“样板间”

    云栖号案例库:[点击查看更多上云案例] 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 云栖小镇位于浙江杭州西湖区南部,属杭州之江国家旅游度假区核心区块,是浙江省 ...

  4. 如何打造“智能助理”?阿里对话开发平台这样做

    简介: 一个合格的智能助理能够帮你预约开会时间,处理日常办公需求,还能打电话提醒你要还信用卡了,作为用户或者消费者,我们已经越来越习惯对话机器人提供的各色服务.但对于企业来讲,搭建提供这些服务的对话机 ...

  5. 中原银行签约神策数据 数据驱动构建智能服务体系

    近日,经充分选型评估,中原银行签约神策数据,致力构建数据驱动的智能客户服务与产品运营体系. 中原银行自成立以来即将数据作为全行核心战略资产,神策数据将支持中原银行数据驱动产品优化与科学决策,追求全渠道 ...

  6. 支撑1300+矿井监控,华为云数据库助力打造智能矿山

    摘要:华为云&精英数智,用数据驱动服务,让煤矿开采更安全.今天,我们守护了1300+矿井安全生产. 本文分享自华为云社区<监控不掉线,安全看得见,华为云数据库让煤矿生产更安全>,作 ...

  7. 小米新生态总监董红光:致力打造智能服务开放平台

    2019年11月19日,由小米主办的MIDC 2019智能新时代小米开发者大会在北京国贸大酒店隆重举行.大会邀请了全国各地的物联网领域顶级专家学者.产业领袖人物以及IOT开发者,现场分享全球范围内人工 ...

  8. 【观察】打造智能决策“新引擎”,杉数科技勇闯“无人区”

    申耀的科技观察 读懂科技,赢取未来! 毫无疑问,在中国科技的产业发展中,底层基础软件一直是一大"短板",特别在求解器软件领域,不仅技术门槛较高.相关人才也极为稀少,同时全球求解器市 ...

  9. 让未来更近,三星The New Bixby与IoT打造智能物联

    2017年,三星首次推出Bixby,为广大消费者带来了全新的人工智能多模交互体验,实现了从点触到语音操控的交互方式转变,也收到了来自众多消费者的如潮好评. 2018年,三星Galaxy Note9如约 ...

最新文章

  1. 【MySQL】MySQL5.6新特性之Index Condition Pushdown
  2. windows下编译zlib
  3. MyBatis Plus Generator——MyBatis Plus代码生成器DEMO
  4. android学习之旅-学习计划
  5. 惯量匹配和最佳传动比
  6. Flask从入门到做出一个博客的大型教程
  7. python自动化工具哪个好用_微软最强 Python 自动化工具开源了!不用写一行代码!...
  8. 百度google关键字优化的小技巧
  9. ztree实现节点事件
  10. python 基础语法梳理
  11. 无线通信设备安装工程概预算编制_起重设备安装资质承接多大工程
  12. IntelliJ IDEA教程()ideaIU-快速创建测试用例
  13. 佳佳数据恢复软件免费版
  14. 杨过最后达到了独孤求败的什么境界, 其实金庸在书中已说明
  15. laravel 清除缓存
  16. 第1140期AI100_机器学习日报(2017-11-01)
  17. Windows XP 注册表修改大全
  18. [Solved] Pycharm 提示Unresolved reference
  19. UBLOX板卡基础设置--F9P板卡配置(基准站和流动站)
  20. 初学python制作二维码以及最新感悟

热门文章

  1. kafka linux客户端,kafka linux 客户端操作命令
  2. tomcat mysql eclipse_eclipse与tomcat及javaweb和mysql相关内容
  3. qt 4.8.4 linux,Tslib和Qt 4.8.4与在开发板上的移植
  4. html标签体,HTMLCSS基础-html标签的实体
  5. php 替换某一行,PHP中如何替换换行符?
  6. gunicorn多进程不死_WEB,gunicorn - 无论是多进程、多线程、协程模式,同一个浏览器窗口多个标签页访问同一个url,看上去不会并发的问题...
  7. 二叉排序树的中序遍历规律_看懂这篇文章,玩转二叉查找树
  8. qtcreator摄像头显示时间_屏下摄像头手机量产了,然后呢?
  9. vim ctrlp找到文件后,如何在新窗口或者新标签中打开
  10. stm32控制舵机任意角度_如何对舵机建模仿真?