文本相似度模型训练方法、文本相似度检测方法及装置与流程

文档序号:27689112发布日期:2021-12-01 02:25阅读:207来源:国知局
文本相似度模型训练方法、文本相似度检测方法及装置与流程

1.本技术涉及计算机应用技术,特别是涉及一种文本相似度模型训练方法、文本相似度检测方法及装置。


背景技术:

2.在自然语言处理任务中,经常需要判断两篇文档是否相似,或者计算两篇文档的相似程度。比如,基于聚类算法发现微博热点话题时,需要度量各篇文本的内容相似度,然后让内容足够相似的微博聚成一个簇;而在问答系统中,则需要准备一些经典问题和对应的答案,当用户的问题和经典问题很相似时,系统直接返回准备好的答案;而监控稿件在互联网中的传播情况时,则可以把所有和原创稿件相似的文章,都看作转发,进而刻画原创稿件的传播范围;在对语料进行预处理时,则需要基于文本的相似度,把重复的文本给挑出来并删除。总之,文本相似度模型是一种非常有用的工具,可以帮助我们解决很多问题。
3.然而,在自然语言处理领域,通常采用传统的机器学习方法进行模型训练,但是,如果训练数据较少,则容易出现过拟合的现象,导致模型无法在验证集上得到较好的效果,从而无法在类似场景中直接应用。因此,传统的机器学习方法训练模型存在效果差、泛化能力不理想等弊端。


技术实现要素:

