回顾·阿里神马智能对话问答
信息泛滥的互联网
手机发展到今天,上面的东西越来越多,不仅仅手机,以后我们还有物联网。以后我们的物品都是智能的,信息都是交互的,服务都是在线的。我们处在这么多物品,信息,服务之中,我们与他们的怎样的一种交互方式更加合适,更加自然,更加方便,这是做语音交互的重要的原因。不可否认,人类作为地球上最智能的生物,可能在一些方面还不如一些其他动物。但同时我们有更好的语言交互能力,这也是我们最高效的处理方式。必然会想到我们通过技术的手段处理一系列的问题,而这其中最难的其实是自然语言处理。
天猫精灵上通用的问答,技能,服务都是由神马搜索提供的。因为这需要全网的一个不同类别信息的支持,不同类别信息的一个服务。神马是做搜索引擎的,所以会有一些数据和技术的一些积累。开发的语智能助手是类似于度秘,Siri的语音助手,目前并没有去刻意推广,只是作为一个实验demo,后续的话我们会在UC上或者是阿里其他的一些产品上上线类似的一些功能。
对话问答系统
我们主要做的是一个对话的平台,它既要支持集团内部很多不同的业务,同时也会做自己的一些产品,所以我们的平台并非是一个简单的对话机器人。如果只是简单的对话机器人,一个人用大概一周的时间也能做出一个,但是这也需要一些知识和技术能力。另外我们知道音箱上,手机上对很多的问题的处理是不一样的。假如现在新拍了一个电视剧《琅琊榜》,在手机和电视上,你可能会是想看电视剧,而如果是在音箱上,你可能是想听一首里面的歌。对话需要考虑不同的场景,不同的人,以及不同领域内的知识,所以想做一个好的对话平台对技术的要求是比较高的。对话平台之下的核心其实是一套对话系统(SDS),对话系统的下面和通常的分类一样,有任务型的对话,比如今天天气怎么样?上海的天气怎么样?还有就是知识型的问答。其实人的对话并不像使用搜索引擎,人们在使用搜索引擎的时候大多是带着任务来的。而实际中我们每天说的这么多话当中只有极少的部分是问题,在日常中人们更多的是交流,而并非像审讯犯人那样。所以聊天对于对话平台也是很重要的,也是前面很多重要能力的一个联合技术。但是现在大多数的系统并没有一个很好的融合。包括现在主流的一些系统,在对话系统这里可能只是做了一个分类。这样做可能就会导致人在做一些穿插的任务的时候,在执行的时候会遇到一些困难。所以我们的对话系统是类似一个大脑的形式,下面会有一些具体的执行形式。
1、丰富的数据内容
做人工智能光有技术是不行的,还需要有大量的数据。在我们的平台上做人工智能还是有一些好处的。比如我们有大量的数据,因为我们有自己的搜索引擎,所以会有网上比较全的网页数据。在我们的搜索引擎上也有好几百个门类的不同行业领域的数据。我们也是很多重要厂商的流量入口,我们跟这些厂商都是很好的合作关系。还有就是我们有自己的知识图谱,我们知识图谱的建立已经有三年的时间了,在国内也是有着top2的水平;再就是我们有自己的用户画像,阿里的用户画像可能是国内最全面的用户画像了;还有大鱼号等等诸多合作的媒体资源;还有不可或缺的就是用户的日志,我们有着这么多的数据,同时我们也有一个强大的运营和生产数据的能力。也可以针对我们的智能所需生产各种各样的数据,这就是我们在这方面的优势。
2、对话系统SDS
关于对话系统,我们都知道里面最重要的三个部分就是NLU、DM、NLG。这是一个非常传统的架构,这个架构已经存在了几十年了。NLU 是指对话理解,NLG负责将概念转化为自然语言,DM相当于大脑,CM 是上下文的管理。
2.1 NLU
NLU 其实就是把一个非结构的自然语言转换为结构化的可执行的函数。如果是人来处理这个信息就很简单了,但是交给计算机去处理就会涉及各种编码、字符等问题。
首先我们是需要做一些预处理,这里大部分是在搜索引擎中完成的,然后进行一些口语化处理,过滤掉一些废话的信息。对于NLU来说其实就是识别问题的领域以及意图,这其实是一个分类的问题。再有就是识别它的参数,即识别它的slot。关键点是我们怎么能够把这些参数给对应上,目前有各种各样的方法,有神经网络的方法,也有非常复杂的方法。但考虑到它的一个性能效率等方面的原因,在业内大家其实还是使用的是模板。使用模板的好处:第一,准确率很高;第二,速度很快。但是光有模板不行,除了模板以外,还需要一些细化的东西,比如匹配,检索,模糊匹配等一些的处理。有的时候可能进行完这些处理之后仍然不行,这就需要一些更细化的模型,涉及机器学习的模型,
2.2模板模糊匹配
通过深度学习分类的方法,将这些模板进行优化
2.3联合模型
联合模型的意图就是既能识别它的槽位(slot)也能识别它的意图(intent)。为什么要用联合模型呢?先用一些简单的方法,如果仍然有比较模糊的需要进一步处理的,再使用联合模型。这其中既有softmax也有加了attention的CRF,RNN的效果会好一点。在实际的应用当中会根据性能和要求做一个调整。
3、DM 对话管理
大多是人工配的流程图,好一点的是加个有限状态自动机。就像买票一样,就知道了起始点,终点的信息。这些简单流程都会面临一个问题,很多领域交叉的时候变得很复杂也难以维护,通用性会很差。通用性是一个必须的要求,我们怎么才能做到通用性,我们用到了一个blanstek 方法,上面会有一个本体的知识库,有点像知识图谱,准确的来说知识图谱是本体的一种相对静态的一种支持。本体中也会有一些逻辑的关系。
3.1 Intent Slot联合模型
这是一个导航的DM,它首先会有很多领域,比如是开车打电话,开车听音乐的。在领域的下面又会有一些功能,类似机构或者公司的架构。其中的root就是老大,什么都能做。我们想做什么事,在这棵树中都是可以找到的,另外就是像这种总分的结构也比较容易构建。它的引擎部分是栈的结构,我们人类聊天的话其实就是栈的结构,我们最关心的话往往是上一句话,可能是最近的一句话。这其中还有一个焦点词,比如人在做一件事的过程中可能会切换到另一件事,然后回来以后希望能够继续之前的行为。焦点词就是为了解决这种情况,中间接到的任务会插入栈,然后结束以后再平滑的过渡回去。
在结合上面做的层次关系,刚开始在导航里,后来打电话,他会插到中间,从上一轮的信息查找,做到信息的平滑过渡。这种方式做对话,会解决我们在做对话中常见的问题。另外我们做的通用的引擎,所以需要做通用的工作,比如说,指代、省略。我们人类对话是多种方式的。我们每一个人说话不可能把所有从出生到现在所有的信息表述出来,前面的已经说过了,别人大脑里存储的有。对于对话系统来说,也是一样的,他们存储的知识树之间的相应的关系,背后需要知识图谱的配合,也需要本体树的配合,才可以理解人说的话。
还有就是错误的处理,对于语音来说,当然也包括打字等输入的方法,也会有输出错误的情况,大家可以看到许多纠错的产品,所以错误怎么处理,错误往往是与领域相关的,在一个引擎里面做出通用的错误处理方法。
3.2 DM实现
大家认为前面就是一套规则,现在很火的是增强学习,深度学习,RNN对话系统之类的。他们之间有什么关系,这里阐述一下。在学术上,DM分为DST和policy两大部分,DST是对话状态的识别,类似于NLU,但是现在加入了机器学习的方法(目前相对于传统的基于词典等方法没有明显的优势),policy就是根据现在的对话状态生成策略,基于规则的方法相对比较死板,虽然可以加一些随机的路径,而Policy可以根据一些策略学习,比如增强学习的方法。
3.3增强学习用于对话策略
刚才我们说到有限状态自动机,它可以自动优化策略,这就是马尔科夫(MDP);如果有一些不确定性的话,就是贝叶斯网络,进行推理;由于对话不是显性的东西,如何获取这句话有没有错误、背后的真正意思是什么和处理过后的数据?所以POMDP应用于不确定性和自动策略优化的情况。目前又推出了一个基于深度学习的增强学习的方法DRL。比如阿尔法狗,用深度学习的方法将不同的状态建模,应用不同的Policy。
3.4 增强学习面临的挑战
我们拿对话与阿尔法狗进行对比,阿尔法狗在19x19的棋盘做出那么多的决策,对于对话而言,他的状态是无限的,还有就是评判,围棋的结果很明确只有输和赢,而对于对话而言,它的结果是无限的,很难去测量。另外难以收集有效训练数据:标注成本高、数据需求大。
3.5利用模拟器收集数据 M2M
近些年出现了一些解决方案,比如谷歌今年的I/O大会,其中有一款可以代替人去打电话的产品,主要的方法是机器人与机器人聊天来收集数据,但问题在于不是真实的数据,所以加了一些真实的对话。两者结合会产生大量好的数据,会后面的机器学习工作奠定了基础。
其中有一部分是任务型对话,这种类型也比较好评判结果。还有他的参数是有限的,也比较容易让机器采集数据。所以他的优点: 应用于任务型对话,有明确目标,可枚举的slot类型和取值和技术与众包良好结合,降低了数据生产成本,并提升了效率。不足:不能适用于所有类型对话,需要各个领域分别构建,且无法应对闲聊以及模拟器构建需要很多设计和参与工作,收集的数据缺乏新颖。
3.6 NLG(自然语言生成)与实现方法
自然语言生成包含内容规划、句子规划和表层生成三部分,其中内容规划包括内容确定和框架规划;句子规划包括关键词选取、内容聚合和指代生成;表层生成包括结构实现和语言生成;类似于高考作文,先构造一个大纲,在写内容,最后根据内容添加修饰。
NLG实现方法在学术界也是热点讨论的,在工业界主要还是基于模版,因为模版有便于控制,准确率高,容易实现这些优点,当然也有缺点,比如:生硬死板,扩展性差,编辑成本高。而机器学习在一些地方还是有应用的,但不是很成熟,这需要一个过程。当然机器学习也有它的优点变化多样,扩展性强,编辑成本低;他的缺点是不易调试,错误率较高,技术复杂。
3.7 TaskBot(不同的服务)
第一个是任务型技能,这些都应用了NLP和NLU。只不过在一些具体的任务中,会做一些细化。我们看一下智能问答,他会有四种不同的服务,一般在学术的讨论中,会把智能问答分为基于知识图谱的问答和基于非知识图谱的问答。但是这里分为四种,第一种精准问答是基于知识图谱的问答,重点在于query结构化,准确率高但覆盖率低。第二种是高质量问答,是运营人员编辑过的,难点在于优质query挖掘和同语义query扩展,第三种是通用问答,难点在于答案质量判断、同语义问题匹配、长答案自动摘要,第四种是百科问答,较简单,重点在于意图识别和口语化处理。其中第二种和第三种是非结构化数据问答。
(1)优质QA挖掘生产
我们这里说一下生产能力,我们的天猫精灵的日志过来,我们从里面找到一些比较好的问题,好的答案挖掘出来,然后经过人工的审核,或者经过运营生产的编辑。在实际的工作过程中会有很多的问题要处理,比如说什么是好的问题,如何定义?互联网上的问题大多都是大数据量的,一个母婴的问题,在互联网上就可以抓取几亿条数据,这些问题重复的很多,去重之后也会很多。我们需要知道哪些问题是问得比较多的,这个时候搜索引擎的作用就显得很重要了。另外一个大问题是去重,在大数据量的情况下,如何快速的去重,也是有难度的,这也是一个传统的问题,有各种各样的方法。这都需要搜索引擎来帮助我们建立重复的事例。还有就是敏感问题,不是所有的问题都是适合回答的,这些问题如何识别,也是需要很大的资源和积累才可以做的。所以整体的流程是天猫精灵日志过去,然后问题分类分为CNN闲聊类型和疑问词分类模型,同时划分高质量问答query、敏感问答query和其他问答query。然后在经过UGC生产、外包生产和问答url挖掘最终确定高质量问答、众包审核和挖掘审核。最后挖掘出来的如何确定是好答案,需要通过答案交叉验证(答案与答案之间、答案与权威数据之间以及答案与知识图谱之间),答案质量模型和Qt相似度模型。
(2)问答匹配模型与答案质量模型
答案质量判断根据用户行为数据包括用户的点赞、点击、回答者的等级等信息,另外一方面也会深度学习纯分本的特征,可以把一些明显的答非所问的问题给去掉。我们这里的模型是比较简单的,因为数据量很大,我们也尝试过复杂的模型但是综合性能的话,简单的模型相对优势大一些。
(3)基于RNN的答案自动摘要
另外在智能音响上或者机器人上,我们都不希望答案特别长,如何把答案自动的摘要压缩,这也是一个问题。我们用RNN+attention的方式来处理这个句子选取的问题。先选取RNN的query,然后在做一个attention。之后在算他的分数,选择出分数较高的。另外在召回方面也做了很多的工作。我们不希望一个回答省略到关键的词或者句子。
3.8 ChatBot
前面我们主要说了问答。这里我们出要说一下聊天,前面所说的问答和任务型对话只是很小的一部分。因为聊天没有边界所以相对较难一些,经过我们的探索,聊天应该分为这四个阶段,相关包括对话理解和相关匹配;有趣: 多样性、个性化和场景化;可持续包括用户画像、情感分析、推荐引导和对话策略;可信赖包括高情商、察言观色、三观一致、趣味相投和体贴备至。我们这里说一下生成式模型,因为是开源的,加上开源的对话的语料,所以可以很容易把它跑起来。但是实际上效果非常不好,最大的问题是他们的对话没有什么价值,可以通过一些手段来优化,比如加一些attention,来优化他的回答。在decoder过程中加一些重要的词,让他的回答更加按照我们的意思来进行生成。但是没有一种方法彻底来解决这个问题,现在通过的方法只有两种,第一个是通过seq2seq加attention的方式来优化,第二种是优化他的loss function。不断的优化目标函数。提升回答的多样性。
现在很多是基于CAVE的方法来提升多样性和鲁棒性。当然也有很多种方法,这只是其中一种。多了一个分布,他在训练的时候会生成一个类分布,在最终使用的过程中,会从中采样出来。根据采样在生成结果。它的结果也是不一定的,因为每次采样是不用的,当然我们可以控制,比如上下文加起来,控制他的输出。从我们的实验来看,加进来之后,他的相关性和多样性会有提升,这些方法在业界也不是主流的方法,这一块是比较有前途的方向。
3.9聊天系统
在技术上,分为三部分CHAT AGG、排序触发和语料模型。CHAT AGG包含了综合出发排序、对话和问答三部分,排序触发包括了基础文本,VSM BM25、翻译模型、DL相关性、生成式模型、置信度识别LTR综合排序。语料模型包括了模版剧本、对话对索引、机器人运营、垂直领域知识本体和多轮个性化session 用户画像等。
4.总结与规划
我们这边会做很多种模型,比如置信度,相关性等。然后再利用我们这边的资源比如用户画像、知识图谱、对话的剧本、大规模的深度学习的平台。这些都可以帮助我们解决我们实际遇到的问题。我们最终的目标是构造一个全面通用的平台。目前除了支持集团各项服务,神马计划建设完整的聊天系统,兼具问答实用性和聊天趣味性,形成完整的能答会聊的对话系统。目前业内还没有真正实现这一目标的系统,我们将借助阿里和大文娱的流量和内容助力,形成新的突破。
——END——
^_^想加入亚楠老师的团队吗?识别下方二维码可直接投递到亚楠老师的团队哦!
另:我们建立了一个专业的知识图谱群,感兴趣的小伙伴可添加管理员微信:674228854,申请加入(注:专业群,审核严格)。
文章没看够?这里还有!