对话机器人的自然语言理解

对话机器人中的自然语言理解

简介:本人从2018年10月份从事自然语言处理行业,开始做的是语音助手。对自然语言理解有初步的了解。这是在博客里首次谈自己对自身行业的理解。

从图灵测试说对话机器人

图灵测试是指:如果一台机器能够与人类展开对话(通过电传设备)而不能被辨别出其机器身份,那么称这台机器具有智能。 这也是“智能”的定义,图灵测试为什么要采用对话的方式?而不是采用可以计算圆周率的100万位,判断一张图片里面是什么,或者把一段语音转化成文字。

这可以从语言说起,语言是区分人类和动物的重要标志,也是人具有高级智慧的象征。如果机器可以与人能够正常的对话,那我们确实可以说这个机器是智能的。

对话任务为什么比计算任务、分类任务和序列转化任务更难,甚至如果机器掌握的对话任务,就可以认为机器是智能的呢?

  • 计算任务,计算任务是计算机的最基础的能力,具有逻辑计算能力(与或非)、数字计算能力(加法器),最简单的单片机都具有这个能力,因此不能算是智能的标志。
  • 分类任务,分类任务基于计算任务,只不过这个任务稍微复杂一些,是通过合理的建模,将输入映射到0~N空间。
  • 序列转化任务是指序列标注、翻译、语言转文字等时序任务,如果不考虑时序,一些任务就会变得很糟糕,例如语音转文字中,一个读音可能对应多个文字,无法判断是哪个读音。在深度学习之前,这种时序性是通过马尔可夫模型解决的。可以说马尔可夫模型本身具有简单的推理能力,比如duihua,大概率是译成对话,而不是对画。但是这个推理还是在文字这个函数空间里面的,是有限定域的。

对话任务就比较复杂了,不但需要知识(数据库)、理解(NLU)、判断(分类),还需求高阶的推理能力,还要具有一定的情商,情商都需要哪些能力,还有待进一步探究。单说高阶的推理能力,足以否定市面上所有的机器人都不是人工智能。

丑话都说在前头了,目前人工智能远远达不到普通人的预期,但是在科研圈里还是很认可,对话机器人已经有了很大的进步。如果说对话机器人是自然语言处理的一个分支,那么推理能力是目前自然语言处理领域发展道路上的一个拦路虎。包括这两年横空出世的预处理模型,也是旨在解决语言中上下文的一个推理能力。

对话机器人技术剖析

说对话机器人是NLP领域皇冠上的明珠也是丝毫不过分的,因为涉及了NLP技术的方方面面,从基础的分词、命名实体识别,再到语义理解,对话管理,自然语言生成。中间插一句,这些技术都是应用在对话的各个阶段,前提是语音转化成文字,那能不能搞一个端到端的模型,直接从语音到语义呢?在搞一个模型,从语义到语音,中间就省下了一大堆步骤。这个是有可能的,从人类的角度,世界上是有很多语言没有文字的,而说这些语言的人也都是可以正常的交流表达复杂的观点。而且也有研究是这样做了,暂时识别的范围没有非端到端的模型好,但精度是高一些的。

1572276891269

暂时不提speech2meaning这种端到端的技术,对话机器人全流程可以分为5个层次,从上到下分别是用户层、语音层、语义层、对话层、数据层。

  • 用户层, 有两个实体,一个是用户及其所处的环境,一个是虚拟的对话机器人(chatbot)或者称为智能体(Agent)。
  • 语音层,两个功能,分别是语音转文字和文字转语音,这两个是语音识别的范畴,此篇文章不赘述。
  • 语义层,用户文本的浅层理解,以及将系统动作转化为回复话术,在这一层。
  • 对话层,包括两个功能,对话状态跟踪、动作策略。
  • 数据层,里面存储结构化知识库,例如知识图谱或某领域的数据库,例如火车时刻表。

对话机器人按技术可分为三类,一类是任务型对话机器人(task-oriented),是严格按照以上步骤来做的,如果不涉及知识,数据层是可以省略的。一类是检索型对话机器人,可以认为略过第三层语义层和第四层对话层,数据库内存储的是QA对,遇到一个用户话术,就检索出一个答案,回复给用户。一类是基于知识图谱问答机器人,对话层的处理比较少。每种技术都有其优缺点,但是

按类型可以分为,任务型、问答、闲聊,技术可以选择以上任何一种或者几种的集合。值得一提的是,在工业界,大部分语音助手以上几种技术都有涉及,类型也都覆盖全面。

语义层与对话层

今天我们重点的聊的就是语义层与对话层,之所以叫语义层(NLU)和对话层(DM),是行业内都这么称呼。其实这两侧的任务都是自然语言理解,只不过语义层做简单的自然语言理解(我们这样规定),对话层做的是语义推理。举个例子,对话状态跟踪器,是根据历史对话,当前语义,推理当前的对话状态;策略模块是根据当前对话状态,给出系统应该采取什么样的动作。

对话机器人的技术难点也就在对话层了,因为语义层可以归为分类任务(槽位提取可归为序列标注任务),而对话层做的是推理任务,下承接数据库,上考虑用户所处的环境,以及用户的语义信息。行业中目前的语音助手水平,对话管理的技术水平都不高,或者学术中也是对话推理的研究也没有到达很智能的水平,或许这就是行业的瓶颈,如果能够突破对话管理技术,相信对话机器人会被更多普通人接受为人工智能助理,而不是人工智障。

对话推理的方向

  • 知识库的扩充与统一检索,人是如何快速根据已有知识进行推理的呢?
  • 环境信息的编码,如何将环境信息编码在语义中,去影响对话的推理呢?