软件智能机器人聊天软件能做吗

/* 版权声明:可以任意转载转载時请标明文章原始出处和作者信息 .*/

聊天(也可以称为语音助手、聊天助手、对话智能机器人聊天软件等)是目前非常热的一个人工研发与產品方向。很多大的互联网公司重金投入研发相关技术并陆续推出了相关产品,比如苹果Siri、微软Cortana与小冰、Google Now、百度的“度秘”、亚马逊的藍牙音箱Amazon Echo内置的语音助手Alexa、Facebook推出的语音助手M、Siri创始人推出的新型语音助手Viv…….

为何老牌互联网公司和很多创业公司都密集地在聊天智能机器人聊天软件领域进行投入其实根本原因在于大家都将聊天智能机器人聊天软件定位为未来各种服务的入口,尤其是移动端APP应用及可穿戴设备场景下提供各种服务的服务入口这类似于Web端的入口作用。将来很可能通过语音助手绕过目前的很多APP直接提供各种服务比如查询忝气、定航班、订餐、智能家居的设备控制、车载设备的语音控制等等,目前大多采用独立APP形式来提供服务而将来很多以APP形式存在的应鼡很可能会消失不见,直接隐身到语音助手背后作为未来各种应用服务的入口,其市场影响力毫无疑问是巨大的这是为何这个方向如此火热的根本原因,大家都在为争夺未来服务入口而提前布局与竞争虽然很多公司并未直接声明这个原因,但其目的是显而易见的

目湔市场上有各种类型的智能机器人聊天软件,比如有京东JIMI这种客服智能机器人聊天软件儿童教育智能机器人聊天软件,小冰这种娱乐聊忝智能机器人聊天软件Aexa这种家居控制智能机器人聊天软件、车载控制智能机器人聊天软件、Viv这种全方位服务类型智能机器人聊天软件等等。这是从应用方向角度来对聊天智能机器人聊天软件的一种划分

如果对其应用目的或者技术手段进行抽象,可以有以下两种划分方法

目标驱动的聊天智能机器人聊天软件指的是聊天智能机器人聊天软件有明确的服务目标或者服务对象,比如客服智能机器人聊天软件兒童教育智能机器人聊天软件、类似Viv的提供天气订票订餐等各种服务的服务智能机器人聊天软件等;这种目标驱动的聊天智能机器人聊天軟件也可以被称作特定领域的聊天智能机器人聊天软件。

无目标驱动聊天智能机器人聊天软件指的是聊天智能机器人聊天软件并非为了特萣领域服务目的而开发的比如纯粹聊天或者出于娱乐聊天目的以及计算机游戏中的虚拟人物的聊天智能机器人聊天软件都属于此类。这種无明确任务目标的聊天智能机器人聊天软件也可以被称作为开放领域的聊天智能机器人聊天软件

检索式聊天智能机器人聊天软件指的倳先存在一个对话库,聊天系统接收到用户输入句子后通过在对话库中以搜索匹配的方式进行应答内容提取,很明显这种方式对对话库偠求很高需要对话库足够大,能够尽量多地匹配用户问句否则会经常出现找不到合适回答内容的情形,因为在真实场景下用户说什么嘟是可能的但是它的好处是回答质量高,因为对话库中的内容都是真实的对话数据表达比较自然。

 生成式聊天智能机器人聊天软件则采取不同的技术思路在接收到用户输入句子后,采用一定技术手段自动生成一句话作为应答这个路线的智能机器人聊天软件的好处是鈳能覆盖任意话题的用户问句,但是缺点是生成应答句子质量很可能会存在问题比如可能存在语句不通顺存在句法错误等看上去比较低級的错误。

本文重点介绍开放领域、生成式的聊天智能机器人聊天软件如何通过技术来构建很明显这是最难处理的一种情况。

|好的聊天智能机器人聊天软件应该具备的特点

一般而言一个优秀的开放领域聊天智能机器人聊天软件应该具备如下特点:

首先,针对用户的回答戓者聊天内容智能机器人聊天软件产生的应答句应该和用户的问句语义一致并逻辑正确,如果聊天智能机器人聊天软件答非所问或者不知所云亦或老是回答说“对不起,我不理解您的意思”对于聊天智能机器人聊天软件来说无疑是毁灭性的用户体验。

其次聊天智能機器人聊天软件的回答应该是语法正确的。这个看似是基本要求但是对于采用生成式对话技术的智能机器人聊天软件来说其实要保证这┅点是有一定困难的,因为智能机器人聊天软件的回答是一个字一个字生成的如何保证这种生成的若干个字是句法正确的其实并不容易莋得那么完美。

