CN117312325B - 基于知识蒸馏的量化索引构建方法、装置及设备 - Google Patents
基于知识蒸馏的量化索引构建方法、装置及设备 Download PDFInfo
- Publication number
- CN117312325B CN117312325B CN202311595158.3A CN202311595158A CN117312325B CN 117312325 B CN117312325 B CN 117312325B CN 202311595158 A CN202311595158 A CN 202311595158A CN 117312325 B CN117312325 B CN 117312325B
- Authority
- CN
- China
- Prior art keywords
- sample
- query vector
- quantized
- nearest neighbors
- target
- 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.)
- Active
Links
- 238000013139 quantization Methods 0.000 title claims abstract description 175
- 238000013140 knowledge distillation Methods 0.000 title claims abstract description 62
- 238000010276 construction Methods 0.000 title claims abstract description 42
- 239000013598 vector Substances 0.000 claims abstract description 232
- 238000012549 training Methods 0.000 claims abstract description 99
- 238000000034 method Methods 0.000 claims abstract description 77
- 230000006870 function Effects 0.000 claims description 93
- 239000011159 matrix material Substances 0.000 claims description 44
- 230000015654 memory Effects 0.000 claims description 17
- 238000010606 normalization Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 11
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 238000007418 data mining Methods 0.000 abstract description 2
- 238000004821 distillation Methods 0.000 description 22
- 238000004590 computer program Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000452 restraining effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24147—Distances to closest patterns, e.g. nearest neighbour classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于知识蒸馏的量化索引构建方法、装置及设备,可以应用于人工智能、计算机以及数据挖掘技术领域。该方法包括:将目标查询向量输入目标低维索引模型,以便执行以下操作:基于初始量化码本,分别对目标查询向量进行量化,输出量化查询向量,其中,初始量化码本预先存储在查询数据库中,目标低维索引模型是基于高维索引模型和目标损失函数训练得到的,目标损失函数包括知识蒸馏损失函数,量化查询向量用于表征目标查询向量的压缩表示;根据量化查询向量,更新初始量化码本,得到目标量化码本;以及根据目标量化码本对查询数据库进行编码,以使完成量化索引的构建。
Description
技术领域
本发明涉及人工智能、计算机以及数据挖掘技术领域,尤其涉及基于知识蒸馏的量化索引构建方法、装置及设备。
背景技术
随着数据规模的快速变大,相似近邻搜索技术已经被广泛地应用于推荐系统、信息检索、文档匹配等场景中。一般地,由于数据规模庞大,例如在电商场景中物品数量超过千万级,对所有物品遍历计算会消耗大量的计算和存储资源,一方面计算机内存、加速器显存(即GPU、TPU加速器)无法存储下这些数量庞大的样本,另一方面由于物品由较高纬度的特征进行表示,对所有物品进行计算时间开销过高。
在实施本发明的过程中发现,解决上述计算和存储资源问题的一种方案是通过扩大计算资源,比如更换内存更大的处理器、采用多卡并行等方案,存储数量庞大的物品。另一种更为直观的方案是相似近邻搜索技术,通过索引结构存储高维向量,为查询向量近似计算出最近邻居,从而大大降低时间和空间开销,提高计算资源利用率。然而,现有相似近邻搜索技术中存在存储向量空间花费大,搜索召回率低的问题。
发明内容
鉴于上述问题,本发明提供了一种基于知识蒸馏的量化索引构建方法、设备、介质和程序产品。
根据本发明的第一个方面,提供了一种基于知识蒸馏的量化索引构建方法,包括:将目标查询向量输入目标低维索引模型,以便执行以下操作:基于初始量化码本,对目标查询向量进行量化,输出量化查询向量,其中,初始量化码本预先存储在查询数据库中,目标低维索引模型是基于高维索引模型和目标损失函数训练得到的,目标损失函数包括知识蒸馏损失函数,量化查询向量用于表征目标查询向量的压缩表示;根据量化查询向量,更新初始量化码本,得到目标量化码本;以及根据目标量化码本对查询数据库进行编码,以使完成量化索引的构建。
根据本发明的实施例,目标低维索引模型的训练方法包括:根据高维索引模型和预设相似函数,在用于训练的数据库的数据点集中确定样本查询向量的K个样本相似最近邻居和K个样本相似最近邻居之间的第一排序,其中,K为大于等于2的整数,第一排序是按照K个初始相似最近邻居与初始查询向量的距离从近到远排列的;将样本查询向量和K个样本相似最近邻居输入初始低维索引模型,以便执行以下操作:基于初始化的量化码本,分别对样本查询向量和K个样本相似最近邻居进行量化,输出量化样本查询向量和K个量化样本相似最近邻居,其中,初始化的量化码本预先存储在用于训练的数据库中;根据量化样本查询向量、K个量化样本相似最近邻居以及知识蒸馏损失函数,对初始低维索引模型进行训练;在确定K个量化相似最近邻居与样本查询向量的距离从近到远排列的第二排序与第一排序保持不变或训练次数达到预设训练轮次的情况下,训练得到目标低维索引模型。
根据本发明的实施例,根据量化样本查询向量、K个量化样本相似最近邻居以及知识蒸馏损失函数,对初始低维索引模型进行训练,包括:将量化样本查询向量以及K个量化样本相似最近邻居输入知识蒸馏损失函数,输出知识蒸馏损失值;根据知识蒸馏损失值,确定第二排序与第一排序是否保持不变;在确定第二排序与第一排序发生改变的情况下,根据量化样本查询向量和K个量化样本相似最近邻居,更新初始化的量化码本,得到更新后的量化码本;基于更新后的量化码本与样本查询向量和K个样本相似最近邻居,重新确定新的量化样本查询向量以及K个新的量化样本相似最近邻居,直至在确定第二排序与第一排序保持不变或训练次数达到预设训练轮次为止。
根据本发明的实施例,目标损失函数还包括重构损失函数;目标低维索引模型的训练方法还包括:根据量化样本查询向量、K个量化样本相似最近邻居以及重构损失函数,对初始低维索引模型进行训练;
在确定K个量化相似最近邻居在量化前后的相似度达到预设相似度或训练次数达到预设训练轮次的情况下,训练得到目标低维索引模型。
根据本发明的实施例,目标损失函数还包括预设算法约束函数;
目标低维索引模型的训练方法还包括:根据量化样本查询向量、K个量化样本相似最近邻居以及预设算法约束函数,对初始低维索引模型进行训练;在确定K个量化相似最近邻居以量化样本查询向量为唯一中心,每次训练中K相同或训练次数达到预设训练轮次的情况下,训练得到目标低维索引模型。
根据本发明的实施例,基于初始化的量化码本,分别对样本查询向量和K个样本相似最近邻居进行量化,输出量化样本查询向量和K个量化样本相似最近邻居,包括:基于初始化的量化码本,分别确定样本查询向量对应的第一样本相似度矩阵和K个样本相似最近邻居对应的第二样本相似度矩阵;分别基于第一样本相似度矩阵和第二样本相似度矩阵,对样本查询向量和K个样本相似最近邻居分别进行编码,得到编码后的样本查询向量和K个编码后的样本相似最近邻居;分别根据编码后的样本查询向量和K个编码后的样本相似最近邻居,对初始化的量化码本进行索引重构,分别得到量化样本查询向量和K个量化样本相似最近邻居。
根据本发明的实施例,分别基于第一样本相似度矩阵和第二样本相似度矩阵,对样本查询向量和K个样本相似最近邻居分别进行编码,得到编码后的样本查询向量和K个编码后的样本相似最近邻居,包括:利用预设归一化函数和第一样本相似度矩阵,确定第一样本分布概率;基于第一样本分布概率,对样本查询向量进行编码,得到编码后的样本查询向量;利用预设归一化函数和第二样本相似度矩阵,确定第二样本分布概率;基于第二样本分布概率,对K个样本相似最近邻居进行编码,得到K个编码后的样本相似最近邻居。
根据本发明的实施例,基于初始量化码本,分别对目标查询向量进行量化,输出量化查询向量,包括:根据目标查询向量和初始量化码本,确定相似度矩阵;利用预设归一化函数和相似度矩阵,确定分布概率;基于分布概率,对目标查询向量进行编码,得到编码后的目标查询向量;根据编码后的目标查询向量,对初始量化码本进行索引重构,得到量化查询向量。
本发明的第二方面提供了一种基于知识蒸馏的量化索引构建装置,包括:处理模块,用于将目标查询向量输入目标低维索引模型,以便执行以下操作:基于初始量化码本,分别对目标查询向量进行量化,输出量化查询向量,其中,初始量化码本预先存储在查询数据库中,目标低维索引模型是基于高维索引模型和目标损失函数训练得到的,目标损失函数包括知识蒸馏损失函数,量化查询向量用于表征目标查询向量的压缩表示;更新模块,用于根据量化查询向量,更新初始量化码本,得到目标量化码本;以及编码模块,用于根据目标量化码本对查询数据库进行编码,以使完成量化索引的构建。
本发明的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述基于知识蒸馏的量化索引构建方法。
本发明的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述基于知识蒸馏的量化索引构建方法。
本发明的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述基于知识蒸馏的量化索引构建方法。
根据本发明的实施例,高维索引模型具有搜索准确率高,存储空间消耗大的特点。现有低维索引结构具有存储空间小,搜索效率高,准确率低的特点。通过知识蒸馏的方法,基于高维索引模型和知识蒸馏损失函数训练得到目标低维索引模型。目标低维索引模型同时具备高维索引模型的搜索准确率高和现有低维索引结构的存储空间小,搜索效率高的优点,能够使得索引构建更加准确,极大地提高了搜索阶段的召回率,能够解决学习索引时缺少来自查询向量监督信息的问题。此外,本发明提供的基于知识蒸馏的量化索引构建方法适用于多种场景,如图像检索、文档匹配和物品召回等。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示出了根据本发明实施例的基于知识蒸馏的量化索引构建方法、装置、设备、介质和程序产品的应用场景图;
图2示出了根据本发明实施例的基于知识蒸馏的量化索引构建方法的流程图;
图3示出了根据本发明实施例的目标低维索引模型的训练方法的流程图;
图4示出了根据本发明另一实施例的目标低维索引模型的训练方法的流程图;
图5示出了根据本发明实施例的基于初始量化码本,分别对目标查询向量进行量化,输出量化查询向量的方法流程图;
图6示出了根据本发明实施例的基于知识蒸馏的量化索引构建方法的结构框图;以及
图7示出了根据本发明实施例的适于实现基于知识蒸馏的量化索引构建方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本发明实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本发明的技术方案中,所涉及的用户信息(包括但不限于用户个人信息、用户图像信息、用户设备信息,例如位置信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、存储、使用、加工、传输、提供、发明和应用等处理,均遵守相关国家和地区的相关法律法规和标准,采取了必要保密措施,不违背公序良俗,并提供有相应的操作入口,供用户选择授权或者拒绝。
在本发明实施例的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
在实施本发明的过程中发现,现有相似近邻技术根据索引结构可分为两类,第一类是非压缩的索引结构,如基于图的方法:层次局部图索引,图的每个结点代表每个高维向量,相似向量之间连接边,查询时通过广度优先搜索策略进行束搜索,查找相似的最近邻居。第二类是压缩的索引结构,搜索中不需要读取存储器中原始高纬度向量,能够快速搜索向量并节省运算空间,包含基于哈希,树和量化的三种相似近邻搜索结构。尽管这类压缩技术可以实现高效压缩,但是搜索的效果不佳。其中,基于哈希的索引结构,比如局部敏感哈希,由于索引结构简单,无法存储相同编码中原始向量的不同特点,导致搜索结构不够准确;基于树的相似近邻搜索结构,能够在搜索效率方面达到对数级提升,但是这类算法依然需要大量的训练数据建立索引结构,同时依赖于复杂的模型推理结果,会占据大量的存储开销,即计算机内存(CPU)、加速器显存(GPU)等,尤其是当数据具有丰富的结构化或非结构化特征,比如推荐系统中物品的描述性文本、物品的属性特征等;基于乘积量化的索引结构,该方法是在聚类的基础上,类中心点对应量化中的码本和码字,码本是码字的集合。乘积量化将高维向量表示为多个码字的笛卡尔积,仅需存储码本以及高维向量对应的编码。搜索时通过计算查询向量和码字的距离即可,能够极大地缩减查询时间和存储空间。
针对基于乘积量化的相似近邻搜索方法,已有的向量量化的方法如乘积量化(PQ)、改进的乘积量化方法(OPQ)和向量相似性搜索库(ScaNN),由于查询和存储高效,在相似近邻搜索中发挥着重要的作用。但是,由于构建索引时无法较好地利用查询向量和数据库中数据点之间的关系,仅凭借数据库中数据点之间的距离关系进行索引构建,导致无法获得较好的召回结果。
为了解决上述提及的无法获得较好的召回结果的问题,一些基于交互信息(0-1矩阵)的向量量化方法如检索模型RepCONC和DistillVQ被提出。利用用户物品的交互信息作为监督信号,端到端地联合学习用户和物品编码器与量化码本。量化的基本框架由B个码本构成,每个码本中由W个D维的向量构成,也就是码字。码本中与物品向量最相似的码本组合,构成该物品的压缩表示。通过提前计算查询向量和码字的相似得分,查询向量和物品的近似得分可通过查询表快速得到,代替复杂的矩阵计算。相比于原来的策略,在量化方法中,仅仅码本和物品的编码需要存储,极大地减少了存储消耗。这样的编码策略能与倒排表相结合,避免遍历搜索。但是,这些方法普遍存在两个局限性。一个是他们需要用到用户物品交互信息,但是交互信息具有稀疏性,因此在学习过程中受到数据的影响较大,导致量化方法在召回的准确率上提升效果不显著。另一个是由于数据分配的不平衡性,在推荐系统等众多应用场景中,数据呈长尾分布,不利于平衡索引的构建,导致在搜索过程中需要花费大量时间,拖慢模型的检索速率。
本发明的实施例提供了一种基于知识蒸馏的量化索引构建方法、装置及设备。该方法包括:将目标查询向量输入目标低维索引模型,以便执行以下操作:基于初始量化码本,分别对目标查询向量进行量化,输出量化查询向量,其中,初始量化码本预先存储在查询数据库中,目标低维索引模型是基于高维索引模型和目标损失函数训练得到的,目标损失函数包括知识蒸馏损失函数,量化查询向量用于表征目标查询向量的压缩表示;根据量化查询向量,更新初始量化码本,得到目标量化码本;以及根据目标量化码本对查询数据库进行编码,以使完成量化索引的构建。
图1示出了根据本发明实施例的基于知识蒸馏的量化索引构建方法、装置、设备、介质和程序产品的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括第一终端设备101、第二终端设备102、第三终端设备103、网络104以及服务器105。网络104用以在第一终端设备101、第二终端设备102、第三终端设备103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用第一终端设备101、第二终端设备102、第三终端设备103中的至少一个通过网络104与服务器105交互,以接收或发送消息等。第一终端设备101、第二终端设备102、第三终端设备103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
第一终端设备101、第二终端设备102、第三终端设备103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用第一终端设备101、第二终端设备102、第三终端设备103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本发明实施例所提供的基于知识蒸馏的量化索引构建方法一般可以由服务器105执行。相应地,本发明实施例所提供的基于知识蒸馏的量化索引构建装置一般可以设置于服务器105中。本发明实施例所提供的基于知识蒸馏的量化索引构建方法也可以由不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群执行。相应地,本发明实施例所提供的基于知识蒸馏的量化索引构建装置也可以设置于不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的第一终端设备、第二终端设备、第三终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的第一终端设备、第二终端设备、第三终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图5对发明实施例的基于知识蒸馏的量化索引构建方法进行详细描述。
图2示出了根据本发明实施例的基于知识蒸馏的量化索引构建方法的流程图。
如图2所示,该实施例的基于知识蒸馏的量化索引构建方法200包括操作S210~操作S230。
在操作S210,将目标查询向量输入目标低维索引模型,以便执行以下操作:基于初始量化码本,对目标查询向量进行量化,输出量化查询向量,其中,初始量化码本预先存储在查询数据库中,目标低维索引模型是基于高维索引模型和目标损失函数训练得到的,目标损失函数包括知识蒸馏损失函数,量化查询向量用于表征目标查询向量的压缩表示。
根据本发明的实施例,目标查询向量可以根据实际查询的情况确定。高维索引模型可以是具有高维度索引结构的模型,例如,层次局部图索引。初始量化码本可以是初始化后预先存储在查询数据库中的。
根据本发明的实施例,可以通过从高维索引模型得到相似最近邻居,将这些相似最近邻居作为监督信息,代替现实场景中稀疏的用户物品交互矩阵,结合知识蒸馏损失函数训练得到目标低维索引模型。
在操作S220,根据量化查询向量,更新初始量化码本,得到目标量化码本。
根据本发明的实施例,可以根据量化查询向量,确定新的量化码本,将初始量化码本更新为新的量化码本,新的量化码本作为目标量化码本。
在操作S230,根据目标量化码本对查询数据库进行编码,以使完成量化索引的构建。
根据本发明的实施例,可以从目标量化码本中选择与查询数据库相匹配的码本进行编码,得到构建好的量化索引。
根据本发明实施例,高维索引模型具有搜索准确率高,存储空间消耗大的特点。现有低维索引结构具有存储空间小,搜索效率高,准确率低的特点。通过知识蒸馏的方法,基于高维索引模型和知识蒸馏损失函数训练得到目标低维索引模型。目标低维索引模型同时具备高维索引模型的搜索准确率高和现有低维索引结构的存储空间小,搜索效率高的优点,能够使得索引构建更加准确,极大地提高了搜索阶段的召回率,能够解决学习索引时缺少来自查询向量监督信息的问题。此外,本发明提供的基于知识蒸馏的量化索引构建方法适用于多种场景,如图像检索、文档匹配和物品召回等。
图3示出了根据本发明实施例的目标低维索引模型的训练方法的流程图。
如图3所示,该实施例的目标低维索引模型的训练方法300包括操作S310~操作S340。
在操作S310,根据高维索引模型和预设相似函数,在用于训练的数据库的数据点集中确定样本查询向量的K个样本相似最近邻居和K个样本相似最近邻居之间的第一排序,其中,K为大于等于2的整数,第一排序是按照K个初始相似最近邻居与初始查询向量的距离从近到远排列的。
根据本发明的实施例,预设相似函数可以为欧氏距离函数、内积和余弦距离函数等。数据库的数据点集中的数据点的个数大于K个。
根据本发明的实施例,可以利用高维索引模型和预设相似函数,搜索输入的样本查询向量的top-K样本相似最近邻居,得到K个样本相似最近邻居和K个样本相似最近邻居之间的第一排序。
在操作S320,将样本查询向量和K个样本相似最近邻居输入初始低维索引模型,以便执行以下操作:基于初始化的量化码本,分别对样本查询向量和K个样本相似最近邻居进行量化,输出量化样本查询向量和K个量化样本相似最近邻居,其中,初始化的量化码本预先存储在用于训练的数据库中。
根据本发明实施例,量化可以包括编码和重构。可以根据初始化的量化码本与样本查询向量的相似度矩阵,确定样本查询向量对应的编码,然后根据编码后的样本查询向量对初始化的量化码本进行索引,得到量化样本查询向量。其中,量化样本查询向量用于表征样本查询向量的压缩表示。
根据本发明实施例,可以根据样本相似最近邻居与初始化的量化码本的相似度矩阵,确定样本相似最近邻居对应的编码,然后根据编码后的样本相似最近邻居对初始化的量化码本进行索引,得到量化样本相似最近邻居。其中,量化样本相似最近邻居用于表征样本相似最近邻居的压缩表示。
在操作S330,根据量化样本查询向量、K个量化样本相似最近邻居以及知识蒸馏损失函数,对初始低维索引模型进行训练。
根据本发明的实施例,可以根据知识蒸馏损失函数,计算量化样本查询向量和K个量化样本相似最近邻居的知识蒸馏损失值。根据知识蒸馏损失值,确定K个量化相似最近邻居与样本查询向量的距离从近到远排列的第二排序与第一排序是否保持不变。
在操作S340,在确定K个量化相似最近邻居与样本查询向量的距离从近到远排列的第二排序与第一排序保持不变或训练次数达到预设训练轮次的情况下,训练得到目标低维索引模型。
根据本发明的实施例,预设训练轮次可以根据实际训练情况的经验而确定。在确定K个量化相似最近邻居与样本查询向量的距离从近到远排列的第二排序与第一排序有变化的情况下,更新初始化的量化码本,再次进行量化,再次确定第二排序与第一排序是否保持不变。
根据本发明实施例,如果利用真实邻居,在大数据集上,存在计算真实邻居时间空间消耗巨大的问题,故本发明通过借助高维索引模型得到相似最近邻居,节省计算真实邻居时间空间的同时,能够提供有效的邻居信息。将这些相似最近邻居作为监督信息,代替现实场景中稀疏的用户物品交互矩阵,训练轻量高效的低维索引模型。通过知识蒸馏的方法,能够训练得到同时具备高维度索引模型和低维索引模型二者的优点的索引结构。利用高维索引召回的相似最近邻居作为监督信息,能够有效利用查询向量和数据库中数据点之间的关系,使得索引构建更加准确,极大地提高了搜索阶段的召回率。
根据本发明的实施例,基于初始化的量化码本,分别对样本查询向量和K个样本相似最近邻居进行量化,输出量化样本查询向量和K个量化样本相似最近邻居,可以包括如下操作。
基于初始化的量化码本,分别确定样本查询向量对应的第一样本相似度矩阵和K个样本相似最近邻居对应的第二样本相似度矩阵;分别基于第一样本相似度矩阵和第二样本相似度矩阵,对样本查询向量和K个样本相似最近邻居分别进行编码,得到编码后的样本查询向量和K个编码后的样本相似最近邻居;分别根据编码后的样本查询向量和K个编码后的样本相似最近邻居,对初始化的量化码本进行索引重构,分别得到量化样本查询向量和K个量化样本相似最近邻居。
根据本发明的实施例,可以将第一样本相似度矩阵或第二样本相似度矩阵通过预设归一化函数归一化,作为分布概率,然后根据分布概率确定最大得分对应的索引,将该索引作为样本查询向量或样本相似最近邻居的编码,得到编码后的样本查询向量或K个编码后的样本相似最近邻居。
例如,可以在GPU上初始化量化码本,初始化的量化码本可以表示为:,其中,/>代表码本个数;/>代表每个码本的中心点个数;/>代表数据向量维度。根据高维索引模型,给定的预设相似函数/>,在用于训练的数据库的数据点集/>中,搜索输入样本查询向量/>的top-K (K<M)样本相似最近邻居/>。
对样本查询向量及其样本相似最近邻居/>进行量化。需要说明的是,该实施例统一将样本查询向量和样本相似最近邻居都写作/>。对/>进行量化可以分为两步:编码和重构。
编码时先计算得到输入和初始化的量化码本/>的相似度矩阵,通过softmax函数归一化,作为分布概率。根据相似度矩阵取最大得分对应的索引作为该样本查询向量/>在该量化码本的编码,其中。该索引对应的0-1表示为/>。该过程可以表示为如下式(1)所示:
(1)
根据编码对该量化码本中的码本进行索引,得到/>在该量化码本中的压缩表示/>。将B个码本中的压缩表示相加,得到/>对应的最终压缩表示/>,将/>和最终压缩表示/>输入到均方误差损失函数中,该过程可以表示为如下式(2)~(3)所示:
(2)
(3)
量化过程可以用表示为如下式(4)所示:
(4)
根据本发明实施例,通过样本相似度矩阵,对样本查询向量和K个样本相似最近邻居分别进行编码,编码后进行索引重构,能够得到量化样本查询向量和K个量化样本相似最近邻居,有利于对初始低维索引模型进行训练,得到目标低维索引模型。
根据本发明的实施例,分别基于第一样本相似度矩阵和第二样本相似度矩阵,对样本查询向量和K个样本相似最近邻居分别进行编码,得到编码后的样本查询向量和K个编码后的样本相似最近邻居,可以包括如下操作。
利用预设归一化函数和第一样本相似度矩阵,确定第一样本分布概率;基于第一样本分布概率,对样本查询向量进行编码,得到编码后的样本查询向量;利用预设归一化函数和第二样本相似度矩阵,确定第二样本分布概率;基于第二样本分布概率,对K个样本相似最近邻居进行编码,得到K个编码后的样本相似最近邻居。
根据本发明的实施例,预设归一化函数可以包括softmax函数。
根据本发明实施例,利用预设归一化函数和第一样本相似度矩阵,确定第一样本分布概率。基于第一样本分布概率,对样本查询向量进行编码,有利于进行索引重构得到量化样本查询向量和K个量化样本相似最近邻居,进而有利于对初始低维索引模型进行训练,得到目标低维索引模型。
根据本发明的实施例,根据量化样本查询向量、K个量化样本相似最近邻居以及知识蒸馏损失函数,对初始低维索引模型进行训练,可以包括如下操作。
将量化样本查询向量以及K个量化样本相似最近邻居输入知识蒸馏损失函数,输出知识蒸馏损失值;根据知识蒸馏损失值,确定第二排序与第一排序是否保持不变;在确定第二排序与第一排序发生改变的情况下,根据量化样本查询向量和K个量化样本相似最近邻居,更新初始化的量化码本,得到更新后的量化码本;基于更新后的量化码本与样本查询向量和K个样本相似最近邻居,重新确定新的量化样本查询向量以及K个新的量化样本相似最近邻居,直至在确定第二排序与第一排序保持不变或训练次数达到预设训练轮次为止。
根据本发明的实施例,知识蒸馏损失函数可以如下式(5)~(7)所示:
(5)
其中,;/>表示交换第i个向量和第j个向量后的变化。
(6)
其中,;/>;/>。
(7)
其中, ;/> 。
根据本发明的实施例,在确定蒸馏损失值满足第一预设损失范围的情况下,确定第二排序与第一排序保持不变;或在确定蒸馏损失值不满足第一预设损失范围的情况下,分别对量化样本查询向量和K个初始相似最近邻居,重复进行编码以及量化后确定新的蒸馏损失值,直到新的蒸馏损失值满足第一预设损失范围为止;或在确定蒸馏损失值不满足第一预设损失范围的情况下,分别对初始查询向量和K个初始相似最近邻居,重复进行编码以及量化,直到达到预设训练轮次的情况下为止。其中,第一预设损失范围可以根据实际经验确定。
根据本发明实施例,通过知识蒸馏,为轻量索引提供监督信息是指,在训练过程中,通过高维索引模型得到样本查询向量的样本相似最近邻居,将样本查询向量和其样本相似最近邻居作为模型的输入,设计蒸馏损失使得量化前后的向量与查询向量的相似度排序保持不变,优化蒸馏损失更新码本。
图4示出了根据本发明另一实施例的目标低维索引模型的训练方法的流程图。
如图4所示,该实施例的目标低维索引模型的训练方法400除包括操作S310~操作S340之外,还可以包括操作S410~操作S420。
在操作S410,根据量化样本查询向量、K个量化样本相似最近邻居以及重构损失函数,对初始低维索引模型进行训练。
在操作S420,在确定K个量化相似最近邻居在量化前后的相似度达到预设相似度或训练次数达到预设训练轮次的情况下,训练得到目标低维索引模型。
根据本发明的实施例,目标损失函数还可以包括重构损失函数。其中,目标损失函数可以用于约束用于训练的数据库的数据点在量化前后相似度较高,使得不同数据点划分到不同中心点,进一步得到有差异的码本。重构损失函数可以包括均方误差损失函数。
根据本发明的实施例,可以根据均方误差损失函数、样本查询向量和K个样本量化相似最近邻居,确定量化损失值;在确定量化损失值满足第二预设损失范围的情况下,确定K个样本量化相似最近邻居与样本查询向量的距离从近到远排列的第二排序与第一排序保持不变;或在确定蒸馏损失值不满足第二预设损失范围,且达到预设迭代次数的情况下,确定K个样本量化相似最近邻居与样本查询向量的距离从近到远排列的第二排序与第一排序保持不变。
根据本发明的实施例,在目标低维索引模型的训练过程中,可以每次从数据集中,即数据库向量(可以存储在CPU或者是硬盘中),选择训练批次大小的样本查询向量进行训练,这些样本查询向量作为输入向量输入到模型中。具体地,对该训练批次的样本查询向量依次通过蒸馏和分配(可以在GPU上进行)得到编码和压缩表示,进而计算这些样本查询向量的重构误差和蒸馏损失。
例如,重构损失函数可以如下式(8)所示:
(8)
根据本发明实施例,蒸馏损失能够保证邻居信息,但无法约束不相似的数据点分配到不同编码,因此模型需要平衡策略约束达到此目的。为使数据点尽可能平衡分配,本发明使用重构损失,约束数据点在量化前后相似度较高,使得不同数据点划分到不同中心点,进一步得到有差异的码本。
根据本发明的实施例,目标损失函数除可以包括重构损失函数之外,还可以包括预设算法约束函数。
根据本发明的实施例,目标低维索引模型的训练方法还可以包括如下操作。
根据量化样本查询向量、K个量化样本相似最近邻居以及预设算法约束函数,对初始低维索引模型进行训练;在确定K个量化相似最近邻居以量化样本查询向量为唯一中心,每次训练中K相同或训练次数达到预设训练轮次的情况下,训练得到目标低维索引模型。
根据本发明的实施例,预设算法约束函数可以用于约束概率分配矩阵的每行每列的和具有相同值,依次约束数据点近似平均地分配到不同地编码上。其中,概率分配矩阵是指数据点与码本的相似度矩阵,预设算法约束函数可以是Sinkhorn-Knopp算法。
需要说明的是,在概率分配矩阵上使用Sinkhorn-Knopp算法,可以保证数据点尽可能分配均衡。
例如,Sinkhorn-Knopp约束可以表示为如下式(9)所示:
(9)
其中,表示数据点是否被分配到第/>个中心点上,约束中第一个条件表示每个数据点只选择一个中心点,第二个条件表示每个中心点上分配的数据点数量尽可能相同。
根据本发明实施例,考虑到蒸馏损失能够保证邻居信息,但无法约束不相似的数据点分配到不同编码,在只有最近邻居作为监督信号的情况下,仅使用蒸馏损失会导致模型坍塌,因此为使数据点尽可能平衡分配,本发明应用了两种平衡策略,如重构损失和算法约束达到此目的,不同数据点的索引能够有区分,避免模型坍塌。在保证邻居信息不被破坏的同时,有效分配数据点到不同编码,在召回阶段能够更加快速地召回数据点,大大减少占用资源(内存、显存)的时间。
图5示出了根据本发明实施例的基于初始量化码本,分别对目标查询向量进行量化,输出量化查询向量的方法流程图。
如图5所示,该实施例的基于初始量化码本,分别对目标查询向量进行量化,输出量化查询向量的方法510包括操作S511~操作S514。
在操作S511,根据目标查询向量和初始量化码本,确定相似度矩阵。
在操作S512,利用预设归一化函数和相似度矩阵,确定分布概率。
在操作S513,基于分布概率,对目标查询向量进行编码,得到编码后的目标查询向量。
在操作S514,根据编码后的目标查询向量,对初始量化码本进行索引重构,得到量化查询向量。
根据本发明的实施例,通过计算得到目标查询向量和初始量化码本的相似度矩阵。通过预设归一化函数,对相似度矩阵进行归一化,得到分布概率。选取分布概率最大的相似度矩阵对应的索引作为目标查询向量的编码,得到编码后的目标查询向量。
根据本发明实施例,基于初始量化码本对目标查询向量进行编码和索引重构的量化,使得准确输出量化查询向量。基于量化查询向量对查询数据库进行编码,构建的量化索引,能够提高搜索阶段的召回率,提高搜索准确率,搜索效率高以及能够解决搜索问题中存储向量空间花费大的问题。
根据本发明的实施例,本发明基于知识蒸馏的量化索引构建方法的主要框架是知识蒸馏和量化重构,为了解决学习索引时缺少来自查询向量监督信息和分配数据点不平衡的问题,本发明提供了知识蒸馏为轻量索引提供监督信息的方法和两种平衡分配数据点的更新策略。其中,通过知识蒸馏为轻量索引提供监督信息是指,在训练过程中,通过高维索引模型得到查询向量的相似最近邻居,将查询向量和其相似最近邻居作为模型的输入,设计蒸馏损失使得量化前后的向量与查询向量的相似度排序保持不变,优化蒸馏损失更新码本。利用训练好的码本,对数据库中的向量进行编码,在搜索任务中,用搜索计算库IVF(Inverted File System)或集中托管式数据应用中心ADC(Application data center)的方式进行检索。
根据本发明的实施例,在训练目标低维索引模型的过程中,更新码本可以采用两种方式:迭代式和可微式。其中,迭代式和可微式的不同之处在于为数据点分配索引后,是否有重新分配的步骤。由于重新分配会阻碍梯度传播,因此只能通过迭代式的方法更新中心点;而可微式没有重新分配索引的步骤,能够根据后向传播梯度优化中心点。根据实际场景的需求可选择不同的学习方式。通过迭代式和可微式两种码本更新方法,训练得到的目标低维索引模型,能够广泛应用于多种不同场景。
基于上述基于知识蒸馏的量化索引构建方法,本发明还提供了一种基于知识蒸馏的量化索引构建装置。以下将结合图6对该装置进行详细描述。
图6示出了根据本发明实施例的基于知识蒸馏的量化索引构建装置的结构框图。
如图6所示,该实施例的基于知识蒸馏的量化索引构建装置600包括处理模块610、更新模块620和编码模块630。
处理模块610用于将目标查询向量输入目标低维索引模型,以便执行以下操作:基于初始量化码本,分别对目标查询向量进行量化,输出量化查询向量,其中,初始量化码本预先存储在查询数据库中,目标低维索引模型是基于高维索引模型和目标损失函数训练得到的,目标损失函数包括知识蒸馏损失函数,量化查询向量用于表征目标查询向量的压缩表示。在一实施例中,处理模块610可以用于执行前文描述的操作S210,在此不再赘述。
更新模块620用于根据量化查询向量,更新初始量化码本,得到目标量化码本。在一实施例中,更新模块620可以用于执行前文描述的操作S220,在此不再赘述。
编码模块630用于根据目标量化码本对查询数据库进行编码,以使完成量化索引的构建。在一实施例中,编码模块630可以用于执行前文描述的操作S230,在此不再赘述。
根据本发明的实施例,处理模块610、更新模块620和编码模块630中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,处理模块610、更新模块620和编码模块630中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,处理模块610、更新模块620和编码模块630中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图7示出了根据本发明实施例的适于实现基于知识蒸馏的量化索引构建方法的电子设备的方框图。
如图7所示,根据本发明实施例的电子设备700包括处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中,存储有电子设备700操作所需的各种程序和数据。处理器 701、ROM702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行根据本发明实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在一个或多个存储器中的程序来执行根据本发明实施例的方法流程的各种操作。
根据本发明的实施例,电子设备700还可以包括输入/输出(I/O)接口705,输入/输出(I/O)接口705也连接至总线704。电子设备700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/方法/系统中所包含的;也可以是单独存在,而未装配入该设备/方法/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本发明实施例的方法。
根据本发明的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、方法或者器件使用或者与其结合使用。例如,根据本发明的实施例,计算机可读存储介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
本发明的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本发明实施例所提供的方法。
在该计算机程序被处理器701执行时执行本发明实施例的系统/方法中限定的上述功能。根据本发明的实施例,上文描述的系统、方法、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分709被下载和安装,和/或从可拆卸介质711被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本发明实施例的系统中限定的上述功能。根据本发明的实施例,上文描述的系统、设备、方法、模块、单元等可以通过计算机程序模块来实现。
根据本发明的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本发明的各个实施例中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。
以上对本发明的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本发明的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。不脱离本发明的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本发明的范围之内。
Claims (9)
1.一种基于知识蒸馏的量化索引构建方法,其特征在于,所述方法包括:
将目标查询向量输入目标低维索引模型,以便执行以下操作:
基于初始量化码本,对所述目标查询向量进行量化,输出量化查询向量,其中,所述初始量化码本预先存储在查询数据库中,所述目标低维索引模型是基于高维索引模型和目标损失函数训练得到的,目标损失函数包括知识蒸馏损失函数,所述量化查询向量用于表征所述目标查询向量的压缩表示;
根据所述量化查询向量,更新所述初始量化码本,得到目标量化码本;以及
根据所述目标量化码本对所述查询数据库进行编码,以使完成量化索引的构建;
其中,所述目标低维索引模型的训练方法包括:
根据所述高维索引模型和预设相似函数,在用于训练的数据库的数据点集中确定样本查询向量的K个样本相似最近邻居和K个所述样本相似最近邻居之间的第一排序,其中,K为大于等于2的整数,所述第一排序是按照K个初始相似最近邻居与初始查询向量的距离从近到远排列的;
将所述样本查询向量和K个所述样本相似最近邻居输入初始低维索引模型,以便执行以下操作:
基于初始化的量化码本,分别对所述样本查询向量和K个所述样本相似最近邻居进行量化,输出量化样本查询向量和K个量化样本相似最近邻居,其中,所述初始化的量化码本预先存储在所述用于训练的数据库中;
根据所述量化样本查询向量、K个所述量化样本相似最近邻居以及所述知识蒸馏损失函数,对所述初始低维索引模型进行训练;
在确定所述K个所述量化样本相似最近邻居与所述样本查询向量的距离从近到远排列的第二排序与所述第一排序保持不变或训练次数达到预设训练轮次的情况下,训练得到所述目标低维索引模型。
2.根据权利要求1所述的方法,其特征在于,所述根据所述量化样本查询向量、K个所述量化样本相似最近邻居以及所述知识蒸馏损失函数,对所述初始低维索引模型进行训练,包括:
将所述量化样本查询向量以及K个所述量化样本相似最近邻居输入所述知识蒸馏损失函数,输出知识蒸馏损失值;
根据所述知识蒸馏损失值,确定所述第二排序与所述第一排序是否保持不变;
在确定所述第二排序与所述第一排序发生改变的情况下,根据所述量化样本查询向量和K个所述量化样本相似最近邻居,更新所述初始化的量化码本,得到更新后的量化码本;
基于所述更新后的量化码本与所述样本查询向量和K个所述样本相似最近邻居,重新确定新的量化样本查询向量以及K个新的量化样本相似最近邻居,直至在确定所述第二排序与所述第一排序保持不变或训练次数达到所述预设训练轮次为止。
3.根据权利要求1所述的方法,其特征在于,所述目标损失函数还包括重构损失函数;
所述方法还包括:
根据所述量化样本查询向量、K个所述量化样本相似最近邻居以及所述重构损失函数,对所述初始低维索引模型进行训练;
在确定K个所述量化相似最近邻居在量化前后的相似度达到预设相似度或训练次数达到所述预设训练轮次的情况下,训练得到所述目标低维索引模型。
4.根据权利要求3所述的方法,其特征在于,所述目标损失函数还包括预设算法约束函数;
所述方法还包括:
根据所述量化样本查询向量、K个所述量化样本相似最近邻居以及所述预设算法约束函数,对所述初始低维索引模型进行训练;
在确定K个所述量化相似最近邻居以所述量化样本查询向量为唯一中心,每次训练中K相同或训练次数达到所述预设训练轮次的情况下,训练得到所述目标低维索引模型。
5.根据权利要求1所述的方法,其特征在于,所述基于初始化的量化码本,分别对所述样本查询向量和K个所述样本相似最近邻居进行量化,输出量化样本查询向量和K个量化样本相似最近邻居,包括:
基于初始化的量化码本,分别确定所述样本查询向量对应的第一样本相似度矩阵和K个所述样本相似最近邻居对应的第二样本相似度矩阵;
分别基于所述第一样本相似度矩阵和所述第二样本相似度矩阵,对所述样本查询向量和K个所述样本相似最近邻居分别进行编码,得到编码后的样本查询向量和K个编码后的样本相似最近邻居;
分别根据所述编码后的样本查询向量和K个所述编码后的样本相似最近邻居,对所述初始化的量化码本进行索引重构,分别得到所述量化样本查询向量和K个所述量化样本相似最近邻居。
6.根据权利要求5所述的方法,其特征在于,所述分别基于所述第一样本相似度矩阵和所述第二样本相似度矩阵,对所述样本查询向量和K个所述样本相似最近邻居分别进行编码,得到编码后的样本查询向量和K个编码后的样本相似最近邻居,包括:
利用预设归一化函数和所述第一样本相似度矩阵,确定第一样本分布概率;
基于所述第一样本分布概率,对所述样本查询向量进行编码,得到所述编码后的样本查询向量;
利用所述预设归一化函数和所述第二样本相似度矩阵,确定第二样本分布概率;
基于所述第二样本分布概率,对K个所述样本相似最近邻居进行编码,得到K个编码后的样本相似最近邻居。
7.根据权利要求1~6任一项所述的方法,其特征在于,所述基于初始量化码本,对所述目标查询向量进行量化,输出量化查询向量,包括:
根据所述目标查询向量和所述初始量化码本,确定相似度矩阵;
利用预设归一化函数和所述相似度矩阵,确定分布概率;
基于所述分布概率,对所述目标查询向量进行编码,得到编码后的目标查询向量;
根据所述编码后的目标查询向量,对所述初始量化码本进行索引重构,得到所述量化查询向量。
8.一种基于知识蒸馏的量化索引构建装置,其特征在于,所述装置包括:
处理模块,用于将目标查询向量输入目标低维索引模型,以便执行以下操作:基于初始量化码本,对所述目标查询向量进行量化,输出量化查询向量,其中,所述初始量化码本预先存储在查询数据库中,所述目标低维索引模型是基于高维索引模型和目标损失函数训练得到的,目标损失函数包括知识蒸馏损失函数,所述量化查询向量用于表征所述目标查询向量的压缩表示;
更新模块,用于根据所述量化查询向量,更新所述初始量化码本,得到目标量化码本;以及
编码模块,用于根据所述目标量化码本对所述查询数据库进行编码,以使完成量化索引的构建;
其中,所述目标低维索引模型的训练方法包括:
根据所述高维索引模型和预设相似函数,在用于训练的数据库的数据点集中确定样本查询向量的K个样本相似最近邻居和K个所述样本相似最近邻居之间的第一排序,其中,K为大于等于2的整数,所述第一排序是按照K个初始相似最近邻居与初始查询向量的距离从近到远排列的;
将所述样本查询向量和K个所述样本相似最近邻居输入初始低维索引模型,以便执行以下操作:
基于初始化的量化码本,分别对所述样本查询向量和K个所述样本相似最近邻居进行量化,输出量化样本查询向量和K个量化样本相似最近邻居,其中,所述初始化的量化码本预先存储在所述用于训练的数据库中;
根据所述量化样本查询向量、K个所述量化样本相似最近邻居以及所述知识蒸馏损失函数,对所述初始低维索引模型进行训练;
在确定所述K个所述量化样本相似最近邻居与所述样本查询向量的距离从近到远排列的第二排序与所述第一排序保持不变或训练次数达到预设训练轮次的情况下,训练得到所述目标低维索引模型。
9.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311595158.3A CN117312325B (zh) | 2023-11-28 | 2023-11-28 | 基于知识蒸馏的量化索引构建方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311595158.3A CN117312325B (zh) | 2023-11-28 | 2023-11-28 | 基于知识蒸馏的量化索引构建方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117312325A CN117312325A (zh) | 2023-12-29 |
CN117312325B true CN117312325B (zh) | 2024-03-29 |
Family
ID=89286863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311595158.3A Active CN117312325B (zh) | 2023-11-28 | 2023-11-28 | 基于知识蒸馏的量化索引构建方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117312325B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117974672B (zh) * | 2024-04-02 | 2024-06-18 | 华侨大学 | 基于全局信息的乳腺超声肿瘤病变区域检测方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190699A (zh) * | 2021-05-14 | 2021-07-30 | 华中科技大学 | 一种基于类别级语义哈希的遥感图像检索方法及装置 |
CN113761243A (zh) * | 2020-06-01 | 2021-12-07 | 阿里巴巴集团控股有限公司 | 在线检索方法和系统 |
CN113918753A (zh) * | 2021-07-23 | 2022-01-11 | 腾讯科技(深圳)有限公司 | 基于人工智能的图像检索方法及相关设备 |
CN114218292A (zh) * | 2021-11-08 | 2022-03-22 | 中国人民解放军国防科技大学 | 一种多元时间序列相似性检索方法 |
CN114416927A (zh) * | 2022-01-24 | 2022-04-29 | 招商银行股份有限公司 | 智能问答方法、装置、设备及存储介质 |
KR20220095562A (ko) * | 2020-12-30 | 2022-07-07 | 충북대학교 산학협력단 | 이미지 객체 검색을 위한 효율적인 분산 인-메모리 고차원 색인 시스템 |
CN114898086A (zh) * | 2022-07-13 | 2022-08-12 | 山东圣点世纪科技有限公司 | 一种基于级联温控蒸馏的目标关键点检测方法 |
CN115618113A (zh) * | 2022-11-03 | 2023-01-17 | 中国人民解放军国防科技大学 | 一种基于知识图谱表示学习的搜索召回方法和系统 |
CN116127164A (zh) * | 2023-04-17 | 2023-05-16 | 中国科学技术大学 | 码本量化模型的训练方法、搜索数据量化方法及其装置 |
CN116911683A (zh) * | 2023-07-25 | 2023-10-20 | 中国联合网络通信集团有限公司 | 一种数据处理方法、装置及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8731317B2 (en) * | 2010-09-27 | 2014-05-20 | Xerox Corporation | Image classification employing image vectors compressed using vector quantization |
US20160350834A1 (en) * | 2015-06-01 | 2016-12-01 | Nara Logics, Inc. | Systems and methods for constructing and applying synaptic networks |
US11775589B2 (en) * | 2019-08-26 | 2023-10-03 | Google Llc | Systems and methods for weighted quantization |
US20230106141A1 (en) * | 2021-10-05 | 2023-04-06 | Naver Corporation | Dimensionality reduction model and method for training same |
-
2023
- 2023-11-28 CN CN202311595158.3A patent/CN117312325B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761243A (zh) * | 2020-06-01 | 2021-12-07 | 阿里巴巴集团控股有限公司 | 在线检索方法和系统 |
KR20220095562A (ko) * | 2020-12-30 | 2022-07-07 | 충북대학교 산학협력단 | 이미지 객체 검색을 위한 효율적인 분산 인-메모리 고차원 색인 시스템 |
CN113190699A (zh) * | 2021-05-14 | 2021-07-30 | 华中科技大学 | 一种基于类别级语义哈希的遥感图像检索方法及装置 |
CN113918753A (zh) * | 2021-07-23 | 2022-01-11 | 腾讯科技(深圳)有限公司 | 基于人工智能的图像检索方法及相关设备 |
CN114218292A (zh) * | 2021-11-08 | 2022-03-22 | 中国人民解放军国防科技大学 | 一种多元时间序列相似性检索方法 |
CN114416927A (zh) * | 2022-01-24 | 2022-04-29 | 招商银行股份有限公司 | 智能问答方法、装置、设备及存储介质 |
CN114898086A (zh) * | 2022-07-13 | 2022-08-12 | 山东圣点世纪科技有限公司 | 一种基于级联温控蒸馏的目标关键点检测方法 |
CN115618113A (zh) * | 2022-11-03 | 2023-01-17 | 中国人民解放军国防科技大学 | 一种基于知识图谱表示学习的搜索召回方法和系统 |
CN116127164A (zh) * | 2023-04-17 | 2023-05-16 | 中国科学技术大学 | 码本量化模型的训练方法、搜索数据量化方法及其装置 |
CN116911683A (zh) * | 2023-07-25 | 2023-10-20 | 中国联合网络通信集团有限公司 | 一种数据处理方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
"一种适应GPU 的混合OLAP 查询处理模型";张宇等;《软件学报》;1246-1264 * |
Also Published As
Publication number | Publication date |
---|---|
CN117312325A (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200257543A1 (en) | Aggregate Features For Machine Learning | |
CN113535984B (zh) | 一种基于注意力机制的知识图谱关系预测方法及装置 | |
CN109492772B (zh) | 生成信息的方法和装置 | |
CN111699482A (zh) | 在线社交网络上利用图和紧致回归码的快速索引 | |
CN112994701B (zh) | 数据压缩方法、装置、电子设备及计算机可读介质 | |
CN117312325B (zh) | 基于知识蒸馏的量化索引构建方法、装置及设备 | |
US11874798B2 (en) | Smart dataset collection system | |
WO2022152161A1 (zh) | 混合图神经网络模型的训练、预测 | |
US11797281B2 (en) | Multi-language source code search engine | |
CN113254716B (zh) | 视频片段检索方法、装置、电子设备和可读存储介质 | |
US20200175022A1 (en) | Data retrieval | |
WO2022011553A1 (en) | Feature interaction via edge search | |
CN117290477A (zh) | 一种基于二次检索增强的生成式建筑知识问答方法 | |
CN113591490B (zh) | 信息处理方法、装置和电子设备 | |
US20230041339A1 (en) | Method, device, and computer program product for user behavior prediction | |
CN117494815A (zh) | 面向档案的可信大语言模型训练、推理方法和装置 | |
CN117453727A (zh) | 一种基于数据库内推理的数据向量化检索方法和装置 | |
Tian et al. | Research of consumption behavior prediction based on improved DNN | |
CN107944045B (zh) | 基于t分布哈希的图像检索方法及系统 | |
CN116127164A (zh) | 码本量化模型的训练方法、搜索数据量化方法及其装置 | |
CN111784377B (zh) | 用于生成信息的方法和装置 | |
CN111275476B (zh) | 一种物流仓储服务的报价方法和装置 | |
CN116501993B (zh) | 房源数据推荐方法及装置 | |
CN117132367B (zh) | 业务处理方法、装置及计算机设备、存储介质、程序产品 | |
CN118608259A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |