一种训练分类模型的方法及系统与流程

文档序号:19738347发布日期:2020-01-18 04:49阅读:243来源:国知局
一种训练分类模型的方法及系统与流程

本说明书实施例涉及数据处理领域,特别涉及一种训练分类模型的方法、系统。



背景技术:

随着计算机技术的发展,自动问答系统在生活中越来越普遍,为人们的生活带来了多种便利。例如通过识别用户输入的文字和/或语音问题,自动回复与该问题对应的答案,从而解决用户的疑问和需求。

传统的问答系统中通常是采用规则分类方式来对问题对进行分类,或者基于大量人工标记的训练样本训练的分类模型对问题对进行分类。如何有效提高对问题对分类的效率和通用性成为目前需要解决的技术问题。



技术实现要素:

本说明书的一个方面提供一种训练分类模型的方法,所述方法包括:获取至少一个问题对,将所述至少一个问题对输入初始分类模型,确定所述至少一个问题对中每一个的初始分类结果;基于所述初始分类结果,确定所述至少一个问题对中每一个的匹配模型,将所述至少一个问题对输入对应的所述匹配模型,确定所述至少一个问题对的第一匹配结果;基于所述第一匹配结果以及所述至少一个问题对标定的第二匹配结果,得到反馈值;根据所述反馈值调整所述初始分类模型,得到目标分类模型。

本说明书的另一个方面提供一种对目标问题对进行分类的方法,所述方法包括:采用所述的目标分类模型对目标问题对进行分类,得到所述目标问题对的目标分类结果。

本说明书的另一个方面提供一种训练分类模型的系统,所述系统包括训练模块,用于获取至少一个问题对,将所述至少一个问题对输入初始分类模型,确定所述至少一个问题对中每一个的初始分类结果;基于所述初始分类结果,确定所述至少一个问题对中每一个的匹配模型,将所述至少一个问题对输入对应的所述匹配模型,确定所述至少一个问题对的第一匹配结果;基于所述第一匹配结果以及所述至少一个问题对标定的第二匹配结果,得到反馈值;根据所述反馈值调整所述初始分类模型,得到目标分类模型。

本说明书实施例的另一个方面提供一种训练分类模型装置,包括至少一个存储介质和至少一个处理器;所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现对分类模型进行训练的方法。

附图说明

本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:

图1是根据本说明书的一些实施例所示的示例性问题对的示意图;

图2是根据本说明书的一些实施例所示的示例性训练分类模型系统的模块图;

图3是根据本说明书的一些实施例所示的训练分类模型方法的示例性流程图;以及

图4是根据本说明书的一些实施例所示的获取反馈值方法的示例性流程图;以及

图5是根据本说明书的一些实施例所示的训练匹配模型的示例性流程图。

具体实施方式

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。

如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

图1是根据本说明书的一些实施例所示的示例性问题对的示意图。

如图1所示,问题对可以是指由问题以及与该问题相关的文本组成的文本对。在一些实施例中,问题对可以是问题以及对应该问题的回答,其中,回答可以是对问题的解答,也可以是针对问题的另一种提问。例如,“这个医保犹豫期是多久”以及对应其的回答“10天”,该回答属于对问题的解答。又例如,“为什么我支付的钱被扣了”以及对应的回答“是钱少了吗”,该回答属于对问题的另一种提问。在一些实施例中,问题对可以是两个表述相似的问题。例如,“好医保值得信任吗”以及其相似表述“好医保可靠吗”。在一些实施例中,所述问题对可以是用户在各个行业中产生的问题对,包括但不限于金融行业、保险行业、互联网行业、汽车行业、餐饮行业、电信行业、能源行业、娱乐行业、体育行业、物流行业、医疗行业、安全行业等。

