针对用户问题提供客服答案的方法及装置转让专利

申请号 : CN202010410440.X

文献号 : CN111339283B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 彭爽崔恒斌

申请人 : 支付宝(杭州)信息技术有限公司

摘要 :

本说明书实施例提供一种针对用户问题提供客服答案的方法,根据一个实施方式,在获取用户的当前问题后,可以基于当前问题,从知识库中获取多个历史对话记录中的第一对话记录,然后利用预先训练的预测模型,处理当前问题和第一对话记录的拼接文本,得到第一处理结果,接着根据第一处理结果,确定当前问题对应于第一对话记录的第一候选答案,并基于第一候选答案,针对当前问题提供客服答案。其中,用于机器阅读的预测模型,在机器阅读任务中,充分考虑客服场景下对话记录的文本具有交互性的特点,融入轮次特征和/或角色特征,提升机器阅读的性能。

权利要求 :

1.一种针对用户问题提供客服答案的方法,所述方法包括:

获取用户的当前问题;

从知识库中获取多个历史对话记录中与所述当前问题相匹配的第一对话记录;

利用预先训练的预测模型,处理所述当前问题和所述第一对话记录的拼接文本,得到第一处理结果,其中,所述预测模型包括嵌入层,用于将所述拼接文本中各个字或词分别描述为各个向量表示,对应于所述第一对话记录的单个字或词的单个向量表示中,融合有描述相应语句在所述第一对话记录中的出现序次的对话轮次特征、分别通过预定数值表示的用户或客服的角色特征中的至少一项;

根据所述第一处理结果,确定所述当前问题对应于所述第一对话记录的第一候选答案;

基于所述第一候选答案,针对所述当前问题提供客服答案。

2.根据权利要求1所述的方法,其中,所述获取用户的当前问题包括:检测用户当前输入的信息中是否包含预定的关键词;

在用户当前输入的信息中包含预定的关键词的情况下,根据用户当前输入的信息确定用户的当前问题。

3.根据权利要求1所述的方法,其中,所述从知识库中获取多个历史对话记录中与所述当前问题相匹配的第一对话记录包括:将所述当前问题分别与所述多个历史对话记录进行匹配;

从与所述当前问题相匹配的若干历史对话记录中,获取第一对话记录。

4.根据权利要求3所述的方法,其中,各个历史对话记录各自对应有标准句,所述将所述当前问题分别与所述多个历史对话记录进行匹配包括:将所述当前问题与各个历史对话记录分别对应的各个标准句进行匹配,得到各个匹配结果;

根据各个匹配结果,确定与所述当前问题相匹配的若干历史对话记录。

5.根据权利要求3所述的方法,其中,所述多个历史对话记录包括第一历史对话记录,所述第一历史对话记录包括第一关键词集,所述将所述当前问题与所述多个历史对话记录进行匹配包括:从所述当前问题中提取问题关键词集;

将所述问题关键词集与所述第一关键词集进行匹配,以得到所述当前问题与所述第一历史对话记录的第一匹配结果;

基于所述第一匹配结果,确定所述第一历史对话记录是否为与所述当前问题相匹配的对话记录。

6.根据权利要求1所述的方法,其中,在所述单个向量表示融合有对话轮次特征的情况下,相应的单个字或词的对话轮次特征通过各个维度都是第一预定值的轮次嵌入向量描述,所述第一预定值与当前语句在相应历史对话记录中的轮次相对应。

7.根据权利要求1所述的方法,其中,在所述单个向量表示融合有用户或客服的角色特征的情况下,相应的单个字或词的用户或客服的角色特征通过各个维度都是第二预定值的角色嵌入向量描述,所述第二预定值与相应的单个字或词所在的当前语句的用户或客服角色相对应。

8.根据权利要求1所述的方法,其中,所述单个向量表示还融合有段落嵌入向量、字嵌入向量或词嵌入向量、位置嵌入向量中的至少一项。

9.根据权利要求1所述的方法,其中,所述单个向量表示通过对各个特征对应的嵌入向量进行求和或求平均确定。

10.根据权利要求1所述的方法,其中,所述预测模型通过以下方式训练:获取多个训练样本,单个训练样本对应一个样本用户问题、与所述样本用户问题相关的历史对话记录,以及该历史对话记录中与所述样本用户问题对应的客服答案文本标签或者客服答案位置标签;

利用选定的预测模型依次处理各个训练样本中的样本用户问题与历史对话记录的拼接文本,以预测模型的处理结果与相应客服答案文本标签或者客服答案位置标签相一致为目标,训练所述预测模型。

11.根据权利要求1所述的方法,其中,所述基于所述第一候选答案,针对所述当前问题提供客服答案包括以下中的一项:将所述第一候选答案,及其他候选答案一起作为客服答案提供给用户或人工客服;

