基于多模态预训练的相似图片检索方法、装置及电子设备转让专利

申请号 : CN202210376939.2

文献号 : CN114461839B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孟凡飞李飞阳薛娇李大海

申请人 : 智者四海(北京)技术有限公司

摘要 :

本申请提供了一种多模态预训练的相似图片检索方法、装置及电子设备,该方法包括:获取图片特征编码器,所述图片特征编码器是与文本编码器共同经多模态预训练得到的;基于所述图片特征编码器,获取待检索图片及图片数据库中图片的图片特征;基于所述待检索图片及图片数据库中图片的图片特征,从图片数据库中召回具有与所述待检索图片的特征相似的图片数据,作为召回图片数据;对所述召回图片数据进行排序,将最近邻的数据返回,作为所述待检索图片的检索结果。本申请通过多模态预训练、图片特征提取、相似图片召回、相似性排序,实现从海量的图片数据中,高效且准确的为一张图片检索出一组语义上和内容上相似的图片。

权利要求 :

1.一种基于多模态预训练的相似图片检索方法,其特征在于,包括:

获取图片及其对应的文本信息,构建图片‑文本对作为训练数据集;

构建多模态预训练模型,所述模型采用双塔模式,包括图片侧的图片特征编码器和文本侧的文本特征编码器;

获取图片特征编码器,所述图片特征编码器是与文本编码器共同经多模态预训练得到的,所述文本侧只作为辅助训练;所述多模态预训练包括基于梯度更新的Query模型和基于动量更新的Key模型对所述图片特征编码器和所述文本编码器进行单模态对比学习和跨模态对比学习的第一阶段训练,以及基于梯度更新的Query模型对所述图片特征编码器和所述文本编码器进行跨模态对比学习的第二阶段训练;其中,所述图片特征编码器的Patch Projection层在所述第一阶段训练中被固定;

基于所述图片特征编码器,获取待检索图片及图片数据库中图片的图片特征;

基于所述待检索图片及图片数据库中图片的图片特征,从图片数据库中召回具有与所述待检索图片的特征相似的图片数据,作为召回图片数据;

对所述召回图片数据进行排序,将最近邻的数据返回,作为所述待检索图片的检索结果。

2.根据权利要求1所述的方法,其特征在于,所述图片特征编码器采用ViT模型提取图片特征,所述文本特征编码器采用语言预训练模型BERT提取图片特征。

3.根据权利要求2所述的方法,其特征在于,所述基于梯度更新的Query模型和基于动量更新的Key模型对所述图片特征编码器和所述文本编码器进行单模态对比学习和跨模态对比学习的第一阶段训练,包括:获取所述训练数据集的某一批图片‑文本对,并将图片‑文本对中的图片加入图片样本队列,将图片‑文本对中的文本加入文本样本队列,其中,所述图片样本队列和文本样本队列为固定长度,保持新一批数据进入样本队列的同时旧一批数据出队;

将某图片‑文本对中的图片输入所述图片特征编码器Query,得到图片特征;

将所述图片样本队列的图片输入所述图片特征编码器Query,得到图片样本队列的图片特征,并对所述图片特征和图片样本队列的图片特征进行匹配,计算第一单模态对比学习的损失函数;

将所述文本样本队列的文本输入所述文本特征编码器Key,得到文本样本队列的文本特征,并对所述图片特征和文本样本队列的文本特征进行匹配,计算第一跨模态对比学习的损失函数;

计算第一总损失函数,并采用梯度下降法更新图片特征编码器Query的参数,所述第一总损失函数为第一单模态对比学习的损失函数和第一跨模态对比学习的损失函数之和;

基于所述更新后的图片特征编码器Query的参数,通过动量更新图片特征编码器Key的参数。

4.根据权利要求3所述的方法,其特征在于,所述基于梯度更新的Query模型和基于动量更新的Key模型对所述图片特征编码器和所述文本编码器进行单模态对比学习和跨模态对比学习的第一阶段训练,还包括:将某图片‑文本对中的文本输入文本特征编码器Query,得到文本特征;

将所述文本样本队列的文本输入所述文本特征编码器Query,得到文本样本队列的文本特征,并对所述文本特征和文本样本队列的文本特征进行匹配,计算第二单模态对比学习的损失函数;

将所述图片样本队列的图片输入所述图片特征编码器Key,得到图片样本队列的图片特征,并对所述文本特征和图片样本队列的图片特征进行匹配,计算第二跨模态对比学习的损失函数;

计算第二总损失函数,并采用梯度下降法更新文本特征编码器Query的参数,所述第二总损失函数为第二单模态对比学习的损失函数和第二跨模态对比学习的损失函数之和;

基于所述更新后的文本特征编码器Query的参数,通过动量更新文本特征编码器Key的参数。

5.根据权利要求2所述的方法,其特征在于,所述基于梯度更新的Query模型对所述图片特征编码器和所述文本编码器进行跨模态对比学习的第二阶段训练,包括:获取所述训练数据集的某一批图片‑文本对;

将图片‑文本对中的图片输入图片特征编码器Query,得到图片特征;