在一些实施例中,可以对问题对进行分类。在一些实施例中,可以基于问题对中问题的类别进行分类。例如,“好医保是什么”,该问题属于定义类。在一些实施例中,可以基于关键词对问题对进行分类。例如,基于“好医保是什么”中关键词“是什么”确定类别为定义类。在一些实施例中,还可以基于其他方法确定分类,本实施例不做限制。

在一些实施例中,可以对问题进行匹配。匹配可以是指问题对中两个句子的内容是否能够相互对应。对于问题回答型问题对,匹配可以是回答是否解决了问题中的疑问,也可以是回答表述的内容是否与问题相似或者一致。例如,问题对“好医保是什么”“好医保是一款综合类保险”,回答给出了“好医保”的定义,问题对属于匹配。又例如,问题对“为什么我支付的钱被扣了”“是钱少了吗”两个句子都说的是用户钱变少的内容,问题对属于匹配。对于相似表述型问题对,匹配可以是两个句子表述的内容是否相似或者一致。例如,“好医保值得信任吗”和“好医保可靠吗”两个句子表述内容一致,问题对属于匹配。在一些是实施例中,可以用数字表示匹配与不匹配。如图1所示,用1表示匹配,0表示不匹配。

在一些实施例中,可以基于问题对中句子的文本相似性确定问题对是否匹配。在一些实施例中,还可以基于其他方法进行,本实施例不做限制。

图2是根据本说明书的一些实施例所示的示例性训练分类模型系统的模块图。

该系统可以用于互联网服务的线上服务平台。在一些实施例中,该系统可以用于包含智能答复系统的线上服务平台。例如,电商平台、线上咨询平台、公共服务平台等。

如图2所示,该系统可以包括分类模型训练模块210和匹配模型训练模块220。

匹配模型训练模块220可以用于对问题对匹配模型的训练。具体的,首先匹配模型训练模块220获取多个样本对,所述样本对为问题对。其次,匹配模型训练模块220可以对所述多个样本对进行分类,确定所述多个样本对的至少一个分类结果。在一些实施例中,匹配模型训练模块220可以基于规则对样本对分类。在一些实施例中,匹配模型训练模块220可以基于分类模型对样本对分类。再者,匹配模型训练模块220可以根据所述至少一个分类结果,将所述多个样本对分别输入至少一个初始匹配模型进行训练,获得与所述至少一个分类结果对应的至少一个所述匹配模型。例如,类别包含时间类、范围类、定义类3类,则设置与该3个类别对应的3个匹配模型,即与时间类对应的匹配模型、与范围类对应的匹配模型、与定义类对应的匹配模型。每个类别对应的匹配模型基于该类别的问题对样本训练。例如,时间类对应的匹配模型基于时间类的问题对进行训练,具体的,将带有标签的时间类问题对输入到一个初始排序模型中进行训练而得,其中标签可以是是否匹配或者匹配概率。又例如,范围类对应的匹配模型是将带有标签的范围类的问题对输入到另一个初始排序模型中进行训练而得,该初始匹配模型与时间类对应的匹配模型训练用的初始匹配模型不是同一个。又例如,定义类对应的匹配模型是将带有标签的范围类的问题对输入到另一个初始排序模型中进行训练而得,该初始匹配模型与时间类对应的匹配模型训练用的初始匹配模型和范围类对应的匹配模型训练用的初始匹配模型不是同一个。不同类别对应的匹配模型用于对不同类别的问题对进行匹配。例如,将时间类的问题对输入时间类对应的匹配模型进行匹配,确定该问题对是否匹配。又例如,将范围类的问题对输入范围类对应的匹配模型进行匹配,确定该问题对是否匹配。

在一些实施例中,匹配模型可以是深度语义匹配模型(deepstructuredsemanticmodels,dssm)、卷积神经网络(convolutionalneuralnetworks,cnn)、bert(bidirectionalencoderrepresentationsfromtransformers)、长短期记忆网络(longshort-termmemory,lstm)、增强序列推断模型(enhancedsequentialinferencemodel,esim)等。