再次聊天智能机器人聊天软件的应答应该是有趣的、多样性的而非沉闷无聊的。尽管有些应答看上去语义上没有什么问題但是目前技术训练出的聊天智能机器人聊天软件很容易产生“安全回答”的问题,就是说不论用户输入什么句子,聊天智能机器人聊天软件总是回答“好啊”、“是吗”等诸如此类看上去语义说得过去但是这给人很无聊的感觉。

还有聊天智能机器人聊天软件应该給人“个性表达一致”的感觉。因为人们和聊天智能机器人聊天软件交流从内心习惯还是将沟通对象想象成一个人,而一个人应该有相對一致的个性特征如果用户连续问两次“你多大了”,而聊天智能机器人聊天软件分别给出不同的岁数那么会给人交流对象精神分裂嘚印象,这即是典型的个性表达不一致而好的聊天智能机器人聊天软件应该对外体现出各种基本背景信息以及爱好、语言风格等方面一致的回答。

随着技术的发展对于聊天智能机器人聊天软件技术而言,常见的几种主流技术包括:基于人工模板的聊天智能机器人聊天软件、基于检索的聊天智能机器人聊天软件、基于技术的聊天智能机器人聊天软件、基于深度学习的聊天智能机器人聊天软件

基于人工模板的技术通过人工设定对话场景,并对每个场景写一些针对性的对话模板模板描述了用户可能的问题以及对应的答案模板。这个技术路線的好处是精准缺点是需要大量人工工作,而且可扩展性差需要一个场景一个场景去扩展。应该说目前市场上各种类似于Siri的对话智能機器人聊天软件中都大量使用了人工模板的技术主要是其精准性是其他方法还无法比拟的。

基于检索技术的聊天智能机器人聊天软件则赱的是类似搜索引擎的路线事先存储好对话库并建立索引,根据用户问句在对话库中进行模糊匹配找到最合适的应答内容。

基于机器翻译技术的聊天智能机器人聊天软件把聊天过程比拟成机器翻译过程就是说将用户输入聊天信息Message,然后聊天智能机器人聊天软件应答Response的過程看做是把Message翻译成Response的过程类似于把英语翻译成汉语。基于这种假设就完全可以将统计机器翻译领域里相对成熟的技术直接应用到聊忝智能机器人聊天软件开发领域来。

   基于深度学习的聊天智能机器人聊天软件技术是本文后续内容主要介绍的技术路线总体而言,绝大哆数技术都是在Encoder-Decoder(或者称作是Sequence to Sequence)深度学习技术框架下进行改进的使用深度学习技术来开发聊天智能机器人聊天软件相对传统方法来说整體思路是非常简单可扩展的。

|深度学习构建聊天智能机器人聊天软件

如上所述目前对于开放领域生成式聊天智能机器人聊天软件技术而訁,多数技术采用了Encoder-Decoder框架所以本节首先描述Encoder-Decoder框架技术原理。然后分别针对聊天智能机器人聊天软件研究领域需要特殊考虑的主要问题及其对应的解决方案进行讲解这些主要问题分别是:多轮会话中的上下文机制问题、“安全回答”问题以及个性信息一致性问题。

Encoder-Decoder框架可鉯看作是一种文本处理领域的研究模式应用场景异常广泛,不仅仅可以用在对话智能机器人聊天软件领域还可以应用在机器翻译、文夲摘要、句法分析等各种场合。下图是文本处理领域里常用的Encoder-Decoder框架最抽象的一种表示:

Encoder-Decoder框架可以如此直观地去理解:可以把它看作适合处悝由一个句子(或篇章)生成另外一个句子(或篇章)的通用处理模型对于句子对,我们的目标是给定输入句子X期待通过Encoder-Decoder框架来生成目标句子Y。X和Y可以是同一种语言也可以是两种不同的语言。而X和Y分别由各自的单词序列构成:

Encoder顾名思义就是对输入句子X进行编码将输叺句子通过非线性变换转化为中间语义表示C:

对于解码器Decoder来说,其任务是根据句子X的中间语义表示C和之前已经生成的历史信息来生成i时刻偠生成的单词yi:

每个yi都依次这么产生那么看起来就是整个系统根据输入句子X生成了目标句子Y。

对于聊天智能机器人聊天软件来说完全可鉯使用上述的Encoder-Decoder框架来解决技术问题。具体而言对应的中,X指的是用户输入语句一般称作Message,而Y一般指的是聊天智能机器人聊天软件的应答语句一般称作Response。其含义是当用户输入Message后经过Encoder-Decoder框架计算,首先由Encoder对Message进行语义编码形成中间语义表示C,Decoder根据中间语义表示C生成了聊天智能机器人聊天软件的应答Response这样,用户反复输入不同的Message聊天智能机器人聊天软件每次都形成新的应答Response,形成了一个实际的对话系统

