本申请涉及检索领域,具体涉及一种深度跨模态哈希检索方法及装置。
背景技术:
近年来,随着互联网的快速发展,多媒体数据(例如图片、文本、视频、音频等)呈现出爆炸式的增长。跨模态检索技术旨在根据已有的数据检索与之相匹配的不同模态的数据,例如我们可以通过文本信息在数据库中查找符合文字描述的图片信息。并且由于哈希码具有存储代价小,检索速度快等诸多优势,所以哈希方法也被广泛应用在跨模态检索任务中。
现有技术中,对于各类信息,例如文本信息、图像信息等,信息中的背景、冗余信息和值得关注的信息,在训练生成哈希检索模型时处于相同的地位,这不仅使得训练哈希检索模型的效率不高,而且会导致最终生成的哈希码质量较低,影响最终的检索准确度。在判断两个不同模态的信息是否匹配、相似时,往往认为两个不同模态的信息中只要包含一个相同的标签就断定两者是匹配关系。但是在实际生活中,一个图片、文本可能包含非常丰富的内容,往往是存在多个标签,使得该判定方式就相对不合适。例如我们在检索文本“黑人洗碗”对应的图片时,一般的检索模型所检测出来的图片很大一部分只存在黑人或者是一个人在洗碗,有相当的信息丢失。
技术实现要素:
为了解决上述问题,本申请提出了一种深度跨模态哈希检索方法,包括:获取通过多个训练样本以及相似度矩阵预先生成的,包含注意力机制的哈希检索模型,其中,所述训练样本包括多种模态,所述相似度矩阵根据不同的所述训练样本所包含的标签确定;通过所述哈希检索模型生成并存储,不同模态的各检索信息对应的哈希码;在接收包含有待检索目标的检索请求时,通过所述哈希检索模型输出所述待检索目标的哈希码;根据所述检索目标的哈希码,在存储的包含与所述检索目标不同模态的多个所述检索信息中,确定检索结果。
在一个示例中,所述相似度矩阵的生成方法包括:在所述多个训练样本中,确定不同模态的第一样本和第二样本;确定所述第一样本和所述第二样本所拥有的标签的总数量,以及所述第一样本和所述第二样本所拥有的相同标签的数量;根据所述相同标签的数量,以及所述总数量,确定所述第一样本与所述第二样本之间的相似程度,其中,所述相似程度至少包括完全不同、完全相同、部分相同;根据所述相似程度,生成相似度矩阵。
在一个示例中,设所述第一样本为i,所述第二样本为j;则
在一个示例中,训练生成所述哈希检索模型时,所述方法还包括:通过不包含全连接层、且包含平均池化层的卷积神经网络提取模态为图片的训练样本的第一图像特征,并通过词袋提取模态为文本的训练样本的第一文本特征,其中,所述卷积神经网络的输出维度为训练样本集的标签的类别数。
在一个示例中,训练生成所述哈希检索模型时,所述方法还包括:通过所述卷积神经网络对图片进行分类,并将最后一层的卷积层作为注意力图;将所述注意力图中激活值最高的区域作为注意力区域。
在一个示例中,训练生成所述哈希检索模型时,所述方法还包括:根据所述第一图像特征与所述注意力图得到中间结果,并将所述中间结果输入全连接层后得到第二图像特征;将所述第一文本特征输入全连接层后得到第二文本特征;通过损失函数以及所述注意力区域训练生成包含注意力机制的哈希检索模型,其中,所述损失函数与所述第二图像特征、所述第二文本特征相关。
在一个示例中,设所述损失函数为l,则
在一个示例中,根据所述检索目标的哈希码,在存储的包含与所述检索目标不同模态的多个所述检索信息中,确定检索结果,包括:在存储的包含与所述检索目标不同模态的多个所述检索信息中,按照所述检索信息的哈希码与所述检索目标的哈希码之间的接近程度,从高到低的选取若干个检索信息作为检索结果。
在一个示例中,所述接近程度通过海明距离确定。
另一方面,本申请还提出了一种深度跨模态哈希检索装置,包括:获取模块,获取通过多个训练样本以及相似度矩阵预先生成的,包含注意力机制的哈希检索模型,其中,所述训练样本包括多种模态,所述相似度矩阵根据不同的所述训练样本所包含的标签确定;生成模块,通过所述哈希检索模型生成并存储,不同模态的各检索信息对应的哈希码;输出模块,在接收包含有待检索目标的检索请求时,通过所述哈希检索模型输出所述待检索目标的哈希码;处理模块,根据所述检索目标的哈希码,在存储的包含与所述检索目标不同模态的多个所述检索信息中,确定检索结果。
通过本申请提出哈希检索方法能够带来如下有益效果:
通过包含有注意力机制的哈希检索模型,可以使得在哈希检索模型生成哈希码时,能够在接收到输入的信息时,有效区分冗余信息和值得关注的信息,并能够重点关注值得关注部分的信息,提高了生成的哈希码的质量,也提高了最终检索的精确度,提升了用户体验。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中深度跨模态哈希检索方法的流程示意图;
图2为本申请实施例中深度跨模态哈希检索装置的模块示意图;
图3为本申请实施例中训练哈希检索模型的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
如图1所示,本申请实施例提供一种深度跨模态哈希检索方法,包括:
s101、获取通过多个训练样本以及相似度矩阵预先生成的,包含注意力机制的哈希检索模型,其中,所述训练样本包括多种模态,所述相似度矩阵根据不同的所述训练样本所包含的标签确定。
首先采集多个训练样本,用于对哈希检索模型的训练。在采集时,需要采集多个模态的训练样本。通常情况下,用户使用检索工具进行检索时,最多使用的功能为通过文本来寻找相应的图片,或者对图片进行识图以获取相应的文本信息。因此,在此以图像模态和文本模态为例进行解释说明。其中,此处的图片包括静态图片和动态图片,当图片为动态图片时,可以将其当做多个静态图片的合集。当然,训练样本的模态还可以包括视频、音频等,在此不再赘述。
在采集到了多个训练样本后,可以通过这多个训练样本之间的相似程度来生成相似度矩阵。其中,相似程度是根据训练样本所包含的标签确定的,相似程度至少包括完全不同、部分相同以及完全相同这三个级别。
具体地,每个训练样本都拥有自己的标签,标签的数量可以是一个,也可以是多个。针对文本信息,其所包含的标签可以只包括该本身信息本身的含义,也可以包括其上位概念、下位概念或者其对应的一些属性。例如,针对“铁”这一个文本信息,可以包括代表自身含义的标签:铁,也可以包含上位概念的标签:金属,还可以包含在常温时的属性的标签:固体,还可以包含代表词性的标签:名词等。针对图片信息,其所包含的标签可以包含该图片所包含的内容对应的标签,或者该图片所对应的属性的标签。例如,一张包含有太阳的图片,可以包含标签:太阳,也可以包含标签:星球,还可以包含与该图片的尺寸、清晰度、颜色等对应的标签,在此不再赘述。
在为各训练样本设置完标签后,可以根据各训练样本的标签,来确定其之间的相似程度。通常情况下,由于本申请针对的是跨模态搜索,因此在确定训练样本时,可以只确定不同模态的训练样本之间的相似程度。而现有技术中,在判断两个不同模态的信息的相似程度时,往往认为两个不同模态的信息中只要包含一个相同的标签就断定两者是完全相同,这很容易与实际结果有较大的出入。因此,可以将相似程度设置为至少包含:完全不同、完全相同以及部分相同这三个级别。而在部分相同这个级别中,也可以继续的划分若干个级别,每个级别所对应的相似程度也都不同。
具体地,以两个不同模态的第一样本和第二样本进行举例说明。可以首先确定这两个样本所拥有的标签的总数量,以及相同标签的数量。然后通过相同标签的数量与总数量的比值来确定相似程度。当比值越高时,代表着第一样本和第二样本之间相同的标签占所有标签的比例越高,也就说明第一样本和第二样本相似程度越高。
进一步地,可以设第一样本为i,第二样本为j,则
其中,sij为第一样本与第二样本之间的相似程度,|ci|和|cj|分别为第一样本i和第二样本j所拥有的标签的数量,d(i,j)为第一样本i和第二样本j所拥有的相同标签的数量。由公式易得,0≤sij≤1,当sij=0时,相似程度为完全不同,当sij=1时,相似程度为完全相同,当0<sij<1时,相似程度为部分相同,且随着sij的增加,相似程度越高。
在得到相似度矩阵后,即可在相似度矩阵的监督下,训练生成哈希检索模型。但是,对于模态为图片的训练样本,只通过相似度矩阵训练生成哈希检索模型,图片中的背景、冗余信息,会和值得重点关注区域的信息在哈希学习过程中居于同样的地位,导致图片中的信息不能充分利用,因此在此可以引入注意力机制(attentionmechanism)。注意力机制近年来在计算机视觉领域得到广泛应用,在图像识别上能够自发寻找图片中需要重点关注的部分。
具体地,在训练哈希检索模型时,对于不同模态的训练样本,需要用不同的方式提取其特征。对于图片,如图3所示,可以通过去掉全连接层的卷积神经网络,例如resnet-50,来提取图片的图像特征,为方便描述,在此称作第一图像特征。对于文本,可以通过词袋(bagofwordsmodel,bow)来提取其文本特征,为方便描述,在此称作第一文本特征。其中,词袋指的是,对于一个文本,忽略其词序和语法、句法,将其仅仅看做是多个词的集合,文本中每个词的出现都是独立的,不依赖于其他词是否出现。
在训练生成哈希检索模型时,可以通过卷积神经网络,例如resnet-50,对图片进行分类。在将卷积神经网络去掉全连接层,并加入平均池化层后,使其输出维度为训练样本集的所有标签的类别数。然后将最后一层的卷积层作为注意力图,在该注意力图中,将激活值最高的区域作为注意力区域。
由于卷积神经网络中不包含全连接层,在获取了第一图像特征和第一文本特征后,可以如图3所示,通过将第一图像特征与注意力图得到中间结果,然后将中间结果输入至哈希检索模型的全连接层,得到整体图片的图像特征,在此称作第二图像特征。还可以将第一文本特征输入至全连接层后,得到整体文本的文本特征,在此称作第二文本特征。其中,在生成中间结果时,可以将第一图像特征与注意力图进行矩阵点乘来得到中间结果。然后可以通过损失函数以及注意力区域训练生成包含注意力机制的哈希检索模型。当然,该损失函数与第二图像特征和第二文本特征相关。
具体地,可以设所述损失函数为l,则
s102、通过所述哈希检索模型生成并存储,不同模态的各检索信息对应的哈希码。
在训练完毕哈希检索模型后,可以通过哈希检索模型生成各检索信息对应的哈希码。其中,由于各检索信息的模态不同,而用户在检索时想要执行的是跨模态检索,因此可以将各模态的检索信息存储在一个数据库中,也可以存储在不同的数据库中,以便于后续的查询。
s103、在接收包含有待检索目标的检索请求时,通过所述哈希检索模型输出所述待检索目标的哈希码。
s104、根据所述检索目标的哈希码,在存储的包含与所述检索目标不同模态的多个所述检索信息中,确定检索结果。
在接收到检索请求后,可以根据哈希检索算发来确定检索请求中待检索目标的哈希码,在存储的多个与检索目标不同模态的检索信息中,确定检索结果,并输出给用户。其中,确定检索结果时,可以按照哈希码之间的接近程度,由高到低的选取若干个检索信息作为检索结果。并在向用户输出时,按照哈希码的接近程度,从高至低依次展示给用户,可以使得最符合的检索信息是排在检索结果的最前面,提高用户体验。在输出检索结果时,输出的个数可以根据需要进行设置,在此不再赘述。
其中,在确定哈希码的接近程度时,可以通过确定哈希码之间的海明距离来确定。在信息编码中,两个合法代码对应位上编码不同的位数称为海明距离。当海明距离越短时,说明两个哈希码之间不同的位数越少,也就说明两个哈希码越接近,同时也代表着两个信息之间的相似程度越高。
如图2所示,本申请实施例还提供了一种深度跨模态哈希检索装置,包括:
获取模块201,获取通过多个训练样本以及相似度矩阵预先生成的,包含注意力机制的哈希检索模型,其中,所述训练样本包括多种模态,所述相似度矩阵根据不同的所述训练样本所包含的标签确定;
生成模块202,通过所述哈希检索模型生成并存储,不同模态的各检索信息对应的哈希码;
输出模块203,在接收包含有待检索目标的检索请求时,通过所述哈希检索模型输出所述待检索目标的哈希码;
处理模块204,根据所述检索目标的哈希码,在存储的包含与所述检索目标不同模态的多个所述检索信息中,确定检索结果。
以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。