在一些实施例中,分类模型训练模块210可以用于对问题对分类模型进行训练。具体的,首先分类模型训练模块210获取至少一个问题对,将所述至少一个问题对输入初始分类模型,确定所述至少一个问题对中每一个的初始分类结果。其中,初始分类模型是指还未训练的分类模型,初始分类结果是指基于初始分类模型的输出确定的分类结果。例如,将概率最高的类别作为初始分类结果。初始分类模型的分类方法可以是基于问题对中句子的关键词进行。在一些实施例中,初始分类模型可以是多层感知机(multi-layerperception,mlp)、决策树(decisiontree,dt)、深度神经网络(deepneuralnetwork,dnn)、支持向量机(supportvectormachine,svm)、k最近邻算法(k-nearestneighbor,knn)等。

在一些实施例中,分类模型训练模块210可以从数据库、线上平台等获取至少一个问题对。其次,分类模型训练模块210可以基于所述初始分类结果,确定所述至少一个问题对中每一个的匹配模型,将所述至少一个问题对输入对应的所述匹配模型,确定所述至少一个问题对的第一匹配结果。例如,若初始分类结果为时间类,则将该问题对输入到时间类对应的匹配模型中。其中,匹配模型是已经经过训练的模型。关于训练匹配模型的更多细节参见前文。然后,分类模型训练模块210可以基于所述第一匹配结果以及所述至少一个问题对标定的第二匹配结果,得到反馈值。其中反馈值是一种衡量匹配模型匹配准确率的指标,例如,f-1分数。f-1分数是综合准确率和召回率的模型综合评价指标。如图4所述,在一些实施例中,分类模型训练模块210可以根据问题对第一匹配结果和问题对标记的第二匹配结果是否一致计算反馈值,其中一致代表匹配模型预测正确,不一致代表匹配模型预测错误。统计被预测错误的问题对数量和被预测正确的问题对数量,并将对应的数量带入现有的反馈值(例如,f-1分数)计算公式中确定反馈值。关于计算反馈值的更多细节参见图4及其相关描述。最后,分类模型训练模块210可以根据所述反馈值调整所述初始分类模型,得到目标分类模型。如图3所述,在一些实施例中,分类模型训练模块210可以基于初始分类模型第一损失函数和反馈值,调整初始分类模型的参数,当调整后的中间分类模型当前的损失函数第二损失函数满足第一预设条件,确定当前中间分类模型为目标分类模型。其中,第二损失函数是初始分类模型调整参数后得到的中间分类模型的损失函数。

在一些实施例中,分类模型训练模块210还可以用于将输入所述匹配模型的所述问题对进行向量表示。例如,分类模型训练模块210可以通过编码器对问题对进行向量表示。在一些实施例中,不同类别对应的匹配模型可以共用一个编码器。

应当理解,图2所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。

需要注意的是,以上对于训练分类模型系统200及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,图2中披露的分类模型训练模块210和匹配模型训练模块220可以是一个系统中的不同模块,也可以是一个模块实现上述的两个模块的功能。又例如,训练分类模型系统200中各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。

图3是根据本说明书的一些实施例所示的训练分类模型方法的示例性流程图。如图3所示,该训练分类模型方法300包括:

步骤302,获取至少一个问题对,将所述至少一个问题对输入初始分类模型,确定所述至少一个问题对中每一个的初始分类结果。具体的,步骤302可以由分类模型训练模块210执行。

在一些实施例中,可以从线上平台(例如,网站、应用程序等)获取所述至少一个问题对。例如,可以访问网站或者应用程序的智能答复系统内的问题对数据,获取所述至少一个问题对。在一些实施例中,可以直接从存储了大量问题对数据的存储设备中读取所述至少一个问题对。在一些实施例中,还可以采用其他任意方式获取问题对,本实施例不做限制。