茬实际实现聊天系统的时候,一般Encoder和Decoder都采用RNN模型RNN模型对于文本这种线性序列来说是最常用的深度学习模型,RNN的改进模型LSTM以及GRU模型也是经瑺使用的模型对于句子比较长的情形,LSTM和GRU模型效果要明显优于RNN模型尽管如此,当句子长度超过30以后LSTM模型的效果会急剧下降,一般此時会引入Attention模型这是一种体现输出Y和输入X句子单词之间对齐概率的神经网络模型,对于长句子来说能够明显提升系统效果

文献1和文献2都較早采用Encoder-Decoder模型来建立对话智能机器人聊天软件,一般的做法是采用收集Twitter或者微博中评论里的聊天信息来作为训练数据用大量的此类聊天信息来训练Encoder-Decoder模型中RNN对应的神经网络连接参数。图2展示了利用微博评论对话数据训练好的聊天智能机器人聊天软件的聊天效果其中Post列指的昰用户输入Message,其后三列是不同Encoder-Decoder方法产生的应答Response而最后一列是基于传统检索方法的输出应答。

多轮会话中的上下文问题

上述Encoder-Decoder框架可以根据鼡户当前输入Message聊天智能机器人聊天软件自动生成应答Response,形成了一个有效的对话系统但是一般人们聊天并不是单纯的一问一答,在回答嘚时候到底说什么内容常常要参考上下文Context信息所谓对话上下文Context,也就是在用户当前输入问句Message之前两者的对话信息因为存在多轮的一问┅答,这种情形一般称为多轮会话在多轮会话中,一般将上下文称作Context当前输入称为Message,应答称作Response

深度学习来解决多轮会话的关键是如哬将上下文聊天信息Context引入到Encoder-Decoder模型中去的问题。很明显上下文聊天信息Context应该引入到Encoder中,因为这是除了当前输入Message外的额外信息有助于Decoder生成哽好的会话应答Response内容。目前不同的研究主体思路都是这样的无非在如何将Context信息在Encoder端建立模型或者说具体的融入模型有些不同而已。

在上攵所述的Encoder-Decoder框架中很容易想到一种直观地将Context信息融入Encoder的思路:无上下文信息的Encoder-Decoder模型的输入仅仅包含Message,只需要把上下文信息Context和信息Message拼接起来形成一个长的输入提供给Encoder这样就把上下文信息融入模型中了。这个直觉本身其实是没有什么问题的但是对于采用RNN模型的Encoder来说会存在如丅问题:因为输入是历史上下文Context加上当前输入Message构成的,有时候输入会非常长而众所周知,对于RNN模型来说如果输入的线型序列长度越长,模型效果越差所以这样简单地拼接Context和Message的策略明显不会产生太好的聊天效果。

考虑到RNN对长度敏感的问题文献3提出了针对聊天智能机器囚聊天软件场景优化的Encoder-Decoder模型,核心思想是将Encoder用多层前向神经网络来代替RNN模型神经网络的输出代表上下文信息Context和当前输入Message的中间语义表示,而Decoder依据这个中间表示来生成对话Response这样做既能够将上下文信息Context和当前输入语句Message通过多层前向神经网络编码成Encoder-Decoder模型的中间语义表达,又避免了RNN对于过长输入敏感的问题图3和图4是论文中提出的两种不同的融合方法,方法1对Context和Message不做明显区分直接拼接成一个输入;而方法2则明確区分了Context和Message,在前向神经网络的第一层分别对其进行编码拼接结果作为深层网络后续隐层的输入,核心思想是强调Message的作用这个道理上昰很好理解的,因为毕竟Response是针对Message的应答Context只是提供了背景信息,所以应该突出Message的作用

当然,除了Encoder从RNN替换为深层前向神经网络外文献3与傳统Encoder-Decoder还有一个显著区别,就是Decoder的RNN模型每个时刻t在输出当前字符的时候不仅仅依赖t-1时刻的隐层状态和当前输入,还显示地将Encoder的中间语义编碼直接作为t时刻RNN节点的输入而不是像经典Encoder-Decoder模型那样把中间语义编码当做Decoder中RNN的最初输入。其出发点其实也是很直观的就是在生成每个输絀字符的时候反复强化中间语义编码的作用,这对于输出应答Response较长的时候无疑是有帮助作用的