4.基于此,有必要针对上述传统的机器学习方法训练模型存在效果差、泛化能力不理想的问题,提供一种文本相似度模型训练方法、文本相似度检测方法及装置。
5.一种文本相似度模型训练方法,所述方法包括:
6.分别对用于文本相似度训练的第一文本样本和第二文本样本进行编码处理,得到对应的第一特征编码和第二特征编码;
7.通过所述第一特征编码和所述第二特征编码对孪生神经网络进行训练;
8.获取所述孪生神经网络训练后的损失,基于所述损失确定所述第一特征编码的第一扰动特征以及所述第二特征编码的第二扰动特征;
9.根据所述第一特征编码和对应的第一扰动特征以及所述第二特征编码和对应的第二扰动特征对所述孪生神经网络进行迭代训练;
10.重复执行上述获取所述孪生神经网络训练后的损失的步骤,直到所述损失最小时,得到用于文本相似度检测的文本相似度检测模型。
11.在其中一个实施例中,所述基于所述损失确定所述第一特征编码的第一扰动特征以及所述第二特征编码的第二扰动特征,包括:获取所述损失关于所述第一特征编码的第一导数,将所述第一导数确定为所述第一特征编码的第一扰动特征;获取所述损失关于所述第二特征编码的第二导数,将所述第二导数确定为所述第二特征编码的第二扰动特征。
12.在其中一个实施例中,所述获取所述孪生神经网络训练后的损失,包括:获取所述孪生神经网络基于所述第一特征编码和所述第二特征编码,预测的所述第一文本样本和所
述第二文本样本之间的相似度结果;根据所述第一文本样本和所述第二文本样本之间的相似度结果,确定所述孪生神经网络训练后的损失。
13.在其中一个实施例中,所述获取所述孪生神经网络基于所述第一特征编码和所述第二特征编码,预测的所述第一文本样本和所述第二文本样本之间的相似度结果,包括:将所述第一特征编码输入所述孪生神经网络的第一分支网络,得到所述第一分支网络输出的第一识别结果;将所述第二特征编码输入所述孪生神经网络的第二分支网络,得到所述第二分支网络输出的第二识别结果;获取所述第一识别结果与所述第二识别结果之间的距离,将所述距离确定为所述第一文本样本和所述第二文本样本之间的相似度结果。
14.在其中一个实施例中,所述获取所述第一识别结果与所述第二识别结果之间的距离,包括:其中,x
h
为第一识别结果,x
b
为第二识别结果,ξ为常数,d
w
则为指数距离。
15.在其中一个实施例中,所述损失为对比损失;所述根据所述第一文本样本和所述第二文本样本之间的相似度结果,确定所述孪生神经网络训练后的损失,包括:
16.l(w,(y,x
h
,x
b
)
i
)=(1

y)
×
l
d
(d
wi
)+y
×
l
s
(d
wi
);
17.l
d
(d
wi
)=max(0,margin

d
wi
)2;
18.l
s
(d
wi
)=(d
wi
)2;其中,m为样本数,w为模型参数,y是数据标签,(y,x
h
,x
b
)
i
是第i个样本示例,l
s
(d
wi
)是相似的输入样本对的部分损失函数,l
d
(d
wi
)是不同的输入样本对的部分损失函数。
19.在其中一个实施例中,所述损失为分类损失;所述根据所述第一文本样本和所述第二文本样本之间的相似度结果,确定所述孪生神经网络训练后的损失,包括:
20.l=α
×
f0(y)
×
max(0,0

d
w
)2+β
×
f1(y)
×
max(0,(d
w

l2)
×
(d
w

l3))221.+γ
×
f2(y)
×
max(0,l1‑
d
w
)222.+δ
×
f3(y)
×
max(0,(d
w

l4)
×
(d
w

l5))223.其中,f0(y)、f1(y)、f2(y)以及f3(y)为对应类别的指示函数,α、β、γ以及δ为每个类别的权重,l1、l2、l3、l4以及l5为不同类别所对应的距离区间的边界值,d
w
为距离也即相似度结果。
24.在其中一个实施例中,所述根据所述第一特征编码和对应的第一扰动特征以及所述第二特征编码和对应的第二扰动特征对所述孪生神经网络进行迭代训练,包括:根据所述第一特征编码叠加对应的第一扰动特征,得到更新后的第一特征编码;根据所述第二特征编码叠加对应的第二扰动特征,得到更新后的第二特征编码;采用更新后的第一特征编码和更新后的第二特征编码对所述孪生神经网络进行迭代训练。
25.一种文本相似度检测方法,所述方法包括:
26.获取用于文本相似度检测的第一文本和第二文本;
27.将所述第一文本和所述第二文本输入如权利要求1至8任一项所述文本相似度模型训练方法得到的文本相似度检测模型中,得到所述文本相似度检测模型输出的所述第一文本和所述第二文本之间的文本相似度结果。
28.一种文本相似度模型训练装置,所述装置包括:
29.编码模块,用于分别对用于文本相似度训练的第一文本样本和第二文本样本进行编码处理,得到对应的第一特征编码和第二特征编码;
30.训练模块,用于通过所述第一特征编码和所述第二特征编码对孪生神经网络进行训练;
31.扰动确定模块,用于获取所述孪生神经网络训练后的损失,基于所述损失确定所述第一特征编码的第一扰动特征以及所述第二特征编码的第二扰动特征;
32.所述训练模块还用于:根据所述第一特征编码和对应的第一扰动特征以及所述第二特征编码和对应的第二扰动特征对所述孪生神经网络进行迭代训练;并重复执行上述获取所述孪生神经网络训练后的损失,直到所述损失最小时,得到用于文本相似度检测的文本相似度模型。
33.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的文本相似度模型训练方法。
34.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的文本相似度模型训练方法。
35.上述文本相似度模型训练方法、文本相似度检测方法及装置,通过分别对用于文本相似度训练的第一文本样本和第二文本样本进行编码处理,得到对应的第一特征编码和第二特征编码,通过第一特征编码和第二特征编码对孪生神经网络进行训练,并获取孪生神经网络训练后的损失,基于损失确定第一特征编码的第一扰动特征以及第二特征编码的第二扰动特征,根据第一特征编码和对应的第一扰动特征以及第二特征编码和对应的第二扰动特征对孪生神经网络进行迭代训练,重复执行上述获取孪生神经网络训练后的损失的步骤,直到损失最小时,得到用于文本相似度检测的文本相似度检测模型。由于本公开基于训练过程中的损失可以通过计算而产生新的训练数据,进而采用新的训练数据对孪生神经网络进行迭代训练,从而使得模型能够使用更多的数据进行训练,不仅可以提高模型的鲁棒性,还可以提升模型的泛化能力以及准确率。
附图说明
36.图1为一个实施例中文本相似度模型训练方法的流程示意图;
37.图2为一个实施例中基于损失确定扰动特征步骤的流程示意图;
38.图3为一个实施例中获取损失步骤的流程示意图;
39.图4为一个实施例中预测相似度结果步骤的流程示意图;
40.图5为一个实施例中迭代训练步骤的流程示意图;
41.图6为一个实施例中文本相似度检测方法的流程示意图;
42.图7为一个实施例中文本相似度模型训练装置的结构框图;
43.图8为一个实施例中计算机设备的内部结构图。
具体实施方式
44.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
45.在一个实施例中,如图1所示,提供了一种文本相似度模型训练方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法可以包括以下步骤:
46.步骤102,分别对用于文本相似度训练的第一文本样本和第二文本样本进行编码处理,得到对应的第一特征编码和第二特征编码。
47.其中,第一文本样本和第二文本样本是用于进行相似度比较的样本文件,具体地,第一文本样本和第二文本样本可以分别是标题样本和正文样本。编码处理则是对文本进行潜在特征的编码,具体地,可以通过卷积神经网络(convolutional neuralnetworks,简称cnn)、长短期记忆网络(long short

term memory,简称lstm)或编码器进行编码处理。第一特征编码和第二特征编码则是分别对第一文本样本和第二文本样本进行编码处理后得到的结果。在本实施例中,通过分别对用于文本相似度训练的第一文本样本和第二文本样本进行编码处理,从而得到对应的第一特征编码和第二特征编码。
48.步骤104,通过第一特征编码和第二特征编码对孪生神经网络进行训练。
49.其中,孪生神经网络是用于训练并得到文本相似度检测模型的基础网络。具体地,孪生神经网络具有两个分支,第一特征编码和第二特征编码则分别为两个分支的输入,例如,当第一特征编码为一个分支的输入时,则第二特征编码为另一个分支的输入。在本实施例中,孪生神经网络可以基于lstm或cnn实现。通过将第一特征编码和第二特征编码分别输入孪生神经网络的两个分支,从而对孪生神经网络进行训练。
50.步骤106,获取孪生神经网络训练后的损失,基于损失确定第一特征编码的第一扰动特征以及第二特征编码的第二扰动特征。
51.其中,损失可以是孪生神经网络输出的所有样本的预测值和真实标签之间的所有差异之和,损失还可以基于孪生神经网络输出的样本预测值之间的距离确定。第一扰动特征和第二扰动特征则分别为第一特征编码和第二特征编码的噪声特征,通过引入噪声特征,从而可以增加对模型训练的训练数据,以提高模型的鲁棒性。在本实施例中,可以基于孪生神经网络训练后的损失,并通过计算而确定第一特征编码的第一扰动特征以及第二特征编码的第二扰动特征。
52.步骤108,根据第一特征编码和对应的第一扰动特征以及第二特征编码和对应的第二扰动特征对孪生神经网络进行迭代训练。
53.在本实施例中,根据第一特征编码和对应的第一扰动特征以及根据第二特征编码和对应的第二扰动特征而形成新的训练数据,进而采用新的训练数据对孪生神经网络进行迭代训练,从而使得模型能够使用更多的数据进行训练。
54.步骤110,重复执行上述获取孪生神经网络训练后的损失的步骤,直到损失最小时,得到用于文本相似度检测的文本相似度检测模型。
55.具体地,通过返回执行上述步骤106,获取孪生神经网络训练后的损失,可能理解的是,此处的损失是孪生神经网络采用新的训练数据对孪生神经网络进行迭代训练后的损失。如果该损失达到最小时,则停止训练,并得到用于文本相似度检测的文本相似度检测模型。如果该损失没有达到最小时,则循环执行上述步骤106,即根据新的损失计算新的扰动,根据新的扰动形成新的数据进行训练,并基于训练后的损失判定网络是否收敛,即损失是
否达到最小,只有当损失最小时,才停止训练,并得到收敛的文本相似度检测模型。
56.上述文本相似度模型训练方法中,通过分别对用于文本相似度训练的第一文本样本和第二文本样本进行编码处理,得到对应的第一特征编码和第二特征编码,通过第一特征编码和第二特征编码对孪生神经网络进行训练,并获取孪生神经网络训练后的损失,基于损失确定第一特征编码的第一扰动特征以及第二特征编码的第二扰动特征,根据第一特征编码和对应的第一扰动特征以及第二特征编码和对应的第二扰动特征对孪生神经网络进行迭代训练,重复执行上述获取孪生神经网络训练后的损失的步骤,直到损失最小时,得到用于文本相似度检测的文本相似度检测模型。由于本公开基于训练过程中的损失可以通过计算而产生新的训练数据,进而采用新的训练数据对孪生神经网络进行迭代训练,从而使得模型能够使用更多的数据进行训练,不仅可以提高模型的鲁棒性,还可以提升模型的泛化能力以及准确率。
57.在一个实施例中,如图2所示,基于损失确定第一特征编码的第一扰动特征以及第二特征编码的第二扰动特征,具体可以包括:
58.步骤202,获取损失关于第一特征编码的第一导数,将第一导数确定为第一特征编码的第一扰动特征。
59.可以理解的是,由于损失是基于损失函数得到,在本实施例中,损失也即损失函数,具体可以采用任意计算损失的函数实现。其中,第一导数则是基于损失函数对输入孪生神经网络中一个分支的第一特征编码进行求导得到,也即第一导数是基于损失函数对第一特征编码的求导。
60.步骤204,获取损失关于第二特征编码的第二导数,将第二导数确定为第二特征编码的第二扰动特征。
61.同理,第二导数则是基于损失函数对输入孪生神经网络中另一个分支的第二特征编码进行求导得到,也即第二导数是基于损失函数对第二特征编码的求导。
62.上述实施例中,通过获取损失关于第一特征编码的第一导数,并将第一导数确定为第一特征编码的第一扰动特征,通过获取损失关于第二特征编码的第二导数,并将第二导数确定为第二特征编码的第二扰动特征。即通过对损失函数求导,产生对原有输入进行改变的极大梯度,即得到扰动特征,从而最大程度地改变输入,以形成新的训练数据。
63.在一个实施例中,如图3所示,获取孪生神经网络训练后的损失,具体可以包括如下步骤:
64.步骤302,获取孪生神经网络基于第一特征编码和第二特征编码,预测的第一文本样本和第二文本样本之间的相似度结果。
65.其中,相似度结果可以采用任意的相似度计算方式获得,例如可以采用softmax函数、sigmoid函数等进行计算。该相似度结果用于表征第一文本样本和第二文本样本之间的相似性。在本实施例中,孪生神经网络可以基于输入的第一特征编码和第二特征编码,而预测对应的第一文本样本和第二文本样本之间的相似度。
66.步骤304,根据第一文本样本和第二文本样本之间的相似度结果,确定孪生神经网络训练后的损失。
67.在本实施例中,可以采用损失函数,并根据第一文本样本和第二文本样本之间的相似度结果,通过计算而确定孪生神经网络训练后的损失。具体地,损失函数可以采用任意
计算损失的函数实现。
68.上述实施例中,通过获取孪生神经网络基于第一特征编码和第二特征编码预测的第一文本样本和第二文本样本之间的相似度结果,并根据第一文本样本和第二文本样本之间的相似度结果,而确定孪生神经网络训练后的损失,进而可以基于损失并通过计算而产生新的训练数据,从而避免传统技术中因训练数据较少而容易出现过拟合的问题,以提高模型的泛化能力。
69.在一个实施例中,如图4所示,上述获取孪生神经网络基于第一特征编码和第二特征编码,预测的第一文本样本和第二文本样本之间的相似度结果,具体包括:
70.步骤402,将第一特征编码输入孪生神经网络的第一分支网络,得到第一分支网络输出的第一识别结果。
71.由于孪生神经网络是基于两个人工神经网络建立的耦合构架,在本实施例中,第一分支网络则是孪生神经网络中的一个人工神经网络。第一识别结果则是第一分支网络基于输入的第一特征编码进行处理后输出的结果。具体地,可以是对第一特征编码进行再次编码后的编码结果,也可以是对与第一特征编码所对应的第一文本样本的分类结果。
72.步骤404,将第二特征编码输入孪生神经网络的第二分支网络,得到第二分支网络输出的第二识别结果。
73.其中,第二分支网络则是孪生神经网络中的另一个人工神经网络。第二识别结果则是第二分支网络基于输入的第二特征编码进行处理后输出的结果。具体地,可以是对第二特征编码进行再次编码后的编码结果,也可以是对与第二特征编码所对应的第二文本样本的分类结果。
74.步骤406,获取第一识别结果与第二识别结果之间的距离,将距离确定为第一文本样本和第二文本样本之间的相似度结果。
75.其中,距离可以采用任意可导的距离函数进行计算,例如,欧氏距离、余弦距离、杰卡德距离、海明距离以及指数距离等。在本实施例中,可以基于距离函数计算第一识别结果与第二识别结果之间的距离,进而将计算得到的距离确定为第一文本样本和第二文本样本之间的相似度结果。
76.上述实施例中,通过将第一特征编码输入孪生神经网络的第一分支网络,得到第一分支网络输出的第一识别结果,将第二特征编码输入孪生神经网络的第二分支网络,得到第二分支网络输出的第二识别结果,并获取第一识别结果与第二识别结果之间的距离,将该距离确定为第一文本样本和第二文本样本之间的相似度结果,从而便于后续损失的计算。
77.在一个实施例中,当距离为指数距离时,则可以通过以下公式计算第一识别结果与第二识别结果之间的距离:
78.其中,x
h
为第一识别结果,x
b
为第二识别结果,ξ为基于经验设置的常数,该常数通常为一个0

