Press "Enter" to skip to content

强化学习在黄页商家智能聊天助手中的探索实践

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

00

 

导读

 

本地服务 ( 黄页 )微聊代运营模式是指人工客服代替58平台上的商家与C端用户IM沟通聊天以获取商机(如用户联系方式、细粒度需求信息等),再将商机转交给商家,促进 商家成单。 我们基于58AI Lab自研的灵犀智能语音语义平台构建了智能客服商家版,将其应用在微聊代运营场景下,通过人机协作模式提高商机获取效率,打造了黄页商家智能聊天助手。 这里的人机协作模式先后经历了三个阶段: 在早期机器人效果较一般时,机器人和人工客服分时工作,即人工客服不上班时才由机器人接待用户咨询。 在经过优化机器人效果较优时,先机器人再人工,即当用户来咨询商家时,白天先由机器人接待,若机器人能够聊出商机则结束会话,若不能再转接人工客服,晚上使用纯机器人接待。 在机器人效果和人工很接近甚至超过人工时,使用纯机器人接待,人工客服去从事其他更复杂的工作。 2 021年年初,黄页商家智能聊天助手被商业化,以“微聊管家”命名随会员套餐一起打包售卖给商家,全年共计服务了数万个商家,为公司创造收入超过五千万元。 当前,机器人的商机转化率(聊出商机的会话数/总会话数)已达到了人工客服的98%水平,我们实现了纯机器人接待,节省了 数十名 客服人力。

 

黄页商家智能聊天助手属于 留资机器人 ,与以回答用户提问为主的QA问答机器人不同,留资机器人的主要任务是引导用户留下资料信息,不仅要做自动问答,还需要做多轮引导,技术挑战更大,对话策略更为复杂。 我们在部分黄页类目下实践了基于强化学习的对话策略,商机转化率绝对提升了10%, 本文主要分享我们基于强化学习的对话策略实践。

 

01

 

背景

 

1.1 黄页商家智能聊天助手

 

在本地服务业务线下,当用户有保洁、搬家、维修等需求时会通过微聊以文本对话的形式联系58平台上的商家,而商家由于工作繁忙往往无法及时回复用户,造成商机流失。为了解决该问题,黄页业务线于2020年初推出了 微聊代运营模式 –构建一支专业的人工客服团队,由人工客服来代替商家接待用户,当人工客服与用户沟通完毕形成有效的商机信息(联系方式、价格、地点等)后再转交给商家,以帮助商家提高获客效率。

 

单纯依靠人工沟通会耗费大量的客服人力资源,为进一步提升商家获客率及节省客服人力,我们将灵犀智能语音语义平台应用于该场景,打造了黄页商家智能聊天助手,通过人机协作的方式来节省客服人力。这里的人机协作模式先后经历了三个阶段:在早期机器人效果较一般时,机器人和人工客服分时工作,即人工客服不上班时才由机器人接待用户咨询。在经过优化机器人效果较优时,先机器人再转人工,即当用户来咨询商家时,白天先由机器人接待,若机器人能够聊出商机则结束对话,若不能再转接人工客服,晚上则使用纯机器人接待。在机器人效果和人工很接近甚至超过人工时,使用纯机器人接待,人工客服去从事其他更复杂的工作。整个业务模式如下图所示。

 

 

图 微聊代运营业务模式

 

1.2 AI技术作用于商业,纯服务带来收入

 

当前,机器人商机转化率已达到了人工客服的98%水平,我们在该场景下实现了纯机器人接待,平均节省了数十名客服人力,在流量高峰阶段节省了近百名客服人力。2021年初,黄页业务线将商家智能聊天助手进行了商业化,以“ 微聊管家 ”命名随会员套餐一起打包售卖给商家,全年共计服务了数万个商家,为公司创造收入超过五千万元。“ 微聊管家 ”在各个生活服务会员套餐中,不同价位的生活服务会员套餐提供了不同的服务功能和服务次数。下图展示了一些可选的生活服务会员套餐。

 

 

