TaskBot任务对话简介
TaskBot 任务对话的目标是完成特定任务,例如预订航班。在实际场景中,用户一般不会在单个问题中提供完成任务所需的全部信息,因此往往需要通过多个反问句从用户那里获取缺失的信息,从而导致多轮对话。我们常见的任务对话示例是预订机票。一次航班预订对话的流程如下左图所示,其中TaskBot通过反问句逐步引导用户完成任务:
在五霸城市业务场景中,任务对话还可以用于租房、买房、买车、招聘等业务。以租房为例,租房对话的流程如上右图所示。从示例中可以看出,为了完成任务,TaskBot首先需要根据用户输入了解用户的意图,例如“我想租房子”,并且还可以提取有效信息,例如面积、公寓类型和价格;其次,TaskBot应该能够记录和更新对话状态。即在用户提供了某些信息的前提下,你知道如何回复用户以获取缺失的信息或完成任务。在实际应用中,前者对应于意图实体联合识别功能,后者对应于对话管理功能。下面首先介绍TaskBot的整体架构,然后分别介绍这两个功能的实现。
整体架构
TaskBot通常有两种实现方式:模块化和端到端。模块化是指将系统拆分为对话理解、对话管理、回复生成等多个模块。端到端是指利用大量的数据得到一个算法模型,可以直接从用户的原始Query中获取系统回复。 Bangbang TaskBot采用模块化设计,在数据较少时保持稳定性。一般模块化TaskBot架构如下图所示:
一般TaskBot包括NLU自然语言理解、DM对话管理和NLG自然语言生成模块。其中,NLU识别用户输入的意图和实体,DM匹配一组回复策略,NLG构造给用户的文本回复。根据实际情况,Bangbang TaskBot设计了如下整体架构:
Bangbang TaskBot主要由数据层和逻辑层组成。数据层包括对话历史数据库和对话配置数据库。对话历史数据库存储用户历史输入序列,对话配置数据库存储产品配置的对话回复规则。逻辑层由NLU联合识别服务和对话管理服务组成。其中,NLU联合识别服务依托人工智能平台达到理解用户意图和实体的目的,对话管理服务实现三个子功能:DST对话状态跟踪、DPL对话策略选择、NLG回复生成。此外,通过接入Sundial ABTest实验平台,系统可以比较不同说话技巧的问答效果。
意图实体联合识别
意图实体联合识别模块负责理解用户的Query对应的意图和实体(槽),其中意图代表用户的意图,实体代表用户在与用户交互时提供的一些具体信息。例如,用户Query是“我想在酒仙桥租房3000元”,则识别意图为“我想租房”,实体为“位置:酒仙桥”和“价格:3000” 。
联合识别模型部署在AI Lab提供的WPAI人工智能平台上,其核心结构是双向LSTM网络级联CRF注释器。模型图如下:
用户查询首先经过意图规则层,与模板数据集中的意图模板进行匹配。如果匹配成功,则联合识别模型的意图输出将被匹配结果覆盖。应用规则可以快速解决网络不良案件。在划分意图时,采用抽象意图和特定领域意图相结合的方式,提高可扩展性,方便不同场景的应用。例如,如果将用户提供信息的行为抽象为告知意图,则该意图可以应用于房产、二手车、招聘等多种场景。在房地产领域,定义独特的找房意向,产生该领域特有的反应。
意图匹配完成后,将用户查询发送至联合识别模型进行处理。联合识别模型首先将句子的嵌入结果通过Bi-LSTM 层,然后将结果分别通过意图分类器和实体标记器。最后,比较意图分类器产生的交叉熵损失和实体标记器产生的负对数最大似然。将损失求和为总体损失,以降低总体损失为优化目标进行模型训练。
实体标注器的核心是线性链CRF条件随机场算法。 CRF 对条件概率进行建模。该条件概率表示从无向图中的一组输入节点移动到另一组输出节点的概率。在实体标注场景中,CRF的输入节点对应观察序列,输出节点对应状态序列,其中观察序列是句子的词序列,状态序列是IOBES格式的标注结果。 IOBES标注结果是在实体标签的基础上添加实体位置标签得到的。以下是IOBES 注释的观察和状态序列的示例:
S标签代表单词实体,在上面的句子中没有出现。线性链CRF计算的条件概率一般是通过两类特征函数S和T加权相加然后取指数得到的。第一类特征函数S称为状态特征,反映某一时刻的状态值出现在特定观测序列中的概率;第二类特征函数T称为转移特征,反映特定观测序列中某一时刻状态值的概率。状态值在下一时刻转变为新的状态值的概率。在训练过程中,线性链CRF的优化目标是最大化所有样本的条件概率乘积,即最小化其负对数似然。优化结果是得到一组S和T的权重系数。
在预测时,CRF使用维特比解码方法来获得实体序列。维特比解码是一种动态规划方法,从前到后遍历句子,并保存每个单词所有可能状态的最大概率值。该概率值表示从句子开头到单词结束的子序列。该状态下的最大联合概率。解码过程开始后,当遍历某个单词时,利用特征函数和前一个单词的最大概率来计算该单词在每个状态下的最大概率。遍历到最后一个单词后,找到其最大概率对应的状态值,然后回溯得到整个句子的实体序列。
联合识别模型输出的实体最终通过实体规则层进行匹配,以提高识别效果。增加实体规则层的原因是,当所有细粒度实体都作为模型识别目标时,不同实体在用户问题中的位置和文本特征是相似的(比如“我想在北京租房子”和“我想在北京租房子”)。望京的房子”,前者是城市实体,后者是区域实体),导致模型识别在小样本场景下容易出错。因此,细粒度的“城市”、“区”、“商圈”将实体统一为“位置”实体,模型识别后进行规则匹配,最终实体识别的准确率和召回率提高5个百分点以上,识别结果的稳定性大大提高。
目前联合识别模型支持十余种意图,其中抽象意图有7种:通知、改变、无限、拒绝、谢谢、再见、问候;支持房地产、汽车领域90余类实体,且正在不断扩展。在评估数据集上,联合识别模型实现了90%的意图识别准确率和85%的实体识别准确率。
对话管理
对话管理的作用是将联合识别结果映射成系统回复。该模块参考基于有限状态自动机和基于框架语义(即基于意图+实体组合的策略选择)两种方法来实现。目的是保持基于状态机实现的稳定性,同时兼顾基于框架的实现。实施灵活性。以租房子任务为例,首先构造一个类似如下的状态转移图:
上图中的节点与TaskBot预先配置的系统回复类型一一对应,而边则对应用户输入的某种组合。固定的状态传递路径保证了TaskBot的回复可控且一致,用户的输入条件可以是意图。实体或者两者的组合,带来一定的泛化能力。例如,在房地产领域,如果用户输入位置、价格、户型等实体,就会被识别为告知意图。因此,只需要配置单个传输路径(图中的Sx-S4路径)即可处理多种类型的输入。同样的反应。
在单轮对话中,对话状态跟踪组件读取当前用户状态,获取上图中的一个节点作为起始状态,并根据联合识别结果获取一条或多条边。对话策略选择组件根据预先配置的规则选择一条边作为状态转移路径,并得到转移的节点作为最终状态。回复生成组件读取结束状态对应的系统回复配置,并根据规则生成文本回复并返回给用户。
状态转移图配置以列表的形式存储,列表中各单元对应的结构如上所示。触发器对应于状态转换图中的一个或多个边。参数是从外界获得的附加信息。引入参数的原因是有些信息无法从用户Query中获取,需要在会话过程中立即获取。例如,在租赁任务中,可能需要根据是否存在用户画像来提供不同的响应。您现在可以配置图像参数。输出对应于状态转换图中的一个或多个节点。在相同的触发条件下,由于过渡条件不同,输出也不同,比如用户可能有肖像,也可能没有。考虑到同一个源节点转移到多个目的节点或者多个源节点转移到同一个目的节点的情况,每个单元可以配置多个触发器或输出。
配置文件以文本形式存储在WConfig中。一方面,WConfig提供了配置信息灰度化和历史配置回滚的能力,可以有效维护不同的配置信息;另一方面,WConfig有一个实时回调接口。可以方便编辑实时更新语音配置。通过结合Sundial ABTest实验平台提供的ABTest功能,可以达到快速比较和迭代不同版本语音配置的目的。
标签:
用户评论
哇,这个TaskBot任务对话算法听起来好强大啊!棒棒智能问答机器人能应用到这个技术,真是太酷了!期待看到它的表现。
有16位网友表示赞同!
我之前用过棒棒智能问答机器人,效果还可以,现在这个算法升级了,感觉未来智能问答会变得更加智能。
有6位网友表示赞同!
TaskBot任务对话算法在棒棒智能问答机器人中的应用,是人工智能领域的一大进步啊!必须点赞!
有5位网友表示赞同!
棒棒智能问答机器人能结合这样的算法,说明团队真的很用心在研发。希望更多企业能注重技术创新。
有18位网友表示赞同!
用了TaskBot算法的棒棒智能问答机器人,感觉回答得更精准了,给研发团队点个赞!
有7位网友表示赞同!
看了这个标题,我对棒棒智能问答机器人的期待更高了。希望它能解决我很多工作上的问题。
有15位网友表示赞同!
TaskBot算法在棒棒智能问答机器人中的应用,是不是意味着我以后问问题,它都能给我满意的答案了呢?太期待了!
有15位网友表示赞同!
这个标题让我对棒棒智能问答机器人有了新的认识,感觉科技的魅力无穷大。
有18位网友表示赞同!
棒棒智能问答机器人用上TaskBot算法,那岂不是比普通问答机器人强大很多?我要去试试看。
有8位网友表示赞同!
听说TaskBot算法在棒棒智能问答机器人中的实践效果不错,但我还是更喜欢和人交流的感觉。
有13位网友表示赞同!
这个标题让我对棒棒智能问答机器人的智能程度产生了好奇,想了解更多细节。
有10位网友表示赞同!
棒棒智能问答机器人升级后,我感觉它的回答更加人性化了。TaskBot算法功不可没啊!
有11位网友表示赞同!
TaskBot任务对话算法在棒棒智能问答机器人中的应用,是人工智能领域的一大突破,期待看到更多应用。
有8位网友表示赞同!
这个标题让我对棒棒智能问答机器人有了新的认识,感觉科技的发展真是日新月异。
有15位网友表示赞同!
棒棒智能问答机器人结合TaskBot算法后,是不是能解决更多复杂问题呢?我有点迫不及待想体验了。
有7位网友表示赞同!
TaskBot算法在棒棒智能问答机器人中的应用,让我对人工智能的发展充满信心,期待更多创新。
有19位网友表示赞同!
棒棒智能问答机器人用上TaskBot算法,感觉它离真正的智能机器人又近了一步。希望未来能有更多惊喜。
有18位网友表示赞同!
这个标题让我对棒棒智能问答机器人的智能程度有了新的认识,感觉它真的很有潜力。
有12位网友表示赞同!
TaskBot算法在棒棒智能问答机器人中的应用,让我对人工智能的未来充满期待,希望它能改变我们的生活。
有7位网友表示赞同!