Benben: A Chinese Intelligent Conversational Robot——中文对话系统

主要工作

主流的对话机器人的设计目标主要集中在四个类别,即沟通、任务完成、问答和推荐。本文介绍了一种中国的智能对话机器人笨笨,旨在在统一架构下实现上述所有功能。此外,还具有饮食地图、隐含反馈对话、交互式机器阅读、新闻推荐等功能。

闲聊,即回答问候、情感和娱乐等信息;

指令执行,帮助用户完成特定的任务,包括酒店及餐厅预订、机票查询、旅行向导、网络搜索等;

问答,满足用户对知识和信息获取的需求;

推荐,通过分析用户兴趣和会话历史,推荐个性化内容。

技术架构

 底层包括自然语言处理的基本技术,例如中文分词、词性标注,词义消歧,命名实体识别,依存分析,语义角色标注和语义依存分析等。这些技术可以从哈工大的语言技术处理平台LTPhttp://www.ltp-cloud.com)上获取。中间层包括基本NLP技术支持的核心技术,机器阅读理解,语句纠错,语法分析,意图识别,性能。最顶层是“笨笨”的四大功能。

结构设计

“笨笨”的主要架构包含四个组成部分:1)语言理解,2)会话状态跟踪,3)功能选择和处理,4)响应生成。

语言理解

用户的输入可以为语音或文本,因此第一步是理解语音或文本内容。LTP工具包被用来进行基本的语言处理,包括中文分词、词性标注,词义消歧,命名实体识别,依存分析等。这些处理结果最终被视为词汇、句法和语义特征,并在接下来的处理步骤中转换为不同的表示。

本文利用(Tang et al., 2015)提出的方法获取句子级的情感分析结果。这些结果被用于两个方面,一方面是直接对情感产生回应,另一方面是将情感视为用户的隐含反馈,对会话进行长期优化。

(兴趣分类,一方面是直接对兴趣产生回应,另一方面是将兴趣视为用户的隐含反馈,对会话进行长期优化)

 

利用(Fu and Liu, 2013)提出的弱监督方法来识别用户的意图,用户意图可以被当作响应生成的线索或功能选择的特征。例如,如果用户说:“我想去北京”,那他/她可能是想预订飞机或火车票,或进一步在北京预订酒店房间。

设计了一个过滤掉含有粗俗、淫秽或敏感词语句子的方案。训练分类器利用手工整理的词典自动识别这些句子。同时,“笨笨”还需要对不属于其响应范围的请求进行拒绝。

会话状态跟踪

经过第一步处理之后,一个输入的句子被转换为多个特征表示,这些特征被用于会话状态跟踪和功能选择的输入。会话状态跟踪器记录了历史内容,当前域,历史触发域,确认、澄清、过滤、拒绝等状态的序列及其组合。给定一个输入的特征表示,多域状态跟踪器会产生多个域上的状态的概率分布,用于域选择。确认、澄清、过滤、拒绝等的跟踪器各自评估它们的触发概率。这些概率将直接作为它们当前状态或者触发置信度被发送到响应生成器。值得注意的是,对话有可能变成僵局,这表明用户对当前对话话题不感兴趣或者对笨笨的响应不满意。一旦僵局被检测到(机器人无法产生超过某个阈值的回答或用户产生消极的响应),笨笨将转到别的话题以维持对话

同时,从图2中可以看到,在会话状态跟踪、域选择和域处理间存在一个迭代交互。交互式循环表示状态跟踪模块提供多个域的当前状态分布给域选择。触发的域被处理以更新会话状态以及生成中间结果给响应生成器。

域选择(之所以可以做一个全能机器人主要的工作在这里)

域选择模块用于触发一个或多个域产生给响应生成器的中间结果。它将从语言理解中取得的特征表示和从会话状态跟踪中取得的当前多域状态分布作为输入,并且使用一个卷积神经网络评估触发域分布。

主题增强卷积神经网络

在笨笨上,我们提出了一个主题增强卷积神经网络,将连续词表示和离散主题信息整合成一个统一的域选择框架。图3展示的就是所提出的用于域选择的主题增强卷积神经网络框架。词嵌入矩阵和主题矩阵分别用word2vechttps://code.google.com/archive/p/word2vec/)和标签LDA获得。输入对话语音的两个表示在全连接层组合并且输出域触发分布。最后,选择触发概率大于所选阙值的域执行接下来的域处理。注意在域选择之后,可能有一个或多个触发的域。如果没有域被触发,会话状态将被更新并且发送到响应生成模块。

