一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

搜索模型的更新方法、装置、设备及计算机可读存储介质与流程

2022-04-13 23:08:26 来源:中国专利 TAG:


1.本技术涉及人工智能技术,尤其涉及一种搜索模型的更新方法、装置、设备及计算机可读存储介质。


背景技术:

2.图片检索,指的是当用户输入一张感兴趣的图片(查询图片)后,搜索系统先提取该图片的特征,然后从候选图像库中通过对比特征相似度来检索出与查询图片相关的图片。随着深度学习框架的优化以及训练数据的增加,为了能够提升系统性能进而改善用户体验,工业界通常需要定期进行系统更新。系统更新包括冷刷新和热刷新,其中“冷刷新”更新模式指的是用更新后的新模型对候选图像库重新提取特征,直至特征更新完成之后才能将新模型部署上线,更新周期长达数周乃至数月,故严重影响系统升级进度;随着后向兼容学习的出现,新模型提取的查询图片的特征与候选库中的特征具有直接可比性,因此“热刷新”更新模式成为可能。“热刷新”指的是将新模型直接部署上线,在此期间可以动态逐步地刷新候选图像库,极大缩短了模型更新与部署的周期。但经过对实验结果的分析,发现“热刷新”过程会存在模型退化现象,该现象由“负反转”导致,即之前旧模型能够正确检索的图片无法被新模型正确检索,从而降低搜索准确率。


技术实现要素:

3.本技术实施例提供一种搜索模型的更新方法、装置及计算机可读存储介质,能够缩短模型部署的等待周期,且能够保证搜索模型的预测准确性。
4.本技术实施例的技术方案是这样实现的:
5.本技术实施例提供一种搜索模型的更新方法,包括:
6.获取当前线上使用的旧搜索模型、待部署上线的新搜索模型和训练数据,所述训练数据包括多个训练图像和各个训练图像对应的标签信息;
7.利用所述旧搜索模型对所述多个训练图像进行特征提取,得到旧训练特征;
8.利用所述训练数据和所述旧训练特征对所述新搜索模型进行免退化兼容训练,得到训练好的新搜索模型;
9.将所述训练好的新搜索模型进行部署上线,并利用所述训练好的新搜索模型进行候选图像库的更新和图像搜索。
10.本技术实施例提供一种搜索模型的更新装置,包括:
11.第一获取模块,用于获取当前线上使用的旧搜索模型、待部署上线的新搜索模型和训练数据,所述训练数据包括多个训练图像和各个训练图像对应的标签信息;
12.特征提取模块,用于利用所述旧搜索模型对所述多个训练图像进行特征提取,得到旧训练特征;
13.模型训练模块,用于利用所述训练数据和所述旧训练特征对所述新搜索模型进行免退化兼容训练,得到训练好的新搜索模型;
14.模型部署模块,用于将所述训练好的新搜索模型进行部署上线,并利用所述训练好的新搜索模型进行候选图像库的更新和图像搜索。
15.在一些实施例中,该新搜索模型包括新特征提取子模型,该模型训练模块,还用于:
16.利用所述新搜索模型的新特征提取子模型对所述多个训练图像进行特征提取,得到新训练特征;
17.利用所述旧训练特征和新训练特征确定所述新搜索模型的损失函数;
18.基于所述新训练特征、所述旧训练特征和所述损失函数对所述新搜索模型进行免退化兼容训练,得到训练好的搜索模型。
19.在一些实施例中,该模型训练模块,还用于:
20.利用所述旧训练特征和新训练特征确定所述新搜索模型的免退化兼容损失函数;
21.利用所述新训练特征和所述各个训练图像对应的标签信息确定所述新搜索模型的分类损失函数;
22.基于所述免退化兼容损失函数和所述分类损失函数构建所述新搜索模型的损失函数。
23.在一些实施例中,该模型训练模块,还用于:
24.利用所述新训练特征和所述旧训练特征构建多个新-旧正例对、多个新-新负例对和多个新-旧负例对;
25.基于所述新-旧正例对的第一点乘结果和所述新-旧负例对的第二点乘结果构建基准损失函数;
26.基于所述新-新负例对的第三点乘结果对所述基准损失函数进行兼容性约束,得到所述新搜索模型的免退化兼容损失函数。
27.在一些实施例中,所述新搜索模型还包括新分类子模型,该模型训练模块,还用于:
28.将所述新训练特征输入所述新分类子模型,得到所述新训练特征的分类结果向量;
29.将所述分类结果向量、所述新训练特征和所述标签信息进行交叉熵运算,得到所述新搜索模型的分类损失函数。
30.在一些实施例中,该模型部署模块,还用于:
31.确定所述候选图像库中各个旧图像特征的不确定性程度值;
32.基于所述各个旧图像特征的不确定性程度值,对所述各个旧图像特征对应的候选图像进行排序,得到排序结果;
33.基于所述排序结果利用所述训练好的新搜索模型提取所述候选图像库中的各个候选图像的图像特征,得到新图像特征。
34.在一些实施例中,该模型部署模块,还用于:
35.将所述各个旧图像特征输入所述训练好的新搜索模型中的分类子模型,得到各个旧图像特征对应的分类结果向量;
36.基于所述各个旧图像特征对应的分类结果向量确定所述各个旧图像特征的不确定性程度值。
37.在一些实施例中,该模型部署模块,还用于:
38.将所述各个旧图像特征对应的分类结果向量中的类别概率按照从大到小的顺序进行排序,得到各个排序结果;
39.基于所述各个排序结果中的最大概率值确定所述各个旧图像特征的不确定性程度值;或者,
40.基于所述各个排序结果中的第一个概率值和第二概率值的差,确定所述各个旧图像特征的不确定性程度值;或者,
41.基于所述各个旧图像特征对应的分类结果向量确定所述各个旧图像特征的熵,基于所述各个旧图像特征对应的熵,确定所述各个旧图像特征的不确定性程度值。
42.在一些实施例中,该装置还包括:
43.第四获取模块,用于接收视频发布请求,并获取所述视频发布请求中携带的待发布视频数据;
44.抽帧模块,用于对所述待发布视频数据进行抽帧处理,得到多个目标视频帧;
45.第二确定模块,用于利用所述训练好的分类模型中的特征提取子模型,提取所述多个目标视频帧的图像特征,得到多个视频帧特征,基于所述多个视频帧特征确定所述待发布视频数据的视频特征;
46.第三确定模块,用于确定所述视频特征与视频库中各个已发布视频的视频特征之间的相似度;
47.视频发布模块,用于当不存在大于相似度阈值的目标相似度时,确定不存在与所述待发布视频数据相似的已发布视频,发布所述待发布视频数据。
48.本技术实施例提供一种计算机设备,包括:
49.存储器,用于存储可执行指令;
50.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的搜索模型的更新方法。
51.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时实现本技术实施例提供的搜索模型的更新方法。
52.本技术实施例提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现本技术实施例提供的搜索模型的更新方法。
53.本技术实施例具有以下有益效果:
54.在需要对搜索系统中的搜索模型进行更新时,首先获取当前线上使用的旧搜索模型、待部署上线的新搜索模型和训练数据,所述训练数据包括多个训练图像和各个训练图像对应的标签信息,该待部署上线的新搜索模型是未经训练的初始神经网络模型,然后利用所述旧搜索模型对所述多个训练图像进行特征提取,得到旧训练特征,并且利用所述训练数据和所述旧训练特征对所述新搜索模型进行免退化兼容训练,得到训练好的新搜索模型,之后将所述训练好的新搜索模型进行部署上线,实现搜索系统的热刷新,最后利用所述训练好的新搜索模型进行候选图像库的更新和图像搜索,由于在训练新搜索模型时,是利用了旧图像特征,并且进行的是免退化兼容训练,从而能够缓解模型退化现象,在新模型训练完成后即可部署上线,因此能够提高模型部署效率。
附图说明
55.图1是本技术实施例提供的搜索系统的网络架构示意图;
56.图2是本技术实施例提供的服务器400的结构示意图;
57.图3是本技术实施例提供的搜索模型的更新方法的一种实现流程示意图;
58.图4是本技术实施例提供的搜索模型的更新方法的另一种实现流程示意图;
59.图5是本技术实施例提供的搜索模型的更新方法的再一种实现流程示意图;
60.图6为基于冷刷新/热刷新的模型更新示意图;
61.图7为本技术实施例提供的模型退化示意图;
62.图8为本技术实施例提供的模型更新方法的实现过程示意图;
63.图9为本技术实施例提供的利用google landmark v2测试数据集在热刷新过程中检索性能变化趋势图;
64.图10为本技术实施例提供的利用oxford测试数据集在热刷新过程中检索性能变化趋势图;
65.图11为本技术实施例提供的利用paris测试数据集在热刷新过程中检索性能变化趋势图;
66.图12为热刷新过程中利用本技术实施例提供的不同的不确定度量刷新策略对应的变化趋势图;
67.图13为本技术实施例提供的利用google landmark v2测试数据集在热刷新过程中检索性能的又一变化趋势图;
68.图14为本技术实施例提供的利用oxford测试数据集在热刷新过程中检索性能的又一变化趋势图;
69.图15为本技术实施例提供的利用paris测试数据集在热刷新过程中检索性能的又一变化趋势图;
70.图16为热刷新过程中利用本技术实施例提供的不同的不确定度量刷新策略对应的又一变化趋势图;
71.图17为不同不同方法在热刷新模型更新中的性能变化趋势图。
具体实施方式
72.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
73.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
74.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
75.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的
技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
76.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
77.1)热刷新(hot-refresh),在得到训练好的新模型之后,直接部署上线,在然后由训练好的新模型动态逐步地刷新候选图像库;
78.2)冷刷新(cold-refresh),用训练好的的新模型对候选图像库重新提取特征,直至特征更新完成之后才能将训练好的新模型部署上线;
79.3)后向兼容训练(bct,backward compatible training),指训练后的新模型能够直接与旧模型兼容,即利用新模型提取出的特征可以直接用于在旧模型索引的数据库中进行搜索。
80.4)平均精度均值(map,mean average precision),是预测目标位置以及类别的这一类算法的性能度量标准。
81.在相关技术中,在进行搜索系统更新时,一般是采用后向兼容学习的方式或者局部蒸馏的方式来实现热刷新,其中,后向兼容学习(bct)的目标是让新/旧模型提取的新/旧特征可以直接比较,具体而言,bct使用旧的分类器来监督新特征的训练。局部蒸馏(focal distillation)首次研究分类模型中的模型退化问题,该方法通过对正确分类的样本分类更大的权重比来实现模型分类性能的一致性。
82.尽管现有的后向兼容方法可以实现基于“热刷新”的模型更新,但其忽略了更新过程中产生的模型退化(model regression)问题。局部蒸馏解决的是图片分类中的退化问题,直接将该方法迁移到图片检索任务仅能达到次优解,无法实现很好的性能提升增益。
83.基于此,本技术实施例提供一种模型更新方法、装置、设备和计算机可读存储介质,采用一种免退化兼容训练的更新模式,来得到训练好的新模型,并且在热刷新过程中基于不确定性度量的排序算法依次对图像库中的图像特征进行更新,从而实现性能的快速收敛。
84.下面说明本技术实施例提供的计算机设备的示例性应用,本技术实施例提供的计算机设备可以实施为服务器。下面,将说明设备实施为服务器时示例性应用。
85.参见图1,图1是本技术实施例提供的搜索系统100的架构示意图,如图1所示,该搜索系统100包括终端200、网络300和服务器400,其中终端200通过网络300连接服务器400,网络300可以是广域网或者局域网,又或者是二者的组合。
86.终端200中可以安装有各种应用程序,例如可以是即时通讯应用程序、购物应用程序、视频观看应用程序等,终端200可以通过即时通讯应用程序与亲朋好友进行文字、语音、视频聊天,可以通过购物应用程序进行线上购物,通过视频观看应用程序观看视频或者发布视频。在本技术实施例中,以线上购物的搜索系统为例进行说明。
87.在用户通过终端200中的购物应用程序进行网购时,可以通过关键字搜索商品,当无法确定准确的关键字时,可以通过图片进行商品搜索。在服务器中,各个出售商品都对应有至少一个图片,服务器400中存储有图片数据库,对应其他实施例中的候选图像库,该图片数据库中包括出售商品的各个图片以及每个图片的图像特征,该图像特征是基于当前线上的搜索模型中的特征提取子模型提取出来的,在需要对搜索模型进行更新时,在本技术
实施例中,在获取到待部署上线的新搜索模型之后,利用当前线上的旧搜索模型提取训练图像的旧训练特征,并基于旧训练特征和训练图像对新搜索模型进行免退化兼容训练,得到训练好的新搜索模型,之后直接将训练好的搜索模型上线,利用训练好的搜索模型进行图片数据库的热刷新和搜索过程。当服务器400接收到终端200发送的查询图片时,基于新上线的训练好的新搜索模型进行特征提取,得到查询图像特征,并确定查询图像特征与图片数据库中的各个候选图像特征的相似度,基于确定出的相似度,确定搜索结果,并将搜索结果返回给终端200,终端200在图形界面中呈现搜索结果。
88.在一些实施例中,服务器400可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端200可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能电视、智能车载设备等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例中不做限制。
89.参见图2,图2是本技术实施例提供的服务器400的结构示意图,图2所示的服务器400包括:至少一个处理器410、至少一个网络接口420、总线系统430和存储器440。服务器400中的各个组件通过总线系统430耦合在一起。可理解,总线系统430用于实现这些组件之间的连接通信。总线系统430除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统430。
90.处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
91.存储器440可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器440可选地包括在物理位置上远离处理器410的一个或多个存储设备。
92.存储器440包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的存储器440旨在包括任意适合类型的存储器。
93.在一些实施例中,存储器440能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
94.操作系统441,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
95.网络通信模块442,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
96.在一些实施例中,本技术实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器440中的搜索模型的更新装置443,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块4431、第一提取模块4432、模型训练模块4433和模型部署模块
4434,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
97.在另一些实施例中,本技术实施例提供的装置可以采用硬件方式实现,作为示例,本技术实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本技术实施例提供的搜索模型的更新方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)或其他电子元件。
98.为了更好地理解本技术实施例提供的方法,首先对人工智能、人工智能的各个分支,以及本技术实施例提供的方法所涉及的应用领域进行说明。
99.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
100.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。本技术实施例提供的方案主要涉及人工智能的机器学习技术,以下对该项技术进行说明。
101.机器学习(ml,machine learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
102.人工智能云服务,一般也被称作是ai即服务(aiaas,ai as a service)。这是目前主流的一种人工智能平台的服务方式,具体来说aiaas平台会把几类常见的ai服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个ai主题商城:所有的开发者都可以通过api接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的ai框架和ai基础设施来部署和运维自己专属的云人工智能服务,在本发明实施例提供的信息推荐方法中,可以通过人工智能云服务提供的ai框架和ai基础设施来部署和运维数据调度分发系统。
103.将结合本技术实施例提供的服务器的示例性应用和实施,说明本技术实施例提供的搜索模型的更新方法。
104.本技术实施例提供一种搜索模型的更新方法,应用于服务器,图3是本技术实施例提供的搜索模型的更新方法的流程示意图,以下结合图3对本技术实施例提供的搜索模型的更新方法的各个步骤进行说明。
105.步骤s101,获取当前线上使用的旧搜索模型、待部署上线的新搜索模型和训练数据。
106.在实际实现过程中,服务器会确定是否达到模型更新条件,其中,模型更新条件可以是接收到模型更新的操作指令,还可以是接收到待部署上线的新搜索模型。该待部署上线的新搜索模型是具有默认参数的神经网络模型。当前线上使用的旧搜索模型为训练好的神经网络模型,旧搜索模型与新搜索模型可以是同一类型的神经网络模型,还可以是不同类型的神经网络模型。
107.获取训练数据在实现时可以是从大规模公有数据集中获取,例如google landmark v2,测试数据可以从google landmark v2、oxford以及paris等公有数据集中的一个或多个中获取。其中训练数据包括多个训练图像和各个训练图像对应的标签信息。该标签信息可以是训练图像的类别,例如可以是动物、植物、风景等,还可以是猫、狗、老虎、松鼠等。
108.步骤s102,利用所述旧搜索模型对所述多个训练图像进行特征提取,得到旧训练特征。
109.在本技术实施例中,旧搜索模型包括旧特征提取子模型和旧分类子模型。步骤s102在实现时,可以是利用旧搜索模型中的旧特征提取子模型对各个训练图像进行特征提取,得到各个训练图像的旧训练特征。
110.步骤s103,利用所述训练数据和所述旧训练特征对所述新搜索模型进行免退化兼容训练,得到训练好的新搜索模型。
111.这里,与旧搜索模型类似,该新搜索模型包括新特征提取子模型和新分类子模型。该步骤在实现时,首先利用新搜索模型中的新特征提取子模型对各个训练图像进行特征提取,得到新训练特征,然后基于新训练特征和旧训练特征构建特征提取子模型对应的免退化兼容损失函数,基于新训练特征和训练数据中的标签信息构建分类损失函数,进而在基于免退化兼容损失函数和分类损失函数确定新搜索模型的联合损失函数,并基于该联合损失函数和训练数据对新搜索模型进行免退化兼容训练,得到训练好的新搜索模型。
112.由于在训练新搜索模型的过程中,将旧搜索模型提取出的旧训练特征作为一部分训练数据,对新搜索模型进行训练,并且在构建损失函数时也同样考虑了旧训练特征,因此能够保证新搜索模型提取出的新图像特征与旧图像特征之间具有可比性,从而保证在候选特征库中的候选图像的特征更新完毕之前,旧搜索模型提取出的旧图像特征能够被新搜索模型正确检索出来,避免出现模型退化现象。
113.步骤s104,将所述训练好的新搜索模型进行部署上线,并利用所述训练好的新搜索模型进行候选图像库的更新和图像搜索。
114.在本技术实施例中,在得到训练好的新搜索模型之后,即将该训练好的新搜索模型进行部署上线,然后利用训练好的新搜索模型对候选图像库中的各个候选图像的特征进行更新,并且在获取到图像搜索请求时,利用新搜索模型对搜索图像进行特征提取,并将提取出的特征与候选图像库中的候选图像特征进行相似性计算,从而实现模型的热刷新。
115.在本技术实施例提供的搜索模型的更新方法中,在需要对搜索系统中的搜索模型进行更新时,首先获取当前线上使用的旧搜索模型、待部署上线的新搜索模型和训练数据,所述训练数据包括多个训练图像和各个训练图像对应的标签信息,该待部署上线的新搜索
模型是未经训练的初始神经网络模型,然后利用所述旧搜索模型对所述多个训练图像进行特征提取,得到旧训练特征,并且利用所述训练数据和所述旧训练特征对所述新搜索模型进行免退化兼容训练,得到训练好的新搜索模型,之后将所述训练好的新搜索模型进行部署上线,实现搜索系统的热刷新,最后利用所述训练好的新搜索模型进行候选图像库的更新和图像搜索,由于在训练新搜索模型时,是利用了旧图像特征,并且进行的是免退化兼容训练,从而能够缓解模型退化现象,在新模型训练完成后即可部署上线,因此能够提高模型部署效率。
116.在一些实施例中,所述新搜索模型包括新特征提取子模型,对应地,上述步骤s103“利用所述训练数据和所述旧训练特征对所述新搜索模型进行免退化兼容训练,得到训练好的新搜索模型”,可以通过以下步骤实现:
117.步骤s1031,利用所述新搜索模型的新特征提取子模型对所述多个训练图像进行特征提取,得到新训练特征。
118.步骤s1032,利用所述旧训练特征和新训练特征确定所述新搜索模型的损失函数。
119.在本技术实施例中,新搜索模型的损失函数是一个联合损失函数,之所以称之为联合损失函数,是因为该损失函数是通过免退化兼容损失函数和分类损失函数进行加权计算得到的。其中,免退化兼容损失函数是基于旧训练特征和新训练特征构建正则项确定的,分类损失函数基于新训练特征和训练图像的标签信息和交叉熵损失函数确定的。
120.步骤s1033,基于所述训练数据和所述损失函数对所述新搜索模型进行免退化兼容训练,得到训练好的新搜索模型。
121.该步骤s1033在实现时,可以是将所述训练数据中的训练图像输入到新搜索模型中,得到训练图像的预测类别信息,然后确定预测类别信息和对应的标签信息的差异信息,将该差异信息传播至该新搜索模型,利用该损失函数对新搜索模型进行反向传播训练,得到训练好的搜索模型。由于在训练过程中,损失函数是基于免退化兼容损失函数和分类损失函数确定的,因此可以认为是对新搜索模型进行了免退化兼容训练,能够保证训练好的新搜索模型避免出现模型退化的现象,保证搜索准确率。
122.在一些实施例中,上述步骤s1032可以通过以下步骤实现:
123.步骤s321,利用所述旧训练特征和新训练特征确定所述新搜索模型的免退化兼容损失函数。
124.考虑到兼容学习的目标在于新特征与旧特征具有直接可比性,因此在构建免退化兼容损失函数时,在特征层面上进行度量学习。基于此该步骤可以通过以下步骤实现:
125.步骤s3211,利用所述新训练特征和所述旧训练特征构建多个新-旧正例对、多个新-新负例对和多个新-旧负例对。
126.该步骤在实现时,可以是将新特征提取子模型和旧特征提取子模型对同一张训练图像进行特征提取得到的新训练特征和旧训练特征构建新-旧正例对;将新特征提取子模型和旧特征提取子模型对不同训练图像进行特征提取得到的新训练特征和旧训练特征构建新-旧负例对,将新特征提取子模型对不同训练图像进行特征提取得到的新训练特征和新训练特征构建新-新负例对。
127.步骤s3212,基于所述新-旧正例对的第一点乘结果和所述新-旧负例对的第二点乘结果构建基准损失函数。
128.在实现时,首先确定各个新-旧正例对的第一点乘结果、各个新-旧负例对的第二点乘结果,然后基于公式(1-1)构建基准损失函数。
[0129][0130]
其中,《φ
new
(x),φ
old
(x)》为第一点乘结果,《φ
new
(x),φ
old
(k)》为第二点乘结果。
[0131]
步骤s3213,基于所述新-新负例对的第三点乘结果对所述基准损失函数进行兼容性约束,得到所述新搜索模型的免退化兼容损失函数。
[0132]
模型退化是由于新搜索模型提取的查询图片特征与旧搜索模型提取的候选库所构成的正例的相似度,小于新搜索模型提取的查询图片特征与新搜索模型提取的候选库所构成的负例的相似度造成的,因此为了提高新-旧正例对的相似度,降低新-新负例对的相似度,对基准损失函数进行改进,在实现时可以是将新-新负例对作为额外的正则项加入基准损失函数的分母中,也即得到公式(1-2):
[0133][0134]
其中,《φ
new
(x),φ
new
(k)》为新-新负例对的第二点乘结果。
[0135]
通过,增加新-新负例对这一约束条件,能够拉近新-旧正例对之间的距离,推远新-新负例对之间的距离,从而使得新-旧正例对之间的相似性超过新-新负例对的相似性,进而缓解模型更新过程中出现的负反转(模型退化)问题。
[0136]
步骤s322,利用所述新训练特征和所述各个训练图像对应的标签信息确定所述新搜索模型的分类损失函数。
[0137]
该步骤在实现时,可以先将所述新训练特征输入所述新分类子模型,得到所述新训练特征的分类结果向量,然后将所述分类结果向量、所述新训练特征和所述标签信息按照公式(1-3)进行交叉熵运算,得到所述新搜索模型的分类损失函数:
[0138]
l
cls
(x)=l
ce

new
οφ
new
(x),y(x))
ꢀꢀꢀ
(1-3);
[0139]
其中,l
ce
表示交叉熵损失函数,y(x)表示图片x对应的类别标签,ω
new
为用分类结果向量。
[0140]
步骤s323,基于所述免退化兼容损失函数和所述分类损失函数构建所述新搜索模型的损失函数。
[0141]
在实现时,可以首先获取免退化兼容损失函数和分类损失函数对应的权重,然后将免退化兼容损失函数和分类损失函数基于对应的权重进行加权求和,得到新搜索模型的损失函数,从而利用新搜索模型的损失函数作为新搜索模型的训练优化目标。
[0142]
基于前述的实施例,本技术实施例提供一种搜索模型的更新方法,应用于图1所示的网络架构,图4是本技术实施例提供的搜索模型的更新方法的另一种实现流程示意图,如图4所示,该流程包括:
[0143]
步骤s301,服务器获取当前线上使用的旧搜索模型、待部署上线的新搜索模型和训练数据。
[0144]
其中,训练数据包括多个训练图像和各个训练图像对应的标签信息;
[0145]
步骤s302,服务器利用所述旧搜索模型对所述多个训练图像进行特征提取,得到
旧训练特征。
[0146]
步骤s303,服务器利用所述训练数据和所述旧训练特征对所述新搜索模型进行免退化兼容训练,得到训练好的新搜索模型。
[0147]
需要说明的是,上述步骤s301至步骤s303的实现过程与步骤s101至步骤s103的实现过程是类似的,可以参考步骤s101至步骤s103的实现过程。
[0148]
步骤s304,服务器确定所述候选图像库中各个旧图像特征的不确定性程度值。
[0149]
在本技术实施例中,图像特征的不确定性程度值,能够反映该图像特征是否容易被识别出来类别,不确定性程度值越高,则识别难度越大。在确定旧图像特征的不确定性程度值时,至少可以基于下述的步骤s3042中给出的最小可信度、间隔法和熵方法中的一种进行确定。
[0150]
步骤s305,服务器基于所述各个旧图像特征的不确定性程度值,对所述各个旧图像特征对应的候选图像进行排序,得到排序结果。
[0151]
在实现时,可以是按照不确定性程度值从大到小的顺序对候选图像进行排序,得到排序结果;当然,也可以是按照不确定性程度值从小到大的顺序对候选图像进行排序,得到排序结果。
[0152]
步骤s306,服务器基于所述排序结果利用所述训练好的新搜索模型提取所述候选图像库中的各个候选图像的图像特征,得到新图像特征。
[0153]
为了加速候选图像库中特征更新时准确率的收敛,特征的刷新顺序应按照“差者为先”的原则,即那些不易区分的特征优先被刷新,也即不确定性程度值越高的特征优先被刷新。因此该步骤在实现时,如果排序结果按照不确定性程度值从大到小排序得到的,那么步骤s306在实现时,就按照排序结果利用所述训练好的新搜索模型提取所述候选图像库中的各个候选图像的图像特征;如果排序结果是按照不确定性程度值从小到大的顺序排序得到的,那么步骤s306在实现时,是按照排序结果的倒序利用所述训练好的新搜索模型提取所述候选图像库中的各个候选图像的图像特征。
[0154]
步骤s307,终端向服务器发送视频发布请求。
[0155]
该视频发布请求中携带有待发布视频数据。待发布视频数据可以是终端自行录制的,还可以是将网络上下载的视频数据进行剪辑后得到的,还可以是将多个图片进行视频编辑制作得到的。以上仅对获取待发布视频数据的实现过程进行示例性说明。
[0156]
步骤s308,服务器接收视频发布请求,并获取所述视频发布请求中携带的待发布视频数据。
[0157]
步骤s309,服务器对所述待发布视频数据进行抽帧处理,得到多个目标视频帧。
[0158]
该步骤在实现时,可以是进行等间隔抽帧,还可以是抽取待发布视频数据的关键帧。
[0159]
步骤s310,服务器利用所述训练好的分类模型中的特征提取子模型,提取所述多个目标视频帧的图像特征,得到多个视频帧特征,基于所述多个视频帧特征确定所述待发布视频数据的视频特征。
[0160]
基于多个视频帧特征确定待发布视频数据的视频特征在实现时,可以是将多个视频帧特征进行算术平均,得到视频特征,还可以是将多个视频帧特征进行加权平均,得到视频特征,其中,视频帧特征的权值可以是通过对应目标视频帧的帧类型确定的,例如,i帧的
目标视频帧比p帧的目标视频帧的权值高。
[0161]
步骤s311,服务器确定所述视频特征与视频库中各个已发布视频的视频特征之间的相似度。
[0162]
在本技术实施例所示的视频发布场景,视频库对应其他实施例中的候选图像库,视频库中存储有多个已发布视频以及已发布视频的视频特征。其中,已发布视频的视频特征可以是利用新搜索模型确定出来的,还可以是利用旧搜索模型确定出来的。
[0163]
步骤s311在实现时,可以是计算待发布视频的视频特征与各个已发布视频的视频特征之间的汉明距离,通过汉明距离确定相似度,其中汉明距离越大,则相似度越低。
[0164]
步骤s312,服务器确定是否存在大于相似度阈值的目标相似度。
[0165]
其中,当不存在大于相似度阈值的目标相似度时,说明不存在与待发布视频数据相似的已发布视频数据,此时进入步骤s313;当存在大于相似度阈值的目标相似度时,说明存在与待发布视频数据相似的已发布视频数据,此时进入步骤s315。
[0166]
步骤s313,服务器确定不存在与所述待发布视频数据相似的已发布视频,发布所述待发布视频数据。
[0167]
当确定不存在待发布视频数据相似的已发布视频,那么此时将该待发布视频数据进行发布。
[0168]
步骤s314,服务器向终端发送发布成功的通知消息。
[0169]
步骤s315,服务器确定存在与待发布视频数据相似的已发布视频。
[0170]
步骤s316,服务器向终端发送发布失败的通知消息。
[0171]
在一些实施例中,该发布失败的通知消息中,还可以包括与该待发布视频数据相似的已发布视频的查看链接。
[0172]
本技术实施例提供的搜索模型的更新方法应用于终端发布视频的场景,并且该搜索模型用于搜索是否有与待发布视频相似的已发布视频,在实现时,服务器在确定需要进行模型更新时,获取获取当前线上使用的旧搜索模型、待部署上线的新搜索模型和训练数据,然后利用所述旧搜索模型对所述多个训练图像进行特征提取,得到旧训练特征,并且利用所述训练数据和所述旧训练特征对所述新搜索模型进行免退化兼容训练,得到训练好的新搜索模型,之后将所述训练好的新搜索模型进行部署上线,实现搜索系统的热刷新,从而降低模型升级的时间成本,在利用所述训练好的新搜索模型进行候选图像库特征更新的过程中,首先确定各个候选图像库中的候选图像特征的不确定性程度值,基于不确定性程度值确定更新顺序,优先更新不确定程度高的候选图像特征,能够保证利用新搜索模型进行目标搜索的准确性,提高搜索模型的搜索性能。之后在服务器接收到终端发送的待发布视频后,首先获取待发布视频的视频特征,然后确定该视频特征与已发布视频的视频特征之间的相似度,最后基于相似度确定是否有与待发布视频相似的已发布视频,从而确定是否对该待发布视频进行发布,降低视频库中的视频文件的重复性并且保护已发布视频的版权问题。
[0173]
需要说明的是,在本技术实施例中,当终端发布待发布视频数据时,服务器会在确定不存在与待发布视频相似的已发布视频时,才将待发布视频进行发布。在一些实施例中,还可以是服务器在接收到待发布视频后,对待发布视频数据进行合法性检测确定符合满足合法条件时,即将待发布视频进行发布,并存储到视频库,然后由新搜索模型对视频库中的
已发布视频进行排重,在实际实现时,可以计算已发布视频的视频特征之间的相似度,如果两个或者两个以上的已发布视频的相似度高于相似度阈值时,基于这两个或者两个以上的已发布视频的发布时间确定需要下架的已发布视频,将筛选出的已发布视频下架并从视频库中删除,之后向筛选出的已发布视频的发布终端发送下架通知消息。
[0174]
在一些实施例中,上述步骤s304“确定所述候选图像库中各个旧图像特征的不确定性程度值”,可以通过以下步骤实现:
[0175]
步骤s3041,将所述各个旧图像特征输入所述训练好的新搜索模型中的分类子模型,得到各个旧图像特征对应的分类结果向量。
[0176]
假设一共有n种类别,那么分类结果向量的维度为1*n,分类结果向量中的第i个元素值表征属于第i个类别的概率,为0到1之间的实数,且分类结果向量中的n个概率值相加为1。
[0177]
步骤s3042,基于所述各个旧图像特征对应的分类结果向量确定所述各个旧图像特征的不确定性程度值。
[0178]
在实际应用过程中,在确定旧图像特征的不确定性程度值时,可以有至少以下三种计算方式:
[0179]
第一种计算方式、基于所述各个旧图像特征对应的分类结果向量确定所述各个旧图像特征的熵,基于所述各个旧图像特征对应的熵,确定所述各个旧图像特征的不确定性程度值。
[0180]
在实现时,可以通过公式(1-4)确定各个旧图像特征的不确定性程度值:
[0181][0182]
其中,ω
new
(fg)表示旧图像特征fg的分类结果向量,softmax[
·
]k表示排名第k个的类别概率。
[0183]
第二种计算方式、将所述各个旧图像特征对应的分类结果向量中的类别概率按照从大到小的顺序进行排序,得到各个排序结果;基于所述各个排序结果中的最大概率值确定所述各个旧图像特征的不确定性程度值。
[0184]
在实现时,可以是将1减去该最大概率值得到的数值确定为该旧图像特征的不确定性程度值。也就是说,旧图像特征的最大概率值越小,不确定性程度值越大。
[0185]
第三种计算方式、基于所述各个排序结果中的第一个概率值和第二概率值的差值,确定所述各个旧图像特征的不确定性程度值。
[0186]
在实现时,可以是将1减去旧图像特征对应的差值,得到该旧图像特征的不确定性程度值,也就是说,一个旧图像特征的最大概率值和第二大概率值之间的差值越小,就越难区分,因此不确定性程度值越大。
[0187]
基于前述的实施例,本技术实施例提供一种搜索模型的更新方法,应用于图1所示的网络架构,图5是本技术实施例提供的搜索模型的更新方法的再一种实现流程示意图,如图5所示,该流程包括:
[0188]
步骤s401,服务器在确定需要进行模型更新时,获取当前线上使用的旧搜索模型、待部署上线的新搜索模型和训练数据。
[0189]
其中,训练数据包括多个训练图像和各个训练图像对应的标签信息。
[0190]
步骤s402,服务器利用所述旧搜索模型对所述多个训练图像进行特征提取,得到旧训练特征。
[0191]
步骤s403,服务器利用所述训练数据和所述旧训练特征对所述新搜索模型进行免退化兼容训练,得到训练好的新搜索模型。
[0192]
步骤s404,服务器确定所述候选图像库中各个旧图像特征的不确定性程度值。
[0193]
步骤s405,服务器基于所述各个旧图像特征的不确定性程度值,对所述各个旧图像特征对应的候选图像进行排序,得到排序结果。
[0194]
步骤s406,服务器基于所述排序结果利用所述训练好的新搜索模型提取所述候选图像库中的各个候选图像的图像特征,得到新图像特征。
[0195]
上述步骤s401至步骤s406的实现过程与步骤s301至步骤s306的实现过程是类似的,可以参考步骤s101至步骤s103的实现过程。
[0196]
步骤s407,终端向服务器发送查询请求。
[0197]
该查询请求中携带有查询图片,该查询请求可以是用于基于查询图片搜索与查询图片匹配的商品信息。
[0198]
步骤s408,服务器接收该查询请求,并获取查询请求中携带的查询图片。
[0199]
步骤s409,服务器利用训练好的搜索模型中的特征提取子模型提取所述查询图片的查询图像特征。
[0200]
步骤s410,服务器确定所述查询图像特征与候选图像库中各个上架商品图片的候选图像特征之间的相似度。
[0201]
在通过查询图片确定对应的商品信息时,候选图像库中存储的是各个上架商品图片,以及各个上架商品图片的候选图像特征。该步骤在实现时,与上述的步骤s311类似,可以是确定查询图像特征与候选图像特征之间的汉明距离,通过汉明距离确定相似度值,并且汉明距离越小,相似度越低。
[0202]
在一些实施例中,还可以将查询图像特征与各个候选图像特征的对应特征值相减求绝对值,然后将各个特征值对应的差值绝对值进行均值计算,得到平均差值,平均差值越小说明相似度越高。
[0203]
步骤s411,服务器基于各个相似度,确定查询结果。
[0204]
该步骤在实现时,服务器基于各个相似度对相似度对应的上架商品进行排序,得到排序结果,并且与查询图片的相似度越高的上架商品排序越靠前,然后将排序结果中的前m个商品对应的商品信息确定为查询结果。
[0205]
步骤s412,服务器向终端返回该查询结果。
[0206]
在一些实施例中,终端接收到查询结果后,在自身的显示界面上呈现查询结果中携带的多个商品信息,例如可以包括商品图片、商品名称、查看详情的入口链接等,使得终端用户能够基于查询结果中携带的多个商品信息中确定自身需要的商品。
[0207]
本技术实施例提供的搜索模型的更新方法应用于终端发布视频的场景,并且该搜索模型用于搜索是否有与待发布视频相似的已发布视频,在实现时,服务器在确定需要进行模型更新时,获取获取当前线上使用的旧搜索模型、待部署上线的新搜索模型和训练数据,然后利用所述旧搜索模型对所述多个训练图像进行特征提取,得到旧训练特征,并且利用所述训练数据和所述旧训练特征对所述新搜索模型进行免退化兼容训练,得到训练好的
新搜索模型,之后将所述训练好的新搜索模型进行部署上线,实现搜索系统的热刷新,从而降低模型升级的时间成本,在利用所述训练好的新搜索模型进行候选图像库特征更新的过程中,首先确定各个候选图像库中的候选图像特征的不确定性程度值,基于不确定性程度值确定更新顺序,优先更新不确定程度高的候选图像特征,能够保证利用新搜索模型进行目标搜索的准确性,提高搜索模型的搜索性能。
[0208]
下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
[0209]
在本技术实施例中,以图片搜索为例说明模型更新方法。图片搜索指的是服务器能够从大规模候选图像库(gallery,记为g)中正确检索与查询图片(query,记为q)具有相似内容或者物体的图片。
[0210]
假设搜索系统(对应其他实施例中的搜索模型)包括特征提取器(对应其他实施例中的特征提取子模型)和分类器(对应其他实施例中的分类子模型),在本技术实施例中将检索系统的性能,即平均精度均值(mean average precision,map)记为m(
·
,
·
),将新/旧图像特征提取器记为兼容训练的目标可以利用不等式(2-1)来表示:
[0211]
m(q
old
,g
old
)<m(q
new
,g
old
)<m(q
new
,g
new
)
ꢀꢀꢀ
(2-1);
[0212]
其中,m(q
old
,g
old
)表示当查询图片特征与候选图片库特征均由旧图像特征提取器提取时,搜索系统的性能;m(q
new
,g
old
)表示当查询图片、候选图片库特征分别由新、旧特征提取器提取时,搜索系统的性能;m(q
new
,g
new
)表示当查询图片特征与候选图片库特征均由新图像特征提取器提取时,搜索系统的性能。
[0213]
在本技术实施例中定义理想情况下的热刷新模型更新应满足不等式(2-2)所示的约束:
[0214][0215]
图6为基于冷刷新/热刷新的模型更新示意图,如图6所示,在冷刷新过程中,是在线下特征刷新完成(也即刷新到100%时)才会部署新模型,而在热刷新过程中,是先部署新模型,由新模型进行线上的特征刷新,直至刷新完成。
[0216]
在热刷新过程中,会出现一些能够被旧模型正确检索的查询图片,而在热刷新过程中无法被新模型正确召回的现象,也即模型退化现象。经分析发现,模型退化现象是由于负反转导致,即新模型提取的查询图像特征与旧模型提取的候选库中的候选图像特征所构成的正例(new-to-old positive pairs)的相似度,小于新模型提取的查询图像特征与新模型提取的候选库中的图像特征所构成的负例(new-to-new negative pairs)的相似度,上述过程可以规范为不等式(2-3):
[0217][0218]
其中,表示正确的候选库样本,表示错误的候选库样本,《
·