1之间的数,d
w
则为计算的第一识别结果与第二识别结果之间指数距离。在本实施例中,通过计算孪生神经网络两个分支网络输出的指数距离,从而可以增加两个分支网络输出之间的边际效益。
79.在一个实施例中,以损失为对比损失为例,则根据第一文本样本和第二文本样本之间的相似度结果,确定孪生神经网络训练后的损失,具体包括:
[0080][0081]
l(w,(y,x
h
,x
b
)
i
)=(1

y)
×
l
d
(d
wi
)+y
×
l
s
(d
wi
);
[0082]
l
d
(d
wi
)=max(0,margin

d
wi
)2;
[0083]
l
s
(d
wi
)=(d
wi
)2;其中,m为样本数,w为模型参数,y是数据标签,(y,x
h
,x
b
)
i
是第i个样本示例,l
s
(d
wi
)是相似的输入样本对的部分损失函数,l
d
(d
wi
)是不同的输入样本对的部分损失函数。
[0084]
由于当y等于1时,其输入样本对是相似的,它们之间的距离应该尽可能小。所以l(w,(y,x
h
,x
b
)
i
)等于(d
wi
)2,这意味着这个样本对的损失与距离的平方成正比。而当y等于0时,则表示输入样本对不同,则它们之间的距离应尽可能大。因此,本实施例中设置了一个正数margin值,该值是由实验统计分析得到的经验值,上述公式中max的操作也是为了保证两个不同输入的距离始终大于0。
[0085]
在一个实施例中,以损失为分类损失为例,则根据第一文本样本和第二文本样本之间的相似度结果,确定孪生神经网络训练后的损失,具体包括:
[0086]
l=α
×
f0(y)
×
max(0,0

d
w
)2+β
×
f1(y)
×
max(0,(d
w

l2)
×
(d
w

l3))2[0087]

