具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
本说明书所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
这里对相关术语进行解释说明:
LLM:大语言模型(LargeLanguageModel),是一种基于统计和自然语言处理技术的建模方式,利用高容量的模型架构(如Transformer),在海量文本上进行训练,故此,它能够借助上述预训练得到大量先验知识,而模型问答就是由指令引导其给出相关知识的过程。常见的LLM包括ChatGLM、Chinese-Alpaca、Ziya-Llama、baichuan等等。
SFT:监督微调(SupervisedFinetuning),获取规模较小、但质量更高的数据集,对经过预训练的语言模型进一步训练,这个数据集可以出现在原始数据中,也可以是模型未见样本。
Prompt(提示):Prompt可以被理解为一种指定LLM生成侧重方向的方式,它是一段文本或语句,用于指导LLM生成特定类型、主题或格式的输出。通过精心设计的提示(Prompt)来引导一个基础模型朝着期望的先验方向进行是目前门槛最低的方法,有时候该方法也被成为无梯度调优。prompt利用了训练时看到的关联和先验信息,例如,可以通过类似“你是一个美食专家…”的Prompt方式,让LLM输出更加偏向美食维度的答案。
相关技术中,用户与APP(Application,应用程序)之间的交互主要以搜索或者推荐为主。比如用户根据自身的需求在搜索框中输入搜索词,APP根据搜索词向用户推送对应的目标对象;举个例子,在搜索框中键入“酸辣粉”,APP会推送售卖酸辣粉的店铺。又比如APP会将用户画像及历史行为等作为参考,预先确定好待推荐对象并展示在交互界面中供用户选择;举个例子,某个用户的用户画像为喜欢辣口味的菜品,则在用户打开APP之后,APP可以在交互界面中展示川渝火锅、麻辣香锅、或者辣椒炒肉等菜品或者店铺供用户选择。
上述方式在一定程度上可以满足用户需求,但对于泛意图的承接较薄弱,例如用户提出“减肥能吃哪些美食?”、“早餐吃什么”、“我不想吃米饭,有什么其他推荐?”之类的意图不够明确的问题时,对搜索而言,该诉求较长不够具体,导致搜索返回结果与问题的相关性较低,搜索返回结果不准确;对推荐而言,更多是考虑用户画像及历史行为等作为参考,也不能够实时针对性的对用户的区别于历史行为的即时诉求进行推荐,推荐结果不够准确。
基于此,本说明书实施例提供了一种对话内容生成方法以及对话内容生成模型的训练方法,可以预先对经过预训练的语言模型(也即上述的大语言模型)进行微调得到对话内容生成模型。在实际应用过程中,在接收用户的问题之后,首先判断该问题是否需要结合外部知识进行答复,如果不需要,则将该问题输入对话内容生成模型进行解答;如果需要,则从预设的知识库中获取目标知识,将问题、目标知识以及与目标知识对应的提示文本输入对话内容生成模型进行解答;本实施例考虑到仅输入问题由对话内容生成模型进行解答的方式不能实时获取外部的一些知识,可能会存在如缺乏事实性知识、无法处理时效性较强或者开放性的问题等缺陷,因此,为了进一步提高答复准确性,本申请实现在确定出该问题需要外部知识时,通过提示文本将目标知识注入对话内容生成模型,帮助对话内容生成模型获取更多的外部知识,两种对话内容生成方式的结合有利于准确解答用户的泛意图问题,提升对话内容的准确率和用户满意度。
在一示例性的实施例中,请参阅图1,图1为本说明书实施例提供的一种交互系统,所述交互系统包括服务端100和至少一个客户端200,示例性地,所述客户端200可以通过网络访问服务端100以使用服务端100提供的服务,包括但不限于商品配送服务、商品购买服务、阅读服务、音视频播放服务、或者搜索服务等等。
服务端100可以是安装在后台设备中为用户提供服务的程序。示例性的,如图1所示,该后台设备可以是服务器,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
客户端200可以是安装在用户设备中为用户提供服务的程序,客户端200包括但不限于应用程序APP、Web网页、小程序、插件或组件等。如图1所示,用户设备包括但不限于智能手机、个人数字助理、平板电脑、个人计算机、笔记本电脑、虚拟现实终端设备、增强现实终端设备等。
本说明书实施例提供的对话内容生成方法可以由服务端100和客户端200中的任一种来执行,或者由两者配合(两者各执行一部分步骤)来执行,本实施例对此不做任何限制。以服务端100执行所述对话内容生成方法为例,服务端100可以部署有对话内容生成模型,客户端200可以将用户输入的问题发送给服务端100,服务端100可以执行本说明书实施例提供的对话内容生成方法得到对话内容,进而可以将对话内容发送给客户端200,以使得客户端200可以展示该对话内容。或者也可以在客户端200中部署对话内容生成模型,由客户端200执行所述对话内容生成方法。
本说明书实施例提供的对话内容生成模型的训练方法可以由服务端100来执行,或者也可以由区别于服务端100的其他电子设备来执行,本实施例对此不做任何限制。
在另一示例性的实施例中,本说明书实施例提供了对话内容生成方法以及对话内容生成模型的训练方法可以由相同的电子设备来执行,或者也可以由不同的电子设备来执行,本实施例对此不做任何限制。
接下来对对话内容生成模型的训练过程进行示例性说明:
请参阅图2,本说明书实施例提供了一种对话内容生成模型的训练方法,包括:
在S101中,获取第一训练数据集,所述第一训练数据集包括若干问题样本及其对应的对话内容;所述若干问题样本包括若干第一问题样本和若干第二问题样本。
示例性的,第一问题样本为无需参考外部知识的问题,第二问题样本为需要参考外部知识的问题,具体问题可依据实际应用场景进行具体设置,本实施例对此不做任何限制。
在S102中,对于所述第二问题样本,根据所述第二问题样本从预设的知识库中获取目标知识,并生成与所述目标知识对应的提示文本。
示例性的,可以预先设置知识库,进而可以从知识库中检索到用于回答第二问题样本的目标知识。所述提示文本可以包含角色提示文本和对话内容提示文本,角色提示文本指示预训练语言模型从指定角色(如美食家、商品测评家等)角度进行作答;对话内容提示文本指示所述预训练语言模型参考所述目标知识对所述第二问题样本进行答复。也就是说,提示文本则可以控制知识注入的具体形式,使得预训练语言模型能够以期望方式进行作答。
在S103中,将所述第一问题样本输入预训练语言模型,以由所述预训练语言模型根据所述第一问题样本生成第一预测答复;以及,将所述第二问题样本、所述第二问题样本对应的目标知识以及与所述目标知识对应的提示文本输入所述预训练语言模型,以由所述预训练语言模型根据所述第二问题样本、所述目标知识以及所述提示文本生成第二预测答复;所述提示文本用于提示所述预训练语言模型参考所述目标知识对所述第二问题样本进行答复;以最小化所述第一预测答复和所述第一问题样本对应的对话内容之间的误差、以及所述第二预测答复和所述第二问题样本对应的对话内容之间的误差为优化目标,对所述预训练语言模型进行训练,得到对话内容生成模型。
本实施例中,实现通过(1)第一问题样本及其对应的对话内容,(2)第二问题样本、所述第二问题样本对应的目标知识、与所述目标知识对应的提示文本、以及所述第二问题样本对应的对话内容这两种训练数据来对预训练语言模型进行微调,即实现了对知识的模型内化,又能以外部知识作为补充,从而有利于提高答复准确性。上述第二种方式的引入帮助预训练语言模型获取更多外部知识,解决了实时性更新知识的注入问题,两种方式的结合有利于准确解答用户的泛意图问题,提升对话内容的准确率和用户满意度。
在一些实施例中,这里对第一训练样本集(若干问题样本及其对应的对话内容)进行示例性的说明:
所述第一训练数据集包括的若干问题样本可分为两类,也就是说,第一训练样本集可以包含(1)若干第一问题样本及其对应的对话内容;(2)若干第二问题样本及其对应的对话内容(也即“问答对”)。其中,第一问题样本为无需参考外部知识的问题,第二问题样本为需要参考外部知识的问题。
示例性的,可以根据真实用户在平台中提出的历史问题来构建第一训练样本集中的问题样本,并使得问题样本的分布情况与真实用户提出的问题的分布情况相同或相似、以及不同类型的问题样本之间的数量达到均衡,以便训练好的对话内容生成模型能够应对不同类型的实际问题。
示例性的,可以准备问题模板,然后对问题模板进行相似问题的扩充,以得到更多问题样本。举个例子,比如存在一问题模板为“早餐吃什么”,则进行相似问题扩充之后,可以获得“午餐吃什么”、“晚餐吃什么”等问题样本。
在一种可能的实现方式中,可以利用已有的知识图谱来构建问题样本及其对话内容。知识图谱可以根据销售对象及其属性构建得到,知识图谱中的节点包括实体节点和属性节点,任意一个实体节点用于表征销售对象,与任一实体节连接的至少一个属性节点用于表征销售对象具有的属性。
举个例子,以销售对象为菜品为例,请参阅图3,一个菜品可以包含{类目, 关联菜品, 节气, 城市, 口味, 时段, 做法, 场景, 功效, 食材, 季节, 区域, 节日, 省份,心情, 人群}等16种属性;以饺子举例,可以基于该菜品及其所具有的属性来构建如图4所示的知识图谱。
举个例子,比如问题样本为“给我推荐麻辣豆腐”,则可以找到知识图谱中有关于“麻辣豆腐”的实体节点,根据该实体节点与其他节点的连接关系,生成该问题样本对应的对话内容。
在另一种可能的实现方式中,可以利用经过预训练的其他语言模型来获得问题样本对应的对话内容。例如可以将问题样本以及与问题样本对应的提示文本输入经过预训练的其他语言模型,以使得其他语言模型能够输出期望的对话内容。
在又一种可能的实现方式中,可以利用外部的搜索引擎来获得问题样本对应的对话内容。本实施例对此不做任何限制。
在一些实施例中,这里对知识库进行示例性说明:
知识库可以只存储一种类型的知识,例如结构化的知识图谱。或者,为了提高答复准确性和多样性,知识库包括不同类型的至少两个知识子库,存储结构化的知识图谱和非结构化的内容如文本、图像、视频和音频中的至少一种。
示例性的,知识库可以包括第一知识子库、第二知识子库和第三知识子库中的至少两个。
请参阅图4,第一知识子库包含知识图谱,知识图谱中的节点包括实体节点和属性节点,任意一个实体节点用于表征销售对象,与任一实体节连接的至少一个属性节点用于表征销售对象具有的属性;请参阅图3,以销售对象为菜品为例,一个菜品可以包含{类目,菜品,节气,城市,口味,时段,做法,场景,功效,食材,季节,区域,节日,省份,心情,人群}等16种属性;当然,也可以包含更少或更多的属性,本实施例对此不做任何限制。
在一种可能的实现方式中,对于知识图谱中的缺失边,可以利用经过预训练的其他语言模型来构建菜品与属性之间的关系,或者也可以利用外部的搜索引擎所搜索到的知识来构建菜品与属性之间的关系。举个例子,例如“人群”,原知识图谱没有人群与菜品的挂载关系,可以利用经过预训练的其他语言模型和百科知识中的至少一种进行推理,如老人人群→软食→粥→xx粥,再如减肥人群→低脂→低脂食材&烹饪方式组合条件→xx沙拉等,进行推理构边,从而构建出人群与菜品之间的挂载关系。
在另一种可能的实现方式中,对于知识图谱中的实体节点和属性节点已有的连接关系,也可以经过预训练的其他语言模型的答复、或者外部的搜索引擎的搜索内容进行校准,以提高准确性。
所述第二知识子库包含与不同销售对象对应的科普文本,例如不同菜品的菜谱或者来源(如麻辣豆腐的做法、粽子的起源等),或者不同商品的零件构成、材质或者起源(如衣物的材质、汽车模型包含的零件)等,可以从相关的科普网站中获取。
所述第三知识子库包含与不同销售对象对应的若干文本及其文本向量。示例性的,所述第三知识子库包含的文本向量是通过将与不同销售对象分别对应的文本输入预先训练好的向量生成模型进行转换得到的。
所述向量生成模型通过以下方式训练得到:获取第二训练数据集,第二训练数据集包括若干第三问题样本,其中一部分第三问题样本携带有正确对话内容、以及另一部分第三问题样本携带错误对话内容;将第二训练数据集输入向量生成模型,以由向量生成模型将第三问题样本及其答复文本分别转换为文本向量,以最大化第三问题样本的文本向量与正确对话内容的文本向量之间的相似度、以及最小化第三问题样本的文本向量与错误对话内容的文本向量之间的相似度为优化目标,对向量生成模型进行训练。也就是说,训练好的向量生成模型能够使得问题的文本向量和正确答复的文本向量之间尽可能相似、以及问题的文本向量和错误答复的文本向量之间尽可能不同,从而能够从向量角度对一些未知意图的问题进行解答。
举个例子,在菜品推荐场景中,第三问题样本可以是诸如“我不知道吃什么”、“肚子不舒服,不想吃饭了”等意图不明确的问题,与之对应的正确答复诸如“那推荐你吃点XX粥吧,XX粥营养美味……”,与之对应的错误答复诸如“今天天气刚刚好,温度是30℃……”。训练好的向量生成模型能够使得问题“肚子不舒服,不想吃饭了”的文本向量和正确答复“那推荐你吃点XX粥吧,XX粥营养美味……”的文本向量之间尽可能相似,也即两个文本向量之间的距离尽可能短,而问题“肚子不舒服,不想吃饭了”的文本向量和错误答复“今天天气刚刚好,温度是30℃……”的文本向量之间尽可能不同,也即两个文本向量之间的距离尽可能远。在一些实施例中,对于需要外部知识的第二问题样本,可以根据所述第二问题样本从预设的知识库中获取目标知识,并生成与所述目标知识对应的提示文本。
在一种可能的实现方式中,知识库包括第一知识子库、第二知识子库和第三知识子库中的至少两个。可以从知识库包含的所有知识子库中均获取与第二问题样本相关的目标知识。
在另一种可能的实现方式中,可以对第二问题样本进行意图识别,获得意图信息;以及,对第二问题样本进行槽位提取,获取槽位信息;根据意图信息和槽位信息,从至少两个知识子库中确定目标知识子库,并从目标知识子库中获取与第二问题样本对应的目标知识。
示例性的,意图信息可以包括但不限于“推荐意图”、“科普意图”以及“未知意图”等,槽位信息可以包括但不限于销售对象以及销售对象的属性信息。
示例性的,意图识别是指根据给定的文本内容,判断用户的意图或需求是什么。可以通过预先训练好的意图识别模型来进行。意图识别模型的训练过程涉及以下步骤:
(1)数据准备:首先,需要准备一个标注好的训练数据集。训练数据集应包含多个文本样本和相应的意图标签。
(2)特征提取:将文本样本转换为机器学习算法可以处理的特征表示形式。例如使用词袋模型或TF-IDF方法,将文本转化为向量表示。或者,还可以使用词嵌入(如Word2Vec、GloVe等)进行更高级的特征表示。
(3)模型选择和训练:选择适合意图识别任务的机器学习算法或深度学习模型。机器学习算法例如包括朴素贝叶斯、支持向量机(SVM)、决策树、随机森林等;深度学习模型例如包括循环神经网络(RNN)、长短期记忆网络(LSTM)、卷积神经网络(CNN)等。使用训练数据对所选模型进行训练。
(4)模型评估和调优:使用评估数据集对训练好的模型进行性能评估,计算模型在意图识别任务上的准确率、召回率、F1值等指标。对于性能不够理想的模型,可以尝试调整超参数、增加数据量、使用正则化方法等进行调优。从而得到意图识别模型。
在意图识别模型训练好之后,模型会根据输入的问题,输出预测的意图标签。
示例性的,槽位提取指的是从给定文本中识别和提取出特定信息的过程。在自然语言处理中,槽位通常表示文本中的关键信息或参数。槽位提取可以通过以下几种方式实现:
(1)基于规则的方法:使用预定义的规则或正则表达式来匹配和提取特定模式的文本信息,如电话号码、日期、地址、菜品、菜品属性(请参阅图3)等。
(2)机器学习方法:使用机器学习算法训练模型,将文本序列分类为不同的槽位类型。常见的方法包括序列标注模型,如条件随机场(CRF)或循环神经网络(RNN),以及基于深度学习的模型,如BERT、BiLSTM等。
(3)预训练模型方法:使用已经在大规模语料库上进行了预训练的模型,通过微调或迁移学习的方式来进行槽位提取。
示例性的,也可以通过机器学习方法预先训练一综合模型,以用于意图识别和槽位提取,本实施例对此不做任何限制。
在获得第二问题样本的意图信息槽位信息之后,可以根据意图信息和槽位信息确定类别。可以通过以下方式来确定意图信息和槽位信息所指示的类别:
(1)规则匹配:定义一系列规则,通过意图信息和槽位信息与规则的匹配程度来确定类别。规则可以是不同的意图信息+槽位信息的组合分别与不同类别的映射关系。
(2)机器学习分类器:使用机器学习方法(如朴素贝叶斯、支持向量机、随机森林等)或深度学习模型(如卷积神经网络、循环神经网络等)构建意图分类器。将意图信息和槽位信息转化为特征向量,然后训练分类器进行分类。
(3)混合方法:结合规则匹配和机器学习分类器,利用规则匹配快速筛选出一些明确的意图类别,然后对剩余的文本使用机器学习分类器进行分类。这种方法可以提高分类的效率和准确性。
(4)基于语言模型的分类:使用预训练的语言模型(如BERT、GPT等)进行文本分类。将意图信息和槽位信息作为输入,使用语言模型生成的表示进行分类判断。
在第一种可能的情况中:若意图信息和槽位信息指示第一类别,第一类别表征推荐具有槽位信息指定的属性的销售对象,将第一知识子库确定为目标知识子库;进而可以在知识图谱中查找与槽位信息对应的目标节点,并根据目标节点与其他节点的连接关系获取与第二问题样本对应的目标知识。
举个例子,假设第二问题样本为“有哪些辣的”,意图信息为“推荐菜品”,槽位信息为“辣”,在确定第一知识子库为目标知识子库之后,可以在所述知识图谱中查找与“辣”对应的目标节点,并根据该目标节点与其他节点的连接关系进一步获取了与“辣”有关的菜品,比如“麻辣豆腐”、“麻辣兔头”以及“辣椒炒肉”等等,根据该菜品所在的实体节点与其他属性节点的连接关系,还可以进一步获取其他属性信息作为目标知识。
在第二种可能的情况中,若所述意图信息和所述槽位信息指示第二类别,所述第二类别表征对销售对象的构成或者来源进行科普,将所述第二知识子库确定为目标知识子库;进而可以在所述第二知识子库中查找与所述槽位信息指示的销售对象对应的科普文本,作为与所述第二问题样本对应的目标知识。
举个例子,假设第二问题样本为“麻婆豆腐怎么做”,意图信息为“介绍菜谱”,槽位信息为“麻婆豆腐”,在确定第二知识子库为目标知识子库之后,可以查找与“麻婆豆腐”对应的科普文本,作为与所述第二问题样本对应的目标知识。
在第三种可能的情况中,若意图信息和槽位信息指示不属于第一类别和第二类别,举个例子,比如意图信息为“未知意图”以及无槽位信息,则可以将第三知识子库确定为目标知识子库,以从向量角度确定目标知识;进而可以基于上述的向量生成模型来获得第二问题样本对应的文本向量,然后确定第二问题样本对应的文本向量分别与第三知识子库中的文本向量之间的相似度,将第三知识子库中相似度高于第二预设阈值的文本向量对应的文本作为与第二问题样本对应的目标知识。其中,第二预设阈值可依据实际应用场景进行具体设置,本实施例对此不做任何限制,例如第二预设阈值大于90%。本实施例从第三知识子库获取目标知识,实现对用户的一些意图不够明确的问题也能进行解答,提高答复的准确性和用户满意度。
本实施例通过上述三种方式来获取外部知识,可以应对用户的不同类型的问题,提高外部知识的准确性和多样性,从而进行提高后续的答复的准确性和全面性。
在获得第二问题样本对应的目标知识之后,可以生成与所述目标知识对应的提示文本。示例性的,提示文本可以包含角色提示和回复提示,角色提示指示预训练语言模型从指定角色(如美食家、商品测评家等)角度进行作答;回复提示指示所述预训练语言模型参考所述目标知识对所述第二问题样本进行答复。也就是说,提示文本则可以控制知识注入的具体形式,使得预训练语言模型能够以期望方式进行作答。举个例子,提示文本可以是“你是一个美食专家,针对于XX问题,请以XX目标知识为基准进行作答”。
在一些实施例中,预训练语言模型是指具有巨大参数规模和学习能力的自然语言处理模型,可以包括但不限于GPT(Generative Pre-trained Transformer)模型及其变种模型、中文语言模型及其变种模型等。
在一些实施例中,对于不需要外部知识的第一问题样本,可以直接将第一问题样本输入预训练语言模型,以由预训练语言模型根据第一问题样本生成第一预测答复;而对于需要外部知识的第二问题样本,在通过上述方式获得第二问题样本对应的目标知识以及与目标知识对应的提示文本之后,可以将第二问题样本、第二问题样本对应的目标知识以及与目标知识对应的提示文本输入预训练语言模型,以由预训练语言模型根据第二问题样本、目标知识以及提示文本生成第二预测答复。
在训练过程中,需要定义一个评价函数来度量模型预测结果与真实标签之间的差异或误差。这个评价函数通常被称为损失函数(Loss Function),它能够衡量模型的性能。可以基于(1)最小化所述第一预测答复和所述第一问题样本对应的对话内容之间的误差;(2)最小化所述第二预测答复和所述第二问题样本对应的对话内容之间的误差这两个优化目标来构建损失函数,进而通过预先确定的优化方法来最小化损失函数。常见的优化方法包括随机梯度下降(Stochastic Gradient Descent,SGD)、Adam、RMSprop等。这些方法通过调整模型参数,使得损失函数逐渐减小,从而改进模型的预测能力。
进一步地,考虑到自然语言的复杂性,仅计算损失函数的方式可能存在误差;因此,在获得第一预测答复和第二预测答复之后,还可以进一步获取针对于第一预测答复的评估信息和针对于第二预测答复的评估信息;然后在以最小化所述第一预测答复和所述第一问题样本对应的对话内容之间的误差、以及所述第二预测答复和所述第二问题样本对应的对话内容之间的误差为优化目标的同时,结合针对于第一预测答复的评估信息和针对于第二预测答复的评估信息,对所述预训练语言模型进行训练,以便进一步提高模型输出结果的准确性。
示例性的,针对于第一预测答复的评估信息和针对于第二预测答复的评估信息可以由用户在交互界面中输入。
示例性的,所述评估信息包括至少一个维度的评估结果;所述维度包括以下至少一种:安全维度、答复正确性维度、答复多样性维度、相关性维度、答复格式维度以及平台特色维度。
①安全维度的评估结果用于指示第一预测答复和第二预测答复是否符合预设规定。
举个例子,假设第一预测答复包含不符合预设规定的敏感词或者违禁词,则在安全维度的评估结果是不符合预设规定。
②答复正确性维度的评估结果用于指示第一预测答复和第二预测答复的内容是否符合客观事实。
举个例子,假设第一预测答复是“豆角可以治疗癌症”,这显然不符合事实,则在答复正确性维度的评估结果是不符合客观事实。
③答复的多样性维度的评估结果用于指示第一预测答复和第二预测答复中提及的销售对象是否多于一个。
举个例子,假设第一问题为“早餐吃什么”,第一预测答复包含了“豆浆、油条、包子、馒头、胡辣汤”等多个菜品,则在答复的多样性维度的评估结果是符合多样性的。
④相关性维度的评估结果用于指示第一问题样本与第一预测答复之间的相关程度、以及第二问题样本与第二预测答复之间的相关程度。
举个例子,在美食平台中,假设第一问题样本为“端午节吃什么”,第一预测答复是“端午节是中国传统的节日之一,通常有吃粽子、赛龙舟、挂艾草等习俗。粽子是端午节最具代表性的食品之一,常常是用糯米、肉、蛋黄等多种食材做成,口感香甜软糯。也有一些地区会会采用竹叶、玉米叶等植物叶子包裹粽子,增加粽子的清香和营养价值。赛龙舟也是端午节的重要活动之一,它是一项集体育、文化和娱乐为一体的活动。人们会组成船队,在江河湖海中口进行竞渡,以纪念爱国诗人屈原。挂艾草也是端午节的传统习俗之一,艾草有驱蚊避邪、防病健身的作用。人们会将艾草挂在门口、窗户上或悬挂在在身上,用以辟邪祈福。总的来说,端午节的食俗多种多样,具有浓郁的地方特色和文化内涵。”其中,第一预测答复中有关于“赛龙舟”、“挂艾草”的介绍与第一问题样本是不太相关的,则该第一预测答复在相关性维度的评估结果是0.3(表示有30%的相关内容)。
⑤答复格式维度的评估结果用于指示第一预测答复和第二预测答复是否满足预设的文本格式;预设的文本格式包括总分总格式、总分格式以及分总格式中的至少一种。
例如上述例子中,对于第一问题样本为“端午节吃什么”,第一预测答复是总分总格式,满足预设的文本格式。
⑥平台维度的评估结果用于指示第一预测答复和第二预测答复是否满足平台的场景特色;比如在美食平台中,倾向于从美食家的角度给出答复;又比如在医疗平台,倾向于从医生的角度给出答复。
举个例子,在美食平台中,比如对于第二问题样本为“附近有什么好吃的”,第二预测答复为“您好!我是您的私人美食家,您附近有XX米线、XX椰子鸡、XX简餐、XX大排档、XX酒楼,您可以根据地区、口味等进行筛选,找到适合自己的餐厅。祝您用餐愉快!”。
示例性的,可以通过以下三种方式对预训练语言模型进行微调:
(1)对整个预训练语言模型进行微调,更新整个预训练语言模型的参数。
(2)冻结预训练语言模型的大部分参数,仅微调相对较小的模型参数集。
(3)将预训练语言模型的嵌入层(Embedding)和每一神经网络层前都加上新的参数。
在模型训练过程中,通过迭代优化来逐步调整模型参数。每个训练迭代包括向前传播(Forward Propagation)、计算损失函数值、反向传播(Backward Propagation)和参数更新等步骤。训练迭代的次数通常通过设置固定的迭代次数或者根据模型在验证集上的性能动态调整。
示例性的,可以通过不同的训练数据、不同的预训练语言模型以及不同的微调方式之间的任意组合来进行训练调优,最终得到符合需求的对话内容生成模型。
在一些实施例中,请参阅图5,本说明书实施例还提供了一种对话内容的生成方法,包括:
在S201中,接收输入的问题。
在S202中,判断所述问题是否需要结合外部知识进行答复。
在S203中,若是,根据所述问题从预设的知识库中获取目标知识,并生成与所述目标知识对应的提示文本;将所述问题、所述目标知识以及与所述目标知识对应的提示文本输入对话内容生成模型中,由所述对话内容生成模型根据所述问题、所述目标知识以及所述提示文本生成对话内容;所述提示文本用于提示所述对话内容生成模型参考所述目标知识对所述问题进行答复。
在S204中,若否,将所述问题输入所述对话内容生成模型中,由所述对话内容生成模型根据所述问题生成对话内容;其中,所述对话内容生成模型是对预训练语言模型进行微调得到的。
本实施例中,考虑到仅输入问题由对话内容生成模型进行解答的方式不能实时获取外部的一些知识,可能会存在如缺乏事实性知识、无法处理时效性较强或者开放性的问题等缺陷,因此,为了进一步提高答复准确性,本申请实现首先确定输入的问题是否需要结合外部知识,在确定出该问题需要外部知识时,通过提示文本将目标知识注入对话内容生成模型,帮助对话内容生成模型获取更多的外部知识,两种对话内容生成方式的结合有利于准确解答用户的泛意图问题,提升对话内容的准确率和满意度。
对于S201,所述问题可以是用户当前在交互界面中输入的问题。或者,在用户与电子设备进行了多轮对话的情况下,所述问题也可以是在多轮对话中,根据用户输入的历史问题和当前在交互界面输入的问题进行结合所得到的问题,从而方便对话内容生成模型明确用户意图。
请参阅表1,问题序列是历史问题+当前输入的问题,将历史问题+当前输入的问题结合后得到的问题输入对话内容生成模型,可以让对话内容生成模型从中更为准确地得知用户意图,从而生长准确率更高的对话内容。
表1
对于S202,由上述内容可知,所述对话内容生成模型基于第一训练数据集对预训练语言模型进行微调得到;所述第一训练数据集包含若干第一样本和若干第二样本。其中,所述第一样本包括第一问题样本及其对应的对话内容。所述第二样本包括第二问题样本、所述第二问题样本对应的目标知识、与所述目标知识对应的提示文本、以及所述第二问题样本对应的对话内容;其中,所述第二问题样本对应的目标知识从所述知识库中获取。第一问题样本为无需参考外部知识的问题,第二问题样本为需要参考外部知识的问题。
在一种可能的实现方式中,在判断输入的问题是否需要结合外部知识进行答复时,可以确定所述问题分别与若干所述第一问题样本之间的语义相似度;然后根据所述问题分别与若干所述第一问题样本之间的语义相似度,判断所述问题是否需要结合外部知识进行答复。
示例性的,若所述问题与至少一个所述第一问题样本之间的语义相似度高于第一预设阈值,表示对话内容生成模型已经在训练阶段学习到了与所述问题相关的知识,因此可以确定所述问题无需结合外部知识进行答复;否则,表示对话内容生成模型缺乏与所述问题相关的知识,确定所述问题需要结合外部知识进行答复。可以理解的是,第一预设阈值可依据实际应用场景进行具体设置,本实施例对此不做任何限制,例如该预设阈值为85%或者90%,或者大于80%。
对于S203,在确定输入的问题需要结合外部知识进行答复之后,可以根据该问题从预设的知识库中获取目标知识。
示例性的,所述知识库包括不同类型的至少两个知识子库。可以对所述问题进行意图识别,获得意图信息;以及,对所述问题进行槽位提取,获取槽位信息;然后根据所述意图信息和所述槽位信息,从所述至少两个知识子库中确定目标知识子库,并从所述目标知识子库中获取与所述问题对应的目标知识。对于意图识别和槽位提取的实现过程可参见上述描述,此处不在赘述。
所述知识库包括第一知识子库、第二知识子库和第三知识子库中的至少两个。
(1)请参阅图4,所述第一知识子库包含知识图谱,所述知识图谱中的节点包括实体节点和属性节点,任意一个实体节点用于表征销售对象,与任一实体节连接的至少一个属性节点用于表征销售对象具有的属性。
(2)所述第二知识子库包含与不同销售对象对应的科普文本。
(3)所述第三知识子库包含与不同销售对象对应的若干文本及其文本向量。其中,所述第三知识子库包含的文本向量是通过将与不同销售对象分别对应的文本输入预先训练好的向量生成模型进行转换得到的。对于向量生成模型的训练过程可参见上述描述,此处不在赘述。
在第一种可能的情况中,若所述意图信息和所述槽位信息指示第一类别,所述第一类别表征推荐具有所述槽位信息指定的属性的销售对象,则可以将所述第一知识子库确定为目标知识子库;进而可以在所述知识图谱中查找与所述槽位信息对应的目标节点,并根据所述目标节点与其他节点的连接关系获取与所述问题对应的目标知识。
在第二种可能的情况中,若所述意图信息和所述槽位信息指示第二类别,所述第二类别表征对销售对象的构成或者来源进行科普,将所述第二知识子库确定为目标知识子库;进而可以在所述第二知识子库中查找与所述槽位信息指示的销售对象对应的科普文本,作为与所述问题对应的目标知识。
在第三种可能的情况中,若所述意图信息和所述槽位信息指示不属于所述第一类别和所述第二类别,将所述第三知识子库确定为目标知识子库,确定所述问题对应的文本向量分别与所述第三知识子库中的文本向量之间的相似度,将所述第三知识子库中相似度满足第二条件的文本向量对应的文本作为与所述问题对应的目标知识。本实施例从第三知识子库获取目标知识,实现对用户的一些意图不够明确的问题也能进行解答,提高答复的准确性和用户满意度。
本实施例通过上述三种方式来获取外部知识,可以提高外部知识的准确性和多样性,从而进行提高后续的答复的准确性和全面性。
在获得问题对应的目标知识之后,可以生成与所述目标知识对应的提示文本。示例性的,提示文本可以包含角色提示文本和对话内容提示文本,角色提示文本指示对话内容生成模型从指定角色(如美食家、商品测评家等)角度进行作答;对话内容提示文本指示所述对话内容生成模型参考所述目标知识对输入的问题进行答复。也就是说,提示文本则可以控制知识注入的具体形式,使得对话内容生成模型能够以期望方式进行作答。举个例子,提示文本可以是“你是一个美食专家,针对于XX问题,请参考XX目标知识进行作答”。
接着,可以将所述问题、所述目标知识以及与所述目标知识对应的提示文本输入对话内容生成模型中,由所述对话内容生成模型根据所述问题、所述目标知识以及所述提示文本生成对话内容。本实施例中,通过提示文本将目标知识注入对话内容生成模型,帮助对话内容生成模型获取更多的外部知识,有利于准确解答用户的泛意图问题,提升对话内容的准确率和满意度。
对于S204,如果输入的问题不需要结合外部知识,则可以直接将问题输入所述对话内容生成模型中,由所述对话内容生成模型根据所述问题生成对话内容;其中,所述对话内容生成模型是对预训练语言模型进行微调得到的。
在一些实施例中,从安全维度考虑,在接收输入的问题之后,可以先对所述问题进行质量检测,获得第一质检结果;若所述第一质检结果满足第一质检条件,执行S102;否则,在交互界面中输出所述问题不符合预设规定的提示信息。示例性的,第一质检条件指示输入的问题不包含预设的敏感词或者预设的违禁词;但不限于此。
在一些实施例中,从安全维度考虑,在对话内容生成模型生成对话内容之后,可以对所述对话内容生成模型生成的对话内容进行质量检测,获得第二质检结果;若所述第二质检结果满足第二质检条件,在所述交互界面中展示与所述问题对应的对话内容。示例性的,第二质检条件指示对话内容不包含预设的敏感词或者预设的违禁词、和/或对话内容符合客观事实;但不限于此。
在一些实施例中,所述对话内容包含与销售对象对应的文本、图像、视频和音频中的至少一种。举个例子,以美食为例,请参阅图6,输入的问题为“我想吃甜的”,对话内容生成模型生成了如图6所示的对话内容。
在一些实施例中,为了进一步减少用户操作,在对话内容生成模型生成的对话内容之后,还可以为所述对话内容生成模型生成的对话内容中的销售对象设置跳转标识,然后在交互界面中展示所述对话内容以及所述对话内容中的销售对象的跳转标识,如请参阅图6所示的跳转标识,进而可以响应于用户对交互界面中的任意一个跳转标识的触发操作,获取所述跳转标识指示的销售对象的销售页面,并在交互界面中展示所述销售页面。本实施例中,无需用户退出当前显示对话内容的页面再去重新搜索对话内容中的销售对象,减少了用户操作步骤,进一步方便用户。
示例性的,所述销售对象包括菜品,所述销售页面用于展示包含所述菜品的至少一个店铺和所述菜品的购买信息中的至少一种。示例性的,所述销售对象包括商品,所述销售页面用于展示所述商品的购买信息,比如展示商品的详情介绍和购买控件等。
举个例子,请参阅图7,在用户点击了“拔丝香蕉”的情况下,电子设备可以响应于该点击操作,在交互界面中显示包含拔丝香蕉的店铺,以便用户根据自身的实际需求选择其中一个店铺进行下单。
在一些实施例中,请参阅图8,本说明书实施例还提供了一种提示文本生成方法,包括:
在S301中,接收输入的问题。
在S302中,从预设的知识库中获取与所述问题对应的目标知识。
在S303中,根据所述问题和所述目标知识,生成提示文本;其中,所述问题、所述目标知识和所述提示文本用于输入到对话内容生成模型中得到对话内容,所述提示文本用于提示所述对话内容生成模型参考所述目标知识对所述问题进行答复。
本说明书实施例中,可以获取与问题对应的目标知识,从而根据问题和目标知识生成提示文本,提示文本用于提示对话内容生成模型参考所述目标知识对所述问题进行答复,通过提示文本将目标知识注入对话内容生成模型,有利于提高对话内容生成模型的答复准确度。
在一些实施例中,所述提示文本包含角色提示文本和对话内容提示文本;所述角色提示文本用于提示所述对话内容生成模型从指定角色的角度进行答复;所述对话内容提示文本用于提示所述对话内容生成模型参考所述目标知识对所述问题进行答复。
在一些实施例中,在S302之前,还包括:判断所述问题是否需要结合外部知识进行答复;若是,执行S302和S303。
在一些实施例中,在S303之后,还包括:将所述问题、所述目标知识以及与所述目标知识对应的提示文本输入对话内容生成模型中,由所述对话内容生成模型根据所述问题、所述目标知识以及所述提示文本生成对话内容;其中,所述对话内容生成模型是对预训练语言模型进行微调得到的。
在一些实施例中,如果所述问题无需要结合外部知识进行答复,将所述问题输入所述对话内容生成模型中,由所述对话内容生成模型根据所述问题生成对话内容;其中,所述对话内容生成模型是对预训练语言模型进行微调得到的。
在一些实施例中,所述知识库包括不同类型的至少两个知识子库。所述从预设的知识库中获取与所述问题对应的目标知识,包括:对所述问题进行意图识别,获得意图信息;以及,对所述问题进行槽位提取,获取槽位信息;根据所述意图信息和所述槽位信息,从所述至少两个知识子库中确定目标知识子库,并从所述目标知识子库中获取与所述问题对应的目标知识。
在一些实施例中,所述知识库包括第一知识子库、第二知识子库和第三知识子库中的至少两个。所述第一知识子库包含知识图谱,所述知识图谱中的节点包括实体节点和属性节点,任意一个实体节点用于表征销售对象,与任一实体节连接的至少一个属性节点用于表征销售对象具有的属性。所述第二知识子库包含与不同销售对象对应的科普文本。所述第三知识子库包含与不同销售对象对应的若干文本及其文本向量。
在一些实施例中,所述根据所述意图信息和所述槽位信息,从所述至少两个知识子库中确定目标知识子库,包括:若所述意图信息和所述槽位信息指示第一类别,所述第一类别表征推荐具有所述槽位信息指定的属性的销售对象,将所述第一知识子库确定为目标知识子库;若所述意图信息和所述槽位信息指示第二类别,所述第二类别表征对销售对象的构成或者来源进行科普,将所述第二知识子库确定为目标知识子库;若所述意图信息和所述槽位信息指示不属于所述第一类别和所述第二类别,将所述第三知识子库确定为目标知识子库。
在一些实施例中,所述从所述目标知识子库中获取与所述问题对应的目标知识,包括:若所述目标知识子库为所述第一知识子库,在所述知识图谱中查找与所述槽位信息对应的目标节点,并根据所述目标节点与其他节点的连接关系获取与所述问题对应的目标知识;若所述目标知识子库为所述第二知识子库,在所述第二知识子库中查找与所述槽位信息指示的销售对象对应的科普文本,作为与所述问题对应的目标知识;若所述目标知识子库为所述第三知识子库,确定所述问题对应的文本向量分别与所述第三知识子库中的文本向量之间的相似度,将所述第三知识子库中相似度高于第二预设阈值的文本向量对应的文本作为与所述问题对应的目标知识。
有关于提示文本生成方法的具体实现方式可参见上述实施例的相关之处,此处不在赘述。
以上实施方式中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。
相应的,本说明书实施例还提供了一种电子设备,包括处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现上述中任一项所述的方法。
示例性的,图9是一示例性实施例提供的一种电子设备的示意结构图。请参考图9,在硬件层面,该设备包括处理器902、内部总线904、网络接口906、内存908以及非易失性存储器910,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器902从非易失性存储器910中读取对应的计算机程序到内存908中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
相应的,本说明书还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。