所述初始分类模型可以是指尚未经过训练的分类模型。所述分类模型可以指能够根据数据的特点把未知类别的样本映射到给定类别中的一个或多个的模型、算法、神经网络等,其中给定类别可以是提前设定好的。分类模型可以包括但不限于多层感知机(multi-layerperception,mlp)、决策树(decisiontree,dt)、深度神经网络(deepneuralnetwork,dnn)、支持向量机(supportvectormachine,svm)、k最近邻算法(k-nearestneighbor,knn)等任何可以进行文本分类的算法或者模型。

在一些实施例中,所述分类模型输出可以是属于各个给定类别的概率。例如,若给定类别分别为时间类、范围类、定义类,分类模型对问题对“这个医保犹豫期是多久”“10天”分类结果可以是时间类0.8、范围类0.2、定义类0。

所述初始分类结果可以是指根据初始分类模型的输出确定的分类结果。例如,初始分类结果就是概率最高的那个类别。以上述示例继续说明,初始分类结果为概率为0.8的时间类。

步骤304,基于所述初始分类结果,确定所述至少一个问题对中每一个的匹配模型,将所述至少一个问题对输入对应的所述匹配模型,确定所述至少一个问题对的第一匹配结果。具体的,步骤304可以由分类模型训练模块210执行。

匹配模型可以指确定问题对是否匹配的模型。例如,可以根据问题对的语义相似度确定是否匹配。匹配模型是经过训练的模型。关于所述匹配模型的训练方式可以参见图5以及描述,在此不再赘述。

匹配模型类型可以包括但不限于深度语义匹配模型(deepstructuredsemanticmodels,dssm)、卷积神经网络(convolutionalneuralnetworks,cnn)、bert(bidirectionalencoderrepresentationsfromtransformers)、长短期记忆网络(longshort-termmemory,lstm)、增强序列推断模型(enhancedsequentialinferencemodel,esim)等任何可以进行文本分类的算法或者模型。

在一些实施例中,针对不同类别的问题对进行匹配时采用不同的匹配模型,即,每一个类别会对应一个匹配模型。每个类别对应的匹配模型的类型可以是相同的,可以是不同的。例如,全部为bert模型。又例如,部分为bert,部分为esim。通过先对问题对进行分类确定问题对的类别,再基于该类别对应的匹配模型对问题对进行匹配,该匹配模型是基于该类别的问题对进行训练的,因此可以使该类别的问题对的匹配的结果更准确。并且,分类的结果越准确(即,问题对可以被确定为正确的类别),问题对就可以在更为合适的匹配模型(即,与正确类别对应的匹配模型)中进行匹配,相应的匹配的结果也会越准确。

在一些实施例中,可以根据初始匹配模型输出的初始分类结果,确定与该初始分类结果对应的匹配模型。第一匹配结果是指通过与初始分类结果对应的匹配模型确定的问题对是否匹配的结果。在一些实施例中,第一匹配结果包括匹配或者不匹配其中的一种。在一些实施例中,第一匹配结果可以基于匹配模型输出匹配概率确定。例如,可以预设阈值(如0.5、0.6等)确定。具体的,若匹配概率大于或等于预设阈值,则第一匹配结果为匹配;若匹配概率小于所预设阈值,第一匹配结果为不匹配。

作为中文文本分类问题,需要先将文字表示成计算机能够运算的数字或向量的形式,再进行处理。在一些实施例中,可以将输入所述匹配模型的所述问题对进行向量表示,将所述问题对映射为固定长度的向量,从而便于模型处理。例如,可以通过编码器对所述问题对进行向量表示。在一些实施例中,与所述初始分类结果对应的不同的所述匹配模型可以共用同一个编码器,即,匹配模型的可以共用底层。又例如,可以通过词嵌入(wordembedding)方法,将所述问题对表示为同样长度的向量。词嵌入是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。所述词嵌入方法可以包括人工神经网络、对词语同现矩阵降维、概率模型以及单词所在上下文的显式表示等。