×
f2(y)
×
max(0,l1‑
d
w
)2[0088]

×
f3(y)
×
max(0,(d
w

l4)
×
(d
w

l5))2[0089]
其中,f0(y)、f1(y)、f2(y)以及f3(y)为对应类别的指示函数,α、β、γ以及δ为每个类别的权重,l1、l2、l3、l4以及l5为不同类别所对应的距离区间的边界值,d
w
为距离也即相似度结果。
[0090]
举例来说,若数据集的标签用数字编码为y={0,1,2,3},分别表示一致、冲突、中立和不相关四个类别,则有(l1、l2)为类别“0”的区间范围,(l2、l3)为类别“1”的区间范围,(l3、l4)为类别“2”的区间范围,(l4、l5)为类别“3”的区间范围。可以理解的是,本实施例中的四个类别仅用作解释说明,并不用于限定本技术的范围,在实际应用时可以更多的类别。指示函数具体如下:
[0091]
f0(y)=((1

y)
×
(2

y)
×
(3

y))/6;
[0092]
f1(y)=((y

0)
×
(2

y)
×
(3

y))/2;
[0093]
f2(y)=((0

y)
×
(1

y)
×
(3

y))/2;
[0094]
f3(y)=((y

0)
×
(y

1)
×
(y

2))/6;
[0095]
其中,y为神经网络输出的类别值,取值范围为上述标签{0,1,2,3}中的一个,将y代入到上述函数中,就能得到对应样本对属于上述4个类别的概率或距离的指示,这四个通常有三个为0,选出1个为1,即通过计算f0(y)、f1(y)、f2(y)以及f3(y)中有三个的结果为0,只有1个的结果为1。又由于不同的类别对应不同的部分损失函数,因此,将其代入到上述分类损失函数中,通过使用f
i
(y)来选择正确的部分损失函数。同样,只有当样本对中每个样本的距离处于相应的区间时,该部分损失函数才会达到最小值。
[0096]
在一个实施例中,如图5所示,根据第一特征编码和对应的第一扰动特征以及第二特征编码和对应的第二扰动特征对孪生神经网络进行迭代训练,具体包括:
[0097]
步骤502,根据第一特征编码叠加对应的第一扰动特征,得到更新后的第一特征编
码。
[0098]
具体地,由于第一特征编码是对初始的第一文本样本进行的编码,因此,通过对第一特征编码叠加对应的第一扰动特征,从而得到更新后的第一特征编码,即得到新的样本数据。
[0099]
步骤504,根据第二特征编码叠加对应的第二扰动特征,得到更新后的第二特征编码。
[0100]
同理,由于第二特征编码是对初始的第二文本样本进行的编码,因此,通过对第二特征编码叠加对应的第二扰动特征,从而得到更新后的第二特征编码,即得到新的样本数据。
[0101]
步骤506,采用更新后的第一特征编码和更新后的第二特征编码对孪生神经网络进行迭代训练。
[0102]
在得到更新后的第一特征编码和更新后的第二特征编码后,则可以采用更新后的第一特征编码和更新后的第二特征编码对孪生神经网络进行迭代训练。即采用新的训练数据对孪生神经网络进行迭代训练,从而使得模型能够使用更多的数据进行训练,不仅可以提高模型的鲁棒性,还可以提升模型的泛化能力以及准确率。
[0103]
具体地,举例来说,若第一特征编码为v
h
,第二特征编码为v
b
,则更新后的第一特征编码为v
h