该场景下的智能客服机器人属于留资机器人,与以回答用户提问为主的QA问答机器人不同,留资机器人的主要任务是引导用户留下资料信息,不仅要做自动问答,还需要做多轮引导,对话策略更为复杂,为进一步提升机器人的商机引导能力,我们在部分类目的对话管理模块中实践了基于强化学习算法的引导模型,ABTest期间,上线类目商机转化率绝对提升了10%左右,很好的提升了C端用户的对话体验和B端商家的获客体验。

 

1.3 强化学习技术引入

 

目前在我们的黄页场景中,商机引导策略主要采用的还是基于规则+状态转化的方式,存在明显的节点配置复杂、拟人化低、泛化能力差等缺点,不能很好的灵活引导用户留下商机,因此,为进一步提升黄页商机引导效果和商家获客率,我们在黄页场景中的几个TOP类目(会话量大的类目)引入了基于强化学习算法的对话策略来提升留资机器人的商机引导能力和会话拟人化效果。

 

02

 

任务型对话系统架构

 

任务型对话就是为了完成某个特定的目标进行的会话,比如黄页场景中的保洁、搬家、维修等。 在工业界,任务型对话系统的实现主要还是pipeline的方式,即任务型对话系统通常由自然语言理解(Natural Language Understanding, NLU)、对话状态追踪(Dialog State Tracking, DST)、对话策略学习(Dialog Policy Learning, DPL)以及自然语言生成(Natural Language Generation, NLG)等四个模块组成。 在对话系统架构中,将对话状态追踪和对话策略学习建模在一起即构成了对话管理(DM)模块。 而对话管理普遍使用的方式主要有两种,基于规则(如基于有限状态机(FSM)的节点配置)和基于强化学习(如DQN)的方法。

 

 

图 任务型对话系统架构

 

如上图,基于节点配置的对话管理(V1)主要是基于有限状态机的原理,将对话配置抽象为四种节点,本质上是把对话过程抽象为基于对话状态的跳转图,其主要是通过不同功能节点(如: Trigger、Slot、Response等)的组合来实现管理对话流程。 首先是开始节点,是多轮对话的入口; 其次是触发节点,主要是根据意图和槽位控制对话走不同的会话流程; 然后是Slot节 点则是控制要问哪些槽位信息,与用户进行不断交互; 再有回复节点是如何回复用户的问题; 最后是结束节点,代表本次会话结束。 状态对话管理器会综合考虑用户的上下文信息,这些信息存储在Redis中,在跳转图,决定用户的下一次跳转,输出对应的回复。 其优点是能够快速响应业务,线上问题能快速解决,但其固定死板,自然度不够,需人工编写节点配置,灵活度不够且耗时耗力。

 

在我们黄页业务场景中,存在业务线数量众多、不同业务线用户需求不同,用户消息简短、无序且不规则等特点,这对我们的商机引导过程带来了很多困难,目前主要存在以下两个问题:

 

AI机器人的商机引导功能拟人化较低,且自然度不够,采用规则+状态转化进行的节点配置,不能灵活引导用户留下商机,泛化能力较差。

 

AI机器人的商机引导效果受限于问答和槽位模型的影响,问答模型或槽位模型预测错误,会造成商机引导不当,从而造成会话不流畅,商机流失。

 

其实在业界也存在类似的问题,AI机器人的商机引导方式普遍采用的是基于规则+转化的方式,基于这种方法存在人力成本高、泛化能力差和拟人化效果不好等缺点。基于此,业界相继提出了很多idea来优化提升机器人的商机引导能力,比如采用基于强化学习技术优化引导策略、构建端到端的对话系统等。

 

本文我们将主要介绍如何通过强化学习技术的方法和思路来解决以上问题,下面首先对任务型对话中使用强化学习算法的方法和思路进行介绍。

 

03

 

强化学习算法

 

为了满足当前的业务需求,我们设计了相应的技术方案,技术方案主要分成三个部分,第一部分为多标签数据集合构建方案,第二部分为算法模型优化方案,第三部分为算法输出方案。 多标签数据集合构建方案主要是为了,构建适用于58场景下大规模多标签数据集,同时形成覆盖58大多场景的图像标签体系。 算法模型优化方案主要对模型训练做相关优化,使得模型能够适用于类别多、数据量大的数据集合训练,同时着重于多标签识别存在的正负标签不均衡这一缺陷进行改进。 算法输出方案主要是对算法最后输出形式界定,输出形式的设定是以检索和推荐业务需求为 基础。

 