步骤306,基于所述第一匹配结果以及所述至少一个问题对标定的第二匹配结果,得到反馈值。具体的,步骤306可以由分类模型训练模块210执行。

反馈值可以是一种衡量匹配模型的匹配准确率的指标。反馈值越高,代表匹配模型匹配的结果越准确。

由于问题对的分类结果会影响问题对的匹配结果,即分类越准确,匹配也越准确,匹配模型的反馈值也越高,因此,反馈值不仅可以代表匹配模型的匹配准确程度,还可以间接反映分类模型的分类准确率。关于获取所述反馈值的更多描述可以参见图4以及描述,在此不再赘述。

步骤308,根据所述反馈值调整所述初始分类模型,得到目标分类模型。具体的,步骤308可以由分类模型训练模块210执行。

在一些实施例中,可以根据反馈值调整初始分类模型的参数,完成初始分类模型的训练,得到目标分类模型。具体的,基于初始分类模型的第一损失函数和反馈值,调整初始分类模型的参数,当调整后的中间分类模型当前的损失函数第二损失函数满足第一预设条件,确定当前中间分类模型为目标分类模型。

中间分类模型可以是指初始分类模型在训练过程中的模型。具体的,可以是通过反馈值和第一损失函数调整初始分类模型的参数后得到的模型。

第一损失函数可以是用来评价正在训练的模型得到的预测值和样本(例如,问题对)的真实值之间的差距,其中,预测值是指将样本输入正在训练的模型得到的输出值。若模型是分类模型,该预测值可以是属于每个类别的概率,如问题对“这个医保犹豫期是多久”“10天”的预测值为时间类0.8、范围类0.2、定义类0(给定分类包括时间类、范围类定义类3类)。样本的真实值是指样本正确值,如问题对“这个医保犹豫期是多久”“10天”的真实值为时间类1、范围类0、定义类0。在一些实施例中,真实值一般可以作为样本的标签一起输入到模型中进行训练。在一些实施例中,可以人工标记样本代表真实值的标签。在一些实施例中,也可以采用其他方式标记标签,本实施例不做限制。

第一损失函数可以包括但不限于均方误差损失函数、交叉熵损失函数、指数损失函数等。

以交叉熵损失函数为例,单个样本(即单个问题对)的第一损失函数为公式(1),多个样本的第一损失函数是单个样本损失函数的叠加:

其中,h为损失函数值,n为分类的类别数,q(xi)是指问题对属于第i个类别的真实值,p(xi)是指初始分类模型确定的问题对属于第i个分类的预测概率。

例如,初始分类模型的给定分类包括时间类、范围类定义类3类,若将问题对“这个医保犹豫期是多久”“10天”输入初始分类模型,输出的预测值时间类0.8、范围类0.2、定义类0,该问题对属于每个类别的真实值为:时间类1、范围类0、定义类0,则该样本的第一损失函数h=-1log0.8-0log0.2-0log0。

模型在训练过程中,会不断调整模型的权重(即,模型每层的两个节点连接的权重),模型的参数会越来越优化,损失函数值会越来越小,输出的预测值结果会越来越接近真实值。模型训练的目标是最小化损失函数。

利用第一损失函数训练初始分类模型需要标记样本真实值的标签,会增加人工成本和降低工作效率。如前所述,分类的结果越准确,匹配的结果也会越准确,匹配模型的匹配准确率可以反向反映分类模型分类的准确率。因此,可以将衡量匹配模型匹配准确率的指标用于分类模型的训练。例如:根据匹配模型的准确度判断分类结果的好和坏,好的分类可以奖励,坏的分类可以调整。调整可以是调整分类模型的激励函数、损失函数或者其他参数,在此不一一列举。或者可以根据匹配模型的准确度直接给出样本数据的标签。

在一些实施例中,可以根据匹配模型的准确度调整分类模型的损失函数。具体的,可以是基于反馈值和第一损失函数确定第二损失函数,基于该第二损失函数训练模型。其中,第二损失函数为中间分类模型的损失函数,当中间分类函数的第二损失函数的值达到收敛或者小于预设阈值时,分类模型训练完成。