,更新后的第二特征编码为v
b

,则有:
[0104]
(v
h

,v
b

)=

logf(y|v
h
+r
advh
,v
b
+r
advb
,w),其中,f为神经网络,w为网络参数,r
advh
和r
advb
为对应的第一扰动特征和第二扰动特征,具体地:
[0105][0106][0107]
其中,l为损失函数,g
h
为基于损失函数对v
h
的求导,g
b
为基于损失函数对v
b
的求导,ε为扰动的强度。则损失函数l的计算如下:
[0108]
具体地,将第一特征编码为v
h
和第二特征编码为v
b
输入孪生神经网络后,可以得到神经网络输出的对应的第一识别结果x
h
和第二识别结果x
b
,则可以根据第一识别结果x
h
和第二识别结果x
b
计算距离d
w
,以指数距离为例来说,,以指数距离为例来说,进而计算损失函数l,以分类损失为例,具体计算公式如下:
[0109]
l=α
×
f0(y)
×
max(0,0

d
w
)2+β
×
f1(y)
×
max(0,(d
w

l2)
×
(d
w

l3))2[0110]

×
f2(y)
×
max(0,l1‑
d
w
)2[0111]

×
f3(y)
×
max(0,(d
w

l4)
×
(d
w

l5))2[0112]
其中,f0(y)、f1(y)、f2(y)以及f3(y)为对应类别的指示函数,α、β、γ以及δ为每个类别的权重,l1、l2、l3、l4以及l5为不同类别所对应的距离区间的边界值,d
w
为距离。
[0113]
本实施例可以在具有较少样本数据的情况下,通过引入对抗训练的技术,实现了文本的特殊数据增强,即通过对损失函数求导,产生对原有输入的改变,并获得极大的梯度,从而最大程度地改变输入,相当于产生了新的数据。这使得模型能够使用更多的数据进行训练,从而提高了模型准确率,并提升了模型的泛化能力。且实验证明,如果使用60%左
右的数据,即能达到原来使用100%数据的效果,且在数据量足够的情况下,对抗训练方法能够进一步提高模型的效果。
[0114]
在一个实施例中,如图6所示,本技术还提供了一种文本相似度检测方法,具体包括如下步骤:
[0115]
步骤602,获取用于文本相似度检测的第一文本和第二文本。
[0116]
其中,第一文本和第二文本是用于进行相似度检测的待测文本数据。具体地,第一文本和第二文本可以分别是标题文本和正文文本,本实施例中并不对此进行限定。
[0117]
步骤604,将第一文本和第二文本输入文本相似度检测模型中,得到文本相似度检测模型输出的第一文本和第二文本之间的文本相似度结果。
[0118]
其中,文本相似度检测模型是基于上述文本相似度模型训练方法得到的。文本相似度结果则用于表征第一文本与第二文本之间的相似性。
[0119]
在本实施例中,通过采用上述文本相似度模型训练方法得到的文本相似度检测模型,来检测第一文本与第二文本之间的文本相似度,由于在训练文本相似度检测模型时是基于训练过程中的损失,并通过计算而产生新的训练数据,进而采用新的训练数据进行迭代训练,从而使得模型能够使用更多的数据进行训练,不仅可以提高模型的鲁棒性,还可以提升模型的泛化能力以及模型检测的准确率。
[0120]
应该理解的是,虽然图1