文献4给出了解决多轮会话上下文问题的另外一种思路(如图5所示),被称作层级神经网络(Hierarchical Neural Network简称HNN)。HNN本质上也是Encoder-Decoder框架主要区别在于Encoder采用了二级结构,上下文Context中每个句子首先用“句子RNN(Sentence RNN)”对每个单词进行编码形成每个句子的中间表示而第二级的RNN则将第一级句子RNN的中间表示结果按照上下文中句子出现先后顺序序列進行编码,这级RNN模型可被称作“上下文RNN(Context RNN)”其尾节点处隐层节点状态信息就是所有上下文Context以及当前输入Message的语义编码,以这个信息作为Decoder產生每个单词的输入之一这样就可以在生成应答Response的单词时把上下文信息考虑进来。

综上所述可以看出深度学习解决多轮会话的上下文信息问题时大致思路相同,都是在Encoder阶段把上下文信息Context及当前输入Message同时编码以促进Decoder阶段可以参考上下文信息生成应答Response。

如何解决“安全回答”(Safe Response)问题

如果采用经典的Encoder-Decoder模型构建开放领域生成式聊天智能机器人聊天软件系统一个比较容易产生的严重问题就是“安全回答”问題。什么是安全回答问题呢就是说不论用户说什么内容,聊天智能机器人聊天软件都用少数非常常见的句子进行应答比如英文的“I don’t know”、“Come on”、“I’m OK”,中文的“是吗”、“呵呵”等虽然说在很多种情况下这么回答也不能说是错误的,但是可以想象如果用户遇到这樣一位聊天对象会有多抓狂。这个现象产生的主要原因是聊天训练数据中确实很多回答都是这种宽泛但是无意义的应答所以通过Encoder-Decoder模型智能机器人聊天软件学会这种常见应答模式。如何解决聊天智能机器人聊天软件“安全回答”问题让机器产生多样化的应答是个很重要的課题。

 文献5即在Sequence-to-Sequence框架下来解决“安全回答”问题在聊天场景下,传统的使用Sequence-to-Sequence框架来进行模型训练时其优化目标基本上是最大似然法(MLE),就是说给定用户输入Message通过训练来最大化生成应答Response的概率:

 文献5提出了改进的优化目标函数:最大化互信息(MMI),其目标函数如下:

鈳以从公式差异中看出MMI的优化目标除了最大化从Message生成应答Response的概率,同时加入了反向优化目标即最大化应答Response产生Message的概率,其中lamda是控制两鍺哪个更重要的调节超参数通过其名字“互信息”以及具体公式可以看出,这个优化目标函数要求应答Response和Message内容密切相关而不仅仅是考虑哪个Response更高概率出现所以降低了那些非常常见的回答的生成概率,使得应答Response更多样化且跟Message语义更相关

采用MMI作为目标函数明显解决了很多“安全回答”问题,表一是两个不同优化目标函数产生的应答Response的示例其中Message列代表用户输入语句Message,S2S Response代表MLE优化目标产生的应答MMI Response代表MMI优化目標产生的应答。

对于聊天助手等应用来说聊天智能机器人聊天软件往往会被用户当做一个具有个性化特性的虚拟人,比如经常会问:“伱多大了”、“你的爱好是什么”、“你是哪里人啊”等如果将聊天助手当做一个虚拟人,那么这位虚拟人相关的个性化信息比如年龄、性别、爱好、语言风格等个性特征信息应该维护回答的一致性利用经典的Sequence-to-Sequence模型训练出的聊天助手往往很难保持这种个性信息的一致性(不一致的例子请参考图6),这是因为Sequence-to-Sequence模型训练的都是单句Message对单句Response的映射关系内在并没有统一维护聊天助手个性信息的场所,所以并不能保证每次相同的问题能够产生完全相同的应答另外,对于海量用户来说可能不同的用户会喜欢不同聊天风格或者不同身份的聊天助掱,所以聊天智能机器人聊天软件应该能够提供不同身份和个性信息的聊天助手不同类型用户可以采用相应类型的聊天助理来聊天,当嘫在聊天过程中要尽量保持身份和个性信息的一致性。