强化学习描述了一个智能体和环境进行不断交互的过程,并最终获得最大的累积回报,是智能体从环境到行为的一种映射学习。从图中可以看出,强化学习是和监督学习,非监督学习并列的第三种机器学习算法。那幺它与监督学习和非监督学习有什幺区别呢?

 

 

图 机器学习算法

 

强化学习是一个学习+决策的过程,只有奖励值,且奖励值没有正确或错误之分,它没有监督学习已经准备好的训练数据输出值,强化学习的样本通过不断与环境进行交互产生,而监督学习和非监督学习的样本由人工进行收集并标注产生。相较于监督学习和非监督学习,强化学习能利用的信息量很少,但也使得其面对一些特定信息比较缺乏的场景表现的更加出色。

 

强化学习的反馈信息只有奖励,并且是延迟的,即延迟奖励,延迟奖励的特性使得强化学习比较适合智能体与环境连续交互的场景。而监督学习有明确的输出值,非监督学习没有输出值也没有奖励值,只有数据特征。同时,强化学习的每一步与时间顺序前后关系紧密,而监督学习和非监督学习数据之间是独立的,没有强化学习这样的前后依赖关系。

 

 

图 强化学习系统流程

 

强化学习本身学习的是一个策略,通过学习策略以达到回报最优化,即在某种特定的情况下,智能体该做出何种行为。 强化学习系统由智能体(Agent)、环境(Env)、奖励值(Reward)、状态(State)、动作(Aciton)五部分组成。

 

在任务型对话中,要对这五元素进行建模:

 

Agent:智能体是整个强化学习系统的核心,能够感知环境的状态(State),并且根据环境提供的奖励值(Reward),通过学习一个合适的动作(Action),来最大化长期的Reward值。Agent就是根据环境提供的Reward作为反馈,学习一系列的环境状态(State)到动作(Action)的映射。

 

Env:环境是智能体存在的世界,能够与它进行交互,可以理解为特征空间。环境会接收Agent执行的一系列动作(Action),并对这一系列的动作的好坏进行评价,并转换成一种可量化的Reward反馈给Agent,同时环境还向Agent提供它所处的状态(State)信息。

 

Reward:奖赏则是智能体交互中会得到环境的一个信号,告诉智能体当前环境状态的好坏。

 

State:状态指Agent所处的环境信息,包含了智能体用于进行动作(Aaction)选择的所有信息,状态可以理解为特征。

 

Action:根据环境所处的状态,奖励信号等选择一个合适动作。

 

强化学习的目标是智能体和环境交互时选择一个能够获得最大化期望回报的策略。如上图所示,强化学习的主体是Agent和Env。强化学习主要是智能体与环境连续交互的过程,可以理解为一种循环。智能体首先从环境中获取一个状态St,通过学习采取一个合适动作At,然后环境根据新的动作At,对状态进行修改,得到新的状态St+1,同时环境给智能体一个新的奖励值Rt+1,最后智能体根据新的状态和奖励信息进入下一轮循环。

 

04

 

任务型对话中的RL方法

 

DQN是深度学习和强化学习的结合,即使用神经网络代替Q-learning中的Q表。 Q-learning是强化学习中的一种入门算法,其主要是通过维护一张Q值表,表的维数为状态数 * 动作数,表中每个值代表在状态S下采取动作A获得的未来收益的折现和,即Q值。 通过不断迭代Q值表使其最终收敛,然后根据Q值表就可以在每个状态下选取一个最优策略。 在任务型对话中,很显然对话状态空间和动作空间都是很庞大的,Q-learning显然不能满足要求。 而神经网络刚好擅长于此,将Q值表的更新问题变成一个函数拟合问题,相近的状态得到相似的动作输出。 具体来说就是比如现在有一个Q值表,神经网络的作用就是给定一个状态S和动作A,预测对应的Q值,使得神经网络的结果与Q表中的值相近。

 

当然这也会带来一些问题:

 

如何构造奖励值函数学习的样本,即基于相邻前后状态及反馈信号构造样本。

 

神经网络的前提是样本独立同分布,而强化学习前后会话状态和反馈有依赖关系——马尔科夫决策。

 