图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1

图6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0121]
在一个实施例中,如图7所示,提供了一种文本相似度模型训练装置,包括:编码模块702、训练模块704和扰动确定模块706,其中:
[0122]
编码模块702,用于分别对用于文本相似度训练的第一文本样本和第二文本样本进行编码处理,得到对应的第一特征编码和第二特征编码;
[0123]
训练模块704,用于通过所述第一特征编码和所述第二特征编码对孪生神经网络进行训练;
[0124]
扰动确定模块706,用于获取所述孪生神经网络训练后的损失,基于所述损失确定所述第一特征编码的第一扰动特征以及所述第二特征编码的第二扰动特征;
[0125]
所述训练模块704还用于:根据所述第一特征编码和对应的第一扰动特征以及所述第二特征编码和对应的第二扰动特征对所述孪生神经网络进行迭代训练;并重复执行上述获取所述孪生神经网络训练后的损失,直到所述损失最小时,得到用于文本相似度检测的文本相似度模型。
[0126]
在一个实施例中,扰动确定模块具体用于:获取所述损失关于所述第一特征编码的第一导数,将所述第一导数确定为所述第一特征编码的第一扰动特征;获取所述损失关于所述第二特征编码的第二导数,将所述第二导数确定为所述第二特征编码的第二扰动特征。
[0127]
在一个实施例中,扰动确定模块具体还用于:获取所述孪生神经网络基于所述第一特征编码和所述第二特征编码,预测的所述第一文本样本和所述第二文本样本之间的相似度结果;根据所述第一文本样本和所述第二文本样本之间的相似度结果,确定所述孪生神经网络训练后的损失。
[0128]
在一个实施例中,扰动确定模块具体还用于:将所述第一特征编码输入所述孪生神经网络的第一分支网络,得到所述第一分支网络输出的第一识别结果;将所述第二特征编码输入所述孪生神经网络的第二分支网络,得到所述第二分支网络输出的第二识别结果;获取所述第一识别结果与所述第二识别结果之间的距离,将所述距离确定为所述第一文本样本和所述第二文本样本之间的相似度结果。
[0129]
在一个实施例中,扰动确定模块具体还用于:其中,x
h
为第一识别结果,x
b
为第二识别结果,ξ为常数,d
w
则为指数距离。
[0130]
在一个实施例中,所述损失为对比损失;扰动确定模块具体还用于:在一个实施例中,所述损失为对比损失;扰动确定模块具体还用于:
[0131]
l(w,(y,x
h
,x
b
)
i
)=(1

y)
×
l
d
(d
wi
)+y
×
l
s
(d
wi
);
[0132]
l
d
(d
wi
)=max(0,margin

d
wi
)2;
[0133]
l
s
(d
wi
)=(d
wi
)2;其中,m为样本数,w为模型参数,y是数据标签,(y,x
h
,x
b
)
i
是第i个样本示例,l
s
(d
wi
)是相似的输入样本对的部分损失函数,l
d
(d
wi
)是不同的输入样本对的部分损失函数。
[0134]
在一个实施例中,所述损失为分类损失;扰动确定模块具体还用于:
[0135]
l=α
×
f0(y)
×
max(0,0

d
w
)2+β
×
f1(y)
×
max(0,(d
w

l2)
×
(d
w

l3))2[0136]