域处理

一旦选出域,响应的处理步骤就被触发。下面将详细介绍域的处理方式。

闲聊

闲聊处理由两个组件组成。第一个是生成闲聊对话的基于索引的模型。这里,我们使用Lucene工具包从在线论坛和微博对话中索引了三百万单回合响应对。第二,使用“<EOS>”初始化基于序列到序列学习(Seq2Seq)的响应生成模块通常导致模糊或者无意义的回答,例如“我不知道”、“我也是”等等。为了解决这个问题,我们使用优化方案,即从开始学习(LTS)模型,利用特定神经网络学习怎么生成响应的第一个单词。

LTS(双向RNN)

指令执行

指令执行域也还有子域,如饭店酒店预订、机票火车票预订、巴士和地铁线路指导等等。对每一个子域,指令执行处理都在图5中展示。

我们可以看到,在识别用户意图之后,使用条件随机场模型识别用户输入中的值,通过子域的特征填充语义槽。对相同的语义槽,可能会填写不同形式的值。因此,我们提出一个值归一化方法用于语义槽。填充完一个空隙后会话状态被更新。在任务进程中,指令执行是一个终端和用户间的交互过程,所以需要一个多回合对话控制器。在笨笨,通过会话状态跟踪和域选择控制多回合对话。通过确认、澄清状态跟踪和响应生成实现域交替。

推荐

笨笨中的推荐有两个功能,第一个是满足用户在特定内容上所需的信息,第二个是打破对话中的僵局。以新闻推荐为例,笨笨可以回应一些特定主题的新闻阅读需求,如运动、时尚、电影、金融等。例如,用户说:“告诉我关于电影的最新消息,“他们也可以说“再来一次”看另一部电影的消息。

除了查询模式,当在一次谈话中发现一个僵局,笨笨会根据用户的分析信息推荐最近的新闻。需要注意的是,新闻推荐也是一个互动的方式,这意味着笨笨会询问用户是否想以一个委婉的方式阅读一类新闻。

响应生成

响应生成会拿会话状态和中间结果作为输入来生成给用户的文本或语音应答。过滤、排斥、确证和澄清反应是通过考虑相应的状态生成的,它是从会话状态跟踪获得的。转移话题和推荐的响应生成用来打破对话中的僵局。

值得注意的是,域选择和处理步骤中可能存在多个触发域。因此,该中间结果可能包含多个输出域。这些输出实际上是相应的域产生的响应。然而,在会话的每一个回合中,只有一个响应来响应用户。因此,提出了响应质量估计模块,以生成对用户的唯一响应。质量评价过程中考虑状态,输出的置信度和域的响应特性

例如,如果QA的触发概率高于其他区域并且生成答案的置信度大于一个阈值,那么答案更像是对用户的响应。模块也将识别一个答案类型,以检查生成的答案是否与预测类型匹配。如果QA域输出一个位置或一个人名,则应答类型不匹配,因此答案不应是对用户的响应。

笨笨的特性功能

基于地图的对话:饮食地图是一个数据库,包含中国饮食的地理分布。它是通过挖掘新浪微博里的位置和饮食对构建的。膳食地图不仅包括相关的饮食和位置信息,还区分了早餐、午餐、晚餐以及使用者的性别。这些方面可以看作是谈话中的难点。基于饮食地图,通过与笨笨聊天,开发了一个查询特定饮食的定位的功能。

基于隐式反馈的对话:我们发现,用户可以表达自己的情感,观点,情绪等作为会话过程中的输入。这些都是隐性的用户反馈。因此,我们研究会话隐式反馈来持续优化会话生成模型,并在强化学习中将隐式反馈作为基本奖励函数的一个成型方案。

交互式机器阅读:给定一个文档或是关于一个特定的主题或事件的一个段落,笨笨不断与用户交谈给定的内容,这是我们提出的互动机读功能。笨笨将首先阅读并理解给定材料的使用提出的方法,用户可以根据材料内容问几个事实问题。需要注意的是,由于这些问题是关联文本的,有许多回指和省略现象。我们因此利用推荐的回指和零回指方法。

说明

部分翻译来自网络

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值