神经网络的目标分布固定,而强化学习的分布一直变化,比如游戏中每个关卡的状态分布是不同的,训练好上一个关卡,下一个关卡又要重新训练。

 

针对以上问题的具体解决方案有:

 

构造标签:通过Q-Learning使用奖励值来构造标签(解决问题1)。如上所述,用神经网络来预测奖励值,将问题转化为一个回归问题。

 

经验回放:通过experience replay(经验池)的方法来解决相关性及非静态分布问题。

 

双网络结构:使用一个神经网络产生当前currentQ值,使用另外一个神经网络产生目标targetQ值。

 

另外,DQN的算法思路来源于Q-learning,但和Q-learning不同的是,它的Q值不是直接根据状态和动作来计算的,而是通过神经网络。Q值的计算主要采用ϵ-贪婪法。如下图,使用max虽然可以快速让Q值向可能的优化目标靠近,但很容易过犹不及,导致过度估计,也就使最终我们得到的算法模型有很大的偏差。由此又提出了Natrue DQN 和 DDQN算法。

 

 

图 强化学习各模型的优化目标

 

在DQN目标Q的计算中使用了当前要训练的Q网络参数来计算Q(ϕ(S’j), A’j, w),而实际上又希望通过yi来后续更新Q网络参数,这样两者循环依赖,迭代起来相关性太强了,不利于算法的收敛。 由此提出了Nature DQN,其尝试用两个Q网络来减少目标Q值计算和要更新Q网络参数之间的依赖关系。 一个当前网络用来选择动作,更新模型参数,另一个目标网络用于计算目标Q值,目标网络的网络参数不需迭代更新,而是每隔一段时间从当前网络复制过来,即延时更新,这样可以减少目标网络和当前网络的相关性,此外Nature DQN和DQN的算法流程完全相同。

 

在DDQN之前,无论是Q-learning,DQN还是Nature DQN的目标Q值都是通过ϵ-贪婪法直接得到的。Nature DQN虽然用两个网络并使用目标网络计算目标Q值,其第j个样本的目标Q值的计算仍是贪婪法得到的。为了解决这个问题,DDQN通过解耦目标Q值动作的选择和目标Q值的计算这两步,来达到消除过度估计问题。DDQN和Nature DQN一样,也有两个网络结构,在Nature DQN的基础上,通过解耦目标Q值动作的选择和目标Q值的计算这两步。如上图,DQN和Nature DQN对于非终止状态,其目标Q值的计算是基于ϵ-贪婪法得到的,而在DDQN中,不再是直接在目标网络里面找各个动作中的最大Q值,而是先在当前网络中先找到最大的Q值对应的动作,然后利用这个动作在目标网络里面去计算目标Q值,此外DDQN和Nature DQN的算法流程完成相同。

 

05

 

任务型对话系统特点

 

具体到任务型对话系统中,运用强化学习同样需要考虑很多额外的因素条件。

 

 

图 任务型对话系统特点

 

首先,任务型对话系统的状态空间和动作空间十分庞大。 因为状态空间其实就是我们的特征空间,诸如上下文对话等特征往往是连续多值的,它并不像围棋、走迷宫这种场景一样可以简单地被定义。 动作空间对应着我们业务上要用户预留商机的引导动作(话术)。

 

然后任务型对话系统的第二个特点就是要高实时性。 一般来说,系统在线上引导的最大延迟要做到毫秒级别。

 

最后,任务型对话系统还要考虑线上业务效果的影响。强化学习本质上是一种在线学习的算法,参数往往需要在与用户进行交互的过程中进行学习,但在实际场景中模型算法一旦上线就必须要关注模型对业务的效果,对业务负责,所以在实际的场景中不能接受一个模型在线学习几天后才得到较为满意的效果。

 

针对以上特点,就带来了三个问题:难以建立环境模型、较低的计算复杂度以及算法收敛的稳定性与收敛速度。结合上文提到的强化学习方法,业界提出了很多可行的模型的改进策略,其代表方法就有我们上文已经提及的经验回放、双网络、构造标签等方法。

 

06

 

强化学习技术应用实践

 