×
f2(y)
×
max(0,l1‑
d
w
)2[0137]

×
f3(y)
×
max(0,(d
w

l4)
×
(d
w

l5))2[0138]
其中,f0(y)、f1(y)、f2(y)以及f3(y)为对应类别的指示函数,α、β、γ以及δ为每个类别的权重,l1、l2、l3、l4以及l5为不同类别所对应的距离区间的边界值,d
w
为距离也即相似度结果。
[0139]
在一个实施例中,所述根据所述第一特征编码和对应的第一扰动特征以及所述第二特征编码和对应的第二扰动特征对所述孪生神经网络进行迭代训练,包括:根据所述第一特征编码叠加对应的第一扰动特征,得到更新后的第一特征编码;根据所述第二特征编码叠加对应的第二扰动特征,得到更新后的第二特征编码;采用更新后的第一特征编码和更新后的第二特征编码对所述孪生神经网络进行迭代训练。
[0140]
关于文本相似度模型训练装置的具体限定可以参见上文中对于文本相似度模型训练方法的限定,在此不再赘述。上述文本相似度模型训练装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0141]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,也可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储
器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储训练数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文本相似度模型训练方法。
[0142]
本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0143]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0144]
分别对用于文本相似度训练的第一文本样本和第二文本样本进行编码处理,得到对应的第一特征编码和第二特征编码;
[0145]
通过所述第一特征编码和所述第二特征编码对孪生神经网络进行训练;
[0146]
获取所述孪生神经网络训练后的损失,基于所述损失确定所述第一特征编码的第一扰动特征以及所述第二特征编码的第二扰动特征;
[0147]
根据所述第一特征编码和对应的第一扰动特征以及所述第二特征编码和对应的第二扰动特征对所述孪生神经网络进行迭代训练;
[0148]
重复执行上述获取所述孪生神经网络训练后的损失的步骤,直到所述损失最小时,得到用于文本相似度检测的文本相似度检测模型。
[0149]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取所述损失关于所述第一特征编码的第一导数,将所述第一导数确定为所述第一特征编码的第一扰动特征;获取所述损失关于所述第二特征编码的第二导数,将所述第二导数确定为所述第二特征编码的第二扰动特征。
[0150]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取所述孪生神经网络基于所述第一特征编码和所述第二特征编码,预测的所述第一文本样本和所述第二文本样本之间的相似度结果;根据所述第一文本样本和所述第二文本样本之间的相似度结果,确定所述孪生神经网络训练后的损失。
[0151]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将所述第一特征编码输入所述孪生神经网络的第一分支网络,得到所述第一分支网络输出的第一识别结果;将所述第二特征编码输入所述孪生神经网络的第二分支网络,得到所述第二分支网络输出的第二识别结果;获取所述第一识别结果与所述第二识别结果之间的距离,将所述距离确定为所述第一文本样本和所述第二文本样本之间的相似度结果。
[0152]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在一个实施例中,处理器执行计算机程序时还实现以下步骤:其中,x
h
为第一识别结果,x
b
为第二识别结果,ξ为常数,d
w
则为指数距离。
[0153]
在一个实施例中,所述损失为对比损失;处理器执行计算机程序时还实现以下步骤:
[0154]
l(w,(y,x
h
,x
b
)
i
)=(1

y)
×
l
d
(d
wi
)+y
×
l
s
(d
wi
);
[0155]
l
d
(d
wi
)=max(0,margin

d
wi
)2;
[0156]
l
s
(d
wi
)=(d
wi
)2;其中,m为样本数,w为模型参数,y是数据标签,(y,x
h
,x
b
)
i
是第i个样本示例,l
s
(d
wi
)是相似的输入样本对的部分损失函数,l
d
(d
wi
)是不同的输入样本对的部分损失函数。
[0157]
在一个实施例中,所述损失为分类损失;处理器执行计算机程序时还实现以下步骤:
[0158]
l=α
×
f0(y)
×
max(0,0

d
w
)2+β
×
f1(y)
×
max(0,(d
w

l2)
×
(d
w

l3))2[0159]

×
f2(y)
×
max(0,l1‑
d
w
)2[0160]