比较所述第一候选答案与所述当前问题的第一关联度,在所述第一关联度满足预定条件的情况下,将所述第一候选答案作为客服答案提供给用户。

12.一种针对用户问题提供客服答案的装置,所述装置包括:问题获取单元,配置为获取用户的当前问题;

记录获取单元,配置为从知识库中获取多个历史对话记录中与所述当前问题相匹配的第一对话记录;

处理单元,配置为利用预先训练的预测模型,处理所述当前问题和所述第一对话记录的拼接文本,得到第一处理结果,其中,所述预测模型包括嵌入层,用于将所述拼接文本中的各个字或词分别描述为向量表示,对应于所述第一对话记录的单个字或词的单个向量表示中,融合有描述相应语句在所述第一对话记录中的出现序次的对话轮次特征、分别通过预定数值表示的用户或客服的角色特征中的至少一项;

确定单元,配置为根据所述第一处理结果,确定所述当前问题对应于所述第一对话记录的第一候选答案;

提供单元,配置为基于所述第一候选答案,针对所述当前问题提供客服答案。

13.根据权利要求12所述的装置,其中,所述问题获取单元进一步配置为:检测用户当前输入的信息中是否包含预定的关键词;

在用户当前输入的信息中包含预定的关键词的情况下,根据用户当前输入的信息确定用户的当前问题。

14.根据权利要求12所述的装置,其中,所述记录获取单元进一步配置为:将所述当前问题分别与所述多个历史对话记录进行匹配;

从与所述当前问题相匹配的若干历史对话记录中,获取第一对话记录。

15.根据权利要求12所述的装置,其中,在所述单个向量表示融合有对话轮次特征的情况下,相应的单个字或词的对话轮次特征通过各个维度都是第一预定值的轮次嵌入向量描述,所述第一预定值与当前语句在相应历史对话记录中的轮次相对应。

16.根据权利要求12所述的装置,其中,在所述单个向量表示融合有用户或客服的角色特征的情况下,相应的单个字或词的用户或客服的角色特征通过各个维度都是第二预定值的角色嵌入向量描述,所述第二预定值与相应的单个字或词所在的当前语句的用户或客服角色相对应。

17.根据权利要求12所述的装置,其中,所述提供单元配置为执行以下中的一项:将所述第一候选答案,及其他候选答案一起作为客服答案提供给用户或人工客服;

比较所述第一候选答案与所述当前问题的第一关联度,在所述第一关联度满足预定条件的情况下,将所述第一候选答案作为客服答案提供给用户。

18.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-11中任一项的所述的方法。

19.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-11中任一项所述的方法。

说明书 :

针对用户问题提供客服答案的方法及装置

技术领域

[0001] 本说明书一个或多个实施例涉及计算机技术领域,尤其涉及针对用户问题提供客服答案的方法及装置。

背景技术

[0002] 机器阅读旨在使机器像人类一样地理解文本,经过训练的机器阅读模型像人类读者一样,可以扫描文本并从文本中提取含义。机器阅读理解任务从可以回答经过一定编辑的文本中的简单问题,发展到从获取的大量数据中回答用户的实际问题。例如,给定一篇文档(Document)和基于这篇文档的一个问题(Question),假定答案出现在文档中的某个位置,机器阅读可以通过阅读文档从而找到问题对应答案(Answer)的位置。
[0003] 对话文本因为其本身交互性的特点,具有和普通文本很不一样的形式,不能简单地看作普通的文本。因此,针对对话文本的机器学习模型建模方式是值得研究的问题。

发明内容