将图片‑文本对中的文本输入文本特征编码器Query,得到文本特征;

对所述图片特征和文本特征进行匹配,计算第三损失函数,并采用梯度下降法更新图片特征编码器Query和文本特征编码器Query的参数。

6.根据权利要求1所述的方法,其特征在于,所述基于所述待检索图片及图片数据库中图片的图片特征,从图片数据库中召回具有与所述待检索图片的特征相似的图片数据,作为召回图片数据,包括:基于所述图片数据库中各图片特征,采用PCA降维算法和PQ压缩算法进行降维、压缩、量化,为各向量赋予新的索引,得到索引数据库;

基于所述待检索图片的特征,进行同样的PCA降维和PQ压缩操作,得到待检索图片的特征索引;

基于待检索图片的特征索引,采用IVF技术对所述索引数据库进行倒排序,得到第一排序表;

计算所述待检索的特征索引与所述第一排序表的前top个索引向量的距离,选择其中距离最近的图片数据,作为召回图片数据。

7.根据权利要求1所述的方法,其特征在于,所述对所述召回图片数据进行排序,将最近邻的数据返回,包括:计算所述待检索图片与召回图片数据之间的相似性;

按照相似性递减排序,得到第二排序表;

将所述第二排序表排名靠前的数据作为最近邻的数据返回。

8.一种基于多模态预训练的相似图片检索装置,其特征在于,包括:

模型构建模块,用于构建多模态预训练模型,所述模型采用双塔模式,包括图片侧的图片特征编码器和文本侧的文本特征编码器,所述图片特征编码器采用ViT模型提取图片特征,所述文本特征编码器采用语言预训练模型BERT提取图片特征;

数据获取模块,用于获取图片及其对应的文本信息,构建图片‑文本对作为训练数据集;

模型训练模块,用于基于所述训练数据集进行多模态预训练得到图片特征编码器与文本编码器,其中,所述文本侧只作为辅助训练;所述模型训练模块包括第一训练模块和第二训练模块,所述第一训练模块用于基于梯度更新的Query模型和基于动量更新的Key模型对所述图片特征编码器和所述文本编码器进行单模态对比学习和跨模态对比学习,所述第二训练模块用于基于梯度更新的Query模型对所述图片特征编码器和所述文本编码器进行跨模态对比学习;其中,所述图片特征编码器的Patch Projection层在所述第一训练模块中被固定;

特征抽取模块,用于基于所述训练后的图片特征编码器,获取待检索图片及图片数据库中图片的图片特征;

召回模块,用于基于所述待检索图片及图片数据库中图片的图片特征,召回具有与所述待检索图片的特征相似的图片数据,作为召回图片数据;

排序模块,用于对所述召回图片数据进行排序,将最近邻的数据返回,作为所述待检索图片的检索结果。

9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器运行所述计算机程序时执行权利要求1至7中任一项所述的基于多模态预训练的相似图片检索方法。

10.一种可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序在处理器上运行时执行权利要求1至7中任一项所述的基于多模态预训练的相似图片检索方法。

说明书 :

基于多模态预训练的相似图片检索方法、装置及电子设备

技术领域

[0001] 本申请涉及计算机应用技术领域,具体而言,涉及一种基于多模态预训练的相似图片检索方法、装置及电子设备。

背景技术

[0002] 随着数据的沉淀,中文内容社区拥有海量的图文内容,图片数据量已达亿级,其图文内容具有种类丰富、语义复杂的特点。语义相似内容的检索和匹配在搜索、推荐、商广等场景具有很强的业务价值,通常,人们使用神经网络打标签和内容表征的方法将语义内容相似的图文数据进行聚合。由于图片规模极其庞大,如何给一张图片从海量图片数据中检索出一组语义上相似的图片就成了一个复杂且重要的问题。
[0003] 传统的相似图片检索方法,包括基于感知哈希检索、基于尺度不变特征变换特征检索、基于图片标签检索、基于神经网络的图片特征检索。其中,基于感知哈希检索的方法对于语义相似的图片检索效果很差;基于尺度不变特征变换特征检索的方法对于缺少纹理信息的图片检索效果很差;基于图片标签检索的方法,文本标签准确性较低,且需要人工标注,有很大的人工开销;基于神经网络的图片特征检索方法,通过传统分类任务得到的图像特征提取器的语义表征能力较差,缺乏语义信息的监督训练,而传统的监督学习分类任务需要人工标注数据,对于海量无标注数据则无能为力,故相似图片的检索效果和鲁棒性较差。
[0004] 目前,基于图文信息的多模态预训练相似图片检索方法也纷纷出现,例如检索模型的预训练过程采用了ViT模型和BERT模型的双网络进行图片特征提取和文本特征提取,但这类方法中图片特征提取模型使用ViT模型进行自监督任务训练过程中,会出现训练过程不稳定,损失抖动十分明显的现象,会显著降低模型训练的效率。

发明内容