在微聊中,AI对话机器人与用户进行对话的过程会模拟人工客服,主要发送两种类型的消息给C端用户: (1)回答用户问题,比如: 用户询问: “您好搬家吗? ”,AI对话机器人回复: “可以的,本公司支持各种类型的搬家业务。 ”(2)主动表达询问用户需求,引导用户留下商机,比如AI对话机器人会主动向用户询问联系方式、服务时间等。 上述两个过程就是AI对话机器人典型的QABot-自动问答模块和TaskBot-任务型对话商机引导模块。 在任务型对话商机引导模块中,我们利用强化学习算法来提升AI对话机器人的商机引导效果,以提高最终的商家成单率。

 

6.1 商机引导过程 历史缺陷

 

上线强化学习商机引导模型之前,原有商机引导过程主要采用的是规则+状态转化的方式。 当有用户需求服务时,首先由意图识别和槽位识别模型对用户query进行预测识别,然后根据识别出的用户意图跳转到不同话术配置,同时根据识别出的槽位信息判断是否需要跳过某些话术,避免重复进行商机引导,最后状态管理器综合考虑上下文信息完成此轮会话对用户的适当回复。 上述方法存在以下问题:

 

商机引导规则纯属人为配置,随着时间的推移,部分引导话术配置不再适用新出现的会话场景,从而导致引导不当造成商机流失。

 

意图识别和槽位识别模型的预测效果随着时间的推移,可能对新的会话场景预测效果不佳,从而导致商机引导因绑定特定意图或槽位出现引导不当,最终商机流失。

 

规则+状态转化的方式,固定死板,自然度不高,拟人化较差,无法进行快速迭代。

 

尽管如此,规则+状态转化的商机引导模式在黄页业务场景中对商家成单率的大幅提升起到了关键的作用,同时积累了大量的真实会话数据,为后面强化学习引导模型的实现奠定了基础。

 

6.2 我们的方案

 

针对以上问题常见的解决思路一般有两种,一是从产品角度,定时检查节点配置,不断优化更新配置信息,刨除不再适用当前场景的引导话术,优化或添加新的引导话术,以适用新的会话场景,提升业务指标。二是从技术角度,优化迭代或训练泛化能力更强的模型,适用各种会话场景,提升业务指标。

 

本文我们不关注产品角度,重点从技术的角度出发,通过利用强化学习算法实现对用户的精准引导,提高机器人的商机引导能力。

 

6.3 整体算法设计

 

具体算法设计需要考虑基于业务的特点。对于黄页来说,类目体系较大,且不同类目的会话量及会话场景存在很大差异,所以会抽取线上最新的一批会话数据做为训练数据,抽取的数据既要保证最新又要保证尽量覆盖所有可能会话场景。另外考虑通过使用ϵ-贪婪法选择当前Q值对应的动作A,因为ϵ-贪婪法对目标Q值变化敏感,同时采用DDQN来解耦目标Q值动作的选择和目标Q值的计算,这与后面设计的目标相符合,最终在线上也取得了比较好的效果,具体算法流程如下图所示。

 

 

图 算法流程设计

 

从强化学习的角度,我们的策略目标就是根据用户历史会话判断当前轮机器人最应该发出的引导动作,动作是算法对历史会话状态进行推测的维度,通过强化学习模型学习历史会话信息,然后根据学到的策略选择动作中使得维度取值最大的一个动作,确定动作后,可以得到此轮会话带来的回报,并根据回报及历史信息来更新用户的状态,进而更新强化学习模型参数信息,这样就完成了从状态到动作的映射关系。

 

在实际的业务场景中,为了满足业务需求,我们采用DQN改良版DDQN模型对引导策略进行优化,下面对上图算法流程进行简单介绍:

 

初始化环境状态和当前QNet和targetQNet网络参数,清空经验池

 

在当前QNet网络中用ϕ(S)作为输入,得到当前QNet网络所有动作对应的值输出,用ϵ贪婪法选择对应的动作A

 

在状态S执行当前动作A,得到新的状态S’及对应的特征向量ϕ(S’)和奖励值R,是否终止状态is_end

 

将{ϕ(S), A, R, ϕ(S’), is_end}这个五元组存入经验池

 

S = S’

 

从经验池采样m个样本{ϕ(Sj), Aj, Rj, ϕ(Sj′), is_endj}, j = 1,2,3., , ,m,计算DQN损失和action分类损失,通过神经网络的梯度反向传播来更新当前QNet的所有参数

 

