量化编码的分层可通航小世界图算法
发布时间:2021-01-29 19:19
随着大数据和人工智能的高速发展,针对多媒体数据的结构化处理与基于内容的检索受到极大的关注,面对多媒体数据结构化后的海量高维特征向量,如何快速、准确地检索是人工智能处理大规模数据所必须解决的问题。最近提出的分层可通航小世界图HNSW检索算法在多个公开数据集取得了最佳的性能表现,但该算法存在内存开销大的问题。而基于量化编码的检索算法能够压缩数据集向量,大幅度降低内存占用。将量化编码和分层可通航小世界图算法结合,提出了2种基于量化编码改进的HNSW算法,分别是使用标量量化编码向量的HNSWSQ算法和使用乘积量化编码向量的HNSWPQ算法,2种算法使用不同的量化策略存储原始向量编码,以降低内存开销,再通过HNSW算法建立索引达到缩短检索耗时的目的。其中HNSWSQ算法在多个数据集上获得了与HNSW算法相近的查全率和平均检索耗时,而内存开销大幅降低。实验结果表明,HNSWSQ算法在SIFT-1M和GIST-1M数据集上的内存开销比HNSW算法分别降低了45.1%和70.4%。
【文章来源】:计算机工程与科学. 2019,41(04)北大核心
【文章页数】:8 页
【部分图文】:
图1HNSW算法查找过程Figure1SearchprocessoftheHNSWalgorithm
128维,设置乘积量化的参数为m=16,k*=256,则每个向量被量化为16个字节,相比于原始的128*4=512字节,理论上内存消耗最多降低为原来的1/32,如图2所示。HNSWPQ算法将HNSW算法作为索引算法,采用PQ算法进行向量编码,由于使用PQ算法对原始向量编码,需要将HNSW算法插入过程中与近邻点距离的计算相应地修改为PQ的距离计算。Figure2APQquantizationexample图2PQ量化示例图数据集中的向量被编码后存储在内存中,每个向量根据子向量最近邻中心点的编号编码。李秋珍等:量化编码的分层可通航小世界图算法126
HNSW算法构建索引计算查询向量与图中点y的距离时,首先计算查询向量每个子向量与对应分段中心点的距离表,然后根据y的编码查表获得d(x,y)的近似值。图3是向量维数d=16,乘积量化参数m=4,k*=8时计算查询向量x与数据集中向量y的距离的例子。Figure3APQdistancecomputingexample图3PQ距离计算示例图Figure4Ascalarquantizationcomputingexample图4标量量化计算示例图4.2HNSWSQ算法标量量化(SQ)对向量的每一维量化,分层可通航小世界标量量化HNSWSQ(HierarchicalNaviga-bleSmallWorldScalarQuantization)算法采用最大最小量化。对于向量的第i维,通过样本集训练获取该维出现的最大值vmax[i]和最小值vmin[i],然后将向量x第i维的值量化为(xi-vmin[i])/(vmax[i]),i=1,…,n,量化后的值编码存储,假设每一维编码为1个字节,则进一步处理为:f(xi)=φxi-vmin[i]vmax[i()]*255(3)其中,φ(x)=1,x≥1x,0<x<10,x≤烅烄烆0,·表示向下取整。标量量化计算示例如图4所示。从图4可以看到,对于4维的原始向量,每一维编码为1个字节,则编码后向量长度为4字节,相比于编码前的16
本文编号:3007455
【文章来源】:计算机工程与科学. 2019,41(04)北大核心
【文章页数】:8 页
【部分图文】:
图1HNSW算法查找过程Figure1SearchprocessoftheHNSWalgorithm
128维,设置乘积量化的参数为m=16,k*=256,则每个向量被量化为16个字节,相比于原始的128*4=512字节,理论上内存消耗最多降低为原来的1/32,如图2所示。HNSWPQ算法将HNSW算法作为索引算法,采用PQ算法进行向量编码,由于使用PQ算法对原始向量编码,需要将HNSW算法插入过程中与近邻点距离的计算相应地修改为PQ的距离计算。Figure2APQquantizationexample图2PQ量化示例图数据集中的向量被编码后存储在内存中,每个向量根据子向量最近邻中心点的编号编码。李秋珍等:量化编码的分层可通航小世界图算法126
HNSW算法构建索引计算查询向量与图中点y的距离时,首先计算查询向量每个子向量与对应分段中心点的距离表,然后根据y的编码查表获得d(x,y)的近似值。图3是向量维数d=16,乘积量化参数m=4,k*=8时计算查询向量x与数据集中向量y的距离的例子。Figure3APQdistancecomputingexample图3PQ距离计算示例图Figure4Ascalarquantizationcomputingexample图4标量量化计算示例图4.2HNSWSQ算法标量量化(SQ)对向量的每一维量化,分层可通航小世界标量量化HNSWSQ(HierarchicalNaviga-bleSmallWorldScalarQuantization)算法采用最大最小量化。对于向量的第i维,通过样本集训练获取该维出现的最大值vmax[i]和最小值vmin[i],然后将向量x第i维的值量化为(xi-vmin[i])/(vmax[i]),i=1,…,n,量化后的值编码存储,假设每一维编码为1个字节,则进一步处理为:f(xi)=φxi-vmin[i]vmax[i()]*255(3)其中,φ(x)=1,x≥1x,0<x<10,x≤烅烄烆0,·表示向下取整。标量量化计算示例如图4所示。从图4可以看到,对于4维的原始向量,每一维编码为1个字节,则编码后向量长度为4字节,相比于编码前的16
本文编号:3007455
本文链接:https://www.wllwen.com/kejilunwen/sousuoyinqinglunwen/3007455.html