CN114417251A - 一种基于哈希码的检索方法、装置、设备及存储介质 - Google Patents
一种基于哈希码的检索方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114417251A CN114417251A CN202210088542.3A CN202210088542A CN114417251A CN 114417251 A CN114417251 A CN 114417251A CN 202210088542 A CN202210088542 A CN 202210088542A CN 114417251 A CN114417251 A CN 114417251A
- Authority
- CN
- China
- Prior art keywords
- matrix
- target
- original
- score
- hash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Databases & Information Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Algebra (AREA)
- Evolutionary Biology (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种基于哈希码的检索方法、装置、设备及存储介质,相关实施例可应用于云技术、人工智能、智慧交通等各种场景,用于提高哈希码量化信息间的余弦相似度的准确性。本申请实施例方法包括:获取待处理信息所对应的第一特征向量,采用目标投影矩阵与目标旋转矩阵,对第一特征向量进行计算,得到第一分值向量,针对于第一分值向量中的每个分值元素,将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到分值元素所对应的编码值,其中,每个分值元素所对应的编码值为0或1,根据第一分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码,根据第一目标哈希码确定第一目标检索信息。
Description
技术领域
本申请实施例涉及人工智能技术领域,尤其涉及一种基于哈希码的检索方法、装置、设备及存储介质。
背景技术
随着互联网的高速发展,图像、文本、视频等多媒体数据急剧增长,大规模数据检索成为了一个研究热点。然而,随着网络和数字设备的普及,管理拥有数百万的图像的数据库变得非常普遍,在面对海量数据的情况下,最近邻搜索(ANN)相比精确检索具备更广的应用优势,从而成为信息检索中的一项关键技术。在过去很多ANN方法的文献中,哈希技术由于其低廉的存储成本和高效的查询效率,受到了越来越多的关注。
哈希算法主要通过在汉明空间中保持原始向量的相似度来学习哈希码,常见的相似度量包括欧氏距离和余弦距离。但欧氏距离在高维向量下会出现值域范围过大的缺点,在此情况下余弦距离不仅能体现方向上的相对差异,且其值域稳定具有更好的适用性。故随着深度学习的普及,高维向量已是一种普遍的表示,因此如何充分挖掘数据间的余弦相似度信息具有重要的研究意义。
但是由于二进制哈希码是离散值,无法直接使用梯度下降算法对深度神经网络进行训练和优化,大多数方法首先学习一个实值公共空间,然后量化实值表示为简单的离散哈希码,量化过程往往导致量化损失大,直接用于计算余弦相似度会导致余弦相似度准确性降低,从而导致检索性能低。
发明内容
本申请实施例提供了一种基于哈希码的检索方法、装置、设备及存储介质,用于对每个分值元素进行编码,使得编译得到的第一目标哈希码能够很好地分布在0到1之间且量化误差较小,从而可以在汉明空间中基于第一目标哈希码的余弦相似度能够更准确地反映分布在0到1之间的信息之间的余弦相似度,提高检索性能。
本申请实施例一方面提供了一种基于哈希码的检索方法,包括:
获取待处理信息所对应的第一特征向量;
采用目标投影矩阵与目标旋转矩阵,对第一特征向量进行计算,得到第一分值向量,其中,目标投影矩阵与目标旋转矩阵为训练得到的结果;
针对于第一分值向量中的每个分值元素,将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到分值元素所对应的编码值,其中,每个分值元素所对应的编码值为0或1;
根据第一分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码;
根据第一目标哈希码确定第一目标检索信息。
本申请另一方面提供了一种基于哈希码的检索装置,包括:
获取单元,用于获取待处理信息所对应的第一特征向量;
处理单元,用于采用目标投影矩阵与目标旋转矩阵,对第一特征向量进行计算,得到第一分值向量,其中,目标投影矩阵与目标旋转矩阵为训练得到的结果;
处理单元,还用于针对于第一分值向量中的每个分值元素,将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到分值元素所对应的编码值,其中,每个分值元素所对应的编码值为0或1;
处理单元,还用于根据第一分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码;
处理单元,还用于根据第一目标哈希码确定第一目标检索信息。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
处理单元,还用于若待处理信息对应有第二特征向量,则采用目标投影矩阵与目标旋转矩阵,对第二特征向量进行计算,得到第二分值向量;
处理单元,还用于针对于第二分值向量中的每个分值元素,执行将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到分值元素所对应的编码值;
处理单元具体可以用于:根据第一分值向量中每个分值元素的编码值以及第二分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,获取单元具体可以用于:
对待处理信息进行特征提取,得到待处理信息对应的基础特征向量;
对基础特征向量进行正则化处理,得到第一特征向量。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
处理单元,还用于计算待处理信息所对应的第一目标哈希码与检索库中的各个哈希码之间的第一相似度;
确定单元,用于根据第一相似度,从检索库中的各个哈希码中确定第一目标哈希码的第一相似哈希码;
处理单元,还用于将第一相似哈希码对应的信息作为第一目标检索信息。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
处理单元,还用于采用目标哈希矩阵以及目标权重计算目标权重矩阵,其中,目标哈希矩阵以及目标权重为训练得到的结果;
处理单元,还用于根据第一特征向量与目标权重矩阵计算得到待处理信息所对应的第二目标哈希码。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
处理单元,还用于计算待处理信息所对应的第二目标哈希码与检索库中的各个哈希码之间的第二相似度;
确定单元,还用于根据第二相似度,从检索库中的各个哈希码中确定第二目标哈希码的第二相似哈希码;
处理单元,还用于将第二相似哈希码对应的信息作为第二目标检索信息。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
获取单元,还用于获取样本信息所对应的样本特征向量;
处理单元,还用于采用原始投影矩阵、原始旋转矩阵以及原始哈希矩阵,对样本特征向量进行损失计算,得到第一损失函数,其中,原始旋转矩阵为随机赋值的正交矩阵,原始投影矩阵为基于样本特征向量对应的对角矩阵提取得到的,原始哈希矩阵为随机赋值得到的;
处理单元,还用于根据第一损失函数对原始投影矩阵、原始旋转矩阵以及原始哈希矩阵进行更新,以获取目标投影矩阵、目标旋转矩阵以及目标哈希矩阵。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
根据第一损失函数,采用原始投影矩阵、原始旋转矩阵,对原始哈希矩阵进行更新,以获取目标哈希矩阵;
根据第一损失函数,采用原始哈希矩阵,对原始旋转矩阵以及原始投影矩阵进行更新,以获取目标投影矩阵以及目标旋转矩阵。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
采用原始投影矩阵与原始旋转矩阵,对样本特征向量进行计算,得到样本分值向量;
针对于样本分值向量中的每个分值元素,将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到样本分值向量中的每个分值元素所对应的编码值;
根据样本分值向量中的每个分值元素的编码值,生成样本信息所对应的样本哈希码;
根据样本哈希码更新原始哈希矩阵,以获取目标哈希码矩阵。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
采用原始哈希矩阵,对第一损失函数进行矩阵分解处理,得到分解投影矩阵和分解旋转矩阵;
根据分解投影矩阵和分解旋转矩阵分别对原始旋转矩阵以及原始投影矩阵进行更新,以获取目标投影矩阵以及目标旋转矩阵。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
处理单元,还用于采用目标哈希矩阵、原始权重以及原始权重矩阵,对样本特征向量进行损失计算,得到第二损失函数,其中,原始权重为随机赋值得到的;
处理单元,还用于根据第二损失函数对原始权重矩阵以及原始权重进行更新,以获取目标权重矩阵以及目标权重。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
处理单元,还用于计算样本特征向量与样本特征向量的转置的乘积;
处理单元,还用于对样本特征向量与样本特征向量的转置的乘积进行特征分解,以获取样本特征向量对应的对角矩阵;
处理单元,还用于根据原始旋转矩阵对对角矩阵进行特征提取,以获取原始投影矩阵。
本申请另一方面提供了一种计算机设备,包括:存储器、收发器、处理器以及总线系统;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序时实现如上述各方面的方法;
总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
通过获取待处理信息所对应的第一特征向量,采用目标投影矩阵与目标旋转矩阵,对第一特征向量进行计算,得到第一分值向量,并针对于第一分值向量中的每个分值元素,将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到分值元素所对应的0或1的编码值,然后,可以根据第一分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码,并根据第一目标哈希码确定第一目标检索信息。通过上述方式,能够通过将待处理信息转化为第一分值向量来对每个分值元素进行编码,以得到分值元素所对应的0或1的编码值,使得编译得到的第一目标哈希码能够很好地分布在0到1之间且量化误差较小,从而可以在汉明空间中基于目标哈希码的余弦相似度能够更准确地反映分布在0到1之间的信息之间的余弦相似度,提高检索性能。
附图说明
图1是本申请实施例中数据对象控制系统的一个架构示意图;
图2是本申请实施例中基于哈希码的检索方法的一个实施例流程图;
图3是本申请实施例中基于哈希码的检索方法的另一个实施例流程图;
图4是本申请实施例中基于哈希码的检索方法的另一个实施例流程图;
图5是本申请实施例中基于哈希码的检索方法的另一个实施例流程图;
图6是本申请实施例中基于哈希码的检索方法的另一个实施例流程图;
图7是本申请实施例中基于哈希码的检索方法的另一个实施例流程图;
图8是本申请实施例中基于哈希码的检索方法的另一个实施例流程图;
图9是本申请实施例中基于哈希码的检索方法的另一个实施例流程图;
图10是本申请实施例中基于哈希码的检索方法的另一个实施例流程图;
图11是本申请实施例中基于哈希码的检索方法的一个余弦相似度的分布示意图;
图12是本申请实施例中基于哈希码的检索方法的一个获取余弦相似度的示意图;
图13是本申请实施例中基于哈希码的检索装置的一个实施例示意图;
图14是本申请实施例中计算机设备的一个实施例示意图。
具体实施方式
本申请实施例提供了一种基于哈希码的检索方法、装置、设备及存储介质,用于对每个分值元素进行编码,使得编译得到的第一目标哈希码能够很好地分布在0到1之间且量化误差较小,从而可以在汉明空间中基于第一目标哈希码的余弦相似度能够更准确地反映分布在0到1之间的信息之间的余弦相似度,提高检索性能。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
而随着信息的飞速发展,人工智能(artificial intelligence,AI)逐渐走入人们生活的方方面面。人工智能在文本翻译、智能问答以及情感分析等方面,都具有广泛的实践意义。人工智能的出现,也极大地方便了人们的生活。首先,对人工智能进行简单的说明。人工智能是利用数学计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能是一门综合学科,涉及的领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能的基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统和机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。在机器学习/深度学习技术中常与云技术结合使用。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
其中,云安全(Cloud Security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。本申请实施例提供的基于哈希码的检索方法就可以通过云计算技术以及云安全技术来实现。
应理解,本申请提供的基于哈希码的检索方法可以应用于云技术、人工智能、智慧交通等领域,用于通过量化哈希码完成图像、文本或视频检索等场景。作为示例,例如通过计算并比较待查询图像的哈希码与数据库中所有图像的哈希码之间的汉明距离,快速而准确地检索到与待查询图像相似的图像集合。作为另一个示例,例如通过计算并比较待查询文本的哈希码与数据库中所有文本的哈希码之间的汉明距离,快速而准确地检索到与待查询文本相似的文本集合。作为再一示例,例如通过计算并比较待查询视频的哈希码与数据库中所有视频的哈希码之间的汉明距离,快速而准确地检索到与待查询视频相似的视频集合。在上述种种场景中,为了获取哈希码,通常是通过学习一个实值公共空间,然后量化实值表示为简单的离散哈希码,量化过程往往导致量化损失大,直接用于计算余弦相似度会导致余弦相似度准确性降低,从而导致检索性能低。
为了解决上述问题,本申请提出了一种基于哈希码的检索方法,该方法应用于图1所示的数据对象控制系统,请参阅图1,图1为本申请实施例中数据对象控制系统的一个架构示意图,如图1所示,服务器通过获取终端设备提供的待处理信息所对应的第一特征向量,采用目标投影矩阵与目标旋转矩阵,对第一特征向量进行计算,得到第一分值向量,并针对于第一分值向量中的每个分值元素,将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到分值元素所对应的0或1的编码值,然后,可以根据第一分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码。通过上述方式,能够通过将待处理信息转化为第一分值向量来对每个分值元素进行编码,以得到分值元素所对应的0或1的编码值,使得编译得到的目标哈希码很好地分布在0到1之间且量化误差较小,从而可以在汉明空间中基于目标哈希码的余弦相似度能够更准确地反映分布在0到1之间的信息之间的余弦相似度,提高检索性能。
可以理解的是,图1中仅示出了一种终端设备,在实际场景中可以由更多种类的终端设备参与到数据处理的过程中,终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等,具体数量和种类因实际场景而定,具体此处不做限定。另外,图1中示出了一个服务器,但在实际场景中,也可以有多个服务器的参与,特别是在多模型训练交互的场景中,服务器的数量因实际场景而定,具体此处不做限定。
需要注意的是,本实施例中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdelivery network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,终端设备以及服务器可以连接组成区块链网络,本申请在此不做限制。
为了解决上述问题,本申请提出了一种基于哈希码的检索方法,该方法一般由服务器或终端设备执行,相应地,应用于基于哈希码的检索装置一般设置于服务器或终端设备中。
下面将对本申请中基于哈希码的检索方法进行介绍,请参阅图2,本申请实施例中基于哈希码的检索方法一个实施例包括:
在步骤S101中,获取待处理信息所对应的第一特征向量;
在本实施例中,当需要对待处理信息进行检索或特征量化时,可以先通过终端设备将待处理信息发送至服务器进行特征处理,以获取待处理信息所对应的第一特征向量。
其中,待处理信息具体可以表现为文本信息如一篇短文、一个句子或一段评论等,或者可以表现为图像信息如广告图像、视频中截取的一帧图像或者产品图像等,还可以是其他形式的表现,如视频信息等,此处不作具体限制。第一特征向量具体可以表现为待处理信息的嵌入向量或是一定维度的行向量或列向量等,或是其他向量表示,此处不作具体限制。
具体地,当需要对待处理信息进行检索或特征量化时,可以先通过终端设备将待处理信息发送至服务器进行特征处理,或者可以在终端设备上对待处理信息进行特征提取,此处不作具体限制,其中,进行特征提取具体可以是通过对深度神经网络对待处理信息进行特征提取第一特征向量,也可以是通过BERT模型对待处理信息进行特征处理以获取第一特征向量,还可以是通过其他处理方式获取第一特征向量,此处不作具体限制。
可以理解的是,对待处理信息进行特征处理,不仅可以获取第一特征向量,还可以是获取到待处理信息所对应的特征矩阵,该特征矩阵具体可以包括除第一特征向量以外的其他多个特征向量,其他多个特征向量具体可以是通过第二特征向量进行表示。
在步骤S102中,采用目标投影矩阵与目标旋转矩阵,对第一特征向量进行计算,得到第一分值向量,其中,目标投影矩阵与目标旋转矩阵为训练得到的结果;
在本实施例中,在获取到待处理信息的第一特征向量之后,可以采用预先训练好的目标投影矩阵与目标旋转矩阵,对第一特征向量进行计算,以获取第一分值向量。
其中,目标投影矩阵用于将高维向量即第一特征向量投影到均方误差最小的子空间中。目标旋转矩阵用于对第一特征向量以及目标投影矩阵的整体进行旋转来降低量化误差。
具体地,为了让离散的哈希码能够学习到[0,+1]的余弦相似度,本实施例采用了如下(1)式的目标函数:
进一步地,由于(1)式中的变量B是离散的,因此为了便于求解,本实施例通过将(1)式转化为如下(2)式的目标函数:
其中,Y是一个连续的中间变量,通过特征分解,Y具体可以表示为Y=(X∧rR),其中,∧r即目标投影矩阵,R即目标旋转矩阵。
进一步地,在获取到待处理信息的第一特征向量之后,根据Y=(X∧rR),可以采用目标投影矩阵与目标旋转矩阵,对第一特征向量进行计算,可以得到第一分值向量,例如,假设第一特征向量为X=[x1,x2,...,xn],采用目标投影矩阵与目标旋转矩阵对该第一特征向量进行计算,可以得到对应的第一分值向量Y=[y1,y2,...,yn]。
在步骤S103中,针对于第一分值向量中的每个分值元素,将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到分值元素所对应的编码值,其中,每个分值元素所对应的编码值为0或1;
在本实施例中,通过考虑为了避免范数值域带来的影响,本实施例可以将X∧r视作整体,因此,可以将(2)式中的转化为表示Y和的内积,进而,在获取到第一分值向量之后,可以根据转化为可以理解为是对第一分值向量Y=[y1,y2,...,yn]中的每个分值元素对应的编码值bi进行求解,可以将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以获取分值元素所对应的编码值。
具体地,在获取到第一分值向量之后,通过第一分值向量Y=[y1,y2,...,yn]可以根据求解每个分值元素对应的编码值bi,可以是通过假设b中+1数目为k,如果b中+1的位置必然对应yi的前k个最大值,则可以使得该项最大化,故可以采用 得到每个分值元素对应的编码值bi,即将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,具体可以是将y1至yn依次进行前k个最大值比较,可以将前k个最大值的分值元素对应的编码值bi确定为+1,其他的分值元素对应的编码值bi确定为0。
例如,假设有一个第一分值向量Y=[y1,y2,...,yn]为Y=[1,0,2,4,3],根据各位置上的分值元素当仅当为前k个最大值时该分值元素对应的编码值bi确定为+1,否则为0,可以得到分值元素所对应的编码值分别为b1=1,b2=0,b3=1,b4=1,b5=0。
在步骤S104中,根据第一分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码。
在步骤S105中,根据第一目标哈希码确定第一目标检索信息。
在本实施例中,在获取到第一分值向量中的每个分值元素所对应的编码值之后,可以根据第一分值向量中每个分值元素的编码值来获取待处理信息所对应的第一目标哈希码,然后,可以根据第一目标哈希码从检索库中召回与该第一目标哈希码相对应的第一目标检索信息,以使后续可以根据待处理信息的第一目标哈希码与数据库中所有文本的哈希码之间的汉明距离,从而可以基于目标哈希码的余弦相似度快速而准确地召回与待处理信息相似的第一目标检索信息检索信息,以获取消息集合。
具体地,在获取到第一分值向量中每个分值元素的编码值后,可以将每个分值元素的编码值进行组合,从而可以得到待处理信息所对应的第一目标哈希码,例如,分值元素所对应的编码值分别为b1=1,b2=0,b3=1,b4=1,b5=0,将获取到的这些分值元素所对应的编码值按照元素所在位置进行组合,可以得到待处理信息所对应的第一目标哈希码R如B=[1,0,1,1,0];
进一步地,由于第一目标哈希码能够很好地分布在0到1之间,可以在汉明空间中基于第一目标哈希码的余弦相似度能够更准确地反映分布在0到1之间的信息之间的余弦相似度,因此,在获取到待处理信息所对应的第一目标哈希码之后,可以计算第一目标哈希码与检索库中的每个信息对应的哈希码之间的余弦相似度,然后,可以将余弦相似度大于或等于预设相似阈值的信息确定为是与待处理信息相似的第一目标检索信息,进而可以基于若干个第一目标检索信息得到与待处理信息相似的消息集合。
在本申请实施例中,提供了一种停车位的检测方法,通过上述方式,能够通过将待处理信息转化为第一分值向量来对每个分值元素进行编码,以得到分值元素所对应的0或1的编码值,使得编译得到的第一目标哈希码能够很好地分布在0到1之间且量化误差较小,从而可以在汉明空间中基于目标哈希码的余弦相似度能够更准确地反映分布在0到1之间的信息之间的余弦相似度,提高检索性能。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于哈希码的检索方法另一个可选实施例中,如图3所示,根据第一分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码之前,该方法还包括:步骤S201和步骤S202,以及步骤S104包括步骤S203;
在步骤S201中,若待处理信息对应有第二特征向量,则采用目标投影矩阵与目标旋转矩阵,对第二特征向量进行计算,得到第二分值向量;
在步骤S202中,针对于第二分值向量中的每个分值元素,执行将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到分值元素所对应的编码值;
在步骤S203中,根据第一分值向量中每个分值元素的编码值以及第二分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码。
在本实施例中,在对待处理信息进行特征处理之后,如果待处理信息对应有第二特征向量,则可以也采用目标投影矩阵与目标旋转矩阵,对第二特征向量进行计算以获取第二分值向量,进而针对于第二分值向量中的每个分值元素,可以执行将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以获取分值元素所对应的编码值,然后,可以根据第一分值向量中每个分值元素的编码值以及第二分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码,能够将待处理信息分解为第一分值向量和第二分值向量进行每个分值元素的编码,使得编译得到的第一目标哈希码能够更好更完整地分布在0到1之间,进一步减小量化误差。
具体地,在获取到待处理信息的第二特征向量之后,可以根据Y=(X∧rR),继续采用目标投影矩阵与目标旋转矩阵,对第二特征向量进行计算,可以得到第二分值向量,例如,假设第二特征向量为X2=[x21,x22,...,x2n],采用目标投影矩阵与目标旋转矩阵对该第二特征向量进行计算,可以得到对应的第二分值向量Y2=[y21,y22,...,y2n]。
进一步地,在获取到第二分值向量之后,也可以采用来获取每个分值元素对应的编码值bi,即将第二分值向量Y2=[y21,y22,...,y2n]中的分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,具体可以是将y21至y2n依次进行前k个最大值比较,若第k个分值元素为最大值,则第k个分值元素对应的编码值bi确定为+1,反之,若第k个分值元素不为最大值,则第k个分值元素对应的编码值bi确定为0。例如,假设有一个第一分值向量Y2=[y21,y22,...,y2n]为Y2=[0,1,3,2,0],可以得到分值元素所对应的编码值分别为b21=0,b22=1,b23=1,b24=0,b25=0。
进一步地,在获取到第二分值向量中每个分值元素的编码值之后,可以根据第一分值向量中每个分值元素的编码值以及第二分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码,具体可以是将根据第一分值向量中每个分值元素的编码值以及第二分值向量中每个分值元素的编码值进行组合或拼接处理,例如可以得到第一分值向量中每个分值元素的编码值以及第二分值向量中每个分值元素的编码值组合得到哈希码矩阵,即待处理信息所对应的第一目标哈希码。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于哈希码的检索方法另一个可选实施例中,如图3所示,获取待处理信息所对应的第一特征向量,包括:
在步骤S301中,对待处理信息进行特征提取,得到待处理信息对应的基础特征向量;
在步骤S302中,对基础特征向量进行正则化处理,得到第一特征向量。
在本实施例中,当需要对待处理信息进行检索或特征量化时,可以对待处理信息进行特征提取以获取待处理信息对应的基础特征向量,然后,由于在模型拟合的过程中需要让权值尽可能小来构造一个所有参数都比较小的模型,可以理解为对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响,但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,即模型的抗扰动能力强,因此,为了防止模型出现过拟合(overfitting)的现象,本实施例可以对基础特征向量进行正则化处理,以获取待处理信息所对应的第一特征向量。
具体地,当需要对待处理信息进行检索或特征量化时,对待处理信息进行特征提取,以获取待处理信息对应的基础特征向量,具体可以是对不同的信息对象采用不同的特征提取方式,例如当待处理信息为图像信息或视频信息时,可以采用SIFT技术或GIST技术等算法进行特征提取,还可以采用其他算法如GoogLenet、VGGnet或caffe等技术,此处不作具体限制,同理,当待处理信息为文本信息时,可以采用哈希、循环神经网络或word2vec等算法进行特征提取,还可以采用其他算法,此处不作具体限制。
进一步地,在获取到基础特征向量后,可以对基础特征向量进行正则化处理,具体可以是将基础特征向量进行L2正则化,以获取第一特征向量,其中,L2正则化是指权值向量w中各个元素的平方和然后再求平方根,通常表示为可以理解的是,为了模型出现过拟合现象还可以对基础特征向量进行L1正则化,或归一化处理,此处不作具体限制。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于哈希码的检索方法另一个可选实施例中,如图4所示,根据第一目标哈希码确定第一目标检索信息,包括:
在步骤S401中,计算待处理信息所对应的第一目标哈希码与检索库中的各个哈希码之间的第一相似度;
在步骤S402中,根据第一相似度,从检索库中的各个哈希码中确定第一目标哈希码的第一相似哈希码;
在步骤S403中,将第一相似哈希码对应的信息作为第一目标检索信息。
在本实施例中,在获取到待处理信息所对应的第一目标哈希码之后,可以计算待处理信息所对应的第一目标哈希码与检索库中的各个哈希码之间的第一相似度,进而根据第一相似度,可以从检索库中的各个哈希码中筛选出与第一目标哈希码相似或相同的第一相似哈希码,然后可以将第一相似哈希码对应的信息作为第一目标检索信息,以得到与待处理信息相似的第一信息集合,并可以推送至终端设备上以便于使用终端设备的目标对象能够及时获取与待处理信息相似程度高的第一信息集合。
具体地,由于两个信息之间的距离可通过汉明距离来近似,而汉明距离的计算可通过计算机的位异或操作(XOR)来支持,从而实现距离度量的加速,因此,在获取到待处理信息所对应的第一目标哈希码之后,如图12所示,可以在汉明空间中,查询与第一目标哈希码相似的哈希码,具体可以是通过计算第一目标哈希码与空间中的各个哈希码之间的余弦相似度即第一相似度,还可以是计算欧氏距离,此处不作具体限制。
进一步地,在获取到第一目标哈希码与空间中的各个哈希码之间余弦相似度即第一相似度,由于哈希码之间的相似程度与第一相似度为正相关,则可以将第一目标哈希码与检索库中的各个哈希码之间的第一相似度与相似阈值进行比较,并可以大于或等于相似阈值的第一相似度对应的哈希码确定为与第一目标哈希码高度相似或相同的第一相似哈希码,然后,可以第一相似哈希码对应的信息作为第一目标检索信息,进而可以将获取到的全部第一目标检索信息确定为是与待处理信息相似的第一信息集合。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的基于哈希码的检索方法另一个可选实施例中,如图5所示,获取待处理信息所对应的第一特征向量之后,该方法还包括:
在步骤S501中,采用目标哈希矩阵以及目标权重计算目标权重矩阵,其中,目标哈希矩阵以及目标权重为训练得到的结果;
在步骤S502中,根据第一特征向量与目标权重矩阵计算得到待处理信息所对应的第二目标哈希码。
在本实施例中,在获取到待处理信息所对应的第一特征向量之后,可以采用目标哈希矩阵以及目标权重计算目标权重矩阵,然后,根据第一特征向量与目标权重矩阵直接计算得到待处理信息所对应的第二目标哈希码,不需要对第一特征向量中的每一个特征元素进行迭代编码,可以直接通过目标权重矩阵来对第一特征向量进行编码,能够在很大程度上节约编码时间,从而可以在一定程度上提高编码效率。
可以理解的是,在训练得到目标哈希矩阵B以及目标权重λ之后,为了让离散的哈希码能够学习到[0,+1]的余弦相似度,本实施例可以将目标哈希矩阵B作为特征向量回归的目标,则可以将式(1)的目标函数转换为如下式(3)的目标函数:
其中,W为目标权重矩阵,进而可以基于(3)式的目标函数可直接得到如下式(4)的目标权重矩阵W的闭式解:
W=(XTX+λI)-1(XTB)∈Rd×r (4);
进一步地,基于(3)式和(4)式可以得到如下式(5)采用目标权重矩阵对特征向量xq进行编码以获取哈希码bq:
bq=sign(xqW) (5);
具体地,在获取到待处理信息所对应的第一特征向量之后,可以采用式(4)的计算方式,通过目标哈希矩阵以及目标权重计算目标权重矩阵,然后,根据式(5)的编码方式,将第一特征向量与目标权重矩阵代入式(5)中直接计算得到待处理信息所对应的第二目标哈希码。
可选地,在上述图5对应的实施例的基础上,本申请实施例提供的基于哈希码的检索方法另一个可选实施例中,如图6所示,根据第一特征向量与目标权重矩阵计算得到待处理信息所对应的第二目标哈希码之后,该方法还包括:
在步骤S601中,计算待处理信息所对应的第二目标哈希码与检索库中的各个哈希码之间的第二相似度;
在步骤S602中,根据第二相似度,从检索库中的各个哈希码中确定第二目标哈希码的第二相似哈希码;
在步骤S603中,将第二相似哈希码对应的信息作为第二目标检索信息。
在本实施例中,在获取到待处理信息所对应的第二目标哈希码之后,由于第一目标哈希码的编码方式与第二目标哈希码的编码方式不同,使得获取到的第二目标哈希码与第一目标哈希码可能是相同的也可以是不同的,为了保证检索信息的完整性,可以计算待处理信息所对应的第二目标哈希码与检索库中的各个哈希码之间的第二相似度,进而根据第二相似度,可以从检索库中的各个哈希码中筛选出与第二目标哈希码相似或相同的第二相似哈希码,然后可以将第二相似哈希码对应的信息作为第二目标检索信息,以获取到与待处理信息相似的第二信息集合,可以理解的是,第二信息集合与第一信息集合可以是相似或相同的,并可以向终端设备推送与待处理信息相似的第二信息集合,以便于使用终端设备的目标对象能够及时获取与待处理信息相似程度高的第二信息集合。
具体地,如图12所示,可以在汉明空间中,查询与第二目标哈希码相似的哈希码,具体可以是通过计算第二目标哈希码与空间中的各个哈希码之间的余弦相似度即第二相似度,还可以是计算欧氏距离,此处不作具体限制。
进一步地,在获取到第二目标哈希码与空间中的各个哈希码之间余弦相似度即第二相似度,由于哈希码之间的相似程度与第二相似度为正相关,则可以将第二目标哈希码与检索库中的各个哈希码之间的第二相似度与相似阈值进行比较,并可以大于或等于相似阈值的第二相似度对应的哈希码确定为与第二目标哈希码高度相似或相同的第二相似哈希码,然后,可以第二相似哈希码对应的信息作为第二目标检索信息,进而可以将获取到的全部第二目标检索信息确定为是与待处理信息相似的第二信息集合。
可选地,在上述图5对应的实施例的基础上,本申请实施例提供的基于哈希码的检索方法另一个可选实施例中,如图7所示,该方法还包括:
在步骤S701中,获取样本信息所对应的样本特征向量;
在步骤S702中,采用原始投影矩阵、原始旋转矩阵以及原始哈希矩阵,对样本特征向量进行损失计算,得到第一损失函数,其中,原始旋转矩阵为随机赋值的正交矩阵,原始投影矩阵为基于样本特征向量对应的对角矩阵提取得到的,原始哈希矩阵为随机赋值得到的;
在步骤S703中,根据第一损失函数对原始投影矩阵、原始旋转矩阵以及原始哈希矩阵进行更新,以获取目标投影矩阵、目标旋转矩阵以及目标哈希矩阵。
在本实施例中,在获取到样本信息所对应的样本特征向量后,采用原始投影矩阵、原始旋转矩阵以及原始哈希矩阵,对样本特征向量进行损失计算,以获取到第一损失函数,然后,可以采用第一损失函数对原始投影矩阵、原始旋转矩阵以及原始哈希矩阵进行更新,以获取目标投影矩阵、目标旋转矩阵以及目标哈希矩阵,从而让离散的哈希码能够学习到[0,+1]的余弦相似度。
具体地,由于哈希算法是给定一个d维的样本特征向量xi∈R1×d,通过一个映射f(x):xi→bi,将样本特征向量编码成r维的二值哈希码bi∈{+1,-1}1×r,其中r<<d。由于在实际应用场景中高维向量即便经过L2正则化,该高维向量对应的余弦相似度的分布通常是非均匀的(如图11所示余弦相似度基本位于[0,+1]),而理论上余弦相似度的分布应是在[-1,1],如果直接采用有正负值的{-1,1}的二值哈希码bi的余弦相似度是难以学习到高维向量的[0,+1]的余弦相似度的,容易出现导致较大的量化误差,因此,本实施例采用(1)式的目标函数来让离散的哈希码能够学习到[0,+1]的余弦相似度,并保持了样本之间的局部结构:
其中,X∈Rn×d是样本特征,其中n是样本数,d是特征维度,X样本特征经过L2正则化;其中,XXT中的元素用于表示第i个样本xi与第j个样本xj余弦相似度cos(xi,xj),能够考虑第i个样本xi与第j个样本xj之间关系,可以让离散的哈希码能够学习到样本之间的局部结构;的行向量表示L2正则化后的哈希码bi∈{0,+1}。
进一步地,由于(1)式中的变量B是离散的,可以将(1)式转化为如下(2)式的第一损失函数:
其中,Y是一个连续的中间变量,通过特征分解,Y具体可以表示为Y=(X∧rR),其中,∧r即目标投影矩阵,R即目标旋转矩阵。
进一步地,在获取到样本信息所对应的样本特征向量之后,可以根据Y=(X∧rR),可以采用原始投影矩阵∧r、原始旋转矩阵R以及原始哈希矩阵B,对样本特征向量进行损失计算,得到第一损失函数,具体可以是采用样本特征向量、原始投影矩阵∧r、原始旋转矩阵R来构造一个连续的中间变量Y,进而可以将构造得到的中间变量Y与原始哈希矩阵B代入式(2)中进行损失计算,以获取第一损失函数。
进一步地,在得到第一损失函数后,可以将中间变量Y中的X∧r视作整体,因此,可以将(2)式中的转化为表示Y和的内积,其中,由于样本特征向量X和原始投影矩阵为已知变量,因此,本实施例可以采用交替优化的方法来迭代求解目标旋转矩阵R以及目标哈希矩阵B,然后可以根据投影矩阵与旋转矩阵之间的映射关系,基于目标旋转矩阵R获取目标投影矩阵∧r。
可选地,在上述图7对应的实施例的基础上,本申请实施例提供的基于哈希码的检索方法另一个可选实施例中,如图8所示,根据第一损失函数对原始投影矩阵、原始旋转矩阵以及原始哈希矩阵进行更新,以获取目标投影矩阵、目标旋转矩阵以及目标哈希矩阵,包括:
在步骤S801中,根据第一损失函数,采用原始投影矩阵、原始旋转矩阵,对原始哈希矩阵进行更新,以获取目标哈希矩阵;
在步骤S802中,根据第一损失函数,采用原始哈希矩阵,对原始旋转矩阵以及原始投影矩阵进行更新,以获取目标投影矩阵以及目标旋转矩阵。
在本实施例中,可以由于样本特征向量X和原始投影矩阵为已知变量,本实施例可以采用交替优化的方法来迭代求解,能够更好地获取到目标旋转矩阵R以及目标哈希矩阵B,因此,可以根据第一损失函数,采用原始投影矩阵、原始旋转矩阵对原始哈希矩阵进行更新,以获取目标哈希矩阵,同理,可以根据第一损失函数,采用原始哈希矩阵对原始旋转矩阵以及原始投影矩阵进行更新,以获取目标投影矩阵以及目标旋转矩阵。
具体地,在获取到第一损失函数之后,即通过固定原始投影矩阵、原始旋转矩阵可以对原始哈希矩阵进行迭代更新,以获取目标哈希矩阵,同理,可以通过固定原始哈希矩阵,对原始旋转矩阵以及原始投影矩阵进行迭代更新,以获取目标投影矩阵以及目标旋转矩阵。
可选地,在上述图8对应的实施例的基础上,本申请实施例提供的基于哈希码的检索方法另一个可选实施例中,如图9所示,根据第一损失函数,采用原始投影矩阵、原始旋转矩阵,对原始哈希矩阵进行更新,以获取目标哈希矩阵,包括:
在步骤S901中,采用原始投影矩阵与原始旋转矩阵,对样本特征向量进行计算,得到样本分值向量;
在步骤S902中,针对于样本分值向量中的每个分值元素,将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到样本分值向量中的每个分值元素所对应的编码值;
在步骤S903中,根据样本分值向量中的每个分值元素的编码值,生成样本信息所对应的样本哈希码;
在步骤S904中,根据样本哈希码更新原始哈希矩阵,以获取目标哈希码矩阵。
在本实施例中,在获取到第一损失函数之后,可以将(2)式中的转化为即可以采用原始投影矩阵与原始旋转矩阵,对样本特征向量进行计算,以获取样本分值向量,进而,由于样本特征向量X和原始投影矩阵为已知变量,通过固定原始旋转矩阵R,可以将转化为可以理解为是对样本分值向量中的每个分值元素对应的编码值b进行求解,可以将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以获取分值元素所对应的编码值,可以根据样本分值向量中每个分值元素的编码值来获取待处理信息所对应的样本目标哈希码,然后,样本哈希码更新原始哈希矩阵,可以更好地获取到目标哈希码矩阵。
可以理解的是,在原始旋转矩阵R固定的情况下,基于式(1)与式(2),可以知道中+1的数目范围∈[1,r],但是无法直接确定中b为+1的数目,因此,如下表1所示,可以通过假设中中b为+1的数目为k,则有中b为+1的位置必然对应y的前k个分值元素中的第k个分值元素为最大值,可以使得的第k个分值元素最大化,故可以通过遍历k∈[1,r],并记录其对应的值然后基于将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以获取样本分值向量中的每个分值元素所对应的编码值b:
表1
进一步地,根据如表1所示的算法计算得到样本分值向量中的每个分值元素的编码值之后,可以将样本分值向量中的每个分值元素的编码值进行组合,以获取样本信息所对应的样本哈希码,然后,可以将原始哈希矩阵B中样本分值元素对应的原始哈希码更新为样本哈希码,以获取目标哈希码矩阵。
可选地,在上述图8对应的实施例的基础上,本申请实施例提供的基于哈希码的检索方法另一个可选实施例中,如图9所示,根据第一损失函数,采用原始哈希矩阵,对原始旋转矩阵以及原始投影矩阵进行更新,以获取目标投影矩阵以及目标旋转矩阵,包括:
在步骤S1001中,采用原始哈希矩阵,对第一损失函数进行矩阵分解处理,得到分解投影矩阵和分解旋转矩阵;
在步骤S1002中,根据分解投影矩阵和分解旋转矩阵分别对原始旋转矩阵以及原始投影矩阵进行更新,以获取目标投影矩阵以及目标旋转矩阵。
在本实施例中,在获取到第一损失函数后,由于样本特征向量X和原始投影矩阵为已知变量,通过固定原始哈希矩阵B,可以将(2)式中的转化为可以进行矩阵分解处理,以获取分解投影矩阵和分解旋转矩阵,然后,可以根据分解投影矩阵和分解旋转矩阵分别对原始旋转矩阵以及原始投影矩阵进行更新,可以更好地获取到目标投影矩阵以及目标旋转矩阵。
具体地,在获取到第一损失函数之后,由于样本特征向量X和原始投影矩阵为已知变量,通过随机初始化一个原始哈希矩阵B,然后,可以基于在步骤S904中更新的哈希矩阵,对固定更新后的哈希矩阵,可以将可以将(2)式中的转化为并采用如表2所示的分解算法来对进行矩阵分解处理,以获取分解投影矩阵和分解旋转矩阵。
表2
进而,可以得到下式(7)的分解旋转矩阵:
R=SST (7);
可以理解的是,如表2所示,可以通过指定迭代次数iteration(例如50次),并迭代循环步骤S901至步骤S904,以及循环步骤S1001至步骤S1002,直至收敛,可以保存收敛的目标投影矩阵∧r和目标旋转矩阵R。
可选地,在上述图7对应的实施例的基础上,本申请实施例提供的基于哈希码的检索方法另一个可选实施例中,如图10所示,根据第一损失函数对原始投影矩阵、原始旋转矩阵以及原始哈希矩阵进行更新,以获取目标投影矩阵、目标旋转矩阵以及目标哈希矩阵之后,该方法还包括:
在步骤S1101中,采用目标哈希矩阵、原始权重以及原始权重矩阵,对样本特征向量进行损失计算,得到第二损失函数,其中,原始权重为随机赋值得到的;
在步骤S1102中,根据第二损失函数对原始权重矩阵以及原始权重进行更新,以获取目标权重矩阵以及目标权重。
在本实施例中,在获取到目标哈希矩阵之后,可以采用目标哈希矩阵、原始权重以及原始权重矩阵对样本特征向量进行损失计算,以获取第二损失函数,然后,可以基于第二损失函数对原始权重矩阵以及原始权重进行更新,以获取目标权重矩阵以及目标权重,可以通过训练一个目标权重矩阵,使得在编码阶段不需要对特征向量中的每一个特征元素进行迭代编码,可以直接通过目标权重矩阵来对获取到的特征向量进行编码,能够在很大程度上节约编码时间,从而可以在一定程度上提高编码效率。
具体地,在训练得到目标哈希矩阵B之后,为了让离散的哈希码能够学习到[0,+1]的余弦相似度,本实施例可以将目标哈希矩阵B作为特征向量回归的目标,则可以基于目标哈希矩阵B、原始权重λ、原始权重矩阵W以及样本特征向量构造如式(3)所示的第二损失函数。
进一步地,可以基于(3)式的第二损失函数可以固定目标哈希矩阵,对原始权重矩阵以及原始权重进行更新,可以得到如下式(4)的目标权重矩阵W的闭式解,以获取目标权重矩阵以及目标权重:
W=(XTX+λI)-1(XTB)∈Rd×r (4)。
可选地,在上述图7对应的实施例的基础上,本申请实施例提供的基于哈希码的检索方法另一个可选实施例中,如图10所示,采用原始投影矩阵、原始旋转矩阵以及原始哈希矩阵,对样本特征向量进行损失计算,得到第一损失函数之前,该方法还包括:
在步骤S1201中,计算样本特征向量与样本特征向量的转置的乘积;
在步骤S1202中,对样本特征向量与样本特征向量的转置的乘积进行特征分解,以获取样本特征向量对应的对角矩阵;
在步骤S1203中,根据原始旋转矩阵对对角矩阵进行特征提取,以获取原始投影矩阵。
在本实施例中,在获取到样本信息的样本特征向量之后,根据如(2)式所示的目标函数可以计算样本特征向量与样本特征向量的转置的乘积XXT,进而,可以对样本特征向量与样本特征向量的转置的乘积进行特征分解,以获取样本特征向量对应的对角矩阵,然后,根据原始旋转矩阵对对角矩阵进行特征提取,以获取原始投影矩阵,以使后续可以根据特征分解的特性,将中间变量Y表示为(X∧rR),以更好地计算出目标函数。
具体地,在获取到样本信息的样本特征向量之后,可以计算样本特征向量与样本特征向量的转置的乘积,并对样本特征向量与样本特征向量的转置的乘积XXT做特征分解,可以得到如下式(8)的关系式:
XXT=H∧HT (8);
其中,∧为特征值对应的对角矩阵,即样本特征向量对应的对角矩阵,H为特征向量。可以取出其前r列可以得到原始投影矩阵∧r∈Rd×r。
进一步地,可以利用特征分解的特性,得到如下式(9)的关系式:
XXT≈(X∧rR)(X∧rR)T (9);
其中,R为正交矩阵,因此可以有Y=(X∧rR)∈Rn×r。
下面对本申请中的基于哈希码的检索装置进行详细描述,请参阅图13,图13为本申请实施例中基于哈希码的检索装置的一个实施例示意图,基于哈希码的检索装置20包括:
获取单元201,用于获取待处理信息所对应的第一特征向量;
处理单元202,用于采用目标投影矩阵与目标旋转矩阵,对第一特征向量进行计算,得到第一分值向量,其中,目标投影矩阵与目标旋转矩阵为训练得到的结果;
处理单元202,还用于针对于第一分值向量中的每个分值元素,将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到分值元素所对应的编码值,其中,每个分值元素所对应的编码值为0或1;
处理单元202,还用于根据第一分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码;
处理单元202,还用于根据第一目标哈希码确定第一目标检索信息。
可选地,在上述图13对应的实施例的基础上,本申请实施例提供的基于哈希码的检索装置的另一实施例中,
处理单元202,还用于若待处理信息对应有第二特征向量,则采用目标投影矩阵与目标旋转矩阵,对第二特征向量进行计算,得到第二分值向量;
处理单元202,还用于针对于第二分值向量中的每个分值元素,执行将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到分值元素所对应的编码值;
处理单元202具体可以用于:根据第一分值向量中每个分值元素的编码值以及第二分值向量中每个分值元素的编码值,生成待处理信息所对应的第一目标哈希码。
可选地,在上述图13对应的实施例的基础上,本申请实施例提供的基于哈希码的检索装置的另一实施例中,获取单元201具体可以用于:
对待处理信息进行特征提取,得到待处理信息对应的基础特征向量;
对基础特征向量进行正则化处理,得到第一特征向量。
可选地,在上述图13对应的实施例的基础上,本申请实施例提供的基于哈希码的检索装置的另一实施例中,
处理单元202,还用于计算待处理信息所对应的第一目标哈希码与检索库中的各个哈希码之间的第一相似度;
确定单元203,用于根据第一相似度,从检索库中的各个哈希码中确定第一目标哈希码的第一相似哈希码;
处理单元202,还用于将第一相似哈希码对应的信息作为第一目标检索信息。
可选地,在上述图13对应的实施例的基础上,本申请实施例提供的基于哈希码的检索装置的另一实施例中,
处理单元202,还用于采用目标哈希矩阵以及目标权重计算目标权重矩阵,其中,目标哈希矩阵以及目标权重为训练得到的结果;
处理单元202,还用于根据第一特征向量与目标权重矩阵计算得到待处理信息所对应的第二目标哈希码。
可选地,在上述图13对应的实施例的基础上,本申请实施例提供的基于哈希码的检索装置的另一实施例中,
处理单元202,还用于计算待处理信息所对应的第二目标哈希码与检索库中的各个哈希码之间的第二相似度;
确定单元203,还用于根据第二相似度,从检索库中的各个哈希码中确定第二目标哈希码的第二相似哈希码;
处理单元202,还用于将第二相似哈希码对应的信息作为第二目标检索信息。
可选地,在上述图13对应的实施例的基础上,本申请实施例提供的基于哈希码的检索装置的另一实施例中,
获取单元201,还用于获取样本信息所对应的样本特征向量;
处理单元202,还用于采用原始投影矩阵、原始旋转矩阵以及原始哈希矩阵,对样本特征向量进行损失计算,得到第一损失函数,其中,原始旋转矩阵为随机赋值的正交矩阵,原始投影矩阵为基于样本特征向量对应的对角矩阵提取得到的,原始哈希矩阵为随机赋值得到的;
处理单元202,还用于根据第一损失函数对原始投影矩阵、原始旋转矩阵以及原始哈希矩阵进行更新,以获取目标投影矩阵、目标旋转矩阵以及目标哈希矩阵。
可选地,在上述图13对应的实施例的基础上,本申请实施例提供的基于哈希码的检索装置的另一实施例中,处理单元202具体可以用于:
根据第一损失函数,采用原始投影矩阵、原始旋转矩阵,对原始哈希矩阵进行更新,以获取目标哈希矩阵;
根据第一损失函数,采用原始哈希矩阵,对原始旋转矩阵以及原始投影矩阵进行更新,以获取目标投影矩阵以及目标旋转矩阵。
可选地,在上述图13对应的实施例的基础上,本申请实施例提供的基于哈希码的检索装置的另一实施例中,处理单元202具体可以用于:
采用原始投影矩阵与原始旋转矩阵,对样本特征向量进行计算,得到样本分值向量;
针对于样本分值向量中的每个分值元素,将分值元素分别与出现在分值元素之前的各个分值元素进行数值比较,以得到样本分值向量中的每个分值元素所对应的编码值;
根据样本分值向量中的每个分值元素的编码值,生成样本信息所对应的样本哈希码;
根据样本哈希码更新原始哈希矩阵,以获取目标哈希码矩阵。
可选地,在上述图13对应的实施例的基础上,本申请实施例提供的基于哈希码的检索装置的另一实施例中,处理单元202具体可以用于:
采用原始哈希矩阵,对第一损失函数进行矩阵分解处理,得到分解投影矩阵和分解旋转矩阵;
根据分解投影矩阵和分解旋转矩阵分别对原始旋转矩阵以及原始投影矩阵进行更新,以获取目标投影矩阵以及目标旋转矩阵。
可选地,在上述图13对应的实施例的基础上,本申请实施例提供的基于哈希码的检索装置的另一实施例中,
处理单元202,还用于采用目标哈希矩阵、原始权重以及原始权重矩阵,对样本特征向量进行损失计算,得到第二损失函数,其中,原始权重为随机赋值得到的;
处理单元202,还用于根据第二损失函数对原始权重矩阵以及原始权重进行更新,以获取目标权重矩阵以及目标权重。
可选地,在上述图13对应的实施例的基础上,本申请实施例提供的基于哈希码的检索装置的另一实施例中,
处理单元202,还用于计算样本特征向量与样本特征向量的转置的乘积;
处理单元202,还用于对样本特征向量与样本特征向量的转置的乘积进行特征分解,以获取样本特征向量对应的对角矩阵;
处理单元202,还用于根据原始旋转矩阵对对角矩阵进行特征提取,以获取原始投影矩阵。
本申请另一方面提供了另一种计算机设备示意图,如图14所示,图14是本申请实施例提供的一种计算机设备结构示意图,该计算机设备300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)310(例如,一个或一个以上处理器)和存储器320,一个或一个以上存储应用程序331或数据332的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器320和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备300中的一系列指令操作。更进一步地,中央处理器310可以设置为与存储介质330通信,在计算机设备300上执行存储介质330中的一系列指令操作。
计算机设备300还可以包括一个或一个以上电源340,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口360,和/或,一个或一个以上操作系统333,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述计算机设备300还用于执行如图2至图10对应的实施例中的步骤。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如图2至图10所示实施例描述的方法中的步骤。
本申请的另一方面提供了一种包含指令的计算机程序产品当其在计算机或处理器上运行时,使得所述计算机或处理器执行如图2至图10所示实施例描述的方法中的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (16)
1.一种基于哈希码的检索方法,其特征在于,包括:
获取待处理信息所对应的第一特征向量;
采用目标投影矩阵与目标旋转矩阵,对所述第一特征向量进行计算,得到第一分值向量,其中,所述目标投影矩阵与所述目标旋转矩阵为训练得到的结果;
针对于所述第一分值向量中的每个分值元素,将分值元素分别与出现在所述分值元素之前的各个分值元素进行数值比较,以得到所述分值元素所对应的编码值,其中,所述每个分值元素所对应的编码值为0或1;
根据所述第一分值向量中每个分值元素的编码值,生成所述待处理信息所对应的第一目标哈希码;
根据所述第一目标哈希码确定第一目标检索信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一分值向量中每个分值元素的编码值,生成所述待处理信息所对应的第一目标哈希码之前,所述方法还包括:
若所述待处理信息对应有第二特征向量,则采用所述目标投影矩阵与所述目标旋转矩阵,对所述第二特征向量进行计算,得到第二分值向量;
针对于所述第二分值向量中的每个分值元素,执行所述将分值元素分别与出现在所述分值元素之前的各个分值元素进行数值比较,以得到所述分值元素所对应的编码值;
所述根据所述第一分值向量中每个分值元素的编码值,生成所述待处理信息所对应的第一目标哈希码,包括:
所述根据所述第一分值向量中每个分值元素的编码值以及所述第二分值向量中每个分值元素的编码值,生成所述待处理信息所对应的第一目标哈希码。
3.根据权利要求1所述的方法,其特征在于,所述获取待处理信息所对应的第一特征向量,包括:
对所述待处理信息进行特征提取,得到所述待处理信息对应的基础特征向量;
对所述基础特征向量进行正则化处理,得到所述第一特征向量。
4.根据权利要求1至2中任一项所述的方法,其特征在于,所述根据所述第一目标哈希码确定第一目标检索信息,包括:
计算所述待处理信息所对应的第一目标哈希码与检索库中的各个哈希码之间的第一相似度;
根据所述第一相似度,从所述检索库中的各个哈希码中确定所述第一目标哈希码的第一相似哈希码;
将所述第一相似哈希码对应的信息作为所述第一目标检索信息。
5.根据权利要求1所述的方法,其特征在于,所述获取待处理信息所对应的第一特征向量之后,所述方法还包括:
采用目标哈希矩阵以及目标权重计算目标权重矩阵,其中,所述目标哈希矩阵以及目标权重为训练得到的结果;
根据所述第一特征向量与所述目标权重矩阵计算得到所述待处理信息所对应的第二目标哈希码。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一特征向量与所述目标权重矩阵计算得到所述待处理信息所对应的第二目标哈希码之后,所述方法还包括:
计算所述待处理信息所对应的第二目标哈希码与检索库中的各个哈希码之间的第二相似度;
根据所述第二相似度,从所述检索库中的各个哈希码中确定所述第二目标哈希码的第二相似哈希码;
将所述第二相似哈希码对应的信息作为第二目标检索信息。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取样本信息所对应的样本特征向量;
采用原始投影矩阵、原始旋转矩阵以及原始哈希矩阵,对所述样本特征向量进行损失计算,得到第一损失函数,其中,所述原始旋转矩阵为随机赋值的正交矩阵,所述原始投影矩阵为基于所述样本特征向量对应的对角矩阵提取得到的,所述原始哈希矩阵为随机赋值得到的;
根据所述第一损失函数对所述原始投影矩阵、原始旋转矩阵以及所述原始哈希矩阵进行更新,以获取所述目标投影矩阵、所述目标旋转矩阵以及所述目标哈希矩阵。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一损失函数对所述原始投影矩阵、所述原始旋转矩阵以及所述原始哈希矩阵进行更新,以获取所述目标投影矩阵、所述目标旋转矩阵以及所述目标哈希矩阵,包括:
根据所述第一损失函数,采用所述原始投影矩阵、所述原始旋转矩阵,对所述原始哈希矩阵进行更新,以获取所述目标哈希矩阵;
根据所述第一损失函数,采用所述原始哈希矩阵,对所述原始旋转矩阵以及所述原始投影矩阵进行更新,以获取所述目标投影矩阵以及所述目标旋转矩阵。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第一损失函数,采用所述原始投影矩阵、所述原始旋转矩阵,对所述原始哈希矩阵进行更新,以获取所述目标哈希矩阵,包括:
采用所述原始投影矩阵与原始旋转矩阵,对所述样本特征向量进行计算,得到样本分值向量;
针对于所述样本分值向量中的每个分值元素,将分值元素分别与出现在所述分值元素之前的各个分值元素进行数值比较,以得到所述样本分值向量中的每个分值元素所对应的编码值;
根据所述样本分值向量中的每个分值元素的编码值,生成所述样本信息所对应的样本哈希码;
根据所述样本哈希码更新所述原始哈希矩阵,以获取所述目标哈希码矩阵。
10.根据权利要求8所述的方法,其特征在于,所述根据所述第一损失函数,采用所述原始哈希矩阵,对所述原始旋转矩阵以及所述原始投影矩阵进行更新,以获取所述目标投影矩阵以及所述目标旋转矩阵,包括:
采用所述原始哈希矩阵,对所述第一损失函数进行矩阵分解处理,得到分解投影矩阵和分解旋转矩阵;
根据所述分解投影矩阵和所述分解旋转矩阵分别对所述原始旋转矩阵以及所述原始投影矩阵进行更新,以获取所述目标投影矩阵以及所述目标旋转矩阵。
11.根据权利要求7所述的方法,其特征在于,所述根据所述第一损失函数对所述原始投影矩阵、原始旋转矩阵以及所述原始哈希矩阵进行更新,以获取所述目标投影矩阵、所述目标旋转矩阵以及所述目标哈希矩阵之后,所述方法还包括:
采用目标哈希矩阵、原始权重以及原始权重矩阵,对所述样本特征向量进行损失计算,得到第二损失函数,其中,所述原始权重为随机赋值得到的;
根据所述第二损失函数对所述原始权重矩阵以及所述原始权重进行更新,以获取所述目标权重矩阵以及所述目标权重。
12.根据权利要求7所述的方法,其特征在于,所述采用原始投影矩阵、原始旋转矩阵以及原始哈希矩阵,对所述样本特征向量进行损失计算,得到第一损失函数之前,所述方法还包括:
计算所述样本特征向量与样本特征向量的转置的乘积;
对所述样本特征向量与样本特征向量的转置的乘积进行特征分解,以获取所述样本特征向量对应的对角矩阵;
根据所述原始旋转矩阵对所述对角矩阵进行特征提取,以获取所述原始投影矩阵。
13.一种基于哈希码的检索装置,其特征在于,包括:
获取单元,用于获取待处理信息所对应的第一特征向量;
处理单元,用于采用目标投影矩阵与目标旋转矩阵,对所述第一特征向量进行计算,得到第一分值向量,其中,所述目标投影矩阵与所述目标旋转矩阵为训练得到的结果;
所述处理单元,还用于针对于所述第一分值向量中的每个分值元素,将分值元素分别与出现在所述分值元素之前的各个分值元素进行数值比较,以得到所述分值元素所对应的编码值,其中,所述每个分值元素所对应的编码值为0或1;
所述处理单元,还用于根据所述第一分值向量中每个分值元素的编码值,生成所述待处理信息所对应的第一目标哈希码;
所述处理单元,还用于根据所述第一目标哈希码确定第一目标检索信息。
14.一种计算机设备,其特征在于,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序时实现如权利要求1至12中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
15.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至12中任一项所述的方法。
16.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至12中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210088542.3A CN114417251A (zh) | 2022-01-25 | 2022-01-25 | 一种基于哈希码的检索方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210088542.3A CN114417251A (zh) | 2022-01-25 | 2022-01-25 | 一种基于哈希码的检索方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114417251A true CN114417251A (zh) | 2022-04-29 |
Family
ID=81277416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210088542.3A Pending CN114417251A (zh) | 2022-01-25 | 2022-01-25 | 一种基于哈希码的检索方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114417251A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098721A (zh) * | 2022-08-23 | 2022-09-23 | 浙江大华技术股份有限公司 | 一种人脸特征检索方法、装置及电子设备 |
-
2022
- 2022-01-25 CN CN202210088542.3A patent/CN114417251A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098721A (zh) * | 2022-08-23 | 2022-09-23 | 浙江大华技术股份有限公司 | 一种人脸特征检索方法、装置及电子设备 |
CN115098721B (zh) * | 2022-08-23 | 2022-11-01 | 浙江大华技术股份有限公司 | 一种人脸特征检索方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113919344B (zh) | 文本处理方法和装置 | |
CN111368133B (zh) | 一种视频库的索引表建立方法、装置、服务器及存储介质 | |
CN111600919B (zh) | 智能网络应用防护系统模型的构建方法和装置 | |
CN111177438B (zh) | 图像特征值的搜索方法、装置、电子设备及存储介质 | |
CN113327279B (zh) | 一种点云数据处理方法、装置、计算机设备及存储介质 | |
CN108459784B (zh) | 在人机交互环境中对输入查询生成自动响应的系统和方法 | |
CN111930894A (zh) | 长文本匹配方法及装置、存储介质、电子设备 | |
Sun et al. | Image steganalysis based on convolutional neural network and feature selection | |
CN113641797A (zh) | 数据处理方法、装置、设备、存储介质及计算机程序产品 | |
CN114282059A (zh) | 视频检索的方法、装置、设备及存储介质 | |
CN112231514A (zh) | 一种数据去重方法、装置及存储介质和服务器 | |
CN115062709A (zh) | 模型优化方法、装置、设备、存储介质及程序产品 | |
CN114417251A (zh) | 一种基于哈希码的检索方法、装置、设备及存储介质 | |
CN112989024B (zh) | 文本内容的关系提取方法、装置、设备及存储介质 | |
CN114494809A (zh) | 特征提取模型优化方法、装置及电子设备 | |
CN113420111A (zh) | 一种用于多跳推理问题的智能问答方法及装置 | |
CN117592595A (zh) | 一种配电网负荷预测模型建立、预测方法及装置 | |
CN116629375A (zh) | 模型处理方法以及系统 | |
CN115618099A (zh) | 神经网络架构搜索的方法、装置及电子设备 | |
CN113554145B (zh) | 确定神经网络的输出的方法、电子设备和计算机程序产品 | |
CN113343235A (zh) | 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质 | |
CN112307248A (zh) | 一种图像检索方法及装置 | |
CN117473071B (zh) | 数据检索方法、装置、设备及计算机可读介质 | |
CN115134338B (zh) | 多媒体信息编码方法、对象检索方法及装置 | |
CN118113815B (zh) | 内容搜索方法、相关装置和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40071492 Country of ref document: HK |