·
》表示向量内积。图7为本技术实施例提供的模型退化示意图,其中,图7中,o点表示旧模型的map;a点表示更新为新模型之后,新旧兼容的map;c表示在新模型对候选图像库中的特征进行刷新过程中,出现负反转的map;b表示,刷新完成后的新新兼容的map。通过图7可以看出,在刷新过程中,会出现map比刷新之前低的情况,也即出现了模型退化现象。
[0219]
以下对本技术实施例提供的模型更新方法进行说明。图8为本技术实施例提供的
模型更新方法的实现过程示意图,如图8所示,为了通过训练得到具有兼容性的新模型,在给定输入图片后,首先利用新特征提取器和旧特征提取器分别对训练图像进行特征提取,分别得到新训练特征801和旧训练特征802,然后利用得到的新训练特征801和旧训练特征802构建免退化兼容损失函数,利用新训练特征构建分类损失函数,进而来实现热刷新模型升级过程。并且在升级过程中,会拉近新-旧正例对的距离,并且推远新-新负例对以及新-旧负例对的距离。
[0220]
在利用得到的新训练特征和旧训练特征构建免退化兼容损失函数时,考虑到兼容学习的目标在于新特征与旧特征具有直接可比性,因此可以将该问题转化为特征层面的度量学习问题。在本技术实施例中,可以选取infonce损失函数来作为基准模型,定义如公式(2-4)所示:
[0221][0222]
其中,τ是超参数-温度,φ
new
(x)为训练图像x的新训练特征,φ
old
(x)为训练图像x的旧训练特征,(φ
new
(x),φ
old
(x))为新-旧正例对,《φ
new
(x),φ
old
(k)》为新-旧负例对的内积。
[0223]
为了在实现特征兼容的同时缓解负反转带来的性能下降问题,在本技术实施例中,对基准模型进行改进,可以是将新-新负例对作为额外的正则项加入基准模型中,得到了公式(2-5)所示的免退化兼容损失函数(regression-free co mpatibility regularization):,
[0224][0225]
其中,(φ
new
(x),φ
new
(k))为新-新负例对。通过该约束,新-旧正例对之间的相似性将会超过新-新负例对的相似性,进而缓解模型更新过程中出现的负反转(模型退化)问题。
[0226]
除了对特征之间的兼容性进行约束外,还需要原始的适配于检索任务的正则项来提升模型的特征表达能力,在本技术实施例中,采用交叉熵损失函数作为分类函数,定义如公式(2-6)所示:
[0227]
l
cls
(x)=l
ce

