具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
目前,较好的文本相似度计算方法是基于神经网络模型的文本相似度计算方法,其利用单个神经网络模型将各个文本编码为相应的向量表示,然后计算任意两个文本的向量表示的相似度作为该两个文本的相似度。同一文本在实际中针对不同的租户可能会表示不同的语义,例如文本“最新的苹果多少钱?”针对贩卖水果的租户和贩卖手机的租户分别表示不同的意思,其中,针对贩卖水果的租户其表示“最新的水果苹果多少钱?”,而针对贩卖手机的租户其表示“最新的苹果牌手机多少钱?”。但是每个神经网络模型对于同一文本针对所有租户只能生成表示某种固定语义的某一固定向量表示,其不能对于同一文本针对不同的租户生成表示不同语义的不同向量表示。
从而,即使用户针对某一租户提出的文本问题实际上与某一标准文本问题是语义最相关的,但利用目前的基于神经网络模型的文本相似度计算方法计算得到的这两个问题的文本相似度可能不是最大的,因而可能不会把该某一标准文本问题确定为针对该租户的与用户提出的文本问题最相关的标准文本问题,因此,不能准确地找出与用户提出的文本问题最相关的标准文本问题。
图1示出了按照本发明的一个实施例的用于训练模型的方法的总体流程图。图1所示的方法100可以利用任何具有计算能力的计算设备C来实现,其中,计算设备C可以是例如但不局限于台式计算机、笔记本电脑、服务器或工业计算机等。
如图1所示,在方框102,获取足够数量的普通文本和多组文本问题,其中,每一组文本问题与多个租户的其中一个租户关联并包括足够数量的针对租户提出的文本问题。这里,普通文本是指与租户无关的文本,例如但不局限于,普通文本可以是来源于神马搜索的请求和搜索结果。
在方框106,利用所获取的普通文本来训练得到用于生成文本的向量表示的第一神经网络模型。这里,该第一神经网络模型也称为基础神经网络模型。本领域技术人员理解,该第一神经网络模型具有一个输入层、一个输出层和至少一个隐藏层。在本实施例中,该第一神经网络模型属于时间卷积网络(TCN),其与其它神经网络(例如,循环神经网络(RNN)或卷积神经网络(CNN)等)相比,具有更快的计算速度和更高的计算精度。
在方框110,利用所获取的多组文本问题中的每一组文本问题所包括的各个文本问题对该第一神经网络模型做进一步训练,以获得针对与该组文本问题关联的租户的用于生成文本的向量表示的第二神经网络模型。这里,在对该第一神经网络模型做进一步训练时,保持该第一神经网络模型的输入层和隐藏层中的各个参数值不改变,只是微调该第一神经网络模型的输出层中的各个参数的值,从而,该第一和第二神经网络模型的输入层和隐藏层的参数值是相同的,但它们的输出层的参数值不相同。通过方框110,可以得到针对该多个租户各自的第二神经网络模型。
在方框114,存储训练得到的该第一神经网络模型和针对该多个租户各自的第二神经网络模型。
这里,对于该第一神经网络模型,存储其输入层、隐藏层和输出层的各个参数值,而对于针对该多个租户各自的第二神经网络模型,仅存储其的输出层的各个参数值,从而,当要用到针对该多个租户中的某个租户的第二神经网络模型时,可以提取所存储的第一神经网络模型的输入层和隐藏层的参数值以及所存储的针对该某个租户的第二神经网络模型的输出层的参数值,来构成针对该某个租户的第二神经网络模型。通过这种存储方式,可以大大减少用于保存神经网络模型的存储空间。
图2示出了按照本发明的一个实施例的用于回答用户提问的方法的总体流程图。
如图2所示,在方框202,当接收到用户针对多个租户中的某一租户提出的文本问题时,智能客服机器人从所存储的各个问答对中,召回其标准文本问题与用户提出的文本问题相关的那些问答对。这里,假设所召回的问答对总共包括N个标准问题。
在方框206,智能客服机器人检查该N个标准文本问题和用户提出的文本问题的向量表示是否存在于所存储的向量表示中。
在方框210,如果检查结果表明该N个标准文本问题和用户提出的文本问题中的一个或多个文本问题的向量表示已存在于所存储的向量表示中,则智能客服机器人从所存储的向量表示中检索出该一个或多个文本问题各自的向量表示。
在方框214,如果检查结果表明该N个标准文本问题和用户提出的文本问题中的一个或若干文本问题Q的向量表示尚未存在于所存储的向量表示中,则智能客服机器人将该一个或若干文本问题中的每一个文本问题分别输入给已训练的第一神经网络模型和针对该某一租户的第二神经网络模型,以使得该第一神经网络模型和针对该某一租户的第二神经网络模型分别针对该每一个文本问题生成向量表示。其中,该第一神经网络模型是利用与租户无关的普通文本训练得到的,以及,针对该某一租户的第二神经网络模型是利用针对该某一租户提出的文本问题对该第一神经网络模型进一步训练得到的。
在方框218,智能客服机器人将该第一神经网络模型针对该每一个文本问题生成的向量表示和针对该某一租户的第二神经网络模型针对该每一个文本问题生成的向量表示拼接在一起(即,其中一个向量表示的尾部连接另一个向量表示的头部),作为该每一个文本问题的向量表示,从而得到该一个或若干文本问题各自的向量表示。
在方框220,存储所拼接的该每一个文本问题的向量表示。
通过方框210、214、218和220,获得了该N个标准文本问题和用户提出的文本问题各自的向量表示。
在方框222,智能客服机器人计算用户提出的文本问题的向量表示与该N个标准文本问题中的每一个标准文本问题的向量表示的Cosine相似度,作为用户提出的文本问题与该每一个标准文本问题的文本相似度,从而得到用户提出的文本问题与该N个标准文本问题中的各个标准问题的文本相似度。
在方框226,智能客服机器人确定该N个标准文本问题中的与用户提出的文本问题的文本相似度最大的那个标准文本问题,作为与用户提出的文本问题最相关的标准文本问题。
在方框230,智能客服机器人从所召回的问答对中,选出其标准文本问题是所确定的标准文本问题的问答对。
在方框234,智能客服机器人将该选出的问答对所包括的文本答案呈现给用户,以作为对用户提出的文本问题的回答。
在本实施例中,对于用户针对某一租户提出的特定文本问题和若干标准文本问题,每一个文本问题的向量表示都是通过将利用与租户无关的普通文本训练得到的第一神经网络模型所生成的向量表示和利用针对该某一租户提出的文本问题训练得到的第二神经网络模型所生成的向量表示拼接而得到的,从而,该特定文本问题和该若干标准文本问题中的每一个文本问题的向量表示体现了该文本问题针对该某一租户的语义,在这种情况下,如果该特定文本问题与该若干标准文本问题中的某一标准文本问题针对该某一租户语义最相关,那么该特定文本问题与该某一标准文本问题的基于向量表示计算的文本相似度最大,因而,该某一标准文本问题肯定被确定为与该特定文本问题最相关的标准文本问题,因此,本实施例的方案能够针对各个租户准确地找出与用户提出的文本问题最相关的标准文本问题。
其它变型
本领域技术人员将理解,虽然在上面的实施例中,该第一和第二神经网络模型的输入层和隐藏层的参数值都相同但输出层的参数值不相同,然而,本发明并不局限于此。在本发明的其它一些实施例中,也可以是该第一和第二神经网络模型的输入层或隐藏层的参数值不相同,或者该第一和第二神经网络模型的输入层、隐藏层和输出层中的至少两个层的参数值不相同。
本领域技术人员将理解,虽然在上面的实施例中,在方框222计算两个文本问题的向量表示的Cosine相似度,作为该两个文本问题的文本相似度,然而,本发明并不局限于此。在本发明的其它一些实施例中,例如但不局限于也可以计算两个文本问题的向量表示的Jaccard相似度或BM25相似度等,作为该两个文本问题的文本相似度。
本领域技术人员将理解,虽然在上面的实施例中,在获取一个文本问题的向量表示时,如果已经存储有该文本问题的向量表示,则不计算该文本问题的向量表示,而是直接使用所存储的该文本问题的向量表示,以加快处理速度,然而,本发明并不局限于此。在本发明的其它一些实施例中,在获取一个文本问题的向量表示时,也可以直接计算该文本问题的向量表示。
本领域技术人员将理解,虽然在上面的实施例中,文本问题的向量表示是通过将该第一神经网络模型生成的向量表示与该第二神经网络模型生成的向量表示拼接得到的,然而,本发明并不局限于此。在本发明的其它一些实施例中,文本问题的向量表示也可以通过将该第一神经网络模型生成的向量表示与该第二神经网络模型生成的向量表示进行其它任何合适的组合得到,例如但不局限于,将该第一神经网络模型生成的向量表示与该第二神经网络模型生成的向量表示相加等。
本领域技术人员将理解,虽然在上面的实施例中,该第一神经网络模型和该第二神经网络模型属于时间卷积网络,然而,本发明并不局限于此。在本发明的其它一些实施例中,该第一神经网络模型和该第二神经网络模型也可以属于其它类型的神经网络,例如但不局限于,循环神经网络或卷积神经网络等。
图3示出了按照本发明的一个实施例的用于文本排序的方法的流程图。图3所示的方法例如但不局限于可以由智能客服机器人在任何具有计算能力的计算设备上来实现,其中计算设备可以是例如但不局限于台式计算机、笔记本电脑、服务器或工业计算机等。
如图3所示,方法300可以包括,在方框302,获取多个文本问题各自的向量表示,其中,所述多个文本问题包括至少一个标准文本问题和用户针对某一租户提出的特定文本问题,所述多个文本问题中的任一文本问题的向量表示是通过将第一神经网络模型针对所述任一文本问题生成的向量表示与第二神经网络模型针对所述任一文本问题生成的向量表示组合得到的,所述第一神经网络模型是利用与租户无关的文本训练得到的,以及,所述第二神经网络模型是利用针对所述某一租户提出的文本问题对所述第一神经网络模型训练得到的。
方法300还可以包括,在方框304,基于所获取的向量表示,计算所述特定文本问题与所述至少一个标准文本问题中的各个标准文本问题的文本相似度。
方法300还可以包括,在方框306,基于所计算的文本相似度,确定所述至少一个标准文本问题中的与所述特定文本问题的文本相似度最大的标准文本问题,作为与所述特定文本问题最相关的标准文本问题。
在一个方面,所述第一神经网络模型的输入层的参数值和所述第二神经网络模型的输入层的参数值相同,以及,所述第一神经网络模型的隐藏层的参数值和所述第二神经网络模型的隐藏层的参数值相同。
在另一个方面,方框302可以包括:检查已存储的各个向量表示中是否存在所述多个文本问题的向量表示;如果所述多个文本问题中的一个或若干文本问题的向量表示没有存在于所述已存储的各个向量表示中,则利用所述第一神经网络模型和所述第二神经网络模型来计算所述一个或若干文本问题各自的向量表示;以及,如果所述多个文本问题中的一个或多个文本问题的向量表示已存在于所述已存储的各个向量表示中,从所述已存储的各个向量表示中检索出所述一个或多个文本问题各自的向量表示,其中,方法300还可以包括:存储所计算的所述一个或若干文本问题的向量表示。
在又一个方面,所述第一神经网络模型和所述第二神经网络模型属于时间卷积网络。
在再一个方面,所述组合是将所述第一神经网络模型生成的向量表示与所述第二神经网络模型生成的向量表示进行拼接。
图4示出了按照本发明的一个实施例的用于文本排序的装置的示意图。图4所示的装置400可以利用软件、硬件或软硬件结合的方式来实现。
如图4所示,装置400可以包括获取模块402、计算模块404和确定模块406。获取模块402用于获取多个文本问题各自的向量表示,其中,所述多个文本问题包括至少一个标准文本问题和用户针对某一租户提出的特定文本问题,所述多个文本问题中的任一文本问题的向量表示是通过将第一神经网络模型针对所述任一文本问题生成的向量表示与第二神经网络模型针对所述任一文本问题生成的向量表示组合得到的,所述第一神经网络模型是利用与租户无关的文本训练得到的,以及,所述第二神经网络模型是利用针对所述某一租户提出的文本问题对所述第一神经网络模型训练得到的。计算模块404用于基于所获取的向量表示,计算所述特定文本问题与所述至少一个标准文本问题中的各个标准文本问题的文本相似度。确定模块406用于基于所计算的文本相似度,确定所述至少一个标准文本问题中的与所述特定文本问题的文本相似度最大的标准文本问题,作为与所述特定文本问题最相关的标准文本问题。
在一个方面,所述第一神经网络模型的输入层的参数值和所述第二神经网络模型的输入层的参数值相同,以及,所述第一神经网络模型的隐藏层的参数值和所述第二神经网络模型的隐藏层的参数值相同。
在另一个方面,获取模块402包括:用于检查已存储的各个向量表示中是否存在所述多个文本问题的向量表示的模块;用于如果所述多个文本问题中的一个或若干文本问题的向量表示没有存在于所述已存储的各个向量表示中,则利用所述第一神经网络模型和所述第二神经网络模型来计算所述一个或若干文本问题各自的向量表示的模块;以及,用于如果所述多个文本问题中的一个或多个文本问题的向量表示已存在于所述已存储的各个向量表示中,从所述已存储的各个向量表示中检索出所述一个或多个文本问题各自的向量表示的模块,其中,装置400还包括:用于存储所计算的所述一个或若干文本问题的向量表示的模块。
在又一个方面,所述第一神经网络模型和所述第二神经网络模型属于时间卷积网络。
在再一个方面,所述组合是将所述第一神经网络模型生成的向量表示与所述第二神经网络模型生成的向量表示进行拼接。
图5示出了按照本发明的一个实施例的计算设备的硬件结构图。如图5所示,计算设备500可以包括至少一个处理器502、存储器504、内存506和通信接口508,并且至少一个处理器502、存储器504、内存506和通信接口508经由总线510连接在一起。至少一个处理器502执行在存储器504中存储或编码的至少一个计算机可执行指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器504中存储计算机可执行指令,其当被执行时使得至少一个处理器502执行以下操作:获取多个文本问题各自的向量表示,其中,所述多个文本问题包括至少一个标准文本问题和用户针对某一租户提出的特定文本问题,所述多个文本问题中的任一文本问题的向量表示是通过将第一神经网络模型针对所述任一文本问题生成的向量表示与第二神经网络模型针对所述任一文本问题生成的向量表示组合得到的,所述第一神经网络模型是利用与租户无关的文本训练得到的,以及,所述第二神经网络模型是利用针对所述某一租户提出的文本问题对所述第一神经网络模型训练得到的;基于所获取的向量表示,计算所述特定文本问题与所述至少一个标准文本问题中的各个标准文本问题的文本相似度;以及,基于所计算的文本相似度,确定所述至少一个标准文本问题中的与所述特定文本问题的文本相似度最大的标准文本问题,作为与所述特定文本问题最相关的标准文本问题。
在一个方面,所述第一神经网络模型的输入层的参数值和所述第二神经网络模型的输入层的参数值相同,以及,所述第一神经网络模型的隐藏层的参数值和所述第二神经网络模型的隐藏层的参数值相同。
在另一个方面,对于所述获取多个文本问题各自的向量表示,当存储器504中存储的计算机可执行指令被执行时使得至少一个处理器502执行以下操作:检查已存储的各个向量表示中是否存在所述多个文本问题的向量表示;如果所述多个文本问题中的一个或若干文本问题的向量表示没有存在于所述已存储的各个向量表示中,则利用所述第一神经网络模型和所述第二神经网络模型来计算所述一个或若干文本问题各自的向量表示;如果所述多个文本问题中的一个或多个文本问题的向量表示已存在于所述已存储的各个向量表示中,从所述已存储的各个向量表示中检索出所述一个或多个文本问题各自的向量表示;以及,存储所计算的所述一个或若干文本问题的向量表示。
在又一个方面,所述第一神经网络模型和所述第二神经网络模型属于时间卷积网络。
在再一个方面,所述组合是将所述第一神经网络模型生成的向量表示与所述第二神经网络模型生成的向量表示进行拼接。
本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,所述可执行指令当被执行时使得计算机执行前述的任意方法。
上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。