首页 / 问题分类模型、分类方法、训练方法及装置

问题分类模型、分类方法、训练方法及装置实质审查 发明

技术领域

[0001] 本申请涉及人工智能技术领域下的机器问答技术领域,特别是指问题分类模型、问题分类方法、问题分类模型的训练方法、装置、计算机设备、存储介质及计算机程序产品。

相关背景技术

[0002] 图1示出了传统专业领域热线问答系统构建的原理图,其构建过程包括以下几个阶段:
[0003] 问题样本构建阶段,从各类文档、历史用户问题中梳理出标准问题,根据标准问题对历史用户问题进行标注,并将历史用户问题标注为相应标准问题的扩展问题,标准问题和历史用户问题构成问题样本,用于问答模型训练。该阶段的标准问题的梳理、标准问题与扩展问题标注可以由专家执行。
[0004] 问答模型训练阶段,基于问题样本进行问答模型训练,该问答模型用于在专业领域热线问答系统中对用户输入的问题进行识别,以确定用户问题的对应标准问题和答案。问答模型是一种对用户问题进行分类的模型,把用户问题分类为相关的标准问题,也可以称为问题分类模型。
[0005] 用户问答装置的应用阶段,用于接收用户输入问题,基于所训练的问答模型识别用户输入的问题对应的标准问题,并确定其答案。一套完整的问题问答装置除了问答模型还需要其他功能模块的协助,例如对话管理、业务规则、任务引擎等。
[0006] 问题闭环阶段,用于将用户使用用户问答装置过程中,该装置未回答或回答错误的问题经由专家及坐席人员的标注后,作为新的问题样本补充进历史用户问题知识库中,或扩展问题知识库中,问答模型会根据新增样本进行再次训练。
[0007] 专业领域热线问答系统构建存在以下问题:问答模型训练依赖大量的标注数据,如果一味的依赖人工标注数据将会拉长整个建模周期;在系统冷启动时(没有历史用户问题或较少历史用户问题)存在某些标准案例下没有可供标注的用户问题以及标注样本分布失衡的问题,要求问答模型需要具有小样本学习或零样本学习能力,同时也要对样本分布不敏感;答案触发阈值的选择业界当前的一般做法是先根据经验或接受者操作特性曲线(receiver operating characteristic curve,简称ROC曲线)确定一个粗略的阈值,再根据结果进行调整,这种方法效率不高,同时也很难保证问题答案准确触发的前提下减少答案的误触。

具体实施方式