在一些实施例中,可以将反馈值代替第一损失函数中的真实值构成第二损失函数。其中,反馈值是基于多个样本得到的匹配模型匹配准确度的指标,计算单个样本第二损失函数时采用的同一个反馈值。关于反馈值计算的更多细节参见图4及其相关描述。

以交叉熵损失函数为例,单个样本的第二损失函数为公式(2),多个样本的第一损失函数是单个样本损失函数的叠加:

其中,h为损失函数值,n为分类的类别数,a为反馈值,p(xi)是指初始分类模型确定的问题对属于第i个分类的预测概率。

例如,将多个问题对样本输入初始分类模型(给定分类包括时间类、范围类定义类3类),然后基于分类结果将该多个问题对分别输入对应的匹配模型,且得到反馈值0.4。其中,问题对“这个医保犹豫期是多久”“10天”的分类结果预测值为时间类0.8、范围类0.2、定义类0,将该问题对的第二损失函数为h=-0.4log0.8-0.4log0.2-0.4log0。问题对“好医保是什么”“是一种综合类保险”的分类结果预测值为时间类0、范围类0.1、定义类0.9,则该问题对的第二损失函数为h=-0.4log0-0.4log0.1-0.4log0.9。该多个问题对的损失函数为所有样本的损失函数的叠加。

在一些实施例中,在调整初始分类模型的参数(例如,学习率、迭代次数、批次大小等参数)的过程中,当中间分类模型当前的第二损失函数满足第一预设条件时,可以确定当前中间分类模型为目标分类模型。学习率是指在优化算法中更新网络权重的幅度大小。迭代次数是指整个训练集输入神经网络进行训练的次数。批次大小是每一次训练神经网络送入模型的样本数量。在一些实施例中,第一预设条件可以是第二损失函数值收敛。在一些实施例中,第一预设条件还可以是第二损失函数值小于预设阈值(比如0.1、0.01等)。

在一些实施例中,可以采用所述目标分类模型对目标问题对进行分类,得到所述目标问题对的目标分类结果。

目标分类模型可以是指对初始分类模型训练完成后得到的模型。目标问题对可以是指待分类的问题对。在一些实施例中,可以将目标问题输入目标分类模型中,得到输出结果,并根据该输出结果确定目标问题对的目标分类结果,即该目标问题属于哪一类问题。

图4是根据本说明书的一些实施例所示的获取反馈值方法的示例性流程图。如图4所示,该获取反馈值方法400包括:

步骤402,判断所述至少一个问题对中每一个的所述第一匹配结果和所述至少一个问题对中每一个的所述第二匹配结果是否一致。具体的,步骤402可以由分类模型训练模块210执行。

所述第二匹配结果可以指问题对标定的正确匹配结果。例如,对于问题对“这个医保犹豫期是多久”和“10天”,标定的第二匹配结果为“匹配”。又例如,对于问题对“这款保险保哪些疾病?”“好医保的责任”,其标定的第二匹配结果为“不匹配”。在一些实施例中,可以通过线下人工方式标记问题对的第二匹配结果。

在一些实施例中,可以判断所述至少一个问题对中每一个的所述第一匹配结果是否与所述至少一个问题对中每一个的所述第二匹配结果相一致。例如,若所述第一匹配结果为“匹配”,所述第二匹配结果为“不匹配”,则判断结果为不一致。

步骤404,基于所述判断结果,计算所述匹配模型的准确值。具体的,步骤404可以由分类模型训练模块210执行。

准确值可以是衡量匹配模型的匹配准确率的指标。准确值越高,则代表匹配模型匹配地越准确。在一些实施例中,可以通过所述第一匹配结果和所述第二匹配结果的判断结果分别为一致和不一致的数量,计算所述匹配模型的准确值。在一些实施例中,准确值可以是f-1分数。