[0004] 本说明书一个或多个实施例描述了一种针对用户问题提供客服答案的方法及装置,用以解决背景技术提到的一个或多个问题。
[0005] 根据第一方面,提供一种针对用户问题提供客服答案的方法,所述方法包括:获取用户的当前问题;基于所述当前问题,从知识库中获取多个历史对话记录中的第一对话记录;利用预先训练的预测模型,处理所述当前问题和所述第一对话记录的拼接文本,得到第一处理结果,其中,所述预测模型包括嵌入层,用于将所述拼接文本中的各个字/词分别描述为各个向量表示,对应于所述第一对话记录的单个字/词的单个向量表示中,融合有相应对话轮次特征、用户或客服的角色特征中的至少一项;根据所述第一处理结果,确定所述当前问题对应于所述第一对话记录的第一候选答案;基于所述第一候选答案,针对所述当前问题提供客服答案。
[0006] 在一个实施例中,所述获取用户的当前问题包括:检测用户当前输入的信息中是否包含预定的关键词;在用户当前输入的信息中包含预定的关键词的情况下,根据用户当前输入的信息确定用户的当前问题。
[0007] 在一个实施例中,所述基于所述当前问题,从知识库中获取多个历史对话记录中的第一对话记录包括:将所述当前问题分别与所述多个历史对话记录进行匹配;从与所述当前问题相匹配的若干历史对话记录中,获取第一对话记录。
[0008] 在一个进一步的实施例中,各个历史对话记录各自对应有标准句,所述将所述当前问题分别与所述多个历史对话记录进行匹配包括:将所述当前问题与各个历史对话记录分别对应的各个标准句进行匹配,得到各个匹配结果;根据各个匹配结果,确定与所述当前问题相匹配的若干历史对话记录。
[0009] 在另一个进一步的实施例中,所述多个历史对话记录包括第一历史对话记录,所述第一历史对话记录包括第一关键词集,所述将所述当前问题与所述多个历史对话记录进行匹配包括:从所述当前问题中提取问题关键词集;将所述问题关键词集与所述第一关键词集进行匹配,以得到所述当前用户问题与所述第一历史对话记录的第一匹配结果;基于所述第一匹配结果,确定所述第一历史对话记录是否为与所述当前问题相匹配的对话记录。
[0010] 在一个实施例中,在所述单个向量表示融合有对话轮次特征的情况下,相应的单个字/词的对话轮次特征通过各个维度都是第一预定值的轮次嵌入向量描述,所述第一预定值与当前语句在相应历史对话记录中的轮次相对应。
[0011] 在一个实施例中,在所述单个向量表示融合有对话轮次特征的情况下,相应的单个字/词的用户或客服的角色特征通过各个维度都是第二预定值的角色嵌入向量描述,所述第二预定值与相应的单个字/词所在的当前语句的用户或客服角色相对应。
[0012] 在一个实施例中,所述单个向量表示还融合有段落嵌入向量、字/词嵌入向量、位置嵌入向量中的至少一项。
[0013] 在一个实施例中,所述单个向量表示通过对各个特征对应的嵌入向量进行求和或求平均确定。
[0014] 在一个实施例中,所述预测模型通过以下方式训练:获取多个训练样本,单个训练样本对应一个样本用户问题、与所述样本用户问题相关的历史对话记录,以及该历史对话记录中与所述样本用户问题对应的客服答案文本标签或者客服答案位置标签;利用选定的预测模型依次处理各个训练样本中的样本用户问题与历史对话记录的拼接文本,以预测模型的处理结果与相应客服答案文本标签或者客服答案位置标签相一致为目标,训练所述预测模型。
[0015] 在一个实施例中,所述基于所述第一候选答案,针对所述当前问题提供客服答案包括以下中的一项:将所述第一候选答案,及其他候选答案一起作为客服答案提供给用户或人工客服;比较所述第一候选答案与所述当前问题的第一关联度,在所述第一关联度满足预定条件的情况下,将所述第一候选答案作为客服答案提供给用户。
[0016] 根据第二方面,提供一种针对用户问题提供客服答案的装置,所述装置包括:
[0017] 问题获取单元,配置为获取用户的当前问题;
[0018] 记录获取单元,配置为基于所述当前问题,从知识库中获取多个历史对话记录中的第一对话记录;
[0019] 处理单元,配置为利用预先训练的预测模型,处理所述当前问题和所述第一对话记录的拼接文本,得到第一处理结果,其中,所述预测模型包括嵌入层,用于将所述拼接文本中的各个字/词分别描述为各个向量表示,对应于所述第一对话记录的单个字/词的单个向量表示中,融合有相应对话轮次特征、用户或客服的角色特征中的至少一项;
[0020] 确定单元,配置为根据所述第一处理结果,确定所述当前问题对应于所述第一对话记录的第一候选答案;
[0021] 提供单元,配置为基于所述第一候选答案,针对所述当前问题提供客服答案。
[0022] 根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
[0023] 根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
[0024] 通过本说明书实施例提供的方法和装置,基于机器阅读,针对用户问题,提供相应的客服答案。其中,机器阅读过程中,充分考虑客服场景下,对话记录的文本具有交互性的特点,融入轮次特征和/或角色特征,提高机器阅读的准确度。

附图说明

[0025] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0026] 图1示出本说明书技术构思下的一个具体实施架构示意图;
[0027] 图2示出根据一个实施例的针对用户问题提供客服答案的方法流程图;
[0028] 图3示出根据常规技术一个具体例子的嵌入层示意图;
[0029] 图4示出根据本说明书技术构思的一个具体例子的嵌入层示意图;
[0030] 图5示出根据一个实施例的针对用户问题提供客服答案的装置的示意性框图。

具体实施方式