new
οφ
new
(x),y(x))
ꢀꢀꢀ
(2-6);
[0228]
其中,l
ce
表示交叉熵损失函数,y)表示图片x对应的类别标签,ω
new
为用新模型中的分类器得到的分类向量。
[0229]
在确定出免退化兼容损失函数和分类函数之后,整个新模型的损失函数可以用公式(2-7)表示:
[0230]
l(x)=l
cls
(x) λl
rf-comp
(x)
ꢀꢀꢀ
(2-7);
[0231]
其中,λ为超参数。
[0232]
在确定出整个模型的损失函数之后,可以基于训练图像和训练图像的标签以及损失函数之后,可以对新模型进行反向传播训练,从而得到训练好的新模型,之后即可以将训练好的新模型部署上线,进行候选图像库的热刷新。
[0233]
在利用新模型对候选图像库进行热刷新的过程中,为了能够进一步加速模型的收敛以及准确率的提升,在本技术实施例中提出特征的刷新顺序应按照“差者为先”(the-poor-first)的原则,即那些不易区分的特征优先被刷新。面对业界海量数据,需要以一种轻量、快速的方式来确定特征刷新的优先级,因此在本技术实施例中,提出基于不确定性的刷新策略。在实际应用过程中,认为分类器对于特征在每个类别的预测概率在一定程度上表征了该特征的“好坏”。经过兼容训练之后,假设新、旧特征空间可以直接进行比较,因此可以利用新模型的分类器去预测旧特征的的类别概率。尽管新、旧模型的预测类别可能没有重叠,但仍然可以假设“好特征”应该有更加尖锐稀疏的类别概率。在本技术实施例中,对于那些有着更高的不确定性分数的特征赋予更高的刷新优先级。在实际实现时,至少可以通过以下三种方式确定候选图像库中各个旧图像特征的不确定性:
[0234]
第一种、最小可信度,可以通过公式(2-8)确定:
[0235]ulc
(fg)=1-softmax[ω
new
(fg)]1,fg∈g
old
ꢀꢀꢀ
(2-8);
[0236]
第二、间隔法,可以通过公式(2-9)确定:
[0237]umc
(fg)=1-(softmax[ω
new
(fg)]
1-softmax[ω
new
(fg)]2),fg∈g
old
ꢀꢀꢀ
(2-9);
[0238]
第三、熵方法,可以通过公式(2-10)确定:
[0239][0240]
其中,ω
new
(fg)表示旧图像特征fg的分类结果向量,softmax[
·
]k表示排名第k个的类别概率。
[0241]
利用本技术实施例提出的免退化兼容训练方法,可以很好地实现热刷新模型更新,缓解了模型退化,同时又极大缩短了模型部署的等待周期。在三个公有数据集google landmark v2、oxford以及paris上进行验证。
[0242]
在本技术实施例中,研究了以下三种不同的模型训练数据类型,涵盖了实际应用中的大多数场景:
[0243]
第一、拓展式(expansion):新的训练数据集是旧训练数据集的拓展,可以是从google landmark中随机选取30%图片作为旧模型的训练集,100%图片作为新模型的训练集。
[0244]
第二、开放数据式(open-data):新/旧训练集没有重叠,但是包含同样的类别。
[0245]
第三、开放类别式(open-class):新/旧训练集数据、类别均没有重复,随机选取30%类别用于旧模型训练,剩下70%类别用于新模型训练。
[0246]
在实际实现时,各个不同类型的数据集的收集信息如表1所示:
[0247]
表1、不同类型的数据集收集信息表
[0248]
[0249][0250]
评价指标:平均精度均值(map)用于衡量检索系统的好坏,这里我们在google landmark上采用map@100,在oxford以及paris上采用map@10,其中map@100表示检索得到的前100个实例中的平均精度均值。因为map衡量的是整体性能,该性能同时受到正反转以及负反转的影响。在本技术实施例中额外定义了另一个度量指标,即负反转率(nfr,negative flip rate)来衡量热刷新过程中的模型退化程度,定义如公式(2-11):
[0251][0252]
其中,表示在前k个候选图像中,能够从旧的候选库中正确召回的查询图片的集合;表示前k个候选图像中,无法正确召回的查询图片的集合。
[0253]
关于特征提取器的结构,在本技术实施例中对比两种组合:
[0254]
第一种组合、r50-r101:resnet-50用于旧模型,resnet-101用于新模型。
[0255]
第二种组合、r50-r50:新/旧模型都采用resnet-50结构。
[0256]
模型训练均使用google landmark v2训练数据集,并在google landmar k v2、oxford以及paris三个测试数据集上进行测试。按照第一种组合r50-r1 01进行模型更新的结果如图9至图11所示,其中,图9为本技术实施例提供的利用google landmark v2测试数据集在热刷新过程中检索性能变化趋势图,图10为本技术实施例提供的利用oxford测试数据集在热刷新过程中检索性能变化趋势图,图11为本技术实施例提供的利用paris测试数据集在热刷新过程中检索性能变化趋势图,通过图9至图11可以看出,利用本技术实施例提供的模型更新方法得到的新模型的map优于vanilla的map,且新模型的nfr低于vanilla的nfr。
[0257]
图12为热刷新过程中利用本技术实施例提供的不同的不确定度量刷新策略对应的变化趋势图,其中,图12中的(a)为在oxford数据集中通过拓展式收集类型收集训练数据进行模型更新后,通过随机刷新策略、最小可信度策略、间隔策略和熵策略确定刷新顺序的变化趋势图,图12中的(b)为在oxford数据集中通过开放数据式收集类型收集训练数据进行模型更新后,通过随机刷新策略、最小可信度策略、间隔策略和熵策略确定刷新顺序的变化趋势图,图12中的(c)在oxford数据集中通过开放类别式收集类型收集训练数据进行模型更新后,通过随机刷新策略、最小可信度策略、间隔策略和熵策略确定刷新顺序的变化趋势图,图12中的(d)为在pairs 6k数据集中通过拓展式收集类型收集训练数据进行模型更新后,通过随机刷新策略、最小可信度策略、间隔策略和熵策略确定刷新顺序的变化趋势图,图12中的(e)为在pairs 6k数据集中通过开放数据式收集类型收集训练数据进行模型更新后,通过随机刷新策略、最小可信度策略、间隔策略和熵策略确定刷新顺序的变化趋势图,图12中的(f)为在pairs 6k数据集中通过开放类别式收集类型收集训练数据进行模型更新后,通过随机刷新策略、最小可信度策略、间隔策略和熵策略确定刷新顺序的变化趋势图。
[0258]
按照第二种组合r50-r50进行模型更新的结果如图13至图15所示,其中,图13为本
申请实施例提供的利用google landmark v2测试数据集在热刷新过程中检索性能的又一变化趋势图,图14为本技术实施例提供的利用oxford测试数据集在热刷新过程中检索性能的又一变化趋势图,图15为本技术实施例提供的利用paris测试数据集在热刷新过程中检索性能的又一变化趋势图,通过图13至图15可以看出,利用本技术实施例提供的模型更新方法得到的新模型的map优于vanilla的map,且新模型的nfr低于vanilla的nfr。
[0259]
图16为热刷新过程中利用本技术实施例提供的不同的不确定度量刷新策略对应的又一变化趋势图,其中,图16中的(a)为在oxford数据集中通过拓展式收集类型收集训练数据进行模型更新后,通过随机刷新策略、最小可信度策略、间隔策略和熵策略确定刷新顺序的变化趋势图,图16中的(b)为在oxford数据集中通过开放数据式收集类型收集训练数据进行模型更新后,通过随机刷新策略、最小可信度策略、间隔策略和熵策略确定刷新顺序的变化趋势图,图16中的(c)在oxford数据集中通过开放类别式收集类型收集训练数据进行模型更新后,通过随机刷新策略、最小可信度策略、间隔策略和熵策略确定刷新顺序的变化趋势图,图16中的(d)为在pairs 6k数据集中通过拓展式收集类型收集训练数据进行模型更新后,通过随机刷新策略、最小可信度策略、间隔策略和熵策略确定刷新顺序的变化趋势图,图16中的(e)为在pairs 6k数据集中通过开放数据式收集类型收集训练数据进行模型更新后,通过随机刷新策略、最小可信度策略、间隔策略和熵策略确定刷新顺序的变化趋势图,图16中的(f)为在pairs 6k数据集中通过开放类别式收集类型收集训练数据进行模型更新后,通过随机刷新策略、最小可信度策略、间隔策略和熵策略确定刷新顺序的变化趋势图。
[0260]
图17为不同不同方法在热刷新模型更新中的性能变化趋势图(模型结构采用r50-r101),通过图17可以看出,旧模型、基于后向兼容训练得到的新模型、基于局部蒸馏得到的新模型、基于本技术实施例提供的模型更新方法得到的新模型和基于本技术实施例提供的模型更新方法和后向兼容训练得到的新模型,利用三种训练数据集中获取到的训练数据进行训练得到的map变化趋势,并且基于本技术实施例提供的模型更新方法和后向兼容训练得到的新模型的性能是最优的。
[0261]
在本技术实施例中,在检索系统中采用兼容学习实现热刷新模型升级,实现新模型的即时部署,相较于传统的冷刷新模型升级节省较大的时间成本,并且是基于一种免退化兼容训练的更新模式进行模型更新,能够缓解模型退化现象。并且将不确定度量算法应用于特征更新中,能够在特征更新过程中实现性能的快速收敛。
[0262]
下面继续说明本技术实施例提供的搜索模型的更新装置443的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器440的搜索模型的更新装置443中的软件模块可以包括:
[0263]
第一获取模块4431,用于获取当前线上使用的旧搜索模型、待部署上线的新搜索模型和训练数据,所述训练数据包括多个训练图像和各个训练图像对应的标签信息;
[0264]
特征提取模块4432,用于利用所述旧搜索模型对所述多个训练图像进行特征提取,得到旧训练特征;
[0265]
模型训练模块4433,用于利用所述训练数据和所述旧训练特征对所述新搜索模型进行免退化兼容训练,得到训练好的新搜索模型;
[0266]
模型部署模块4434,用于将所述训练好的新搜索模型进行部署上线,并利用所述
训练好的新搜索模型进行候选图像库的更新和图像搜索。
[0267]
在一些实施例中,该新搜索模型包括新特征提取子模型,该模型训练模块,还用于:
[0268]
利用所述新搜索模型的新特征提取子模型对所述多个训练图像进行特征提取,得到新训练特征;
[0269]
利用所述旧训练特征和新训练特征确定所述新搜索模型的损失函数;
[0270]
基于所述新训练特征、所述旧训练特征和所述损失函数对所述新搜索模型进行免退化兼容训练,得到训练好的搜索模型。
[0271]
在一些实施例中,该模型训练模块,还用于:
[0272]
利用所述旧训练特征和新训练特征确定所述新搜索模型的免退化兼容损失函数;
[0273]
利用所述新训练特征和所述各个训练图像对应的标签信息确定所述新搜索模型的分类损失函数;
[0274]
基于所述免退化兼容损失函数和所述分类损失函数构建所述新搜索模型的损失函数。
[0275]
在一些实施例中,该模型训练模块,还用于:
[0276]
利用所述新训练特征和所述旧训练特征构建多个新-旧正例对、多个新-新负例对和多个新-旧负例对;
[0277]
基于所述新-旧正例对的第一点乘结果和所述新-旧负例对的第二点乘结果构建基准损失函数;
[0278]
基于所述新-新负例对的第三点乘结果对所述基准损失函数进行兼容性约束,得到所述新搜索模型的免退化兼容损失函数。
[0279]
在一些实施例中,所述新搜索模型还包括新分类子模型,该模型训练模块,还用于:
[0280]
将所述新训练特征输入所述新分类子模型,得到所述新训练特征的分类结果向量;
[0281]
将所述分类结果向量、所述新训练特征和所述标签信息进行交叉熵运算,得到所述新搜索模型的分类损失函数。
[0282]
在一些实施例中,该模型部署模块,还用于:
[0283]
确定所述候选图像库中各个旧图像特征的不确定性程度值;
[0284]
基于所述各个旧图像特征的不确定性程度值,对所述各个旧图像特征对应的候选图像进行排序,得到排序结果;
[0285]
基于所述排序结果利用所述训练好的新搜索模型提取所述候选图像库中的各个候选图像的图像特征,得到新图像特征。
[0286]
在一些实施例中,该模型部署模块,还用于:
[0287]
将所述各个旧图像特征输入所述训练好的新搜索模型中的分类子模型,得到各个旧图像特征对应的分类结果向量;
[0288]
基于所述各个旧图像特征对应的分类结果向量确定所述各个旧图像特征的不确定性程度值。
[0289]
在一些实施例中,该模型部署模块,还用于:
[0290]
将所述各个旧图像特征对应的分类结果向量中的类别概率按照从大到小的顺序进行排序,得到各个排序结果;
[0291]
基于所述各个排序结果中的最大概率值确定所述各个旧图像特征的不确定性程度值;或者,
[0292]
基于所述各个排序结果中的第一个概率值和第二概率值的差,确定所述各个旧图像特征的不确定性程度值;或者,
[0293]
基于所述各个旧图像特征对应的分类结果向量确定所述各个旧图像特征的熵,基于所述各个旧图像特征对应的熵,确定所述各个旧图像特征的不确定性程度值。
[0294]
在一些实施例中,该装置还包括:
[0295]
第四获取模块,用于接收视频发布请求,并获取所述视频发布请求中携带的待发布视频数据;
[0296]
抽帧模块,用于对所述待发布视频数据进行抽帧处理,得到多个目标视频帧;
[0297]
第二确定模块,用于利用所述训练好的分类模型中的特征提取子模型,提取所述多个目标视频帧的图像特征,得到多个视频帧特征,基于所述多个视频帧特征确定所述待发布视频数据的视频特征;
[0298]
第三确定模块,用于确定所述视频特征与视频库中各个已发布视频的视频特征之间的相似度;
[0299]
视频发布模块,用于当不存在大于相似度阈值的目标相似度时,确定不存在与所述待发布视频数据相似的已发布视频,发布所述待发布视频数据。
[0300]
需要说明的是,本技术实施例针对搜索模型的更新装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
[0301]
本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的搜索模型的更新方法。
[0302]
本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的搜索模型的更新方法,例如,如图3、图4和图5示出的搜索模型的更新方法。
[0303]
在一些实施例中,计算机可读存储介质可以是fram、rom、prom、ep rom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0304]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0305]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件
中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0306]
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0307]
以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献