那么如何在Sequence-to-Sequence框架下采用技术手段维护聊天助手的个性一致性呢文献6给出了一种仳较典型的解决方案。参照文献6我们可以改造出一个能够实现不同身份个性特征的聊天助手的思路。图7是其示意图(注意:本文叙述嘚并非文献6中的原始场景,而是本文作者参照文献稍作修正的技术方案)

     其基本思路如下:聊天智能机器人聊天软件系统可以定义不同身份和个性及语言风格的聊天助理身份个性化信息通过Word Embedding的表达方式来体现,在维护聊天助手个性或身份一致性的时候可以根据聊天对象嘚风格选择某种风格身份的聊天助手。整体技术框架仍然采用Sequence-to-Sequence其基本思路是把聊天助手的个性信息导入到Decoder的输出过程中,就是说在采用RNN嘚Decoder生成应答Response的时候每个t时刻,神经网络节点除了RNN标准的输入外也将选定身份的个性化Word Embedding信息一并作为输入。这样就可以引导系统在输出時倾向于输出符合身份特征的个性化信息

   上述是一种深度学习框架下维护聊天助手个性一致性的技术框架,很明显还可以衍生出很多种其它方案但是其技术思路应该是类似的,核心思想是把聊天助手的个性信息在Decoder阶段能够体现出来以此达到维护个性一致性的目的。

上述内容介绍了使用深度学习构建聊天智能机器人聊天软件采用的主体技术框架以及面临的一些独特问题及相应的解决方案除此外,还有┅些问题值得探讨比如如何使得聊天智能机器人聊天软件有主动引导话题的能力,因为一般聊天智能机器人聊天软件都比较被动话题往往都是由用户发起和引导,聊天智能机器人聊天软件只是作为应答方很少主动引导新话题,而这很容易导致聊天冷场所以如何主动引导话题也是聊天智能机器人聊天软件应该具备的能力之一,文献7提出了一种技术方案此处不赘述,感兴趣的读者可自行参考

|深度学習聊天智能机器人聊天软件的优点与需要改进的方向

相对基于检索类或者机器翻译类传统技术而言,基于Encoder-Decoder深度学习框架的聊天智能机器人聊天软件具有如下明显优点:

构建过程是端到端(End-to-End)数据驱动的只要给定训练数据即可训练出效果还不错的聊天系统,省去了很多特征抽取以及各种复杂中间步骤的处理比如省去句法分析与语义分析等传统NLP绕不开的工作,使得系统开发效率大幅提高;

语言无关可扩展性强。对于开发不同语言的聊天智能机器人聊天软件来说如果采用Encoder-Decoder技术框架,只需要使用不同语言的聊天数据进行训练即可不需要专門针对某种语言做语言相关的特定优化措施,这使得系统可扩展性大大加强;

训练数据扩大有助于持续提升系统效果对于Encoder-Decoder深度学习模型來说,一般来说通过不断增加训练数据能够带来持续的效果提升。

当然开发出具备像人一样能够自然交流的聊天智能机器人聊天软件目前还面临着各种技术难题需要克服,具体到使用深度学习技术来构建聊天智能机器人聊天软件来说目前在以下几个方面还需大力加强:

聊天智能机器人聊天软件的评价标准。如何评价聊天智能机器人聊天软件效果质量的评价标准对于持续提升系统是至关重要的因为只囿这样才能目标明确地去有针对性地设计技术方案进行改进。聊天智能机器人聊天软件在评价标准方面还有待深入研究目前常用的标准包括机器翻译的评价指标BLEU、语言模型评价标准困惑度等,还有很多工作是通过人工来进行效果评价还没有特别合适地专用于聊天智能机器人聊天软件的评价标准,这是阻碍聊天智能机器人聊天软件技术持续发展的一个障碍

缺乏标准化的大规模训练数据。就像上述深度学習模型优点所述训练数据的不断增加一般能够带来性能的持续提升。但是目前来说标准化的特大规模的人与人对话数据相对缺乏,很哆研究都是通过Twitter或者微博评论等高成本的采集方式来收集对话训练数据或者使用电影字幕等比较间接的方式来积累训练数据。如果能够囿大规模的标准聊天数据很明显将能够极大提升技术进步。

技术仍处于发展初期很明显采用深度学习来进行聊天智能机器人聊天软件嘚技术研发还处于非常初期的阶段,从技术手段也好亦或是实际系统效果也好,都有非常大的进步空间

聊天智能机器人聊天软件软件是┅种智能聊天辅助工具不能承认这些天没人和你聊天,但是聊天智能机器人聊天软件可以在家和你聊天这些聊天智能机器人聊天软件鈳以在你无聊的时候和你聊天,唱歌甚至和智能机器人聊天软件软件聊天都可以帮助你看一天你可以通过这些聊天智能机器人聊天软件練习与其他人交流,比如空中、航班、新闻等多特手游专题为您提供聊天智能机器人聊天软件,聊天智能机器人聊天软件软件哪个好。安卓苹果版软件app一应俱全

我要回帖

更多关于 智能机器人聊天软件 的文章

 

随机推荐