[0074] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0075] 说明书和权利要求书中的词语“第一、第二、第三等”或模块A、模块B、模块C 等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
[0076] 在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
[0077] 说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
[0078] 本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
[0079] 应理解,本申请实施例提供的问题分类方案,包括问题分类模型、分类方法及分类装置、问题分类模型的训练方法及训练装置、计算机设备、计算机可读存储介质及计算机程序产品。由于这些技术方案解决问题的原理相同、相似或相关,在如下具体实施例的介绍中,某些重复之处可能不再赘述,但应视为这些具体实施例之间已有相互引用,可以相互结合。
[0080] 对本申请具体实施方式进行进一步详细说明之前,对本申请实施例中涉及的技术用语进行说明。除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。如有不一致,以本说明书中所说明的含义或者根据本说明书中记载的内容得出的含义为准。另外,本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
[0081] 为了准确地对本申请中的技术内容进行叙述,以及为了准确地理解本申请,在对具体实施方式进行说明之前先对本说明书中所使用的术语给出如下的解释说明或定义。
[0082] 标准问题:常见问题解答(Frequently Asked Questions,FAQ)问题中经过业务和/或专家人员审视和规范后的问题,形式标准,脱离了口语化。
[0083] 扩展问题:用户对于一个问题的提问方式可能千变万化,这些问法短多偏向口语化但是都对应于一条标准问A的咨询,称这些问题是这条标准问的扩展问题。
[0084] 分布失衡:类别不平衡问题,一般指数据集中各个类别的样本数量不均衡。
[0085] 小样本学习:每个标准问题或某些标准问题下可供机器学习的标注样本数量很少。
[0086] 零样本学习:每个标准问题或某些标准问题下基本没有可供机器学习的标注样本。
[0087] ROC曲线:接受者操作特性曲线,一种反映分类模型训练情况的曲线(receiver operating characteristic curve,ROC)。
[0088] BERT模型:基于转换器的双向编码表征模型(Bidirectional Encoder Representations from Transformer,BERT),用于进行自然语言处理的一种模型,可作为问答模型的一种。BERT模型的多层感知机,(MultiLayer Perceptron,MLP)在本申请实施例中用来计算各个词的分布概率。
[0089] 迁移学习:一种机器学习方法,把为任务A开发的模型作为初始点,重新使用在为任务B开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务。
[0090] Fine‑tune:微调,即用新的数据微调已经训练好的模型(即pre‑trained model)。
[0091] 问答模型:输入问题输出答案的模型,由于该模型是对用户问题进行分类(每个答案对应一类),在以下的各实施例中也称为问题分类模型。
[0092] 针对小样本下的模型学习问题的一种可采用的解决方法,是利用足量语料训练语言模型做迁移学习,该迁移学习流程包括:首先使用足量公共语料预训练BERT模型,生成富含通用语言知识的语言模型;然后使用少量的专业领域问答语料(即小样本) 训练所述预训练的BERT模型,该训练可以称为微调(Fine‑tune),从而生成专业领域的语言模型,作为问答模型。使用语言模型做迁移学习的方法能在一定程度上弥补问答语料(即样本)不足带来的问题,但当问答任务与专业领域知识强相关时,这种弥补带来的帮助并不明显。
[0093] 针对小样本下的模型学习问题的另一种可采用的解决方法,是使用文本增强技术来减轻小样本以及样本分布失衡的影响,常见的文本增强方法包括:过采样、回译、随机词替换、通用预训练模型(Generative Pre‑Training,GPT)、变分自动编码器 (Variational Auto‑Encoder,VAE)、生成对抗网络(Generative adversarial net,GAN) 等。一方面,GPT、VAE等方法无法在生成过程中施加约束,容易产生语义漂移。另一方面,GAN方法训练难度大,不便于实际应用。而过采样、随机词替换等方法产生的样本语义重复度较高,对模型的语义理解能力提升有限。
[0094] 本申请实施例问题分类方案中提供的问题分类模型和方法中,问题分类模型包含级联的多个分类模型,且级联的各分类模型对问题可识别的分类结果的颗粒度依次降低,即识别结果逐渐精确,从而提高问题分类的准确率。另外,本申请实施例在级联的最后的分类模型的输出设置了一与误触率(误触指提供错误答案)相关的置信度阈值,以提高分类模型的防误触的能力。
[0095] 本申请实施例问题分类方案中提供的问题分类模型的训练方法,采用了基于关键词约束的扩展问题样本生成方法,可生成更多的问题样本,便于使用该问题样本训练的问题分类模型更加准确,并且由于采用了关键词约束,使生成的扩展问题更符合期望。另一方面,可通过本申请实施例提供的基于多层标签的问题样本的问题分类模型训练方法,可以解决小样本与零样本及样本分布失衡、样本稀疏及标注数据缺失问题情况下的模型训练的问题。并且,本申请实施例上述提供的扩展问题样本生成方法、问题分类模型训练方法可以各自单独使用,也可以结合到一起使用。
[0096] 如图2示出了本申请实施例应用于问答系统的应用场景,在该问答系统的架构中,一方面采用了扩展问题样本生成方法,用于基于关键词约束根据已有的标准问题或扩展问题生成新扩展问题,解决问答系统建设初期的小样本、零样本及样本分布失衡问题。另一方面,采用包含级联的多个分类模型,并进行相应的训练,并可采用基于负样本的防误触式训练方法,解决了专业领域问答系统建设初期的样本稀疏及标注数据缺失问题。其中,在问题分类模型中,还使用各问题类别的置信度阈值确定用户问题是否可识别及所述问题类别,可降低了用户问题被误触,即降低了提供错误答案的可能性,提高用户问题分类的准确率。
[0097] 【本申请问题分类模型实施例】
[0098] 如图3a示出了本申请实施例提供的问题分类模型,该问题分类模型采用了级联的n个分类模型,构成n层分类模型,所述n个分类模型中包括第i‑1个分类模型、第i个分类模型,第i个分类模型根据所述用户问题、第i‑1个分类模型输出的分类结果,输出该第i个分类模型的分类结果,其中,第i个分类模型比第i‑1个分类模型所输出的分类结果的颗粒度小,这里的i为大于等于2的自然数。
[0099] 在本实施例中,第一个分类模型根据输入的问题数据,输出第一个分类结果,第二至第n个分类模型根据输入的问题数据、和前一分类模型输出的分类结果,输出第二到第n层的分类结果,上述的i即为2至n中任一数字。其中,第一到第n个分类结果颗粒度整体呈逐渐减小的趋势,且输出的第n层的分类结果中,每类结果(即每个分类类别)对应每个标准答案,从而整体实现根据用户的问题数据得到对应的标准答案。在其他一些实施例中,也可以是所述n个分类模型中包含的部分分类模型的分类结果颗粒度逐渐减小,例如是第一层到第i1层,或第i1层到第n层,或第i1层到第i2层对应的分类模型的分类结果颗粒度逐渐减小,其他层对应的分类模型的分类结果颗粒度可以逐渐减小也可以不变,但从第一层到第n个分类结果颗粒度整体仍呈逐渐减小的趋势,其中1
[0100] 在本实施例中,上述第二至第n个分类模型所使用的前一分类模型输出的分类结果,包括所识别的置信度最高的分类类别。在其他一些实施例中,所使用的前一分类模型输出的分类结果也可以包括置信度最高的分类类别以及该分类类别对应的置信度。通过该方式,将各层识别的分类类别传递到下一层的分类模型。在另外一些实施例中,所使用的前一分类模型输出的分类结果也可以是所识别的置信度值超过一设定值的多个分类类别、或者是置信度排序的前m个分类类别,或者是这些分类类别以及对应的置信度,其中,m为自然数。通过该方式,将各层识别的较可能的分类类别传递到下一层的分类模型。
[0101] 在本实施例,对于第i个分类模型,其输入包括第i个分类模型根据所述用户问题、第i‑1个分类模型输出的分类结果,这些输入可以采用级联的方式输入第i个分类模型。
[0102] 在本实施例中,对于上述级联的n个分类模型中,其中的粗粒度的分类模型,可以选择能反映分层的整体特征的模型,示例地,选用卷积神经网络(Convolutional Neural Networks,CNN)类结构的模型;其中,细粒度的分类模型,可以选择能反映分层的细分特征的模型,示例地,可选用循环神经网络(Recurrent Neural Network,RNN) 类结构的等能区分问题词序的模型,例如RNN、长短期记忆网络(Long short‑term memory,LSTM)、门控循环单元(gated recurrent unit,GRU)、双向RNN、双向 LSTM、双向GRU等模型。具体哪几层视为粗粒度层、哪几层视为细粒度层,可以根据需要设置。如图3b示出了本申请问题分类模型的一具体实施方式,该实施方式中,至少第一层视为粗粒度层,可采用CNN模型,至少最后一层视为细粒度层,可采用双向长短期记忆网络(Bi‑directional LSTM,Bi‑LSTM)模型,基于双向结构的网络,还可以有助于倒装语句信息的捕获。在该具体实施方式中,细粒度的分类模型、或至少最后一层或各层的分类模型,还可以是采用了注意力机制的分类模型。在另外一些实施例中,对于第一层到最后一层中的每层模型即,第1到第n个分类模型,也均可以采用CNN、RNN、LSTM、GRU、BERT、全连接神经网络(Fully Connected Neural Network,FC)等其他任意一个模型,或由多种模型的任意组合构成的模型。
[0103] 本申请实施例中的每个分类模型,可以由单个模型构成,也可以由多个模型构成,这里的分层,是根据输入和输出进行的逻辑上的划分,并非指一层就一个模型,例如第i层的分类模型(即应第i个分类模型),该分类模型可以仅包括一个模型(如CNN),也可以包括多个模型(如由RNN与LSTM级联的模型,或由CNN与RNN级联的模型等)。
[0104] 在本实施例中,对于第n个分类模型,即最后一个分类模型,其输出还设置有对应的置信度阈值,当所识别的分类结果(即对应分类类别)的置信度高于该置信度阈值时,则输出所述分类结果,当所识别的分类结果的置信度低于所述置信度阈值时,则可不输出所述分类结果。在本实施例中,该置信度阈值与识别的准确率和误触率相关,以使得问题分类模型识别的准确率与误触率达到一种平衡,以实现在准确率前提下还降低误触率。关于置信度阈值的设置,将在后文详述。
[0105] 【本申请问题分类方法的实施例】
[0106] 本申请实施例还提供了一种问题分类方法,用于对用户问题进行分类。图4示出了本申请问题分类方法的实施例的流程,其包括以下步骤:
[0107] S10、获取用户的问题。
[0108] 其中,所获取的用户的问题包括用户直接或间接输入的问题。这里的直接输入的问题指直接获得的用户问题,例如用户通过问答系统(例如客服系统)采用键盘输入、或语音方式输入的问题。这里的间接输入,指从其他方式获取的用户问题,例如通过邮件方式、相关论坛网页等方式获取的用户反馈的问题。这些用户问题可进行预处理,以使文件格式的统一,例如将语音格式转换为文本格式,又如,根据邮件、网页提取所包含的文本格式的用户问题。
[0109] S12、利用问题分类模型确定用户问题的问题类别,其中,所述问题分类模型用于对所述用户问题进行n次分类,所述n为两个或两个以上,且所述n次分类中包括第i‑1次分类、第i次分类,所述第i次分类时根据所述用户问题、第i‑1次分类的分类结果,输出该第i次分类的分类结果,其中,第i次分类的分类结果比第i‑1次分类的分类结果的颗粒度小。
[0110] 在本实施例中,问题分类模型可采用图3a或图3b示出的问题分类模型。通过其级联的n个分类模型对用户问题由粗到细逐个分类,实现所述n次分类,即通过级联的分类模型逐层输出各个分类模型识别的问题类别,其中,各个分类模型的输入为上层的输出结果和所述用户问题,问题分类模型最终输出用户问题被识别成的问题类别和其置信度。
[0111] 在本实施例中,第i‑1次分类的分类结果可以如前所述,可以包括所识别的置信度最高的分类类别,也可以包括分类类别以及该分类类别对应的置信度,或者多个分类类别,或多个分类类别及对应的置信度。
[0112] 在本实施例中,还可以包括步骤S14‑S18、根据置信度阈值,判断问题分类模型所确定的用户问题的问题类别对应的置信度高于该置信度阈值时,输出所识别的问题类别,否则可不输出所述识别结果。在一些实施例中,置信度阈值与所述负样本误触率有关,因此通过该置信度阈值可以降低问题的误触率。关于置信度阈值的设置,将在后文详述。
[0113] 例如,假设用户问题被识别成的问题类别C,当该识别的问题类别C对应的置信度大于预设的该问题类别C的置信度阈值时,对输入问题的问题类别视为识别准确或可识别,确定输出的问题类别为问题类别C。当所述置信度等于或小于预设的问题类别C的置信度阈值时,所述输入问题的问题类别视为识别不准确或不可识别。
[0114] 在一些实施例中,所述问题分类模型输出结果对应标准问题,可基于所述标准问题对应的答案,向用户输出该答案。在一些实施例中,所述问题分类模型输出结果,即分类类别即为所述答案(答案作为所述问题类别),则可以直接输出所述答案。
[0115] 在一些实施例中,还可以进一步接收用户对用户问题答案的反馈结果,对用户不满意答案的用户问题归入不可识别的用户问题中。
[0116] 在本实施例中,当判断为识别结果不输出的,可以向用户进行提示,例如提示“无法确定问题答案”,或“无法确定问题答案、请重新描述问题”等。
[0117] 在另外一些实施例中,对于不可识别的用户问题,还可以通过专家或坐席等人工方式进行问题分类,并记录到历史用户问题中。当所述问题分类模型使用了一段时间后,或累积了一定数量的不可识别问题后,还可以使用历史用户问题再次训练所述问题分类模型,以优化所述问题分类模型,提高问题分类模型对用户问题的类别的识别能力。
[0118] 由上,通过本实施例的问题分类模型,当对用户问题分类时,从所述问题分类模型的第一分类模型开始逐渐识别问题类别,直至最后一分类模型输出识别的问题类别和其置信度,再进一步基于所述问题类别对应的置信度阈值确定是否输出识别结果。
[0119] 【本申请问题分类模型训练方法的实施例】
[0120] 本申请实施例还提供了一种问题分类模型的训练方法,所要训练的问题分类模型可以是上述实施例中提到的任一问题分类模型。在本实施例中,以对图3a示出的问题分类模型为例,该问题分类模型包括级联的n个分类模型,假设所述n个分类模型中包括第i‑2分类模型、第i‑1个分类模型、第i个分类模型。下面参照图5a所示的流程图,以及图3a示出的问题分类模型,对本申请实施例的问题分类模型的训练方法进行详细介绍,如图5a所示,其包括以下步骤:
[0121] S20、获取问题样本,所述问题样本包括多层标签,多层标签中包括相邻的第i‑1 层类别标签和第i层类别标签,所述第i层类别标签的对应问题类别的颗粒度小于第 i‑1层类别标签。
[0122] 在本实施例中,对应n个分类模型,多层标签可以是n层类别标签。从第一层到第n层类别标签的对应问题类别的颗粒度逐渐减小。其中,多层标签的设置可以由人工,如业务专家、或业务人员等进行梳理设置,其中第n层类别标签,即最细粒度的标签为标准问题。
[0123] 在本实施例中,所述问题样本还可以是经筛选后的样本,该筛选可以是根据所述标准问题出现的频率进行筛选,选择出现频率超过一阈值的标准问题对应问题样本。
[0124] 在一些实施例中,n层类别标签中的任意连续的几层标签也可以相同。例如,假设图3a级联有8个分类模型,但是对应的某用户问题只能梳理出3层标签时,则第三层至第八层的标签可以均为第三层的标签。在另外一些实施例中,也可以是第一层到第六层的标签均为第一层的标签。在另外一些实施例中,也可以是第一到第二层为第一层标签,第三到第五层为第二层标签,第六到第八层为第三层标签。
[0125] S22、使用问题样本训练所述问题分类模型,包括训练第i个分类模型,具体包括:根据所述问题样本、该问题样本的第i层类别标签、和经训练后的所述第i‑1个分类模型对所述问题样本推理的分类结果,训练所述第i个分类模型。其中,所述第 i‑1个分类模型至少根据所述问题样本、该问题样本的第i‑1类别标签、和经训练后的所述第i‑2分类模型对所述问题样本推理的分类结果训练。
[0126] 在本实施例中,对应n个分类模型,从第一个到第n个分类模型依次进行训练。其中,在训练第一个分类模型时,基于问题样本和问题样本的第一层类别标签,训练问题分类模型的第一层的分类模型。在分别训练第二至第n个分类模型时,基于问题样本和问题样本的对应层的类别标签,以及上一分类模型的输出结果进行训练,由于训练时,分类模型的输入的信息更加丰富,可降低模型训练的过拟合问题。
[0127] 在本实施例中,训练第i个分类模型时,训练目标可以是问题类别的识别准确率,相应的使用的损失函数可以是第i个分类模型输出的问题类别(即该第i个分类模型推理的分类结果)与第i层类别标签的差异。在其他实施例中,也可以采用对抗网络等方式训练该第i个分类模型。
[0128] 在本实施例中,训练第i个分类模型时,所述第i‑1个分类模型对所述问题样本推理的分类结果包括所识别的置信度最高的分类类别。在其他一些实施例中,第i‑1 个分类模型推理的分类结果也可以包括分类类别以及该分类类别对应的置信度,或者多个分类类别,或多个分类类别及对应的置信度。
[0129] 在本实施例中,训练第n个分类模型时,即训练集级联的最后一个分类模型时,除了使用上述方式训练,还进一步使用负样本训练该第n个分类模型,以提高防误触的能力。相应的,在训练第n个分类模型时,训练目标可以是问题类别的识别准确率和负样本误触率的均匀分布性。其中,负样本是指为检测问题分类模型提高防误触能力而加入的不属于任何一种问题类别的样本。所述误触率为负样本被识别为各问题类别的概率。在其他一些实施例中,在对第一到第n个分类模型的任意一个进行上述训练时,也可以引入负样本进行训练。
[0130] 在本实施例中,对于问题分类模型的输出,即第n个分类模型的输出,还可设置一前述的置信度阈值,相应的,在使用上述训练目标训练第n个分类模型时,可以确定出所述置信度阈值。
[0131] 在本实施例中,当引入负样本进行训练时,所述训练可以是当所述负样本的TOP1 概率密度曲线和所述问题样本的TOP1概率密度曲线错峰分布时,完成所述训练,其中,所述负样本TOP1概率为负样本被识别成各问题类别的概率中的最大概率,所述问题样本TOP1概率为问题样本被识别成各问题类别的概率中的最大概率。在其他一些实施例中,也可以采用其他条件来确定是否训练完成,例如准确率达到要求,或训练次数、训练时长等条件。
[0132] 在本实施例中,置信度的阈值可如下确定:当任一问题类别的所述问题样本的 TOP1概率大于或等于第一设定值时,该问题类别的置信度阈值设为T0,T0为所述负样本的TOP1概率密度曲线和所述问题样本的TOP1概率密度曲线的交叉点概率值;当任一问题类别的所述问题样本的TOP1概率低于第一设定值时,该问题类别的置信度阈值设为第二概率值,第二概率值为所述负样本的TOP1概率密度曲线和该问题类别的问题样本的TOP1概率密度曲线的交叉点概率值。
[0133] 在本实施例中,对于步骤S20中的所获得的问题样本,可以包括已有问题样本、所扩充的问题样本。在本实施例中,如图5b所示,针对已有的问题样本,其生成扩充的问题样本的方法包括以下步骤:
[0134] S30、获取已有的问题样本,其中,已有的问题样本包括设置的多层标签。
[0135] S32、基于所述问题样本中该问题包含的各词的关键性确定待增强的词;所述关键性的高低与被确定为待增强的词的概率成反向关系。
[0136] 在本实施例中,各词的关键性可以通过下列一种或多种方式确定:
[0137] 1)使用人工,例如专业领域专家等,梳理的所述已有问题中各词的关键性。
[0138] 2)使用词向量来计算所述已有问题中各词的关键性。例如,使用word2vec算法预测问题中的各词的关键性。
[0139] 3)使用基于词频(term frequency,TF),或词频‑逆文档频率(term frequency– inverse document frequency,TF‑IDF)算法来计算所述已有问题中各词的关键性。
[0140] S34、根据所述问题样本中待增强的词进行数据增强,生成扩展的问题样本,所述扩展的问题的标签与对应的问题样本的标签相同。
[0141] 在本实施例中,所述数据增强可以通过下列一种或多种方式进行:
[0142] 1)通过无监督数据增强。在本实施例中,该方式具体可包括:首先对问题样本进行分词,分割成词语列表;然后通过近义词挖掘对词语列表中的词语获得近义词;以及对词语列表根据各词关键性确定出待增强的词;然后针对待增强的一些词词,使用对应的近义词进行增强操作(插入、删除、替换、交换等操作),生成扩展的问题样本。
[0143] 2)进行采样增强。在本实施例中,基于对问题样本中各句子隐含的各种状态进行采样来生成扩展问题。例如使用一隐变量进行采样来生成扩展问题,该隐变量可以服从高斯分布,例如可以服从多维高斯分布。又如可以使用METROPOLIS‑HASTINGS 进行采样来生成扩展问题。其中,METROPOLIS‑HASTINGS采样是一种基于概率分布的蒙特卡罗的采样方法[0144] 3)进行回译增强。在本实施例中,通过所述第二问题中句子翻译成其他的一种或多种语言,然后再回译为原语言,从而生成扩展的问题样本。
[0145] 本实施例中,当进行数据增强后,还可进一步多生成的扩展的问题样本根据硬性规则过滤、或根据BLEU(用于对翻译进行评分的分值)分值过滤、或根据词性(如动词、名词、形容词、副词、介词等词性)过滤、或根据句法依存关系过滤,以得到最终生成的扩充问题样本。
[0146] 在本实施例中,对于步骤S20中的所获得的问题样本,可以包括已有问题样本、所扩充的问题样本。
[0147] 【本申请问题分类模型训练方法的具体实施方式】
[0148] 为了更清楚了理解本申请实施例的技术方案,下面,以具体的实施方式进一步进行介绍。该具体实施方式提供的问题分类模型训练方法,预先对具有多层标签的问题样本进行扩充,然后基于问题样本的多层标签对问题分类模型的各分类模型分别训练,另一方面,还通过负样本来训练最细层的分类模型,并确定出各问题类别的置信度阈值。下面,结合图3a示出的级联的n个分类模型构成的问题分类模型,并参见图6a‑ 图6f示出的流程图,对本实施例的问题分类模型训练方法的具体实施方式进行详细介绍。其中,首先介绍训练过程,然后在对问题样本的扩充方法进行介绍。首先结合图 6a,对问题分类模型的训练方法进行介绍,包括以下步骤:
[0149] S110、获取复数个问题样本,其中,问题样本包括问题本身以及标签。
[0150] 问题样本可包括标准问题、扩展问题。扩展问题可以是由专家或坐席生成,也可以是由后文提供的本申请实施例提出的扩展问题样本生成方法所生成,关于本申请实施例提出的扩展问题样本生成方法将在后文具体描述。
[0151] 其中,问题样本包含的标签,对应问题类别的颗粒度包括由粗到细的多个标签,也称为多层标签,如n层标签。所述标签的生成方式当由专家或坐席生成时,可以为:对所述问题样本梳理出各标准问题、各标准问题的扩展问题,并根据问题的颗粒度,由粗到细的对所述标准问题以及扩展问题进行标签标注。
[0152] 其中,最细层的标签,即最后一层(即第n层)的标签(如图6a中表格中的案例分层标签n)对应标准问题,不同的标准问题的标签不相同,所以可以说每个标准问题就是一个问题类别,即每个最细层标签对应一个问题类别。示例地,图6a中左侧的表格示出了对应标准问题的分层标签结构(如图6a中表格中的案例分层标签1 至n表示第一层到第n层的颗粒度由粗到细的标签),该表格中同时示出了各标准问题的相应扩展问题的标签,扩展问题具有与对应的标准问题相同的各层标签。
[0153] 本具体实施方式中,为了使构建的问题分类模型更加稳定,在选择问题样本时,可以选择高频的标准问题与其扩展问题组成用于训练问题分类模型的问题样本。
[0154] S120、基于问题样本和问题样本的第一层标签,训练问题分类模型中级联的n 个分类模型中的第一个分类模型。
[0155] 其中,在进行第一层分类模型,即对第一个分类模型训练时,可以基于问题样本和问题样本的第一层标签,以问题分类的准确率为目标训练问题分类模型的第一层的分类模型。本具体实施方式中,第一层的分类模型选用能反映第一分层的整体特征的模型,如选用CNN类结构的模型,以从问题样本的文本全局提取问题样本的第一分层的整体特征。
[0156] 训练后的第一层的分类模型在推理时,可用于针对入的问题输出第一层的分类结果,其包括分类类别和该类别对应的置信度。
[0157] S130、基于问题样本、问题样本的当前分层标签与上一个分类模型对问题样本的输出结果,依次训练问题分类模型的第二至倒数第二个分类模型(倒数第二个即第n‑1 个),为了描述方面,这里也称为第二至倒数第二层分类模型。
[0158] 在分别训练第二至第n‑1个分类模型时,同样可以以问题分类的准确率为目标训练各个分类模型。训练后的第二至第n‑1个分类模型在推理时输出的分类结果,也包括各分类类别和对应的置信度。
[0159] 通过采用不同粗细粒度的分层标签,使得问题样本得到扩充,能对应到更多标准问题和其扩展问题,以解决问题样本较少的问题。另一方面,基于问题样本和由粗到细粒度的分层标签训练的各分层对应的分类模型,整个问题分类模型进行问题分类的识别也能更加准确。
[0160] S140、基于问题样本、问题样本的第n层标签、问题样本的第n‑1个分类模型对问题样本的输出结果、和负样本,训练问题分类模型的第n个(即最细分层)的分类模型。
[0161] 通过在对第n个分类模型训练时增加了负样本,可以进一步提高对用户问题分类的准确率,以在无法给出分类结果时降低给出错误分类的可能性。训练目标相应地变为包括问题样本分类的准确率与负样本误触率的均匀分布性。
[0162] 在其他一些实施例中,对于上述n个分类模型中的任意一个分类模型的训练,也均可以引入负样本进行训练。
[0163] 本具体实施方式中,为了进一步提升所识别的分类的准确率,第n个分类模型训练完成时,还进一步确定出各问题类别对应的置信度阈值。
[0164] 下面,参照图6b对本步骤S140的对第n个分类模型训练过程进一步进行详细描述,包括下述步骤S1410‑S1480:
[0165] S1410、获取输入该第n个分类模型的问题样本,和一定数量的负样本。
[0166] 其中,负样本可以从公共领域语料获取。负样本的数量可以根据需要设置,在本具体实施方式中,负样本的数量可以与输入该第n个分类模型的问题样本数量相当。
[0167] S1420、设置对第n个分类模型的训练目标,该训练目标包括对问题样本识别的分类的准确率、负样本误触率均匀分布性,并设置这两方面的权重。
[0168] 其中,所述训练目标可表示为如下公式(1):
[0169]
[0170] 其中,Loss为训练目标,或称为损失函数,LS(sxi)用于评价对问题样本识别的分类的准确率,LO(oxi)用于评价负样本误触率的均匀分布性,随着训练的进行,Loss会逐渐下降。a和b为加权系数,SN为问题样本个数,ON为负样本个数,sxi为问题类别 i的问题样本,oxi为负样本,sfk(sxi)为问题样本sxi被识别为问题类别k的概率,ofk(oxi) 表示负样本oxi被误触为问题类别k的概率,n为问题类别数。其中,权重系数a和b的可随机设置初始值,示例地,分别设置为1和0.5,并在训练过程中逐渐调整权重系数a和b。
[0171] 图7a示出了训练目标是否引入负样本的不同效果。引入负样本后,负样本的误触率的TOP1概率(简称为负样本TOP1概率,指负样本被识别成各问题类别的概率中的最大概率)移到低值,说明负样本的误触率更加均匀,从而在推理阶段降低不属于任何类别的问题被误识别的可能性。
[0172] S1430、基于问题样本、该问题样本的第n层标签、问题样本在第n‑1个分类模型输出的分类结果、负样本训练该第n个分类模型,直至所述训练目标收敛。
[0173] S1440、判断负样本的TOP1概率密度曲线和问题样本的TOP1概率密度曲线是否错峰分布,若是,则表示问题样本识别准确率和负样本误触率均可接受,转入步骤 S1450,否则返回骤S1420,调整权重系数a和b的初始值,继续训练。
[0174] 本具体实施方式中,当步骤S1430训练目标收敛后,可输出负样本的TOP1概率密度曲线和问题样本的TOP1概率密度曲线,以判断两概率密度曲线是否错峰分布。其中,所述负样本TOP1概率为负样本被识别成各问题类别的概率中的最大概率,所谓问题样本TOP1概率为问题样本被识别成各问题类别的概率中的最大概率。
[0175] 所述错峰分布的表现为负样本的TOP1概率密度曲线与问题样本的TOP1概率密度曲线的重合面积占比小于第二设定阈值。图7b示出了所述错峰分布的一示例,其中,曲线交叉点的概率大于图7c所示表格的实施例中的第一设定值示例的0.8,图7b 中正样本(即问题样本)的TOP1概率密度曲线与负样本的TOP1概率密度曲线已经错峰分布,二者重合面积较小,重合面积占比已经小于第二设定阈值。
[0176] S1450、把所述负样本的TOP1概率密度曲线和所述问题样本的TOP1概率密度曲线的交叉点值的初始值,赋值给阈值T0。
[0177] 即,当负样本的TOP1概率密度曲线和问题样本的TOP1概率密度曲线错峰分布时,可以将阈值T0设置为这两条曲线的交叉点对应的横坐标值的取值。
[0178] S1460、判断第n个分类模型输出的各问题类别的TOP1类别的置信度(如通过 softmax函数得到的概率)是否大于第一设定值,若是,则转入步骤S1470;否则转入步骤S1480。
[0179] S1470、设置相应的问题类别的置信度阈值的取值为上述T0,结束本流程。
[0180] 参照图7c示出的各问题类别的概率,示例地,第一设定值为0.8,当问题类别(对应图中标准案例ID)的所述TOP1概率大于0.8时(图中表格中为无色表示),该问题类别的置信度阈值的取值为上述T0。
[0181] S1480、把所述负样本的TOP1概率密度曲线和相应的问题类别的问题样本的 TOP1概率密度曲线的交叉点值,确定为相应的问题类别的置信度阈值。
[0182] 继续以所述问题类别i为例,当问题类别i的所述TOP1类别概率小于或等于第一设定值时,所述负样本的TOP1概率密度曲线和相问题类别i的问题样本的TOP1 概率密度曲线的交叉点值为Ti,问题类别i的置信度阈值设置为Ti。具体可参见图7d 示出的问题类别i的概率密度图,其中,图7d中曲线交叉点的概率小于图7c所示表格的实施例中的第一设定值示例的0.8。
[0183] 在实际使用时,最细分层的,即第n个分类模型输出用户问题被识别成TOP1问题类别和其置信度,所述TOP1问题类别为用户问题被识别成各问题类别中概率最大的问题类别,把TOP1问题类别的概率确定为TOP1问题类别的置信度。
[0184] 这里需要说明的是,若问题分类模型不设置置信度阈值时,上述训练过程执行步骤S1410‑S1440即可。
[0185] 【本申请扩展问题生成方法的具体实施方式】
[0186] 下面,对本申请具体实施方式提供的问题样本的扩充方法进行介绍,通过对问题样本的扩充,让问题样本更加丰富,便于训练的问题分类模型更加准确,从而克服小样本或零样本问题。图6c示出了本申请扩展问题生成方法实施例一的流程,其包括以下步骤:
[0187] S210、获取已有的问题样本。其中,问题样本的构成可以来自于用户历史问题,或专业领域文档,其中,历史问题可以来自日志数据。
[0188] S220、基于所述已有问题样本中的各词的关键性,通过无监督数据增强生成第一扩展问题。
[0189] 其中,所述无监督数据增强是指不通过监督学习方式,直接对所述已有问题中的句子进行数据增强。与传统的所述无监督数据增强差别在于,这里基于所述已有问题各词的关键性进行所述无监督数据增强,以使生成的所述第一扩展问题更加符合用户习惯情况。本步骤的可实施方式将在后文描述。
[0190] S230、所述已有问题和/或第一扩展问题组成第一问题,对第一问题基于所述第一问题中的各词的关键性,通过采样增强的方式生成第二扩展问题。其中,本具体实施方式中,使用METROPOLIS‑HASTINGS采样增强。
[0191] 其中,所述METROPOLIS‑HASTINGS采样增强包括对所述第一问题中各句子隐含的各种状态进行采样,当采样后的状态达到高斯细致平稳状态或者达到设定采样次数后,停止采样。与传统的所述METROPOLIS‑HASTINGS采样增强对比,这里基于所述已有问题各词的关键性进行采样增强,生成的所述第二扩展问题更加符合用户习惯情况。本步骤的可实施方式将在后文描述。
[0192] S240、所述已有问题、第一扩展问题、第二扩展问题任意一个或多个的组合的集合组成第二问题,对第二问题通过回译增强生成第三扩展问题。
[0193] 通过回译增强,把所述第二问题中句子翻译成其他语言,然后再回译为原语言,从而生成所述第三扩展问题。其中,在采用回译增强方法扩充问题数量的同时,除了直接回译第二问题,还可以是回译变换后的第二问题,这里变换后的第二问题指进行了同义词替换、语法结构替换、删除无关紧要词汇等变换后的第二问题。
[0194] 在一些具体实施方式中,翻译和回译可以采用相同的翻译软件,也可以采用不同的翻译软件。在其他一些实施例中,还可以是通过多个翻译过程实现该翻译与回译,例如将第二问题翻译为语种B,再将语种B翻译为语种C,再将语种C翻译回语种A。
[0195] 另一方面,因为采用翻译软件库进行翻译,回译生成的扩展问题存在一些词性和语法方面不合理的问题,至少使用下列方法之一进行过滤,以删除回译后的不合理的句子:硬性规则过滤、BLEU分值过滤、词性过滤、句法依存关系过滤。其中,BLEU 分值用于评价译文和参考译文之间相似词的占比。
[0196] S250、所述第一扩展问题、第二扩展问题、第三扩展问题的任意一个或多个的组合,构成扩展问题,与已有问题组成问题样本。
[0197] 其中,扩展问题的标签基于对应的已有问题进行确定,具体来说,各扩展问题都直接或间接基于已有问题增强,因此基于已有问题的标签来作为其增强出来的扩展问题的标签。
[0198] 由上,完成了问题样本的扩充。上述具体实施方式中虽然以无监督数据增强、采样增强、回译增强的顺序描述,但不难理解,该具体实施方式中的上述三种增强的顺序可任意,并且还可以进一步包括其他的增强方式,例如基于词向量的增强,即用向量空间中距离最近的单词替换原始句子中的单词。
[0199] 【本申请无监督数据增强方法的具体实施方式】
[0200] 图6d示出了上述步骤S220中提到的无监督数据增强方法的一具体实施方式的流程,下面以一个已有问题的数据增强为例进行说明,包括以下步骤:
[0201] S2210、对已有问题进行分词。
[0202] 通过分词步骤,将所述已有问题中的句子分割成一个个的词,这些词组成问题词语字典。可选地,还可去除所述词语字典中助词和停用词。示例地,可以采用分词模型进行分词,分词模型可以如基于RNN类的深度学习网络模型、隐马尔科夫网络模型或条件随机场模型等。
[0203] S2220、确定所述已有问题的各词的同义词。
[0204] 在一些具体实施方式中,利用词语字典,可以至少使用下列三种方法中的一种,来确定所述已有问题的各词的同义词:
[0205] 1)使用预训练语言模型确定所述词语字典中各词的同义词,示例地,所述预训练语言模型为词向量模型;
[0206] 2)基于同义词词林确定所述词语字典中各词的同义词,其中,同义词词林是指各个词语的同义词集合。同义词词林可以参考原版本(梅家驹等人于1983年编纂而成)或哈尔滨工业大学信息检索实验室提供的扩展版本的同义词词林。
[0207] 3)通过人工,例如专业领域的专家,梳理的所述词语字典中各词的同义词。
[0208] S2230、确定所述已有问题的各词的关键性。
[0209] 在一些具体实施方式中,基于所述已有问题,至少使用下列三种方法中一种确定所述已有问题中各词的关键性:
[0210] 1)使用人工,例如专业领域的专家,梳理所述已有问题中各词的关键性。
[0211] 2)使用词向量来计算所述已有问题中各词的关键性。例如,使用word2vec算法预测问题中的关键词。
[0212] 3)使用基于词频(term frequency,TF),或词频‑逆文档频率(term frequency– inverse document frequency,TF‑IDF)算法来计算已有问题中各词的关键性。
[0213] 本具体实施方式中,使用TF‑IDF算法确定上述关键性。TF‑IDF算法是一种用于信息检索与数据挖掘的常用加权技术,其中,TF是词频(Term Frequency),IDF是逆文本频率指数(Inverse Document Frequency),基于TF‑IDF算法来计算所述已有问题中各词的关键性的计算公式如下公式(2)所示:
[0214] TFIDF(w)=TF(w)*IDF(w)  (2)
[0215] 其中,w为所述已有问题的任一词,TFIDF(w)表征词w的关键性。TF(w)描述词w 在所述已有问题中以词为单位出现的频度,IDF(w)描述词w在所述已有问题中各句子中以句子为单位逆文本指数,所述TF(w)和IDF(w)的计算方法在这里不再详述。
[0216] S2240、对任一待数据增强的已有问题,根据其各词的关键性选择待变换的词。
[0217] 继续为TF‑IDF为例进行说明,对于所述已有问题的任一问题A,根据问题A中各词的关键性TFIDF(w)选择待变换的词,所述关键性越高的词,被选择的概率越低。所述选择概率的计算公式如下公式(3)所示:
[0218]
[0219] 其中,Ti表示词xi被选择的概率,c表示问题A各分词关键程度的最高值,xj表示问题A中任一词,|x|表示问题A中词的总数,q为超参,用于调节加强的倍数。
[0220] S2250、对待变换的词进行变换,从而对所选择的已有问题进行数据增强,生成其第一扩展问题。
[0221] 选择好待变换的词后,对问题A中待变换的词可以随机选择下列四种增强方式至少之一种进行问题增强:
[0222] 1)删除待变换的词;
[0223] 2)在待变换的词前面插入一新词,所述新词基于p1(w)确定;其中,p1(w)为分词w在整个所述词语字典中被抽取的概率,其计算方式可为如下公式(4):
[0224]
[0225] 其中,w为所述已有问题的任一词,TFIDF(w)表征词w的关键性, maxw1′TFIDF(w1′)为在整个所述词语字典中的TFIDF(w)的最大值,即所述已有问题的各分词中关键程度最大值,w1′表示所述词语字典范围;
[0226] 3)把待变换的词用一同义词替换,其中,该同义词基于p2(w)确定;其中,p2(w)为词w在其所在的同义词集合中被抽取的概率,其计算方式可为如下公式(5):
[0227]
[0228] 其中,w为待变换的词任一同义词,maxw2′TFIDF(w2′)为在所述同义词集合中的 TFIDF(w)的最大值,w2′表示所述同义词集合的范围;
[0229] 4)把待变换的词与其相邻的词互换位置。
[0230] 通过上述增强生成的新问题为问题A的所述第一扩展问题,其标签和答案设置为与问题A相同。
[0231] S2260、判断是否完成该已有问题的无监督数据增强,若是,则转入步骤S2270,输出各已有问题的第一扩展问题;否则转入步骤S2240,以对该已有问题进行下一待变换的词的选择,以再次生产该已有问题的扩展问题,或选择下一个已有问题,针对下一个已有问题生产扩展问题。
[0232] 【本申请METROPOLIS‑HASTINGS采样增强方法的具体实施方式】
[0233] 图6e示出了上述步骤S230中提到的METROPOLIS‑HASTINGS采样增强方法的一具体实施方式的流程,其包括以下步骤:
[0234] S2310、基于公共语料对BERT模型进行预训练,基于专业领域语料对预训练的 BERT模型进行微调,生成BERT模型。
[0235] 其中,基于丰富的公共语料预训练的BERT模型包含语言知识的结构,再通过专业领域语料微调,使生成的BERT模型可以准确计算专业领域中句子的各词的关键性,利用其中MLP模型在METROPOLIS‑HASTINGS采样中计算所选择词的选择概率,所选择词可以是要删除的词,也可以是新词,该新词用于插入到专业领域句子的某个位置或替换专业领域句子中的一个词。
[0236] S2320、从所述第一问题中选择一问题。为了便于后续描述方便,所选择的问题记0 0
为θ,其分布概率记为f(θ)=1。
[0237] S2330、对所选择的第一问题进行一定数目的METROPOLIS‑HASTINGS采样。并且,当采样结果趋于稳定时,例如以达到某数目的采样次数后,保留该数目后的每步采样生成的单步新句子,各单步新句子组成新句子。
[0238] 其中,相对于传统的METROPOLIS‑HASTINGS采样,本具体实施方式基于待采样句子的各词的关键性进行采样。同时在采样过程中使用BERT模型计算转移变换的转移概率。本步骤的可实施方式将在后文描述。
[0239] S2340、基于所选择的第一问题中各词的关键性和各所述新句子的分布概率确定所选择的问题的第二扩展问题。
[0240] 其中,设置的句子分布概率阈值,选择所述新句子中选择f(θ(*))大于所述句子分布概率阈值的新句子,并且,当所选择的新句子满足所选择的第一问题中关键词约束时,则所选择的新句子作为所选择的第一问题的第二扩展问题。所述的所选择的第一问题中关键词约束的一种可能实施方式:设置关键性阈值,所选择的新句子包含所选择的第一问题中关键性高于关键性阈值的词。
[0241] 【本申请单步METROPOLIS‑HASTINGS采样方法的具体实施方式】
[0242] 图6f示出了上述步骤S2330中提到的METROPOLIS‑HASTINGS采样的一具体实施方式的流程,其包括以下步骤:
[0243] S2331、基于所述本步待采样句子的各词的关键性选择待转移变换的词。
[0244] 其中,所述关键性的计算方法可参照上述步骤S2230。选择待转移变换的词的方法可参照上述步骤S2230。不再赘述。
[0245] S2332、对待转移变换的词进行转移变换,生成单步新句子。
[0246] 假设本步各待采样句子集合为θ(t‑1), 为所述本步待采样句子中的一个句(*)子,设待转移变换的词为w3,对w3进行转移变换,生成各单步新句子集合θ , 为所述单步新句子中一个新句子。
[0247] 所述转移变换的方式包括删除、替换和插入,可分别进行相应的转移变换。
[0248] S2333‑S2335、针对上述各转移变换得到的各个新句子,计算当前采样的接受率α,t (*)根据该接受率α与一随机值的比较确定是否接受本步采样结果,当接受时,令θ=θ ,所述(*) t (t‑1) (t‑1)
单步新句子θ 作为下步待采样句子,否则令θ=θ ,继续使用本步待采样句子θ 作为下步待采样句子。
[0249] 其中,所述接受率α基于本步采样前后句子的分布概率和本步所述转移变换的转移概率计算,例如接受率α和随机值可使用如下公式(6)计算:
[0250]
[0251] 其中,R表示0与1之间的随机值,当α>R时接受本步采样结果,否则不接受。
[0252] 其中, 为 的分布概率, 为所述单步新句子集合中各句子的分布概率,其采用下列公式(7)计算:
[0253]
[0254] 其中, 为从 变换到 的转移概率, 为从变换到 的转移概率,所述转移变换的方式包括删除、替换和插入,每种转移变换方式选择概率为1/3,对应这三种转移变换的转移概率 和 的计算方法
如下:
[0255] 1)对待转移变换的词w3进行删除,其中,转移概率 等于1/3,转移概率 等于q1(w3)*1/3,其中,q1(w3)是所选择的词w3的选择概率,其中,基于BERT模型中的MLP模型计算该q1(w3)。
[0256] 2)对待转移变换的词w3选择其一同义词w4进行替换,转移概率 等于q1(w4)*1/3,转移概率 等于q1(w3)*1/3,其中,可基于BERT模型中的MLP模型计算q1(w4)和q1(w3);需要强调的是,待转移变换的词w3可能有多个同义词,分别用每个同义词w4都需分别进行计算,这样会保留多个句子,都作为下次待采待采样句子。为了降低计算量,一种可能的实施方式是设置同义转移概率阈值,至保留 大于同义转移概率阈值的句子。
[0257] 3)在待转移变换的词w3之前位置插入一选择的新词w5,转移概率 等于插入词的q1(w5)*1/3,转移概率 等于1/3,其中,可基于BERT模型中的MLP模型计算q1(w5)。
[0258] 如图8所示,本申请实施例还相应的提供了问题分类装置10,可以用于实现上述问题分类方法,该问题分类装置10包括:
[0259] 获取模块12,用于获取用户问题。
[0260] 分类模块14,用于利用问题分类模型确定所述用户问题的问题类别,其中,所述问题分类模型用于对所述用户问题进行n次分类,所述n为两个或两个以上,且所述n次分类中包括第i‑1次分类和第i次分类,所述第i次分类时根据所述用户问题、所述第i‑1次分类的分类结果,输出所述第i次分类的分类结果,其中,所述第i个分类模型比所述第i‑1个分类模型所输出的分类结果的分类类别的颗粒度小。具体的,分类模块14可以用于执行上述问题分类方法中的任一步骤以及其中任一可选的示例。具体可参见方法实施例中的详细描述,此处不做赘述。
[0261] 在一些实施例中,所述第i‑1个分类模型输出的分类结果包括分类结果中置信度最高的分类类别。
[0262] 在一些实施例中,所述n个分类模型中的第n个分类模型所输出的分类结果中,置信度最高的分类类别的置信度高于置信度阈值时输出所述分类结果,所述置信度阈值与所述分类结果的识别的准确率和误触率相关。
[0263] 在一些实施例中,所述n个分类模型中的第1个分类模型包括卷积神经网络;所述n个分类模型中的第n个分类模型包括循环神经网络。
[0264] 如图9所示,本申请实施例还相应的提供了问题分类模型训练装置20,可以用于实现上述问题模型的训练方法,其中,该问题分类模型包括级联的n个分类模型,所述n为两个或两个以上;所述n个分类模型中包括级联的第i‑2分类模型、第i‑1个分类模型和第i个分类模型,该问题分类模型训练装置20包括:
[0265] 获取模块22,用于获取问题样本,所述问题样本包括多层标签,所述多层标签中包括相邻的第i‑1层类别标签和第i层类别标签,所述第i层类别标签所表示的问题类别的颗粒度小于所述第i‑1层类别标签。
[0266] 训练模块24,用于使用所述问题样本训练所述问题分类模型,包括根据所述问题样本、所述问题样本的第i层类别标签、和经训练后的所述第i‑1个分类模型对所述问题样本输出的分类结果,训练所述第i个分类模型,其中,所述第i‑1个分类模型至少根据所述问题样本、所述问题样本的第i‑1类别标签、和经训练后的所述第i‑2 分类模型对所述问题样本输出的分类结果训练。具体的,训练模块24可以用于执行上述问题分类模型训练方法中的任一步骤以及其中任一可选的示例。具体可参见方法实施例中的详细描述,此处不做赘述。
[0267] 在一些实施例中,所述第i‑1个分类模型输出的分类结果包括分类结果中置信度最高的分类类别。
[0268] 在一些实施例中,所述训练模块24用于利用问题样本的负样本训练所述n个分类模型中的第n个分类模型。
[0269] 在一些实施例中,所述训练模块24具体用于训练所述第n个分类模型所使用的训练目标包括问题类别的识别准确率和负样本误触率的均匀分布性,根据所述识别准确率和负样本误触率的均匀分布性获得置信度阈值,其中,所述置信度阈值用于所述第n个分类模型输出分类结果时,置信度最高的分类类别的置信度高于置信度阈值时输出所述分类结果,所述误触率为负样本被识别为各问题类别的概率。
[0270] 在一些实施例中,所述训练模块24具体用于执行所述训练时,当所述负样本的 TOP1概率的密度曲线和所述问题样本的TOP1概率的密度曲线错峰分布时,结束所述训练,其中,所述负样本TOP1概率为负样本被识别成各问题类别的概率中的最大概率,所述问题样本TOP1概率为问题样本被识别成各问题类别的概率中的最大概率。
[0271] 在一些实施例中,所述训练模块24还用于根据所述问题样本中所述问题包含的词的关键性确定待增强的词,其中所述关键性的高低与被确定为待增强的词的概率成反向关系;根据所述待增强的词对所述问题样本进行数据增强获得扩展的问题样本,所述扩展的问题样本的标签与对应的问题样本的标签相同,所述扩展的问题样本用于训练所述问题分类模型。
[0272] 在一些实施例中,所述词的所述关键性通过下列方式之一进行确定:根据词向量确定词的关键性、根据确定词的关键性、或根据词频‑逆文档频率确定词的关键性。
[0273] 在一些实施例中,所述数据增强通过至少以下之一种方式进行:无监督方式的数据增强、采样方式的数据增强、回译方式的数据增强。
[0274] 下面对本申请实施例在实际使用中的效果进行介绍。在英文财经场景下的问答系统,因为英文历史用户问题少,导致标注样本稀疏和分布失衡,当使用本申请实施例问题分类方案时,可以快速将问题类别的TOP1准确率从30%提升至50%,提升效果非常明显。在中文财经场景下的问答系统,当使用本申请实施例问题分类方案时,分类模型的TOP1准确率从89%提升至94%,提升效果也非常好。图7e还显示了该中文财经场景下的问答系统的用户自助率(指不借助人工的问答)逐渐提升的走势,该用户问答自助率的提升反映出用户更多的使用机器问答,而更少的使用人工客服,能反映出该问答系统的准确度受到用户的认可。
[0275] 图10是本申请实施例提供的一种计算设备900的结构性示意性图。该计算设备可以作为问题分类装置、或问题训练装置,执行上述问题分类方法、或训练方法的各可选实施例,该计算设备可以是终端,也可以是终端内部的芯片或芯片系统。如图10 所示,该计算设备900包括:处理器910、存储器920、通信接口930。
[0276] 应理解,图10所示的计算设备900中的通信接口930可以用于与其他设备之间进行通信,具体可以包括一个或多个收发电路或接口电路。
[0277] 其中,该处理器910可以与存储器920连接。该存储器920可以用于存储该程序代码和数据。因此,该存储器920可以是处理器910内部的存储单元,也可以是与处理器910独立的外部存储单元,还可以是包括处理器910内部的存储单元和与处理器 910独立的外部存储单元的部件。
[0278] 可选的,计算设备900还可以包括总线。其中,存储器920、通信接口930可以通过总线与处理器910连接。总线可以是外设部件互连标准(Peripheral  Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中采用了一条无箭头的线表示,但并不表示仅有一根总线或一种类型的总线。
[0279] 应理解,在本申请实施例中,该处理器910可以采用中央处理单元(central processing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器910采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
[0280] 该存储器920可以包括只读存储器和随机存取存储器,并向处理器910提供指令和数据。处理器910的一部分还可以包括非易失性随机存取存储器。例如,处理器910 还可以存储设备类型的信息。
[0281] 在计算设备900运行时,所述处理器910执行所述存储器920中的计算机执行指令执行上述方法的任一操作步骤以及其中任一可选的实施例。
[0282] 应理解,根据本申请实施例的计算设备900可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备900中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
[0283] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0284] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0285] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0286] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0287] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0288] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read‑Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0289] 本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行上述方法,该方法包括上述各个实施例所描述的方案中的至少之一。
[0290] 本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器 (RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0291] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0292] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0293] 可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、 C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0294] 另外,说明书和权利要求书中的词语“第一、第二、第三等”或模块A、模块B、模块C等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
[0295] 在上述的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
[0296] 说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
[0297] 本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
[0298] 注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,均属于本申请保护范畴。

当前第1页 第1页 第2页 第3页