[0031] 下面结合附图,对本说明书提供的方案进行描述。
[0032] 首先,结合图1示出的一个具体实施场景进行说明。如图1所示,该实施场景中,由计算平台为用户问题提供客服答案。该计算平台可以设于服务端,也可以设于终端。该计算平台可以具有与用户交互的功能,例如是客服平台。在计算平台设于终端的情况下,用户可以通过采集设备(如键盘、麦克风、手写屏等)向终端输入问题,并通过终端的输出设备(如话筒、显示屏等)获取客服答案结果,在计算平台设于服务端的情况下,用户可以通过终端和计算平台交互,并在终端获取客服答案结果。
[0033] 具体地,计算平台可以预先在本地或远程数据库存储有知识库,知识库中包括多条历史对话记录。单条历史对话记录可以是一次客服会话,或者涉及一个具体业务问题的客服对话。例如:
[0034] A:您好,请问有什么可以帮助您的吗
[0035] Q:运动意外无忧险
[0036] A:亲,您已经进入人工客服,请问有什么可以帮助您的
[0037] Q:运动意外无忧险的等待期是多久
[0038] A:运动意外无忧险无等待期
[0039] Q:噢噢,好的,赞!
[0040] 其中,A表示客服回答(answer),Q表示用户提问(question)。这是为了统一描述,将用户输入的信息内容统称为用户提问,客服输入的信息统称为客服回答。
[0041] 计算平台可以基于用户的当前问题,从知识库中的多个历史对话记录中获取至少一条对话记录,分别从中查询与当前问题对应的候选答案。在一个可选的实施例中,计算平台可以先将用户的当前问题与各个历史对话记录进行匹配,从匹配到的历史对话记录中查询相应候选答案。
[0042] 计算平台针对单条历史对话记录,可以将其与当前问题的文本进行拼接后,一起利用处理模块进行处理,得到相应的处理结果。其中,这里的处理模块例如是机器学习模型。然后,计算平台再根据该相应处理结果,确定单条历史对话记录中对应于当前问题的候选答案。计算平台基于各条历史对话记录对应的候选答案,可以针对用户的当前问题,提供客服答案。例如,在一个实施例中,可以将候选答案作为客服答案提供给用户,以供用户选择,在另一个实施例中,也可以将候选答案提供给客服人员,以供客服人员从中选择出作为客服答案的候选答案提供给用户。
[0043] 本说明书的技术构思下,针对处理模块,通过使用当前问题和候选记录中的更多信息,对其处理过程进行改进。下面详细介绍本说明书的技术构思。
[0044] 图2示出了根据本说明书一个实施例的针对用户问题提供客服答案的流程示意图。该流程的执行主体可以是任意具有一定计算能力的计算机、设备、服务器等,例如图1示出的计算平台。
[0045] 如图2所示,该流程包括:步骤201,获取用户的当前问题;步骤202,基于当前问题,从知识库中获取多个历史对话记录中的第一对话记录;步骤203,利用预先训练的预测模型,处理当前问题和第一对话记录的拼接文本,得到第一处理结果,其中,预测模型包括嵌入层,用于确定拼接文本中的各个字/词分别对应的各个向量表示,对应于第一对话记录的单个字/词的单个向量表示中,融合有相应对话轮次特征、用户或客服的角色特征中的至少一项;步骤204,根据第一处理结果,确定当前问题对应于第一对话记录的第一候选答案;步骤205,基于第一候选答案,针对当前问题提供客服答案。
[0046] 首先,在步骤201,获取用户的当前问题。可以理解,在客服场景下,用户问题可以是用户输入的描述与业务相关的信息。例如,“逾期了怎么办”、“贷款”,等等。这些信息可以通过诸如语音、文字之类的方式输入。当前问题可以用于表示在针对当前用户的当前客服流程中,需要处理的用户问题,亦即,待处理的用户问题。
[0047] 在可选的实施方式中,可以预设有多个与业务相关的语义单元,如关键词,当用户输入的信息出现至少一个与业务相关的语义单元时,确定当前输入的信息包含用户问题。例如,预设的多个与业务相关的语义单元包括“运动意外无忧险”,用户当前的客服对话为:
[0048] Q:您好
[0049] A:您好,请问有什么可以帮助您的吗
[0050] Q:我想咨询运动意外无忧险
[0051] 则在用户输入“我想咨询运动意外无忧险”的情况下,确定检测到用户问题。在一个实施例中,可以将当前语句“我想咨询运动意外无忧险”确定为当前问题。在另一个实施例中,还可以将本次会话的全部“Q:您好;A:您好,请问有什么可以帮助您的吗 Q:我想咨询运动意外无忧险”确定为当前问题。
[0052] 在其他可选的实现方式中,也可以预设有多个通用词,例如“你好”、“打扰一下”、“请教一个问题”等等,作为与业务无关的词汇,当用户输入的信息与通用词一致时,忽略,当出现不全是通用词的语句信息(如出现“意外险”)时,根据相应语句信息确定用户的当前问题。
[0053] 接着,通过步骤202,基于当前问题,从知识库中获取多个历史对话记录中的第一对话记录。其中,历史对话记录可以是预先通过客服对话日志或人工客服记录等收集的对话记录。单条对话记录可以包括针对一个业务问题(如运动意外无忧险的等待期是多久),或者一次完整客服会话(如前文的记载客服和用户之间的多轮对话的示例),本说明书对此不做限定。
[0054] 根据一个可能的设计,第一对话记录可以是多个历史对话记录中的任意一个对话记录。
[0055] 根据另一个可能的设计,还可以先将当前问题与知识库中的各个历史对话记录进行匹配,得到与当前问题相匹配的若干历史对话记录。而第一对话记录可以是与当前问题相匹配的若干历史对话记录中的任意一个对话记录。在将当前问题与历史对话记录的匹配,可以通过各种合理的方式进行。
[0056] 在一个实施方式中,针对知识库中的单个历史对话记录,可以将当前问题与其各个语句分别进行匹配。在当前问题与该历史对话记录中的任一个语句相匹配的情况下,确定当前用户问题与该单个历史对话记录相匹配。
[0057] 在另一个实施方式中,针对知识库中的单个历史对话记录,可以预先存储有与其对应的标准句或关键词,将当前问题与标准句或关键词的匹配结果,作为当前用户问题与该单个历史对话记录的匹配结果。这里的标准句可以是预先标注的标准问题,例如“运动意外无忧险的等待期是多久”,也可以是对话记录中做出的实质性回答(如运动无忧险无等待期)的前一个问题,等等。标准句通常可以与对话记录中用户所需的答案相对应。关键词可以通过诸如TF-IDF、TextRank之类的文本关键词提取方法提取,也可以按照预定规则确定,例如对话记录中出现的预设业务关键词等等。关键词可以包括若干词汇(如运动无忧险、等待期等),也可以包括至少一个短语(如运动无忧险的等待期),在此不作限定。
[0058] 在又一个实施方式中,还可以将当前问题,以及单条历史对话记录或其标准句,分别通过编码网络(如DNN编码网络等)进行处理,得到语义向量,通过当前问题对应的语义向量与单条历史对话记录或其标准句对应的语义向量的匹配,得到当前问题与该单条历史对话记录的匹配结果。
[0059] 在其他可能的实施方式中,还可以采取其他方式将当前问题与单条历史对话记录进行匹配,在此不再赘述。可以理解,关键词或标准问的数据量比历史对话记录的数据量小得多,因此可以减少数据处理量,节约处理资源,提高数据处理效率。
[0060] 其中,在以上各种可能的实施方式中,当前问题与单条历史对话记录的匹配结果可以通过匹配度来量化衡量。在不同的情形下,匹配度的确定方式也稍有不同。
[0061] 在一个实施例中,当前用户问题与单条历史对话记录的匹配涉及语义向量与语义向量的匹配,此时,匹配度可以与向量相似度正相关。向量相似度可以通过诸如余弦相似度、欧式距离之类的方式确定。
[0062] 在另一个实施例中,当前问题与单条历史对话记录的匹配涉及当前用户问题的关键词集与历史对话记录的关键词集的匹配,其匹配度可以与两个关键词集的匹配度正相关。关键词集的匹配例如可以通过Jaccard系数等方式实现。
[0063] 在又一个实施例中,当前问题与单条历史对话记录的匹配涉及当前用户问题的关键词与历史对话记录或其标准句的文本进行匹配,此时,可以根据历史对话记录或其标准句的文本命中当前用户问题的关键词的数量占比确定当前用户问题与单条历史对话记录的匹配度。例如,当前用户问题的关键词数量为3,如果历史对话记录或其标准句的文本包含其中之二,则当前用户问题与单条历史对话记录的匹配度可以为2/3,约为66.667%。
[0064] 在其他实施例中,当前用户问题与单条历史对话记录的匹配度还可以根据其他匹配情形合理确定,本说明书对此不做限定。
[0065] 进一步地,根据当前问题分别与知识库中的各条历史对话记录的匹配结果,可以选择出与当前用户问题匹配度较高的历史对话记录,作为候选记录。所谓候选记录,可以理解为待从中查找客服答案的对话记录。例如,可以按照与当前用户问题的匹配度由大到小的顺序,选择预定数量(如3条)的历史对话记录,作为候选记录。再例如,可以选择与当前用户问题的匹配度大于预定阈值的历史对话记录,作为候选记录。此时,第一对话记录可以是候选记录中的任意一条对话记录。
[0066] 然后,通过步骤203,利用预先训练的预测模型,处理当前问题和第一对话记录的拼接文本,得到第一处理结果。其中,预测模型可以用于根据当前问题和第一对话记录的拼接文本,在第一对话记录中查找(预测)当前用户问题对应的答案。
[0067] 预测模型作为机器学习模型,例如可以是BERT、XL-Net、Span-Bert等等,通常更善于处理数值。因此,可以将每个单词及特殊符号都转化为向量表示的数值形式。也就是用向量表示单个字、词或者特殊符号。对于输入的拼接文本的文字序列,预测模型可以通过嵌入层(embedding)对其处理,以将文字转化为机器善于处理的向量表示形式。预测模型可以将单个字符(如一个汉字)转化成向量表示,也可以将分词后的各个词汇进行向量化表示,在此不做限定。
[0068] 常规技术中,通常通过每个字符/词汇的以下嵌入向量(embedding)来对其进行向量表示:位置嵌入向量Position Embeddings、字/词嵌入向量Token Embeddings和段落嵌入向量Segment Embeddings。其中:位置嵌入向量是NLP(自然语言处理)中表明句子中词汇顺序的重要特征,其可以通过对词汇的位置信息进行编码确定,可以令BERT感知字/词之间的位置关系,例如通过模型学习得到;字嵌入向量可以是根据预先通过语料库训练的字向量模型中确定的相应字符的字向量。这里的字向量模型可以是诸如独热表示(one-hot)、word2vec之类的模型;段落嵌入向量可以是词汇对应的段落整体的一个嵌入向量,用于表示拼接文本的分割,例如为当前用户问题和第一对话记录分别分配的各个整体嵌入向量,单个字符可以使用相对应的整体嵌入向量。
[0069] 嵌入层涉及的各个嵌入向量可以分别理解为对字/词的各个特征的描述。对于以上拼接文本,预测模型可以将其中的各个字/词转换为向量表示,从而进行处理。每个字/词在转换为向量表示时,可以对描述各种特征的各个嵌入向量进行融合。因此,在本说明书中,可以将预测模型对字/词在转换为向量表示的结构称为嵌入层。如图3所示,将拼接文本中的字/词输入预测模型,嵌入层可以对位置嵌入向量Position Embeddings、字/词嵌入向量Token Embeddings和段落嵌入向量Segment Embeddings中的至少一种进行融合,得到可以处理的向量表示。可以理解,嵌入层相当于特征融合层,那么相应地,嵌入层之前还可以包括特征提取层,在此不再赘述。
[0070] 为了描述更加清晰,以预测模型为BERT(Bidirectional  Encoder Representation from Transformers,多层双向转换解码,其中“双向”表示模型在处理某一个词时,它能同时利用前面的词和后面的词两部分信息)模型为例进行说明。如图3所示,BERT模型的输入部分可以是当前用户问题和单个候选记录的拼接文本的字/词线性序列,两个部分通过分隔符SEP分割,最前面和最后增加两个标识符号CLS和SEP。拼接文本可以通过各种分词方法分割成多个字符,也可以分割成多个词汇,在此不作限定。每个字符/词汇可以包括以下嵌入向量(embedding)中的至少一个:位置嵌入向量Position Embeddings、字/词嵌入向量Token Embeddings和段落嵌入向量Segment Embeddings。其中,对于Token Embeddings,图3示出的是按照字符拆分,因此后续描述中使用字嵌入向量,在其他实施例中,也可以是词嵌入向量,在此不作限定。
[0071] 常规技术中,通常利用以上若干种嵌入向量的融合(例如加和、求平均等)描述文本中的字/词。接着可以通过预测模型中的后续处理,获取处理结果。例如通过BERT中的编码层(Encoder)得到语义向量,再通过解码层(Decoder)得到候选答案或其位置信息。
[0072] 然而,客服场景中的对话记录是较特殊的文本,其具有交互特点,如果以拼接的普通文本形式进行建模,可能影响模型的性能。为了解决该问题,使得预测模型充分考虑对话文本与普通文本的区别,在本说明书的技术构思下,考虑在嵌入层的字/词的向量表示中,融合对话轮次特征、用户或客服的角色特征中的至少一项。例如,可以在预测模型的嵌入层增加角色嵌入向量(Role Embedding)和/或轮次嵌入向量(Sequence Embedding)。
[0073] 对话轮次特征可以明确对话过程中的语义单元划分,角色特征可以明确语义单元的立场来源,对于对话文本的语义理解均具有重要意义。举例而言,一段对话中包含“我逾期了”、“严重吗”,如果对文本简单拼接为“我逾期了严重吗”,很可能表示同一个人对逾期后果的疑问。但如果考虑轮次特征,将单独输入的一条对话信息作为一个轮次,可能为:轮次1,“我逾期了”;轮次2,“严重吗”,可能表示同一个人对逾期后果的疑问,也可能表示一个人陈述了逾期的事件,另一个人对逾期程度(如1天轻微逾期、3个月严重逾期等)表示疑问。另一方面,如果考虑角色特征,这两句话是否表示一个人的意思表达就明确了,如果不是同一个人的意思表达,那么“严重吗”这句话更可能表示另一个人对于逾期者的逾期程度的疑问,否则,可能表示同一个人对逾期后果的疑问。
[0074] 为了更明确地描述本说明书的技术方案,仍以图3对应的文本为例,以一个同时融入角色特征和轮次特征的实施例为具体示例,相应的嵌入层可以改进为图4的形式。单个字的角色嵌入向量用ER表示,下标1表示第一种角色,例如用户,下标2表示第二种角色,例如客服。轮次嵌入向量用ES表示,下标1表示第一轮次,例如用户问题,下标2表示第二轮次,例如客服回复。
[0075] 值得说明的是,为了便于说明,图3、图4中的简短句子仅仅作为示例文本。实践中,在单个向量表示融合有对话轮次特征的情况下,对话轮次特征通过各个维度都是第一预定值(如1、2、3、4、5等当前语句在相应历史对话记录中的轮次相对应数值)的轮次嵌入向量描述,在单个向量表示融合有对话轮次特征的情况下,用户或客服的角色特征通过各个维度都是第二预定值(如0、1等用于区分角色的数值)的角色嵌入向量描述。在一个具体例子中,单条历史对话记录的角色特征和轮次特征例如可以为表1示出的形式:
[0076] 表1 历史对话记录的角色特征和轮次特征示例
[0077] 对话记录 角色特征 轮次特征A:您好,请问有什么可以帮助您的吗 11111111111111 11111111111111
Q:运动意外无忧险 0000000 2222222
A:亲,您已经进入人工客服,请问有什么可以帮助您的 1111111111111111111111 3333333333333333333333Q:运动意外无忧险的等待期是多久 00000000000000 44444444444444
A:运动意外无忧险无等待期 11111111111 55555555555
Q:噢噢,好的,赞! 00000000 66666666
[0078] 其中,表1中给出了作为示例的对话记录中各个字符分别对应的角色特征和轮次特征,例如,A:“运动意外无忧险无等待期”对应的角色为客服,轮次为第5轮次,则该句子中单个字对应的角色特征可以为1(表1中每个字符对应一个角色特征1),轮次特征可以为5(表1中每个字符对应一个轮次特征5)。进一步地,相应角色嵌入向量可以是每个维度的值都为1的向量,相应轮次嵌入向量可以是每个维度的值都为5的向量。可以理解,角色嵌入向量和轮次嵌入向量的维数均可以与字嵌入向量的维数一致。在以上示例中,用户和客服的角色分别用数值0和1表示,但实践中,也可以通过其他能够有效区分角色的数值表示,例如1和2等。以上示例中,轮次特征从数值1开始,其他实施例中也可以是其他形式,例如轮次特征从0开始,并且,可以每切换一条输入的信息(不计角色)改变一次轮次特征,也可以角色变换一次改变一次轮次特征,等等。
[0079] 针对第一对话记录,在嵌入层,通过将轮次特征和/或角色特征融入向量表示中,使得预测模型能够获取并利用第一对话记录的更多信息。经过嵌入层处理后的嵌入向量可以由预测模型继续处理,从而在充分考虑轮次和/或角色的影响的基础上处理以上拼接文本,得到相应的第一处理结果。该第一处理结果可以是针对当前问题,在第一候选记录中查询到的候选答案(例如运动意外无忧险无等待期),也可以是相应候选答案的位置(例如轮次5)。其中,在预测模型训练过程中,可以通过以上方式处理样本拼接文本,并根据标注的客服答案确定的样本标签(客服答案文本标签或客服答案位置标签)调整模型参数,以预测模型的处理结果与相应客服答案文本标签或者客服答案位置标签相一致为目标,调整模型参数,从而训练预测模型。
[0080] 可以理解,预测模型得到第一处理结果的过程,相当于带着当前问题对第一对话记录进行机器阅读,从中查找答案的过程。如此,对于知识库中的多个历史对话记录,或从这多个历史对话记录种确定的若干候选记录,可以分别由预测模型进行处理,得到各个相应的处理结果。
[0081] 进一步地,在步骤204中,根据第一处理结果,确定当前问题对应于第一对话记录的第一候选答案。可以理解,针对当前问题,第一处理结果可以是答案文本,也可以是答案位置,根据第一处理结果,可以获取可以第一对话记录中,对应于当前问题的第一候选答案。
[0082] 然后,通过步骤205,基于第一候选答案,针对当前问题提供客服答案。本领域技术人员理解,可以从第一对话记录中查询得到第一候选答案,推而广之,也可以从其他候选记录中确定各个其他候选答案。
[0083] 在一个可选的实现方式中,可以将各个候选答案提供给用户,以供用户从中获取符合自身需求的客服答案。
[0084] 在另一个可选的实现方式中,可以将各个候选答案提供给人工客服,由人工客服结合当前问题快速选择符合需求的答案。
[0085] 在又一个可选的实现方式中,还可以对各个候选答案进行排序,并根据排序结果确定客服答案。例如按照当前问题与各个候选记录的匹配度,将相应的各个候选答案排序,以提供给用户或客服。再例如可以根据候选答案与当前问题的匹配程度,将各个候选答案排序后提供给用户或客服,或者根据排序结果从中选择至少一个候选答案作为客服答案提供给用户或客服。这种根据候选答案与当前问题的匹配程度排序的方式通常适用于,知识库的对话记录中客服答案相对标准化,可以明确业务主体、业务内容的情形。例如,对话记录中包括“Q:我想使用某APP学英语,可以不注册直接用验证码登录吗 A:使用某APP学英语,可以不注册直接用验证码登录”的情形。而对于对话记录中包括非标准化客服答案的情形,则不太适用。例如“Q:我想使用某APP学英语,可以不注册直接用验证码登录吗 A:可以的”这种情形,由于候选答案为“可以的”,则可能不太适合将候选答案与当前问题进行匹配的实施方式。
[0086] 回顾以上过程,本说明书实施例提供的方法,在根据历史对话文本确定客服答案的过程中,通过融合对话文本的角色特征和/或轮次特征,从而利用更丰富的文本信息,提高机器阅读理解的性能。
[0087] 值得说明的是,利用相同的训练集进行建模以及相同的测试集进行测试的情况下,经过将本说明书提供的技术方案与传统检索、常规技术中的机器阅读方法的对比,预测模型的准确度和F1分数都得到明显提升。其中,融合角色特征相较融合轮次特征,模型性能更好,而同时融合角色特征和轮次特征相较融合角色特征、轮次特征中的单个特征,模型性能会更好。
[0088] 根据另一方面的实施例,还提供一种针对用户问题提供客服答案的装置。图5示出根据一个实施例的针对用户问题提供客服答案的装置500。该装置可以设于具有一定处理能力的终端、设备或服务器,例如可以是图1中的计算平台。
[0089] 如图5所示,针对用户问题提供客服答案的装置500包括:
[0090] 问题获取单元51,配置为获取用户的当前问题;
[0091] 记录获取单元52,配置为基于当前问题,从知识库中获取多个历史对话记录中的第一对话记录;
[0092] 处理单元53,配置为利用预先训练的预测模型,处理当前问题和第一对话记录的拼接文本,得到第一处理结果,其中,预测模型包括嵌入层,用于确定拼接文本中的各个字/词分别对应的各个向量表示,对应于第一对话记录的单个字/词的单个向量表示中,融合有相应对话轮次特征、用户或客服的角色特征中的至少一项;
[0093] 确定单元54,配置为根据第一处理结果,确定当前问题对应于第一对话记录的第一候选答案;
[0094] 提供单元55,配置为基于第一候选答案,针对当前问题提供客服答案。
[0095] 根据一个实施方式,问题获取单元51进一步配置为:
[0096] 检测用户当前输入的信息中是否包含预定的关键词;
[0097] 在检测到预定的关键词的情况下,根据用户当前输入的信息确定用户的当前问题。
[0098] 在一个可选的实现方式中,记录获取单元52进一步配置为:
[0099] 将当前问题分别与多个历史对话记录进行匹配;
[0100] 从与当前问题相匹配的若干历史对话记录中,获取第一对话记录。
[0101] 根据一方面的实施例,在单个向量表示融合有对话轮次特征的情况下,对话轮次特征通过各个维度都是第一预定值的轮次嵌入向量描述,第一预定值与当前语句在相应历史对话记录中的轮次相对应。
[0102] 根据另一方面的实施例,在单个向量表示融合有对话轮次特征的情况下,用户或客服的角色特征通过各个维度都是第二预定值的角色嵌入向量描述,第二预定值是与当前语句的用户或客服角色相对应。
[0103] 根据一个可能的设计,提供单元55配置为执行以下中的一项:
[0104] 将第一候选答案,及其他候选答案一起作为客服答案提供给用户或人工客服;
[0105] 比较第一候选答案与当前问题的第一关联度,在第一关联度满足预定条件的情况下,将第一候选答案作为客服答案提供给用户。
[0106] 值得说明的是,图5所示的装置500是与图2示出的方法实施例相对应的装置实施例,图2示出的方法实施例中的相应描述同样适用于装置500,在此不再赘述。
[0107] 根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
[0108] 根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。
[0109] 本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0110] 以上所述的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。