内容简介:撰文/李亚楠通用领域对话问答通俗来说就是智能助手,今天主要分享下通用领域的应用技术和相关难点,还有就是我们在这方面所做的探索和实践。
撰文/李亚楠
通用领域对话问答通俗来说就是智能助手,今天主要分享下通用领域的应用技术和相关难点,还有就是我们在这方面所做的探索和实践。
首先讲一下对话领域发展过程,对话领域发展已经有半个世纪的历程,上个世纪60年代最早的对话机器人ELIZA,通过规则和剧本的方法可以像心理咨询师一样和人对话,而后又出现了Alice、Mitsuku等基于更好剧本引擎的对话机器人。近年来,各大巨头公司都投入到了智能对话问答领域,出现了Siri、Watson、Google Assistant、微软小冰、天猫精灵、小度等,这些都可以看做已有搜索引擎的下一代演化,这里我会从工业界搜索引擎的技术来讲解。
第一代搜索引擎的发生是人连上了互联网,互联网能给人带来很多信息。第一代互联网就是杨致远和他的同学仅靠人工编辑就能将好的网站收录进来,我们称为第一代互联网搜索引擎。随着互联网信息的增多,两个人的搜索是不够的,甚至Yahoo这样最大互联网公司的编辑力量都不足,后来就有了Google 的网页搜索。
随着智能手机的发展,Web也仅仅是互联网信息的一种,有了不同APP的私域信息,这对搜索提出了更大的挑战。目前又迎来物联网时代,不仅仅是手机、PC,还有更多的设备,这种情况下到底需要一种什么样的搜索。我们所面临的信息、知识、交互也不仅仅是Web,变得更加多样性,人们更加需要的是一个跨平台的智能助手。这就是虽然还有很长的路要走,但是大家都很重视的原
我们部门属于 阿里巴巴UC事业部下 的神马搜索,其前身最早是中国的雅虎搜索,阿里收购中国雅虎后做了全网PC端的阿里云搜索,后来又做了移动端的神马搜索,接着推出了UC头条,目前随着人工智能的发展,推出了自有的夸克智能搜索和浏览器。
搜索的目标也是要做一个跨平台的智能助手,用到的技术有语音、搜索、推荐等,今天主要讲解NLP模块。如果我们要在技术上做好对话引擎其内容是非常重要的,就像大数据必须要有数据,没有数据很难做到智能。数据除了有传统数据、知识图谱、非结构化的数据、网页其他信息,我们还有用户画像,阿里的自媒体生态等共同支持我们的搜索引擎。
目前市场上对话系统架构大的层面都是差不多的,我们的对话平台分为三种对话类型,第一种是TaskBot就是任务型对话,如询问天气、订票服务,某些客服也可以看成是一种任务型对话;第二种就是QABot,问答是人们见的最多的,主要是一问一答;第三种是ChatBot,有的人称为闲聊,但是我们认为比闲聊范围广,常见的例子就是微软小冰,聊天是平常最多的信息交互,也是技术上难度最高的。下面支持它们的是各种各样的数据,包括知识图谱、用户画像、问答索引库、各种任务对话库、还有各种各样的剧本。在此之上还有一个统一的调度系统——对话系统,因为作为一个通用的对话,需要能够在不同的任务、场景进行切换,而且需要像人一样记住不同领域的上下文。再往上面是一个对外提供服务的对话平台,在集团内也支持很多业务,尤其在通用领域的一些对话需求,如天猫精灵、自动驾驶助手等;还有就是我们自身的一些产品,如UC助手、头条评论,以及夸克宝宝。
常见的对话系统除了语音的ASR和TTS以外,就是一个NLU和NLG,中间一个DM,但是这里多出来一些东西。从一个系统的角度或者更加拟人的角度来说明,对一个对话来说理解并不是内容的理解,还需要根据对话的人的对象的理解以及基于我们的记忆和知识去理解。因此就需要有一个Memory和Knowledge的部分,主要解决人的短时记忆Context和人的常识记忆,如去年告诉我名字不能今年就不知道他是谁。还有就是机器人自身的信息,也需要设置机器人的三观、喜好,在不同的领域和场景也是不一样的;另一个机器人要有自己的知识。另一部分就是各种各样的服务支撑,人是一个情感机器,如计算机的众多外设一样,有很多小型的自处理器,如果要解决不同类型的任务也需要不同服务的支持。
任务型对话理解就是理解他的dialog action、slot、intention、domain字段就差不多了,但是对于一个通用的是远远不够的。理解大致分为三个部分,第一个就是基础NLP,就是词法、句法、多轮指代等一些基本NLP知识;还有一块就是画像,需要人的一些信息;中间一个就是对对话上下文相关的一些理解,如领域、意图识别;还有query结合上下文的结构化,多轮指代消解是将其补全,补全后我们还需要理解和分析。除了语义内容的分解,还有一些状态的分类,识别是表达命令、观点或者愿望等等。图中每一类又包含上百类,也有一些是打标签的任务,那么如何解决这么多任务和类别是一个难题。
针对这一难题,会用到很多技术,因为需要达到90%以上的准确率,才能应用于工业界,如果每一个都仔细做很难达到时间成本效率性价比。因此主要有两类技术,一类是迁移学习,一种是小样本学习。迁移学习能够在复杂的任务中快速做出一个好的效果,我们会从网上采集各种对话的语料,通过预训练做出一个embedding的model,预训练的model会依据任务或数据做一些改进,模型的选择取决于任务,并不一定BERT就是最优。
实际工作中有成千上万的类,很难获取充足的样本,而像深度学习或者传统的机器学习模型都需要大样本。小样本学习主要有三类:Model Based、Metric Based和包含梯度和训练方法优化的Optimization Based,我们主要是用Metric Based的方法,一个类别可能只有有限几个样本,将不同类别的样本与要学习的类别进行配对,构建度量配对后的相似度或者距离的model,然后通过这个model跟已知的类的样本做对比,观察其更接近哪一个类别。实际处理中还有很多问题,如自然语言噪音的问题,有的比图像还要严重,还需要做一些事先检索和聚类,在做embedding module和relation module时还需要一些特定处理。
多维对话管理就如同人做决策,就是将非结构化的文字信息转化为结构化的数据和特征,对话管理需要依据这些信息表达什么东西,NLG将这些要表达的概念转化为一个流畅的自然语言表达出来。但是作为通用领域难度比较大,因为不同领域业务范围不同,需要将不同领域的知识、架构统一起来,既不单调也能有个灵活处理,这是对话管理比较大的难点。还有就是如何做到良好的可扩展性,就需要做到业务和引擎的分离。对话管理的引擎是统一的,是引擎层,获取各类信息进行决策和更新状态。policy层就如同机构的分支,易于各类业务的管理、扩展和复用,同时还需要不同类型的数据、不同架构进行支撑。
在有了不同领域的知识如何做明确的决策仍然是一 个难题,这种策略就对话管理而言是一个博弈的过程。对话是一个非常模糊的过程,有时让说话人自己标注都很难标注。这样就会产生很多问题,最早的解决方式就是有限状态自动机、slot filling等,比较适合一些小的任务。这对于通用型对话远远不够,如何扩展有很多方法,一个方向是将确定性转化为不确定性,类似于像贝叶斯网络发展;另一方面其策略变成一个不固定,可以依据前面的过程进行优化,如MDP;POMDP是综合了两种方法,上图是决策过程的优化。结合对话复杂度,需要有更高维度的建模,图中DRL是深度学习的增强学习过程。由于增强学习方法需要大量成本高昂的标注数据,目前应用领域比较局限。
TaskBot基于任务型的对话系统是一个小的通用对话系统,需要针对不同领域做一些优化,我们称为Sub-NLU。类似地,在DM和NLG中也需要补充相应的policy和表达式。得益于阿里丰富的资源,夸克提供了涵盖各场景的智能信息服务。
问答机器人有很多种,最简单的是基于配规则的卡片式问答。这里主要讲两种问答,一种是基于知识图谱的knowledge based question answering(KBQA),还有就是基于非结构化的网页知识来抽取答案的问答机器人称为DeepQA。基于知识图谱的问答首先是构建全网的知识图谱,会通过NLU识别实体,然后再依据实体做消歧、同义扩展、口语化处理,随后将其做一个聚合分析,将其转化为逻辑表达式,再将其转化为SparQL、MQL等图数据库查询语言,从图数据库将数据取出来,再依据不同类型的知识做一个NLP生成,再将结果展现出去。图中比较关键的就是自然语言转化为逻辑表达式,这方面有两种方式。一种比较传统,就是模板匹配,这是为了在业界达到一定精度。除了精准匹配还会做很模糊的匹配,将一些pattern转化为embedding方式,做一个更强泛化能力的匹配。还有一种方式就是通过句法解析树的方式来解析一些非结构化的query,再将其表达成相应的逻辑表达式。
还有一种就是非结构化的DeepQA,图中有个例子是唐代哪个诗人不畏权贵,网上的答案很长,但是我们希望回复只是李白或者精简一句话或者李白的介绍。实现方法就是主要抽取比较关键的句子或者摘要。这要求在传统搜索引擎的网页基础上要做很多工作,也包括句子排序,最终抽到的句子的组织。其中最核心的是交叉验证部分,整个互联网信息比较杂,有些信息就是错误的,有些信息还涉及违法信息。避免这类情形发生就要做各种粒度的交叉验证,众多答案交叉验证、与权威源交叉验证、句子与句子间交叉验证、问题类型与answer type的验证、关键词与关键词的相互验证等。技术实现核心就是数据,词级别的验证就需要知识图谱作为权威源,需要有问答对,还需要同义词、问题类型与关键词等,所以我们需要先挖掘高质量的数据,还需要挖掘一些训练用的样本,包括设置一些相关但是又离得远的负例,这都是真正复杂的工作。
对话闲聊主要有两种解决方式,一类是检索式,一类是基于深度学习的生成式。传统的对话解决思路和问答是类似的,因此数据变得很重要。我们抓取了上百亿的不同对话组,也获得了数以亿计的高质量对话。排序和问答类似,但是又不一样,还需要用到聊天的功能,这一模块用了大量topic module,保证多轮聊天的一致性,还实现了一些基于话术模式的工作。
生成式对话系统通过深度学习直接生成最后的回复,目前应用还不是很成熟,其准确率很难达到90%。生成式方法容易生成单调乏味的短回复,或者一些不通顺的长回复,相关性上也常会出现一些过于通用泛化的弱相关性结果。实现了基于CVAE的算法提升鲁棒性和多样性,以及引入相关关键词特征解决相关性问题。基于这些技术还实现了一些有趣功能,如智能评论、古诗生成、自动写对联等。
——END——
文章推荐:
关于 DataFun:
DataFun 定位于最实用的数据智能平台,主要形式为线下的深度沙龙、线上的内容整理。希望将工业界专家在各自场景下的实践经验,通过 DataFun 的平台传播和扩散,对即将或已经开始相关尝试的同学有启发和借鉴。
DataFun 的愿景是:为大数据、人工智能从业者和爱好者打造一个分享、交流、学习、成长的平台,让数据科学领域的知识和经验更好的传播和落地产生价值。
DataFun 成立至今,已经成功在全国范围内举办数十场线下技术沙龙,有超过三百位的业内专家参与分享,聚集了数万大数据、算法相关领域从业者。
您的「在看」,我的动力!:point_down:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 揭秘:对话机器人平台智能问答技术
- 帮帮智能问答机器人中TaskBot任务对话算法实践
- 「火锅问答」是啥?面向自然语言和多步推理问题,新型问答数据集HotpotQA面世
- 视觉问答领域又一力作!斯坦福大学教授发布图像场景图问答数据集 GQA
- 技术问答集锦(四)
- 技术问答集锦(五)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。