×
f3(y)
×
max(0,(d
w

l4)
×
(d
w

l5))2[0161]
其中,f0(y)、f1(y)、f2(y)以及f3(y)为对应类别的指示函数,α、β、γ以及δ为每个类别的权重,l1、l2、l3、l4以及l5为不同类别所对应的距离区间的边界值,d
w
为距离也即相似度结果。
[0162]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据所述第一特征编码叠加对应的第一扰动特征,得到更新后的第一特征编码;根据所述第二特征编码叠加对应的第二扰动特征,得到更新后的第二特征编码;采用更新后的第一特征编码和更新后的第二特征编码对所述孪生神经网络进行迭代训练。
[0163]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取用于文本相似度检测的第一文本和第二文本;将所述第一文本和所述第二文本输入如上所述的文本相似度模型训练方法得到的文本相似度检测模型中,得到所述文本相似度检测模型输出的所述第一文本和所述第二文本之间的文本相似度结果。
[0164]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0165]
分别对用于文本相似度训练的第一文本样本和第二文本样本进行编码处理,得到对应的第一特征编码和第二特征编码;
[0166]
通过所述第一特征编码和所述第二特征编码对孪生神经网络进行训练;
[0167]
获取所述孪生神经网络训练后的损失,基于所述损失确定所述第一特征编码的第一扰动特征以及所述第二特征编码的第二扰动特征;
[0168]
根据所述第一特征编码和对应的第一扰动特征以及所述第二特征编码和对应的第二扰动特征对所述孪生神经网络进行迭代训练;
[0169]
重复执行上述获取所述孪生神经网络训练后的损失的步骤,直到所述损失最小时,得到用于文本相似度检测的文本相似度检测模型。
[0170]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取所述损失关于所述第一特征编码的第一导数,将所述第一导数确定为所述第一特征编码的第一扰动特征;获取所述损失关于所述第二特征编码的第二导数,将所述第二导数确定为所述第二特征编码的第二扰动特征。
[0171]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取所述孪生神经网络基于所述第一特征编码和所述第二特征编码,预测的所述第一文本样本和所述第二文本样本之间的相似度结果;根据所述第一文本样本和所述第二文本样本之间的相似度结果,确定所述孪生神经网络训练后的损失。
[0172]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将所述第一特征
编码输入所述孪生神经网络的第一分支网络,得到所述第一分支网络输出的第一识别结果;将所述第二特征编码输入所述孪生神经网络的第二分支网络,得到所述第二分支网络输出的第二识别结果;获取所述第一识别结果与所述第二识别结果之间的距离,将所述距离确定为所述第一文本样本和所述第二文本样本之间的相似度结果。
[0173]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在一个实施例中,计算机程序被处理器执行时还实现以下步骤:其中,x
h
为第一识别结果,x
b
为第二识别结果,ξ为常数,d
w
则为指数距离。
[0174]
在一个实施例中,所述损失为对比损失;计算机程序被处理器执行时还实现以下步骤:
[0175]
l(w,(y,x
h
,x
b
)
i
)=(1

y)
×
l
d
(d
wi
)+y
×
l
s
(d
wi
);
[0176]
l
d
(d
wi
)=max(0,margin

d
wi
)2;
[0177]
l
s
(d
wi
)=(d
wi
)2;其中,m为样本数,w为模型参数,y是数据标签,(y,x
h
,x
b
)
i
是第i个样本示例,l
s
(d
wi
)是相似的输入样本对的部分损失函数,l
d
(d
wi
)是不同的输入样本对的部分损失函数。
[0178]
在一个实施例中,所述损失为分类损失;计算机程序被处理器执行时还实现以下步骤:
[0179]
l=α
×
f0(y)
×
max(0,0

d
w
)2+β
×
f1(y)
×
max(0,(d
w

l2)
×
(d
w

l3))2[0180]

×
f2(y)
×
max(0,l1‑
d
w
)2[0181]

×
f3(y)
×
max(0,(d
w

l4)
×
(d
w

l5))2[0182]
其中,f0(y)、f1(y)、f2(y)以及f3(y)为对应类别的指示函数,α、β、γ以及δ为每个类别的权重,l1、l2、l3、l4以及l5为不同类别所对应的距离区间的边界值,d
w
为距离也即相似度结果。
[0183]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据所述第一特征编码叠加对应的第一扰动特征,得到更新后的第一特征编码;根据所述第二特征编码叠加对应的第二扰动特征,得到更新后的第二特征编码;采用更新后的第一特征编码和更新后的第二特征编码对所述孪生神经网络进行迭代训练。
[0184]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取用于文本相似度检测的第一文本和第二文本;将所述第一文本和所述第二文本输入如上所述的文本相似度模型训练方法得到的文本相似度检测模型中,得到所述文本相似度检测模型输出的所述第一文本和所述第二文本之间的文本相似度结果。
[0185]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read

only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0186]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0187]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1