在一些实施例中,准确值还可以是f-0.5、f-2分数。f-0.5、f-1、f-2分数均是综合准确率和召回率的模型综合评价指标。在一些实施例中,准确值还可以是准确率或召回率。召回率是指将正类预测为正类占所有真正的正类的比例,准确率是指所有预测正确的样本占总的样本的比例。

f分数的计算方式如公式(3):

其中,β为0.5、1、2等参数。

例如,10个问题对,其中实际真正匹配的7个,真正不匹配的3个,匹配模型确定的真正匹配的5个,不匹配的5个。则准确率=(5+3)/10(0.8),召回率=5/7(≈0.71),

由公式(3)和召回率、准确率的定义可知,匹配模型的准确值为一个0~1的值。

步骤406,将所述准确值确定为所述反馈值。具体的,步骤406可以由分类模型训练模块210执行。

将问题对输入到与准确分类对应的匹配模型中可以提高匹配的准确程度,问题对的分类结果会影响问题对的匹配结果。因此,匹配模型的准确值可以间接反映分类模型的分类准确性。在一些实施例中,可以将匹配模型的准确值作为反馈值影响分类模型的训练。

图5是根据本说明书的一些实施例所示的训练匹配模型的示例性流程图。如图5所示,该训练匹配模型500包括:

步骤502,获取多个样本对,所述样本对为问题对。具体的,步骤502可以由匹配模型训练模块220执行。

所述多个样本对为用于训练匹配模型的问题对,该问题对需要标记问题对中两个文本的真实匹配结果,即第二匹配结果。

步骤504,对所述多个样本对进行分类,确定所述多个样本对的至少一个分类结果。具体的,步骤504可以由匹配模型训练模块220执行。

在一些实施例中,可以通过分类模型(例如,初始分类模型)对多个样本对进行分类。关于分类模型的更多细节参见步骤304,此处不再赘述。在一些实施例中,可以基于规则对多个样本进行分类。在一些实施例中,还可以通过其他方式对所述样本对进行分类,本实施例不做限制。

步骤506,根据所述至少一个分类结果,将所述多个样本对分别输入至少一个初始匹配模型进行训练,获得与所述至少一个分类结果对应的至少一个所述匹配模型。具体的,步骤506可以由匹配模型训练模块220执行。

在一些实施例中,根据多个样本对的分类结果,将每个样本输入到与分类结果对应的初始匹配模型中进行训练,训练完成后获得匹配模型。具体的,通过初始匹配模型的损失函数调整初始匹配模型的参数,直到损失函数值收敛或者小于预设阈值,则训练完成。损失函数包括但不限于交叉熵损失函数、均方误差损失函数等。

本说明书实施例还提供一种装置,其至少包括处理器以及存储器。所述存储器用于存储指令。当所述指令被所述处理器执行时,导致所述装置实现前述的训练分类模型的方法。所述方法可以包括:获取至少一个问题对,将所述至少一个问题对输入初始分类模型,确定所述至少一个问题对中每一个的初始分类结果;基于所述初始分类结果,确定所述至少一个问题对中每一个的匹配模型,将所述至少一个问题对输入对应的所述匹配模型,确定所述至少一个问题对的第一匹配结果;基于所述第一匹配结果以及所述至少一个问题对标定的第二匹配结果,得到反馈值;根据所述反馈值调整所述初始分类模型,得到目标分类模型。

本说明书实施例可能带来的有益效果包括但不限于:(1)本说明书中的实施例对不同类别的问题对采用不同的匹配模型进行匹配,提高了匹配的准确率;(2)通过匹配模型的匹配准确率指标训练分类模型,省去了人工标注分类模型训练样本的过程,减少了人工成本;(3)不同类别对应的不同的匹配模型共用一个编码器,实现对问题对的向量表示,降低了编码成本。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。

同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。

本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。

此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。

针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。

最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1