CN105824858A - 一种高维向量的哈希方法及装置 - Google Patents
一种高维向量的哈希方法及装置 Download PDFInfo
- Publication number
- CN105824858A CN105824858A CN201510013258.XA CN201510013258A CN105824858A CN 105824858 A CN105824858 A CN 105824858A CN 201510013258 A CN201510013258 A CN 201510013258A CN 105824858 A CN105824858 A CN 105824858A
- Authority
- CN
- China
- Prior art keywords
- dimension
- interval
- vector
- value
- compression
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种高维向量的哈希方法及装置,所述方法包括:采用标量量化方式对压缩后的高维向量进行量化处理,获取每个元素的量化信息,其中,所述每个元素为压缩后的高维向量中每个维度的元素;将所述每个元素的量化信息编码成二值码;按照预设规则将所有二值码进行组合,获得二值向量。上述方法能够对降低现有技术中近邻查询过程中的存储复杂度,以及提升检索效率。
Description
技术领域
本发明涉及计算机技术,具体涉及一种高维向量的哈希方法及装置。
背景技术
当前,高维向量的近邻查询在计算机的图像搜索中提供着关键性的技术支撑。高维向量的近邻查询是指:给定一个高维向量,从一个向量集中找出与其最近的若干个向量。高维向量的近邻查询可应用于人工智能、机器学习以及计算机视觉等方面。
为此,越来越多的业内人士研究高维向量的近邻查询的相关技术。现有技术中,解决近邻查询的方法主要分为两类。第一类方法是通过建立索引结构,离线将相似的向量集中到一起,在线查询时,从索引中快速的读取结果,从而获得查询向量的近邻。然而,该第一类方法最大的缺点是内存消耗大,该索引结构的内存占用量比原始数据的内存占用量还大,导致查询效率非常低。
第二类方法是通过乘积量化的方式将高维向量分成多段,每段单独量化,并建立索引。该方法的缺点是需要将高维向量拆分成许多段,每段使用额外的查找表;当向量维度较高时,内存占用大,且检索速度慢,效率低。
为此,如何降低近邻查询过程中的存储复杂度,并提升检索效率成为当前需要解决的技术问题。
发明内容
针对现有技术中的缺陷,本发明提供了一种高维向量的哈希方法及装置,能够降低现有技术中近邻查询过程中的存储复杂度,以及提升检索效率。
第一方面,本发明提供一种高维向量的哈希方法,包括:
采用标量量化方式对压缩后的高维向量进行量化处理,获取每个元素的量化信息,其中,所述每个元素为压缩后的高维向量中每个维度的元素;
将所述每个元素的量化信息编码成二值码;
按照预设规则将所有二值码进行组合,获得二值向量。
可选地,采用标量量化方式对压缩后的高维向量进行量化处理之前,所述方法还包括:
对待处理的高维向量进行压缩处理,获取压缩后的高维向量。
可选地,采用标量量化方式对压缩后的高维向量进行量化处理,获取每个元素的量化信息,包括:
获取压缩后的高维向量中每个维度的元素;
根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间,获得每个元素的量化信息;
所述每个维度对应的区间是根据预设的训练数据集训练获取的。
可选地,根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间之前,所述方法还包括:
获取所述压缩后高维向量的维度,根据所述维度获取与所述维度对应的区间信息,所述区间信息包括:预先获取的所述维度中每个维度对应的区间。
可选地,根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间之前,所述方法还包括:
根据预设的训练数据集训练获取每个维度对应的区间,所述每个维度为所述高维向量中的每个维度;
每一维度对应的区间均是不重叠的。
可选地,根据预设的训练数据集训练获取每个维度对应的区间,包括:
获取训练数据集中所有向量的每一维度的元素集合,所述元素集合包括该维度上所有向量的元素,所述训练数据集中所有向量的维度相同;
根据预设距离差和量化误差,获取用于划分区间的目标函数;
根据所述目标函数,将每一维度的元素集合进行区间划分,获得该维度对应的区间。
可选地,根据所述目标函数,将每一维度的元素集合进行区间划分,获得该维度对应的区间,包括:
枚举所述元素集合中区间划分的边界值,将每组所述区间划分的边界值作为所述目标函数的参数值,确定并记录所述目标函数对应的取值;
选择使目标函数取得极值的边界值划分该维度,获得该维度对应的区间。
可选地,按照预设规则将所有二值码进行组合,获得二值向量,包括:
将所有二值码按照每一二值码对应的维度序号顺序拼接,获得二值向量。
可选地,所述对待处理的高维向量进行压缩处理,获取压缩后的高维向量,包括:
采用预设的线性变换矩阵对待处理的高维向量进行压缩处理,获得压缩后的高维向量;
所述线性变换矩阵为通过训练样本预先训练获取的。
第二方面,本发明还提供一种高维向量的近邻查询方法,包括:
采用如上任一所述的方法获取待处理的高维向量的二值向量;
获取所述二值向量的哈希二值码;
根据所述哈希二值码的编码方式,选择与该编码方式对应的度量距离,采用所述度量距离度量所述二值向量与其他高维向量对应的二值向量的相似度。
第三方面,本发明还提供一种高维向量的哈希装置,包括:
量化单元,用于采用标量量化方式对压缩后的高维向量进行量化处理,获取每个元素的量化信息,其中,所述每个元素为压缩后的高维向量中每个维度的元素;
编码单元,用于将所述每个元素的量化信息编码成二值码;
组合单元,用于按照预设规则将所有二值码进行组合,获得二值向量。
可选地,所述装置还包括:
压缩单元,用于在量化单元量化之前对待处理的高维向量进行压缩处理,获取压缩后的高维向量。
可选地,量化单元,具体用于
获取压缩后的高维向量中每个维度的元素;
根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间,获得每个元素的量化信息;
所述每个维度对应的区间是根据预设的训练数据集训练获取的。
可选地,量化单元,具体用于
获取压缩后的高维向量中每个维度的元素;
获取所述压缩后高维向量的维度,根据所述维度,获取与所述维度对应的区间信息,所述区间信息包括:预先获取的所述维度中每个维度对应的区间;
根据获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间,获得每个元素的量化信息;
所述每个维度对应的区间是根据预设的训练数据集训练获取的。
可选地,所述量化单元,还用于
根据预设的训练数据集训练获取每个维度对应的区间,所述每个维度为所述高维向量中的每个维度;
每一维度对应的区间均是不重叠的。
可选地,所述量化单元,具体用于
获取训练数据集中所有向量的每一维度的元素集合,所述元素集合包括该维度上所有向量的元素,所述训练数据集中所有向量的维度相同;
根据预设距离差和量化误差,获取用于划分区间的目标函数;
根据所述目标函数,将每一维度的元素集合进行区间划分,获得该维度对应的区间。
可选地,所述量化单元,具体用于
枚举所述元素集合中区间划分的边界值,将每组所述区间划分的边界值作为所述目标函数的参数值,确定并记录所述目标函数对应的取值;
选择使目标函数取得极值的边界值划分该维度,获得该维度对应的区间。
可选地,组合单元,具体用于
将所有二值码按照每一二值码对应的维度序号顺序拼接,获得二值向量。
可选地,压缩单元,具体用于
采用预设的线性变换矩阵对待处理的高维向量进行压缩处理,获得压缩后的高维向量;
所述线性变换矩阵为通过训练样本预先训练获取的。
第四方面,本发明提供一种高维向量的近邻查询装置,包括:
二值向量获取单元,用于采用上述任一所述的装置获取待处理的高维向量的二值向量;
哈希二值码获取单元,用于获取所述二值向量的哈希二值码;
相似度度量单元,用于根据所述哈希二值码的编码方式,选择与该编码方式对应的度量距离,采用所述度量距离度量所述二值向量与其他高维向量对应的二值向量的相似度。
由上述技术方案可知,本发明的高维向量的哈希方法及装置,通过获取高维向量中每个元素的量化信息,进而将量化信息编码成二值码,由此,可组合二值码,获得高维向量的二值向量,进而能够对降低现有技术中近邻查询过程中的存储复杂度,以及提升检索效率。
附图说明
图1为本发明一实施例提供的高维向量的哈希方法的流程示意图;
图2为本发明一实施例提供的高维向量的哈希方法的流程示意图;
图3为本发明一实施例提供的高维向量的近邻查询方法的流程示意图;
图4为本发明一实施例提供的高维向量的哈希装置的结构示意图;
图5为本发明一实施例提供的高维向量的近邻查询装置的结构示意图。
具体实施方式
下面结合附图,对发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。本发明实施例中所使用的“第一”、“第二”仅为更清楚的说明本申请的内容,不具有特定含义,也不限定任何内容。
当前,业内还出现一种近邻查询的技术方案,例如,该技术方案是通过压缩高维向量降低高维向量的维度然后再将降维后的向量量化成二值码的哈希方法。不同于现有技术中提及的第一类和第二类方法,该技术方案中的哈希方法通常不需要额外的索引,直接利用量化后的二值码之间的距离判定向量之间的相似性。
然而,该近邻查询的技术方案还仅仅是简单地将压缩后向量的每个元素用一个预设的阈值量化成单个比特,这个过程会引入较大的量化误差。
为此,如何降低近邻查询过程中的存储复杂度,提升检索效率;以及解决上述方案中单个比特量化的误差问题,本发明实施例中引入更精确的量化的机制(比如多比特量化)进而可减少量化误差。
图1示出了本发明一实施例提供的高维向量的哈希方法的流程示意图,如图1所示,本实施例中的高维向量的哈希方法如下所述。
101、采用标量量化方式对压缩后的高维向量进行量化处理,获取每个元素的量化信息,其中,所述每个元素为压缩后的高维向量中每个维度的元素。
举例来说,对于压缩后的高维向量X=[x1,x2,…xm]中的任何一个元素xi(1≤i≤m),xi量化后的量化信息为Q(xi),其中,Q表示量化函数。
102、将所述每个元素的量化信息编码成二值码;
在具体应用中,每个维度的元素量化后的区间编码即为该元素的编码。对于元素xi,若Q(xi)=Sij,那么xi将被编码成B(Sij)。
举例来说,可在应用中,将每个维度的元素xi划分到区间,将每个维度的元素划分后的区间Sij,1≤i≤m,1≤j≤u,编码成二值码B(Sij)。
其中,m为压缩后的高维向量的维度,u为非零自然数,u表示的是每个维度划分的区间数,比如u=4,那么就是将每个维度划分成4个区间,此时若采用二进制编码,可以分别将每个区间段依次编码成00,01,10,11等。
具体的,二值码包括但不限于自然二进制码,包括:
举例来说,设u=4,如果将Sij编码成2个比特,那么Si1,Si2,Si3,Si4对应的自然二进制码为00,01,10,11。
当然,在实际应用中,二值码包括但不限于上述的二进制码,还可为一元码,例如:设u=4,如果将Sij编码成3个比特,那么Si1,Si2,Si3,Si4对应的一元码为000,001,011,111。
其它编码方式在本实施例中也可使用,本实施例仅为举例说明,并不是限定性的内容。
103、按照预设规则将所有二值码进行组合,获得二值向量。
例如,可将所有二值码按照每一二值码对应的维度序号顺序拼接,获得二值向量。
通常,每一二值码对应的维度序号即为该二值码的下标,进而可按照所有二值码的下标顺序拼接获得二值向量。举例来说,对于一个向量(y1,y2,y3),维度序号就是下标,该下标实质上就是1,2,3这些序号。其中y1量化成00,y2量化成01,y3量化成11,那么拼接到一起获得二值向量就是000111。为此,可按维度序号从左至右拼接到一起。
首先,按顺序排列每个元素的量化信息编码后的二值码。对于X,按下标顺序排列X中各个元素的量化信息编码后的二值码B(Q(x1)),B(Q(x2)),…,B(Q(xm))。
接着,把各个元素的量化信息编码后的二值码组合到一起,构成二值向量。例如,将B(Q(x1)),B(Q(x2)),…,B(Q(xm))组合,得到二值向量H,H=[B(Q(x1)),B(Q(x2)),…,B(Q(xm))]。
在本实施例中二值向量即为高维向量哈希后的结果。
本实施例的高维向量的哈希方法可通过获取高维向量中每个元素的量化信息,进而将量化信息编码成二值码,由此,可组合二值码,获得高维向量的二值向量,进而能够对降低现有技术中近邻查询过程中的存储复杂度,以及提升检索效率。
图2示出了本发明一实施例提供的高维向量的哈希方法的流程示意图,如图2所示,本实施例中的高维向量的哈希方法如下所述。
201、对待处理的高维向量进行压缩处理,获取压缩后的高维向量。
例如,采用预设的线性变换矩阵对待处理的高维向量进行压缩处理,获得压缩后的高维向量;
所述线性变换矩阵为通过训练样本预先训练获取的。
举例来说,步骤201的具体实现过程如下:
A01、采集一个离线训练的数据集,组成训练样本SZ,例如,采集一个n维向量集合SZ={Z1,Z2,…,Zt},Z1,Z2,…,Zt为SZ中的元素。
其中,Zi为n维向量,1≤i≤t,t为自然数。
A02、从训练样本SZ中训练获取一个线性变换矩阵A。
即,可采用主要成分分析方法((PrincipalComponentAnalysis,简称PCA)从向量集合SZ中学习获得一个线性变换矩阵A,该线性变换矩阵A的维度为n*m,m为压缩后的高维向量的维度。
A03、将待处理的高维向量乘以线性变换矩阵,得到压缩后的高维向量。
例如,可对于待处理的高维向量Y=[y1,y2,…,yn],乘以线性变换矩阵A,得到压缩后的高维向量X=F(Y)=(YTA)T=[x1,x2,…,xm],m为自然数,F代表压缩处理。
当然,在实际应用中,还可采用其他方式对待处理的高维向量进行压缩处理,不限定上述举例的步骤A01至步骤A03。
202、获取压缩后的高维向量中每个维度的元素。
203、根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间,获得每个元素的量化信息。
例如,对于X中的任何一个元素xi(1≤i≤m),xi量化后的量化信息为Q(xi),其中,Q表示量化函数。
在具体实现过程中,预先将每个维度的元素取值范围划分成几个独立的区间。设X中每个维度的元素xi取值范围为Li=[li,ri]。将Li划分成u个独立的区间,Si1,Si2,…,Siu。
其中,区间之间不重叠。且Li=Si1∪Si2∪…∪Siu。
其次,把每个元素量化到该元素所属维度对应的区间。
若元素xi属于Sij,那么xi将被量化到Sij=Q(xi)。
其中,每个维度对应的区间是根据预设的训练数据集训练获取的。
举例来说,可预先离线获取所述压缩后高维向量的维度,根据所述维度获取与所述维度对应的区间信息,所述区间信息包括:预先获取的所述维度中每个维度对应的区间,进而再进一步执行步骤203。
例如,高维向量可为128维,则可获取与128维对应的每一维度的区间信息。在部分实施例中,不同维度的区间信息可不同。
204、将所述每个元素的量化信息编码成二值码。
例如,对于量化信息Q(xi)编码成二值码B(Q(xi)),B表示编码函数。
205、按照预设规则将所有二值码进行组合,获得二值向量。
例如,将编码后的二值码按照下标顺序拼接B(Q(x1)),B(Q(x2)),…,B(Q(xm)),得到H=[B(Q(x1)),B(Q(x2)),…,B(Q(xm))],H为二值向量。
本实施例中的H为紧凑的二值向量。
本实施例的高维向量的哈希方法能够对降低现有技术中近邻查询过程中的存储复杂度,以及提升检索效率。
本实施例能够有效解决现有哈希方法中的单比特量化的性能损失问题。现有的哈希方法大多是简单地将压缩后向量的每个元素用一个预设的阈值量化成单个比特,这个过程会引入较大的量化误差。而本实施例则提供了一种更科学并且支持多比特量化的量化机制,能够大大降低量化误差,解决现有哈希方法中单比特量化的问题。
下面对上述步骤203进行详细说明如下:
B01、根据预设的训练数据集训练获取每个维度对应的区间,所述每个维度为所述高维向量中的每个维度;每一维度对应的区间均是不重叠的。
B02、根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间。
该步骤B02的具体实现过程如下:
B021、获取训练数据集中所有向量的每一维度的元素集合,所述元素集合包括该维度上所有向量的元素,所述训练数据集中所有向量的维度相同;
B022、根据预设距离差和量化误差,获取用于划分区间的目标函数;
B023、根据所述目标函数,将每一维度的元素集合进行区间划分,获得该维度对应的区间。
具体地,B0231、枚举所述元素集合中区间划分的边界值,将每组所述区间划分的边界值作为所述目标函数的参数值,确定并记录所述目标函数对应的取值;
B0232、选择使目标函数取得极值(如最小值)的边界值划分该维度,获得该维度对应的区间。
可理解的是,在具体应用中,目标函数还可能是非连续而且不可导的函数,在应用中存在无法直接获取该目标函数的极值,也就是说,无法直接判断该目标函数在某个取值下是否是极大或者极小值。为此,可预先枚举足够多的边界值,从中选择使目标函数相对最大(或者最小)的边界值来划分区间。
当然,可根据实际需要选择使目标函数取得最大值或最小值的方式,本实施例均为举例说明,不对其进行限定。
图3示出了本发明一实施例提供的高维向量的近邻查询方法的流程示意图,如图3所示,本实施例中的高维向量的近邻查询方法如下所述。
301、获取待处理的高维向量的二值向量。
在本实施例中可采用上述任一实施例所述的方法获取待处理的高维向量的二值向量。
302、获取所述二值向量的哈希二值码;
303、根据所述哈希二值码的编码方式,选择与该编码方式对应的度量距离,采用所述度量距离度量所述二值向量与其他高维向量对应的二值向量的相似度。
例如,对于两个紧凑的二值向量H1和H2,选择与所用二值码相匹配的距离D,来度量二值向量之间的相似性。
即两个二值向量H1和H2的相似性用D(H1,H2)来表示。
对于两个二值向量H1和H2,其相似性的度量举例可以为汉明距离,也可以为曼哈顿举例度量,其他举例度量方法本实施例不对其进行限定。
上述近邻查询方法可降低现有技术中高额的存储复杂度,并且大幅度地提升检索的效率。
图4示出了本发明一实施例提供的高维向量的哈希装置的结构示意图,如图4所示,本实施例的高维向量的哈希装置包括:量化单元41、编码单元42和组合单元43;
其中,量化单元41用于采用标量量化方式对压缩后的高维向量进行量化处理,获取每个元素的量化信息,其中,所述每个元素为压缩后的高维向量中每个维度的元素;
编码单元42用于将所述每个元素的量化信息编码成二值码;
组合单元43用于按照预设规则将所有二值码进行组合,获得二值向量。
在具体应用中,前述的装置还可包括图中未示出的压缩单元40,该压缩单元40用于在量化单元41量化之前对待处理的高维向量进行压缩处理,获取压缩后的高维向量。例如,采用预设的线性变换矩阵对待处理的高维向量进行压缩处理,获得压缩后的高维向量;所述线性变换矩阵为通过训练样本预先训练获取的。
在一种可能的应用中,量化单元41可具体用于,获取压缩后的高维向量中每个维度的元素;
根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间,获得每个元素的量化信息;
所述每个维度对应的区间是根据预设的训练数据集训练获取的。
在另一种具体的应用中,量化单元41可具体用于,获取压缩后的高维向量中每个维度的元素;
获取所述压缩后高维向量的维度,根据所述维度,获取与所述维度对应的区间信息,所述区间信息包括:预先获取的所述维度中每个维度对应的区间;
根据获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间,获得每个元素的量化信息;
所述每个维度对应的区间是根据预设的训练数据集训练获取的。
举例来说,所述量化单元41还可用于,根据预设的训练数据集训练获取每个维度对应的区间,所述每个维度为所述高维向量中的每个维度;
例如,获取训练数据集中所有向量的每一维度的元素集合,所述元素集合包括该维度上所有向量的元素,所述训练数据集中所有向量的维度相同;
根据预设距离差和量化误差,获取用于划分区间的目标函数;
根据所述目标函数,将每一维度的元素集合进行区间划分,获得该维度对应的区间。每一维度对应的区间均是不重叠的。
在实际应用中,根据所述目标函数,将每一维度的元素集合进行区间划分,可为:枚举所述元素集合中区间划分的边界值,将每组所述区间划分的边界值作为所述目标函数的参数值,确定并记录所述目标函数对应的取值;
选择使目标函数取得极值的边界值划分该维度,获得该维度对应的区间。
在更具体的例子中,组合单元43可具体用于,将所有二值码按照每一二值码对应的维度序号顺序拼接,获得二值向量。
本实施例的高维向量的哈希装置能够对降低现有技术中近邻查询过程中的存储复杂度,以及提升检索效率。
图5示出了本发明一实施例提供的高维向量的近邻查询装置的结构示意图,如图5所示,本实施例的高维向量的近邻查询装置包括:二值向量获取单元51、哈希二值码获取单元52和相似度度量单元53;
其中,二值向量获取单元51,用于获取待处理的高维向量的二值向量;例如,可采用上述任意实施例所述的高维向量的哈希装置来获取二值向量;
哈希二值码获取单元52用于获取所述二值向量的哈希二值码;
相似度度量单元53用于根据所述哈希二值码的编码方式,选择与该编码方式对应的度量距离,采用所述度量距离度量所述二值向量与其他高维向量对应的二值向量的相似度。
上述近邻查询装置可降低现有技术中高额的存储复杂度,并且大幅度地提升检索的效率。
可理解的是,本实施例中的哈希装置和近邻查询装置均在计算设备中实现,如终端、移动终端或服务器等实现向量查询或检索,可应用于图像检索,或向量学习、机器学习等方面。
本发明的其他实施例还公开了如下内容:
A1、一种高维向量的哈希方法,其中,包括:
采用标量量化方式对压缩后的高维向量进行量化处理,获取每个元素的量化信息,其中,所述每个元素为压缩后的高维向量中每个维度的元素;
将所述每个元素的量化信息编码成二值码;
按照预设规则将所有二值码进行组合,获得二值向量。
A2、根据A1所述的方法,其中,采用标量量化方式对压缩后的高维向量进行量化处理之前,所述方法还包括:
对待处理的高维向量进行压缩处理,获取压缩后的高维向量。
A3、根据A1所述的方法,其中,采用标量量化方式对压缩后的高维向量进行量化处理,获取每个元素的量化信息,包括:
获取压缩后的高维向量中每个维度的元素;
根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间,获得每个元素的量化信息;
所述每个维度对应的区间是根据预设的训练数据集训练获取的。
A4、根据A3所述的方法,其中,根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间之前,所述方法还包括:
获取所述压缩后高维向量的维度,根据所述维度获取与所述维度对应的区间信息,所述区间信息包括:预先获取的所述维度中每个维度对应的区间。
A5、根据A3或A4所述的方法,其中,根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间之前,所述方法还包括:
根据预设的训练数据集训练获取每个维度对应的区间,所述每个维度为所述高维向量中的每个维度;
每一维度对应的区间均是不重叠的。
A6、根据A5所述的方法,其中,根据预设的训练数据集训练获取每个维度对应的区间,包括:
获取训练数据集中所有向量的每一维度的元素集合,所述元素集合包括该维度上所有向量的元素,所述训练数据集中所有向量的维度相同,均等于所述压缩后的高维向量的维度;
根据预设距离差和量化误差,获取用于划分区间的目标函数;
根据所述目标函数,将每一维度的元素集合进行区间划分,获得该维度对应的区间。
A7、根据A6所述的方法,其中,根据所述目标函数,将每一维度的元素集合进行区间划分,获得该维度对应的区间,包括:
枚举所述元素集合中区间划分的边界值,将每组所述区间划分的边界值作为所述目标函数的参数值,确定并记录所述目标函数对应的取值;
选择使目标函数取得极值的边界值划分该维度,获得该维度对应的区间。
A8、根据A1至A7任一所述的方法,其中,按照预设规则将所有二值码进行组合,获得二值向量,包括:
将所有二值码按照每一二值码对应的维度序号顺序拼接,获得二值向量。
A9、根据A2所述的方法,其中,所述对待处理的高维向量进行压缩处理,获取压缩后的高维向量,包括:
采用预设的线性变换矩阵对待处理的高维向量进行压缩处理,获得压缩后的高维向量;
所述线性变换矩阵为通过训练样本预先训练获取的。
B10、一种高维向量的近邻查询方法,其中,包括:
采用上述A1至A9任一所述的方法获取待处理的高维向量的二值向量;
获取所述二值向量的哈希二值码;
根据所述哈希二值码的编码方式,选择与该编码方式对应的度量距离,采用所述度量距离度量所述二值向量与其他高维向量对应的二值向量的相似度。
C11、一种高维向量的哈希装置,其中,包括:
量化单元,用于采用标量量化方式对压缩后的高维向量进行量化处理,获取每个元素的量化信息,其中,所述每个元素为压缩后的高维向量中每个维度的元素;
编码单元,用于将所述每个元素的量化信息编码成二值码;
组合单元,用于按照预设规则将所有二值码进行组合,获得二值向量。
C12、根据C11所述的装置,其中,所述装置还包括:
压缩单元,用于在量化单元量化之前对待处理的高维向量进行压缩处理,获取压缩后的高维向量。
C13、根据C11所述的装置,其中,量化单元,具体用于
获取压缩后的高维向量中每个维度的元素;
根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间,获得每个元素的量化信息;
所述每个维度对应的区间是根据预设的训练数据集训练获取的。
C14、根据C11所述的装置,其中,量化单元,具体用于
获取压缩后的高维向量中每个维度的元素;
获取所述压缩后高维向量的维度,根据所述维度,获取与所述维度对应的区间信息,所述区间信息包括:预先获取的所述维度中每个维度对应的区间;
根据获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间,获得每个元素的量化信息;
所述每个维度对应的区间是根据预设的训练数据集训练获取的。
C15、根据C13或C14所述的装置,其中,所述量化单元,还用于
根据预设的训练数据集训练获取每个维度对应的区间,所述每个维度为所述高维向量中的每个维度;
每一维度对应的区间均是不重叠的。
C16、根据C15所述的装置,其中,所述量化单元,具体用于
获取训练数据集中所有向量的每一维度的元素集合,所述元素集合包括该维度上所有向量的元素,所述训练数据集中所有向量的维度相同;
根据预设距离差和量化误差,获取用于划分区间的目标函数;
根据所述目标函数,将每一维度的元素集合进行区间划分,获得该维度对应的区间。
C17、根据C16所述的装置,其中,所述量化单元,具体用于
枚举所述元素集合中区间划分的边界值,将每组所述区间划分的边界值作为所述目标函数的参数值,确定并记录所述目标函数对应的取值;
选择使目标函数取得极值的边界值划分该维度,获得该维度对应的区间。
C18、根据C11至C17任一所述的装置,其中,组合单元,具体用于
将所有二值码按照每一二值码对应的维度序号顺序拼接,获得二值向量。
C19、根据C12所述的装置,其中,压缩单元,具体用于
采用预设的线性变换矩阵对待处理的高维向量进行压缩处理,获得压缩后的高维向量;
所述线性变换矩阵为通过训练样本预先训练获取的。
D20、一种高维向量的近邻查询装置,其中,包括:
二值向量获取单元,用于采用上述C11至C19任一所述的装置获取待处理的高维向量的二值向量;
哈希二值码获取单元,用于获取所述二值向量的哈希二值码;
相似度度量单元,用于根据所述哈希二值码的编码方式,选择与该编码方式对应的度量距离,采用所述度量距离度量所述二值向量与其他高维向量对应的二值向量的相似度。
本发明的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在于该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是互相排斥之处,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (10)
1.一种高维向量的哈希方法,其特征在于,包括:
采用标量量化方式对压缩后的高维向量进行量化处理,获取每个元素的量化信息,其中,所述每个元素为压缩后的高维向量中每个维度的元素;
将所述每个元素的量化信息编码成二值码;
按照预设规则将所有二值码进行组合,获得二值向量。
2.根据权利要求1所述的方法,其特征在于,采用标量量化方式对压缩后的高维向量进行量化处理,获取每个元素的量化信息,包括:
获取压缩后的高维向量中每个维度的元素;
根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间,获得每个元素的量化信息;
所述每个维度对应的区间是根据预设的训练数据集训练获取的。
3.根据权利要求2所述的方法,其特征在于,根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间之前,所述方法还包括:
获取所述压缩后高维向量的维度,根据所述维度获取与所述维度对应的区间信息,所述区间信息包括:预先获取的所述维度中每个维度对应的区间。
4.根据权利要求2或3所述的方法,其特征在于,根据预先获取的每个维度对应的区间,将所述元素量化到该元素所属维度对应的区间之前,所述方法还包括:
根据预设的训练数据集训练获取每个维度对应的区间,所述每个维度为所述高维向量中的每个维度;
每一维度对应的区间均是不重叠的。
5.根据权利要求4所述的方法,其特征在于,根据预设的训练数据集训练获取每个维度对应的区间,包括:
获取训练数据集中所有向量的每一维度的元素集合,所述元素集合包括该维度上所有向量的元素,所述训练数据集中所有向量的维度相同,均等于所述压缩后的高维向量的维度;
根据预设距离差和量化误差,获取用于划分区间的目标函数;
根据所述目标函数,将每一维度的元素集合进行区间划分,获得该维度对应的区间。
6.根据权利要求5所述的方法,其特征在于,根据所述目标函数,将每一维度的元素集合进行区间划分,获得该维度对应的区间,包括:
枚举所述元素集合中区间划分的边界值,将每组所述区间划分的边界值作为所述目标函数的参数值,确定并记录所述目标函数对应的取值;
选择使目标函数取得极值的边界值划分该维度,获得该维度对应的区间。
7.根据权利要求1至6任一所述的方法,其特征在于,按照预设规则将所有二值码进行组合,获得二值向量,包括:
将所有二值码按照每一二值码对应的维度序号顺序拼接,获得二值向量。
8.一种高维向量的近邻查询方法,其特征在于,包括:
采用权利要求1至7任一所述的方法获取待处理的高维向量的二值向量;
获取所述二值向量的哈希二值码;
根据所述哈希二值码的编码方式,选择与该编码方式对应的度量距离,采用所述度量距离度量所述二值向量与其他高维向量对应的二值向量的相似度。
9.一种高维向量的哈希装置,其特征在于,包括:
量化单元,用于采用标量量化方式对压缩后的高维向量进行量化处理,获取每个元素的量化信息,其中,所述每个元素为压缩后的高维向量中每个维度的元素;
编码单元,用于将所述每个元素的量化信息编码成二值码;
组合单元,用于按照预设规则将所有二值码进行组合,获得二值向量。
10.一种高维向量的近邻查询装置,其特征在于,包括:
二值向量获取单元,用于采用上述权利要求9所述的装置获取待处理的高维向量的二值向量;
哈希二值码获取单元,用于获取所述二值向量的哈希二值码;
相似度度量单元,用于根据所述哈希二值码的编码方式,选择与该编码方式对应的度量距离,采用所述度量距离度量所述二值向量与其他高维向量对应的二值向量的相似度。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510013258.XA CN105824858A (zh) | 2015-01-09 | 2015-01-09 | 一种高维向量的哈希方法及装置 |
PCT/CN2015/089607 WO2016110125A1 (zh) | 2015-01-09 | 2015-09-15 | 高维向量的哈希方法、向量量化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510013258.XA CN105824858A (zh) | 2015-01-09 | 2015-01-09 | 一种高维向量的哈希方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105824858A true CN105824858A (zh) | 2016-08-03 |
Family
ID=56514295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510013258.XA Pending CN105824858A (zh) | 2015-01-09 | 2015-01-09 | 一种高维向量的哈希方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105824858A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562794A (zh) * | 2017-08-01 | 2018-01-09 | 佛山市深研信息技术有限公司 | 一种大数据的冗余检测方法 |
CN111881767A (zh) * | 2020-07-03 | 2020-11-03 | 深圳力维智联技术有限公司 | 高维特征的处理方法、装置、设备及计算机可读存储介质 |
-
2015
- 2015-01-09 CN CN201510013258.XA patent/CN105824858A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562794A (zh) * | 2017-08-01 | 2018-01-09 | 佛山市深研信息技术有限公司 | 一种大数据的冗余检测方法 |
CN111881767A (zh) * | 2020-07-03 | 2020-11-03 | 深圳力维智联技术有限公司 | 高维特征的处理方法、装置、设备及计算机可读存储介质 |
CN111881767B (zh) * | 2020-07-03 | 2023-11-03 | 深圳力维智联技术有限公司 | 高维特征的处理方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11509418B2 (en) | Polar code encoding method and device | |
EP3037990B1 (en) | Methods and devices for efficient feature matching | |
US8615138B2 (en) | Image compression using sub-resolution images | |
US6831575B2 (en) | Word aligned bitmap compression method, data structure, and apparatus | |
CN111027656B (zh) | 二维码生成及识别方法、装置、电子设备、存储介质 | |
US20120150877A1 (en) | Efficient database compression | |
CN112149829B (zh) | 确定网络模型剪枝策略的方法、装置、设备以及存储介质 | |
CN110401836B (zh) | 一种图像解码、编码方法、装置及其设备 | |
US11395010B2 (en) | Massive picture processing method converting decimal element in matrices into binary element | |
US10979520B2 (en) | Data transmission method and apparatus | |
US20060018556A1 (en) | Method, apparatus and system for data block rearrangement for LZ data compression | |
WO2016187616A1 (en) | Compression and transmission of genomic information | |
CN108197168A (zh) | 一种数据压缩方法、设备和计算机可读存储介质 | |
CN105391454A (zh) | 一种dna测序质量分数无损压缩方法 | |
WO2016110125A1 (zh) | 高维向量的哈希方法、向量量化方法及装置 | |
Shi et al. | High efficiency referential genome compression algorithm | |
CN105824858A (zh) | 一种高维向量的哈希方法及装置 | |
US8607218B2 (en) | Updating computer files | |
CN104077272A (zh) | 一种字典压缩的方法和装置 | |
Wang et al. | smallWig: parallel compression of RNA-seq WIG files | |
EP3699784A1 (en) | Method and network node for internet-of-things (iot) feature selection for storage and computation | |
EP2981081B1 (en) | Methods and devices for coding and decoding depth information, and video processing and playing device | |
AU2016201253A1 (en) | Information processing apparatus, and data management method | |
CN112054805B (zh) | 一种模型数据压缩方法、系统及相关设备 | |
CN105824856A (zh) | 一种向量量化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160803 |