如果迭代次数达到指定值时,更新targetQNet参数=当前QNet的参数,即每隔一段时间从当前QNet网络复制给targetQNet,这样延时更新可以减少targetQNet和当前QNet的相关性

 

如果S’是终止状态,则当前轮迭代完毕,否则跳转到第二步

 

6.4 数据构建

 

 

图 数据构建流程

 

强化学习主要学习的是人工客服引导用户留下商机的模式,因此模型训练集采用的是线上真实用户与人工客服的会话数据。 首先对人工客服的问题进行过滤抽取,然后借助聚类算法进行总结,最终得到模型所需的动作标签。 举个例子,在黄页-搬家类目中,通过抽取两个月线上真实人工客服会话数据作为模型的训练数据,最终整理得到3276个会话,其中带商机(用户留联系方式)的有2580个会话,不带商机的有696个会话,通过聚类和人工筛选构建20个动作标签,主要包括: 问电话、问微信、问联系方式、问服务时间、问位置、工作内容(提供服务的内容)、需不需要搬家服务、从哪里搬到哪里、是否有电梯、几楼、有大件家具吗、需要什幺服务、有什幺顾虑吗、需要拆装吗、在不在线、两边车可以到楼下吗、需要打包吗、是否是居民搬家、其他等。 在会话首轮当用户打招呼时,根据状态到动作的映射学习,模型会对用户进行反问是否需要搬家服务,然后用户表达自己的搬家意图,此时模型会对用户进行搬家地址、搬家时间、联系方式、楼层等信息做出相应的引导动作,最后通过状态与动作的映射关系成功引导用户留下商机,完成此次会话。

 

6.5 模型训练

 

 

图 模型结构

 

下面对模型训练中的一些细节和思考点进行介绍:

 

模型训练及推理耗时

 

模型双网络结构采用BiLSTM。为使模型能更好的学习到人工客服要到商机的模式和规律,在训练的时候主要采用的是人工客服要到商机的会话,比如搬家类目中,整理训练会话轮数15000+轮,模型训练耗时约3h(2核心cpu),推理速度平均在74ms左右。

 

动作空间映射

 

为保证强化学习引导机器人在引导用户留下商机的同时拟人化效果更好,对每个动作标签设置了三个意图相同的引导话术,比如联系方式的三个动作标签分别是:好的,请问您的联系方式时多少呢?我安排专业人员与您沟通<split>亲,您的联系方式是多少呢?<split>您好,方便留个您的联系方式吗?。

 

损失函数定义

 

由于强化学习属于非监督学习,天然不如监督学习能够更好的学习特定分类界面,所以我们尝试使用强化学习+监督学习action的联合训练方式来提升机器人的商机引导能力,即在训练强化学习模型的同时联合训练一个action分类模型,模型损失表达式概括如下:

 

loss = θ * loss(DQN) + (1 – θ) * loss(action分类)

 

离线评价定义

 

平均奖励值 reward = 样本state奖赏和 / 样本state数

 

会话完成率 finished = 完成的完整会话数 / 所有会话数

 

奖励值和会话完成的定义

 

由于衡量的是机器人要到商机的能力和会话完成程度,所以在奖励值reward的设计上主要考虑以下几个方面:

 

小于等于会话最大轮数max_step,会话每增加一轮reward + 1

 

本轮用户是否回复商机(电话、微信、qq、地址、时间),回复(电话、微信、qq)reward + 5,回复(地址、时间)reward + 2

 

会话轮数超过max_step,每增加一轮reward – 5

 

机器人引导商机次数,除(电话、微信、qq)外,重复一次reward – 2,(电话、微信、qq)没给前提下,重复引导一次reward + 1,给的前提下重复引导一次reward – 1,超过3轮重复引导一次reward – 3

 

会话完成:在一个完整的会话中,所有轮DQN模型给出的引导话术与人工给出的引导话术完全一致则表示会话完成。

 

状态设计

 