[0005] 有鉴于此,本申请实施例的目的在于提供一种基于多模态预训练的相似图片检索方法、装置及电子设备,通过图文数据下跨模态对齐、分阶段训练等多模态预训练任务的设计,进一步提高多模态预训练的稳定性和模型检索的效果,解决海量图文数据上的相似图片检索存在问题。
[0006] 第一方面,本申请实施例提供了一种基于多模态预训练的相似图片检索方法,所述方法包括:获取图片特征编码器,所述图片特征编码器是与文本编码器共同经多模态预训练得到的;所述多模态预训练包括基于梯度更新的Query模型和基于动量更新的Key模型对所述图片特征编码器和所述文本编码器进行预训练的第一阶段训练,以及基于梯度更新的Query模型对所述图片特征编码器和所述文本编码器进行预训练的第二阶段训练;其中,所述图片特征编码器的Patch Projection层在所述第一阶段训练中被固定;基于所述图片特征编码器,获取待检索图片及图片数据库中图片的图片特征;基于所述待检索图片及图片数据库中图片的图片特征,从图片数据库中召回具有与所述待检索图片的特征相似的图片数据,作为召回图片数据;对所述召回图片数据进行排序,将最近邻的数据返回,作为所述待检索图片的检索结果。
[0007] 可选地,所述多模态预训练之前,还包括:获取图片及其对应的文本信息,构建图片‑文本对作为训练数据集;构建多模态预训练模型,所述模型采用双塔模式,包括图片侧的图片特征编码器和文本侧的文本特征编码器,所述图片特征编码器采用ViT模型提取图片特征,所述文本特征编码器采用语言预训练模型BERT提取图片特征。
[0008] 可选地,所述基于梯度更新的Query模型和基于动量更新的Key模型对所述图片特征编码器和所述文本编码器进行预训练的第一阶段训练,包括:获取所述训练数据集的某一批图片‑文本对,并将图片‑文本对中的图片加入图片样本队列,将图片‑文本对中的文本加入文本样本队列,其中,所述图片样本队列和文本样本队列为固定长度,保持新一批数据进入样本队列的同时旧一批数据出队;将某图片‑文本对中的图片输入所述图片特征编码器Query,得到图片特征;将所述图片样本队列的图片输入所述图片特征编码器Query,得到图片样本队列的图片特征,并对所述图片特征和图片样本队列的图片特征进行匹配,计算第一单模态对比学习的损失函数;将所述文本样本队列的文本输入所述文本特征编码器Key,得到文本样本队列的文本特征,并对所述图片特征和文本样本队列的文本特征进行匹配,计算第一跨模态对比学习的损失函数;计算第一总损失函数,并采用梯度下降法更新图片特征编码器Query的参数,所述第一总损失函数为第一单模态对比学习的损失函数和第一跨模态对比学习的损失函数之和;基于所述更新后的图片特征编码器Query的参数,通过动量更新图片特征编码器Key的参数。以及,
[0009] 将某图片‑文本对中的文本输入文本特征编码器Query,得到文本特征;将所述文本样本队列的文本输入所述文本特征编码器Query,得到文本样本队列的文本特征,并对所述文本特征和文本样本队列的文本特征进行匹配,计算第二单模态对比学习的损失函数;将所述图片样本队列的图片输入所述图片特征编码器Key,得到图片样本队列的图片特征,并对所述文本特征和图片样本队列的图片特征进行匹配,计算第二跨模态对比学习的损失函数;计算第二总损失函数,并采用梯度下降法更新文本特征编码器Query的参数,所述第二总损失函数为第二单模态对比学习的损失函数和第二跨模态对比学习的损失函数之和;
基于所述更新后的文本特征编码器Query的参数,通过动量更新文本特征编码器Key的参数。
[0010] 可选地,所述基于梯度更新的Query模型对所述图片特征编码器和所述文本编码器进行预训练的第二阶段训练,包括:获取所述训练数据集的某一批图片‑文本对;将图片‑文本对中的图片输入图片特征编码器Query,得到图片特征;将图片‑文本对中的文本输入文本特征编码器Query,得到文本特征;对所述图片特征和文本特征进行匹配,计算第三损失函数,并采用梯度下降法更新图片特征编码器Query和文本特征编码器Query的参数。
[0011] 可选地,所述基于所述待检索图片及图片数据库中图片的图片特征,从图片数据库中召回具有与所述待检索图片的特征相似的图片数据,作为召回图片数据,包括:基于所述图片数据库中各图片特征,采用PCA降维算法和PQ压缩算法进行降维、压缩、量化,为各向量赋予新的索引,得到索引数据库;基于所述待检索图片的特征,进行同样的PCA降维和PQ压缩操作,得到待检索图片的特征索引;基于待检索图片的特征索引,采用IVF技术对所述索引数据库进行倒排序,得到第一排序表;计算所述待检索的特征索引与所述第一排序表的前top个索引向量的距离,选择其中距离最近的图片数据,作为召回图片数据。
[0012] 可选地,所述对所述召回图片数据进行排序,将最近邻的数据返回,包括:计算所述待检索图片与召回图片数据之间的相似性;按照相似性递减排序,得到第二排序表;将所述第二排序表排名靠前的数据作为最近邻的数据返回。
[0013] 第二方面,本申请实施例还提供了一种基于多模态预训练的相似图片检索装置,所述装置包括:
[0014] 模型构建模块,用于构建多模态预训练模型,所述模型采用双塔模式,包括图片侧的图片特征编码器和文本侧的文本特征编码器,所述图片特征编码器采用ViT模型提取图片特征,所述文本特征编码器采用语言预训练模型BERT提取图片特征;
[0015] 数据获取模块,用于获取图片及其对应的文本信息,构建图片‑文本对作为训练数据集;
[0016] 模型训练模块,用于基于所述训练数据集进行多模态预训练得到图片特征编码器与文本编码器;所述模型训练模块包括第一训练模块和第二训练模块,所述第一训练模块用于基于梯度更新的Query模型和基于动量更新的Key模型对所述图片特征编码器和所述文本编码器进行预训练,所述第二训练模块用于基于梯度更新的Query模型对所述图片特征编码器和所述文本编码器进行预训练;其中,所述图片特征编码器的Patch Projection层在所述第一训练模块中被固定;
[0017] 特征抽取模块,用于基于所述训练后的图片特征编码器,获取待检索图片及图片数据库中图片的图片特征;
[0018] 召回模块,用于基于所述待检索图片及图片数据库中图片的图片特征,召回具有与所述待检索图片的特征相似的图片数据,作为召回图片数据;
[0019] 排序模块,用于对所述召回图片数据进行排序,将最近邻的数据返回,作为所述待检索图片的检索结果。
[0020] 第三方面,本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器运行所述计算机程序时,执行上述的基于多模态预训练的相似图片检索方法中的任一实现方式中的步骤。
[0021] 第四方面,本申请实施例还提供了一种可读存储介质,所述可读取存储介质中存储有计算机程序,所述计算机程序被处理器运行时,执行上述的基于多模态预训练的相似图片检索方法中的任一实现方式中的步骤。
[0022] 综上所述,本申请提供一种基于多模态预训练的相似图片检索方法、装置和电子设备,通过图文数据下跨模态对齐、分阶段训练等多模态预训练任务的设计,实现视觉信息与语义信息的强相关,使图片特征提取器具有更丰富的语义表征空间,从而提高检索效果和鲁棒性;第一阶段训练,通过固定图片特征编码器的Patch Projection层并同时进行单模态的对比学习和跨模态的对比学习,进一步提高训练过程的稳定性和模型的检索效果;通过采用PCA降维、PQ压缩和IVF技术进行相似图片召回,极大地提高了模型检索相似图片的速度和效率;通过对召回的相似图片再次进行相似性排序,可以避免召回过程造成的精度损失,从而进一步提高了检索结果的准确性。

