1.一种基于编码可导航伸展图的近邻文档搜索方法,其特征在于该方法包含以下步骤:
(1)对海量文档进行语义向量化;
(2)将得到的海量文档向量通过归一化编码进行压缩存储;
(3)基于归一化编码存储的海量文档向量建立编码可导航伸展图;
(4)在编码可导航伸展图上对查询文档进行近邻文档搜索;
步骤(1)所述的对海量文档进行语义向量化的结果是得到海量文档对应的海量文档向量S,S表示为:
S={vi|i=0,1,…,N‑1}上式中vi为第i个文档对应的向量,N为文档向量的个数;
步骤(3)所述的在归一化编码存储的海量文档向量上建立编码可导航伸展图的过程,该过程载入的是经步骤(2)归一化编码后的海量文档向量,也就是encodeS,采用的距离计算方式为欧式距离,在需要计算距离的地方将涉及到的归一化编码后的海量文档向量进行解码还原,之后再进行距离计算,解码还原公式为:其中i=0,1,…,N‑1,j=0,1,…,dim‑1,dim为文档向量的维度,encodevi[j]表示文档向量vi的第j维编码,vrange[j]表示第j维区间范围向量,vmin[j]表示第j维最小值向量,c表示将每一维编码为c个字节;
步骤(4)的具体过程为:
(4‑1)将查询文档经语义向量化得出查询文档向量q;
(4‑2)查询文档向量q在编码可导航伸展图上从导航点开始执行贪婪搜索,候选池尺寸设为L,查询过程中对候选池中的文档向量实时按与查询文档向量的余弦距离进行降序排序,查询结束时返回候选池中前K个文档向量,K<L,即对应为与查询文档语义最接近的TopK个文档。
2.根据权利要求1所述的一种基于编码可导航伸展图的近邻文档搜索方法,其特征在于,步骤(2)的具体过程为:
(2‑1)遍历S中的每一个向量,分别计算出每一维的最大值jmax和最小值jmin,从而得到最大值向量vmax和最小值向量vmin,即最大值表示为:vmax=[0max,1max,…,(dim‑1)max]最小值表示为:
vmin=[0min,1min,…,(dim‑1)min](2‑2)将各维的最大值减去相应的最小值得到各维的区间范围jrange,计算式为:jrange=jmax‑jmin从而得到区间范围向量vrange,具体表示为:vrange=[0range,1range,…,(dim‑1)range](2‑3)通过vmin和vrange归一化S中的每一个文档向量vi得到相应的归一化向量normvi,对vi的第j维vi[j]进行归一化的具体公式为:(2‑4)将归一化后的文档向量normvi进行编码存储,具体编码大小根据normvi各维具体取值情况确定,对第j维编码的公式表示为:其中c表示将每一维编码为c个字节,归一化编码后的S记为encodeS;
(2‑5)归一化编码后,将S的vmin、vrange和encodeS以二进制格式写入同一个文件存储。
3.根据权利要求1所述的一种基于编码可导航伸展图的近邻文档搜索方法,其特征在于,步骤(4‑2)所述的查询文档向量在编码可导航伸展图上从导航点开始执行贪婪搜索的过程,查询前载入的是经步骤(2)归一化编码后的海量文档向量,查询过程中采用的距离计算方式为余弦距离,在计算余弦距离前先将涉及到的归一化编码后的海量文档向量进行解码还原。