State = (query1, query2, action1, action2, intent, slot),其中,query1 表示用户上轮query,query2表示用户本轮query,action1表示本轮会话商机引导结果,action2表示历史会话商机引导信息,intent表示本轮用户query意图识别结果,slot表示历史会话槽位识别结果。举例:State = {“user_pre_ques_target”:”搬家什幺价位啊”,”user_cur_ques_target”:”怀德桥这”,”result_id”:”0″,”taskbot_pre_action_ques_target”:”亲,您在什幺位置呢?”,”taskbot_history_action_type_target”:”11,4″,”rec_cur_sj_type_target”:”-2″,”rec_his_sj_type_target”:”-19,-2,-52,-53,-20,-2057,-21″}

 

其他

 

实验以最优平均奖励值reward衡量离线模型优劣指标,以会话完成度衡量模型跟人工客服相似的程度。

 

6.6 模型评估

 

 

图 模型评估指标定义

 

模型的离线评估指标主要有两个,会话完成率和平均奖励值。整个评估过程中首先是DQN算法模块,该模块根据前述的算法流程学到用户会话状态和动作标签的映射关系。然后是决策模块,负责将DQN算法的结果与用户会话数据进行计算,然后通过DQN+action分类联合预测方式,将预测结果送到评估模块,对此次会话的完成率和平均奖励值进行计算评估。另将预测结果送到更新模块,然后依照相应的权重对用户状态进行更新。

 

对于整个离线训练过程,如果将其和强化学习算法的关键点进行一个映射的话,状态就是用户当前query+历史会话信息形成的特征向量,我们需要对其进行维护与更新;策略就是强化学习要学习的策略,算法模块会根据用户此时的会话状态给出一系列相应的动作标签;决策模块就是选择概率最大的动作标签并计算出此时得到的奖励值。

 

在离线训练过程中主要针对以下几点进行调整实验。首先是不同action的设计,比如搬家类目中20个动作标签可以进行删减或添加操作。其次,可以尝试不同强化学习算法,比如DQN的变种DDQN算法、Nature DQN算法或Dueling DQN算法等。第三,还可以调整具体的DQN算法参数,通过不断调优选取最佳的参数,并最终将其部署到线上。如下图,是我们在某个场景中实验强化学习算法得到的会话完成率和最优平均奖励值的评估结果。

 

 

图 会话完成率

 

 

图 最优平均奖励值

 

6.7 模型收益

 

 

最后是线上指标的介绍。引入强化学习技术到机器人的目的主要就是为了提高机器人引导用户留下商机的能力,所以这里我们主要关心的是多少会话要到了商机(电话、微信、qq等),也就是最终要到商机会话的占比。所以在线上指标的设计上,我们更关注的是机器人的商机引导效果,即商机转化率。通过对模型的不断迭代优化,最终取得了明显的收益,如上图,在部分类目上,我们的强化学习引导模型相比原有规则+状态转化模型在商机转化效果方面取得了不错的提升,实验组相比对照组商机转化率绝对提升10%左右,目前线上模型已全量上线。同时,在会话流畅度方面,强化学习引导模型可以根据会话的状态对用户进行适时的商机引导,因此,强化学习相对原有规则配置自然度也更高,且会话更加灵活,也更加的拟人化。

 

07

 

总结与展望

 

本次分享主要介绍我们使用了强化学习的方法来提升对话机器人的商机引导能力,实现了基于DQN的商机引导模型,在上线类目中取得了比较好的线上效果,ABTest期间,实验组相比对照组在商机转化率指标上绝对提升10%左右,线上模型已100%流量上线。

 

未来我们会持续优化,主要有以下两个方面:

 

目前我们仅在个别TOP类目中实验了基于强化学习的商机引导模型并取得了一定的收益,后续我们将实验强化学习在长尾类目中的引导效果。针对前者,我们有大量的历史人工客服会话数据,我们需要最大化这部分类目的商机引导效果。针对后者,我们希望挖掘出一些模式和规律,在多任务层面进行更多的探索。

 

为了快速支持业务上线,我们目前实现了基于DDQN商机引导模型,其实在业界还存在一些比较好的强化学习策略算法,比如DDPG、A3C等,未来我们会不断探索强化学习技术在对话机器人中的应用,持续提升机器人的商机引导能力。

 

doc_VaXUU559U713XUWcWbV9353737Wcd3XU.xlsx

 

作者介绍

 

祝涛,58同城 TEG技术工程平台群 AI Lab 算法工程师

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注