附图说明

[0023] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0024] 图1为本申请实施例提供的一种基于多模态预训练的相似图片检索方法的流程示意图;
[0025] 图2a为本申请实施例提供的一种基于多模态预训练的相似图片检索方法的多模态预训练的示意图过程;
[0026] 图2b为本申请实施例提供的一种基于多模态预训练的相似图片检索方法的多模态预训练模型的第一阶段训练的过程示意图;
[0027] 图2c为本申请实施例提供的一种基于多模态预训练的相似图片检索方法中多模态预训练模型的第二训练阶段的过程示意图;
[0028] 图3为本申请实施例提供的一种基于多模态预训练的相似图片检索方法的召回相似图片的流程示意图;
[0029] 图4为本申请实施例提供的一种基于多模态预训练的相似图片检索装置的结构示意图;
[0030] 图5为本申请实施例提供的一种基于多模态预训练的相似图片检索电子设备的结构示意图。
[0031] 图标:400‑模型训练装置;410‑模型构建模块;420‑数据获取模块;430‑模型训练模块;440‑特征抽取模块;450‑召回模块;460‑排序模块;500‑模型训练电子设备;510‑处理器;520‑存储器;530‑总线。

具体实施方式

[0032] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。显而易见地,下面所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请实施例的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
[0033] 请参阅图1,图1为本申请实施例提供的一种基于多模态预训练的相似图片检索方法的流程示意图,包括以下步骤:
[0034] S11,获取图片特征编码器,所述图片特征编码器是与文本编码器共同经多模态预训练得到的。
[0035] 可选地,所述多模态预训练包括基于梯度更新的Query模型和基于动量更新的Key模型对所述图片特征编码器和所述文本编码器进行预训练的第一阶段训练,以及基于梯度更新的Query模型对所述图片特征编码器和所述文本编码器进行预训练的第二阶段训练;其中,所述图片特征编码器的Patch Projection层在所述第一阶段训练中被固定。
[0036] 其中,所述第一阶段训练的Query模型包括图片特征编码器Query和文本特征编码器Query,Key模型包括基于图片特征编码器Query构建相同的图片特征编码器Key和基于文本特征编码器Query构建相同的文本特征编码器Key,图片特征编码器Query与图片特征编码器Key的初始参数相同,且文本特征编码器Query与文本特征编码器Key的初始参数相同,在第一阶段训练中,Query模型的参数通过梯度下降法进行更新,而Key模型的参数基于梯度更新后的Query模型的参数进行动量更新。
[0037] 在一些实施例中,所述图片特征编码器的Patch Projection层在所述第一阶段训练中被固定,可以是采用固定的Random Patch Projection层进行块嵌入,而非通过学习方式,将ViT的Patch Projection层固定可大幅增加ViT图片特征编码器的训练过程的稳定性,加快模型的训练速度。
[0038] 可选地,所述多模态预训练之前,还包括:获取图片及其对应的文本信息,构建图片‑文本对作为训练数据集;构建多模态预训练模型,所述模型采用双塔模式,包括图片侧的图片特征编码器和文本侧的文本特征编码器,所述图片特征编码器采用能保留更多空间信息的ViT(Vision Transformer)模型提取图片特征,所述文本特征编码器采用目前性能最出色的预训练语言表征模型BERT(Bidirectional Encoder Representation from Transformers)。
[0039] 值得注意的是,所述图片侧和文本侧完全独立,互不干扰。本申请实施例中所提供的多模态预训练模型主要专注于训练图片侧,双塔结构的文本侧只作为辅助训练。在一些实施例中,文本侧的文本编码器选择具有更低时间复杂度的模型Fastformer,代替Transformer,以提升模型训练效率。
[0040] S12,基于所述图片特征编码器,获取待检索图片及图片数据库中图片的图片特征。
[0041] 其中,所述图片数据库,是指存储有网页或网站上所有图片的数据库;所述待检索图片可以是图片数据库中的图片,也可以是不属于图片数据库的图片,如用户通过网页输入的图片;所述待检索图片可以是一张图片,也可以是多张图片。
[0042] 在一些实施中,在采用所述图片特征编码器进行图片特征提取之前,可以对待检索图片和图片数据库中的图片进行预处理,所述预处理,包括但不限于格式转换、裁剪等统一图片格式的操作,用于确保经过预处理后的图片可以直接输入图片特征编码器,进行图片特征提取。
[0043] S13,基于所述待检索图片及图片数据库中图片的图片特征,从图片数据库中召回具有与所述待检索图片的特征相似的图片数据,作为召回图片数据。
[0044] 其中,与所述待检索图片的特征相似的图片数据,可以指语义上相似的多张图片,如“飞机飞过天空”和“天空中有一架飞机”,也可以指内容上相似的多张图片,如同样包含蒙娜丽莎但视角或者背景不同的多张图片,也可以是具有相同含义的多张图片,如待检索图片为某品牌某款热水壶,则相似图片可以是不同款式甚至不同品牌但具有类似外观的热水壶。
[0045] 在一些实施例中,可以采用基于FAISS的KNN算法,召回具有与所述待检索图片的特征相似的图片数据,作为召回图片数据,具体包括:基于所述图片数据库中各图片特征,采用PCA(Principal Components Analysis, 主成分分析)降维算法和PQ(Product Quantization, 乘积量化)压缩算法进行降维、压缩、量化,为各向量赋予新的索引,得到索引数据库;基于所述待检索图片的特征,进行同样的PCA降维和PQ压缩操作,得到待检索图片的特征索引;基于待检索图片的特征索引,采用IVF(Inverted File System, 倒排文件系统)技术对所述索引数据库进行倒排序,得到第一排序表;计算所述待检索的特征索引与所述第一排序表的前top个索引向量的距离,选择其中距离最近的图片数据,作为召回图片数据。
[0046] 在另一些实施例中,还可以采用基于LSH(Locality‑Sensitive Hashing, 局部敏感哈希)的ANN(Approximate Nearest Neighbor, 近似最邻近)算法,包括:选取满足敏感条件的LSH函数;确定哈希表个数、各表内哈希函数个数,以及LSH函数自身参数;将所述图片数据库中各图片特征经过LSH函数哈希到相应桶内,构成了一个或多个哈希表;将所述待检索图片的特征经过LSH函数得到相应的桶号,并取出对应的数据作为召回的图片数据。
[0047] S14,对所述召回图片数据进行排序,将最近邻的数据返回,作为所述待检索图片的检索结果。
[0048] 可选地,计算所述待检索图片与召回图片数据之间的相似性;按照相似性递减排序,得到第二排序表;将所述第二排序表排名靠前的数据作为最近邻的数据返回。
[0049] 在一些实施例中,可以通过计算所述待检索图片与所述召回图片数据之间的相似度,比如,余弦相似度,并根据得到的相似度按照相似度递减排序,然后将排名靠前的数据返回,作为所述待检索图片的检索结果。
[0050] 在另一些实施例中,还可以通过计算所述待检索图片与所述召回图片数据之间的距离,如,欧式距离、曼哈顿距离,马氏距离、切比雪夫距离,并根据得到的距离按照距离递增排序,然后将排名靠前的数据返回,作为所述待检索图片的检索结果。
[0051] 上述基于多模态预训练的相似图片检索方法,通过图文数据下跨模态对齐、分阶段训练等多模态预训练任务的设计,实现视觉信息与语义信息的强相关,使图片特征提取器具有更丰富的语义表征空间,从而提高检索效果和鲁棒性;第一阶段训练,通过固定图片特征编码器的Patch Projection层并同时进行单模态对比学习和跨模态对比学习,进一步提高训练过程的稳定性和模型的检索效果;通过采用PCA降维、PQ压缩和IVF技术进行相似图片召回,极大地提高了模型检索相似图片的效率;通过对召回的相似图片再次进行相似性排序,可以避免召回过程造成的精度损失,从而进一步提高了检索结果的准确性。
[0052] 请参阅图2a,图2a为本申请实施例提供的一种基于多模态预训练的相似图片检索方法的多模态预训练的示意图过程,包括以下步骤:
[0053] S21,获取图片及其对应的文本信息,构建图片‑文本对作为训练数据集。
[0054] 可选地,所述图片及其对应的文本信息,可以直接从拥有海量图文数据的网站内获取,其中,所述文本信息包含上下文信息或标题信息,可以是长文本形式,也可以是短文本形式。
[0055] 在一些实施例中,获取图片及其对应的文本信息,构建图片‑文本对作为训练数据集,包括:将图片及其对应的上下文信息构成图片‑文本对;将图片及其对应的标题信息构成图片‑文本对。
[0056] 在另一些实施例中,还可以对所述训练数据集中的图片进行变换、裁剪、旋转、模糊等预处理,将预处理后的图片与及其对应的文本信息构成图片‑文本对,以进一步提升训练数据的数据量。
[0057] 值得注意的是,在训练过程中,对于给定的图片‑文本对,可以为图片信息和文本信息分别维护一个容量很大并且表征一致的负样本队列,以进一步提高模型的泛化能力,所述负样本为一些本不存在的图片‑文本对。在一些实施例中,可以基于MoCo(Momentum Contrast)框架构造大量的负样本。
[0058] 上述通过拥有海量图文数据的网站直接构造图片‑文本的方法,可以较好地保留信息的完整性,从而尽可能不损失信息,并且此种构造数据的方法成本低廉,在实际模型训练时可构造上亿量级的训练数据。
[0059] S22,构建多模态预训练模型,所述模型采用双塔模式,包括图片侧的图片特征编码器和文本侧的文本特征编码器。
[0060] 其中,所述图片特征编码器采用ViT模型提取图片特征,包括:首先,把图片分成多个patch,再将每个patch映射成一个embedding,即linear projection层;然后加上一个一维的position embedding;最后,加上一个learnable classification token放在序列的前面,之后经多层encoder结构得到图片的特征编码,即经过图片特征编码器得到的图片特征。
[0061] 所述文本特征编码器采用语言预训练模型BERT提取图片特征,包括:从输入端输入经过分词处理得到一个token序列,再经过Fastformer层得到文本的embedding,得到文本的特征编码,即经过文本特征编码器得到的文本特征。
[0062] S23,基于所述训练数据集,对所述模型进行第一阶段训练至模型初步收敛。
[0063] 其中,所述模型初步收敛是指模型参数的损失函数相对极小化,或者可以理解为在训练过程模型的参数初步稳定,变化较小。
[0064] 请参阅图2b,图2b为本申请实施例提供的一种基于多模态预训练的相似图片检索方法的多模态预训练过程的第一阶段训练的过程示意图,包括:
[0065] S231,获取所述训练数据集的某一批图片‑文本对,并将图片‑文本对中的图片加入图片样本队列,将图片‑文本对中的文本加入文本样本队列。
[0066] 其中,所述图片样本队列和文本样本队列为固定长度,每次迭代过程中,当有新一批数据进入样本队列时,就会有最旧的一批数据出队,以使样本队列保持固定长度;在实际训练过程,所述图片样本队列和文本样本队列的固定长度为超参数,可以根据经验值进行人为确定。
[0067] S232,计算第一单模态对比学习的损失函数。
[0068] 可选地,将某图片‑文本对中的图片输入所述图片特征编码器Query,得到图片特征,将所述图片样本队列的图片输入所述图片特征编码器Query,得到图片样本队列的图片特征,并对所述图片特征和图片样本队列的图片特征进行匹配,计算第一单模态对比学习的损失函数。
[0069] S233,计算第一跨模态对比学习的损失函数。
[0070] 可选地,将所述文本样本队列的文本输入所述文本特征编码器Key,得到文本样本队列的文本特征,并对所述图片特征和文本样本队列的文本特征进行匹配,计算第一跨模态对比学习的损失函数。
[0071] S234,更新图片特征编码器Query和图片特征编码器Key的参数。
[0072] 可选地,计算第一总损失函数,采用梯度下降法更新图片特征编码器Query的参数,并基于所述更新后的图片特征编码器Query的参数,通过动量更新图片特征编码器Key的参数。其中,所述第一总损失函数为第一单模态对比学习的损失函数和第一跨模态对比学习的损失函数之和;
[0073] 可选地,图片特征编码器的参数记为θQI,图片特征编码器副模型的参数记为θKI,则通过梯度更新和动量更新的公式分别表达为,
[0074]
[0075]
[0076] 其中,ϒ 表示学习率, 表示图片特征编码器的损失函数,m表示动量参数,通常最优动量更新系数为0.99。
[0077] S235,计算第二单模态对比学习的损失函数。
[0078] 可选地,将某图片‑文本对中的文本输入文本特征编码器Query,得到文本特征,将所述文本样本队列的文本输入所述文本特征编码器Query,得到文本样本队列的文本特征,并对所述文本特征和文本样本队列的文本特征进行匹配,计算第二单模态对比学习的损失函数。
[0079] S236,计算第二跨模态对比学习的损失函数。
[0080] 可选地,将所述图片样本队列的图片输入所述图片特征编码器Key,得到图片样本队列的图片特征,并对所述文本特征和图片样本队列的图片特征进行匹配,计算第二跨模态对比学习的损失函数。
[0081] S237,更新文本特征编码器Query和文本特征编码器Key的参数。
[0082] 可选地,计算第二总损失函数,采用梯度下降法更新文本特征编码器Query的参数,并基于所述更新后的文本特征编码器Query的参数,通过动量更新文本特征编码器Key的参数。其中,所述总损失函数为第二单模态对比学习的损失函数和第二跨模态对比学习的损失函数之和。
[0083] 可选地,文本特征编码器的参数记为θQT,文本特征编码器副模型的参数记为θKT,则通过梯度更新和动量更新的公式分别表达为,
[0084]
[0085]
[0086] 其中,ϒ表示学习率, 表示文本特征编码器的损失函数,m表示动量参数,通常最优动量更新系数为0.99。
[0087] 值得注意的是,步骤S232‑S234和步骤S235‑S237为同时在图片侧和文本侧进行的两个训练过程,且第一阶段训练过程中,通过固定图片侧的图片特征编码器ViT模型的Patch Projection层,增加了训练过程的稳定性,加快模型的训练速度。
[0088] 在一些实施例中,第一单模态对比学习的损失函数和第二单模态对比学习的损失函数可以是三元组损失(Triplet Loss)函数,第一跨模态对比学习的损失函数和第二跨模态对比学习的损失函数可以是聚焦损失(Focal Loss)函数。
[0089] 三元组损失函数,通过拉近与正样本的距离,拉远与负样本的距离,在训练中学习到更好的细微的特征,其数学表达式为,
[0090]
[0091] 其中,a表示输入的样本,p表示a样本对应的正样本,n表示a样本对应的负样本,margin表示三元组损失函数的阈值,通常可以根据模型训练的进行设定。
[0092] 聚焦损失函数,通过修改二分类的交叉损失熵(Cross Emtropy)函数,增加类别权γ重αt和样本难度权重调因子(1−pt) ,解决样本类别不平衡以及样本分类难度不平衡等问题,提升模型精确度,其数学表达式为,
[0093]
[0094]
[0095] 其中,yi表示样本i的label,正类为1,负类为0;pi表示样本i预测为正类的概率。在本申请中,yi可以表示图片‑文本对是否匹配,匹配为1,不匹配为0,pi表示图片‑文本对为正样本的概率。
[0096] S24,基于所述训练数据集,对所述模型进行第二阶段训练至模型完全收敛。
[0097] 其中,所述模型完收敛是指模型参数的损失函数最小化,或者可以理解为在训练过程模型的参数完全稳定,变化微小。
[0098] 请参阅图2c,图2c为本申请实施例提供的一种基于多模态预训练的相似图片检索方法的多模态预训练过程的第二阶段训练的过程示意图,包括:
[0099] S241,获取所述训练数据集的某一批图片‑文本对;
[0100] S242,将图片‑文本对中的图片输入图片特征编码器Query,得到图片特征;
[0101] S243,将图片‑文本对中的文本输入文本特征编码器Query,得到文本特征;
[0102] S244,对所述图片特征和文本特征进行匹配,计算第三损失函数,并采用梯度下降法更新图片特征编码器Query和文本特征编码器Query的参数。
[0103] 可选地,所述第三损失函数为二分类的交叉损失熵,其数学表达式为,[0104]
[0105] 在一些实施例中,步骤S23和S24预训练过程中,还可以使用常用的LAMB(Layer‑wise Adaptive Moments optimizer for Batching training)优化器作为模型参数优化器,以在采用梯度下降法更新图片特征编码器和文本特征编码的参数时,更好地维持参数精度,从而提高模型效果。
[0106] 上述基于多模态预训练的相似图片检索方法的多模态预训练过程,第一阶段训练段对于图片编码器和文本编码器同时维持一个梯度更新的模型和动量更新的模型,通过固定图片特征编码器的Patch Projection层,在图文数据下同时进行单模态的对比学习和跨模态的对比学习,使得图片特征提取器具有更丰富的语义表征空间,从而提高检索鲁棒性;第二阶段训练,对于图片编码器和文本编码器只维持一个梯度更新的模型,在图文数据下进行跨模态对齐,进一步提高模型检索效果;在上述训练过程中,进一步采用了LAMB参数优化器,从而更好地提高了模型的效果。
[0107] 请参阅图3,图3为本申请实施例提供的一种基于多模态预训练的相似图片检索方法的基于FAISS的KNN算法召回相似图片的流程示意图,包括以下步骤:
[0108] S31,基于所述图片数据库中各图片特征,采用PCA降维算法进行降维。
[0109] 可选地,所述图片数据库中各图片特征均为高维数据,采用PCA降维可以是分别将各图片特征乘以一个转换矩阵,以得到一个低维空间中的向量,所述转换矩阵是与图片数据库密切相关的,可以通过数据训练得到,从而确保整个降维过程信息丢失最少。
[0110] S32,采用PQ压缩算法进行压缩、量化,为各向量赋予新的索引,得到索引数据库。
[0111] 可选地,PQ压缩算法是一种编码方法,可以理解为将原始的向量空间分解为n个低维向量空间的笛卡尔积,并对分解得到的低维向量空间分别做量化,具体包括以下步骤:
[0112] S321,将原始向量分解为n组。
[0113] 可选地,所述原始向量为所述图片数据库中各图片特征经过PCA降维得到的低维向量,n一定要能整除原始向量的维度,如原始向量是128维时,n必须是能整除128的数,比如n可以取4,但不能取6。
[0114] S322,分别对n组分量进行Clustering操作,得到n*k个聚类中心。
[0115] 可选地,k为每组聚类中心点数,所述聚类操作可以是K‑means聚类。
[0116] S323,分别对各原始向量的n组分量进行Assign操作,确定距离其最近的聚类簇,则各原始向量可表示为由n组分量对应簇心ID所组成的向量。
[0117] 在一些实施例中,当图片数据库过于庞大时,通过步骤S321‑S323的操作,可以大大减少存储资源的开销,并提高相似性检索的效率。
[0118] S33,基于所述待检索图片的特征,进行同样的PCA降维和PQ压缩操作,得到待检索图片的特征索引。
[0119] S34,采用IVF技术对所述索引数据库进行倒排序,得到第一排序表。
[0120] 可选地,直接对所有原始向量做K‑means聚类,得到K个粗聚类簇心;对于每一个查询向量,计算其与K个粗聚类簇心的距离,并根据距离进行倒排序,得到第一排序表。
[0121] S35,计算所述待检索的特征索引与所述第一排序表的前top个索引向量的距离,选择其中距离最近的图片数据,作为召回图片数据。
[0122] 可选地,通过倒排序的操作,让需要计算距离的向量个数少了几个数量级,从而进一步提高了向量检索的过程和速度。
[0123] 上述基于FAISS的KNN算法召回相似图片的方法,通过PCA降维和PQ压缩、IVF技术等构建全量IndexIVFPQ索引,相比于传统的基于哈希的检索方法,FAISS专注于压缩原始向量,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的检索,可以做到在低内存消耗的条件下快速精确地进行分布式大规模稠密向量检索。
[0124] 请参阅图4,图4为本申请实施例提供的一种基于多模态预训练的相似图片检索装置的结构示意图,该模型训练装置400包括:
[0125] 模型构建模块410,用于获取图片及其对应的文本信息,构建图片‑文本对作为训练数据集;
[0126] 数据获取模块420,用于构建多模态预训练模型,所述模型采用双塔模式,包括图片侧和文本侧,所述图片侧利用图片特征编码器提取图片特征,所述文本侧利用文本特征编码器提取文本特征;
[0127] 模型训练模块430,用于基于所述训练数据集进行多模态预训练得到图片特征编码器与文本编码器;所述模型训练模块包括第一训练模块和第二训练模块,所述第一训练模块用于基于梯度更新的Query模型和基于动量更新的Key模型对所述图片特征编码器和所述文本编码器进行预训练,所述第二训练模块用于基于梯度更新的Query模型对所述图片特征编码器和所述文本编码器进行预训练;其中,所述图片特征编码器的Patch Projection层在所述第一训练模块中被固定;
[0128] 特征抽取模块440,用于基于所述训练后的图片特征编码器,分别对待检索图片和图片数据库中的图片进行预处理以及特征抽取,得到待检索图片的特征和图片数据库中各图片特征;
[0129] 召回模块450,用于基于所述待检索图片的特征和图片数据库中各图片特征,采用基于FAISS的KNN算法,召回具有与所述待检索图片的特征相似的图片数据,作为召回图片数据;
[0130] 排序模块460,用于对所述召回图片数据进行排序,将最近邻的数据返回,作为所述待检索图片的检索结果。
[0131] 上述基于多模态预训练的相似图片检索装置的详细描述,请参见上述实施例中相关方法步骤的描述。
[0132] 请参阅图5,图5为本申请实施例提供的一种电子设备的结构示意图,该电子设备500包括:存储器510和处理器520,存储器510和处理器520通过总线530连接,存储器510存储有计算机程序,处理器520读取并运行所述计算机程序时,以使电子设备500可执行上述的实施例中方法的全部或部分流程,以实现基于多模态预训练模型的相似图片检索。
[0133] 应当理解是,该电子设备可以是个人电脑(Personal Computer,PC)、平板电脑、智能手机等具有逻辑计算功能的电子设备。
[0134] 本申请实施例还提供了一种可读存储介质,所述可读取存储介质中存储有计算机程序,所述计算机程序被处理器读取并运行时,执行基于多模态预训练的相似图片检索方法中的步骤。
[0135] 以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。