CN113761243A - 在线检索方法和系统 - Google Patents
在线检索方法和系统 Download PDFInfo
- Publication number
- CN113761243A CN113761243A CN202010483924.7A CN202010483924A CN113761243A CN 113761243 A CN113761243 A CN 113761243A CN 202010483924 A CN202010483924 A CN 202010483924A CN 113761243 A CN113761243 A CN 113761243A
- Authority
- CN
- China
- Prior art keywords
- point
- query
- neighbor
- closest
- dimensional
- 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
- 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
- G06F16/532—Query formulation, e.g. graphical querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种在线检索方法和系统。该方法包括:基于查询操作构造查询点;在方向导航图中寻找方向最接近所述查询点的邻居点;以及基于所述寻找方向最接近所述查询点的邻居点的操作,确定距离所述查询点最近的至少一个返回点。本发明通过在方向向量的基础上引入方向导航图的概念,利用方向导航图可以对邻居进行方向剪枝的属性,大幅提升了图检索效率,使其能够适应更大数据规模,更高数据维度的在线检索应用场景。
Description
技术领域
本公开涉及检索和推荐领域,尤其涉及一种在线检索方法和系统。
背景技术
近年来,在搜索和推荐相关领域,向量检索应用越发广泛,在向量检索领域一个重要的研究方向是Approximate k-Nearest Neighbor Graph(kNN Graph)的近邻检索,即Approximate Nearest Neighbor Search(ANNS)近邻检索问题。特别是在高维和大规模的数据场景下,如何提升图的检索效率一直是图检索领域的研究热点。
现有近邻检索的优化往往集中于原始kNN的构造上。但在常规kNN中,图中顶点的度越高,检索性能越差,为此无法满足大规模高效检索,尤其是在线检索的需求。
为此,需要一种改进的检索,尤其是在线检索方案。
发明内容
本公开要解决的一个技术问题是提供一种在线检索方案,该方案通过在方向向量的基础上引入方向导航图的概念,利用方向导航图可以对邻居进行方向剪枝的属性,大幅提升了图检索效率,使其能够适应更大数据规模,更高数据维度的在线检索应用场景。
根据本公开的第一个方面,提供了一种在线检索方法,包括:基于查询操作构造查询点;在方向导航图中寻找方向最接近所述查询点的邻居点;以及基于所述寻找方向最接近所述查询点的邻居点的操作,确定距离所述查询点最近的至少一个返回点。
根据本公开的第二个方面,提供了一种检索系统,包括多个客户端和在线检索服务器,所述客户端用于:发送查询操作;获取查询操作的返回内容,所述在线检索服务器用于:基于所述客户端发送的查询操作构造查询点;基于所述查询点,在载入的方向导航图中通过查找方向最接近所述查询点的邻居点,确定距离所述查询点最近的至少一个返回点;基于所述至少一个返回点,查询对应的返回信息;以及将所述返回信息作为所述查询操作的结果返回给客户端。
根据本公开的第三个方面,提出了一种内容推荐方法,包括:基于推荐操作构造查询点;在方向导航图中寻找方向最接近所述查询点的邻居点;以及基于所述寻找方向最接近所述查询点的邻居点的操作,确定距离所述查询点最近的至少一个返回点。
根据本公开的第四个方面,提出了一种检索方法,包括:基于查询操作构造查询点;在方向导航图中寻找方向最接近所述查询点的邻居点;以及基于所述寻找方向最接近所述查询点的邻居点的操作,确定距离所述查询点最近的至少一个返回点。所述检索方法可以包括离线检索方法。
根据本公开的第五个方面,提出了一种检索方法,包括:所述客户端获取查询操作的返回内容,其中,通过方向导航图模型寻找方向最接近基于所述查询操作构造的查询点的邻居点来确定所述返回内容;以及向服务器发送针对所述返回内容的反馈,其中,所述反馈用于优化所述方向导航图模型。
由此,本发明通过深入分析图结构的特点,利用机器学习算法与图索引结构结合,训练得到一种新的低维空间方向导航图,用于进行在线检索剪枝优化。本发明通过神经网络模型进行降维并结合方向导航图对邻居进行方向剪枝,大幅提升了图检索效率,使其能够适应更大数据规模,更高数据维度的在线检索应用场景。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了近邻图搜索的一个例子。
图2示出了HNSW搜索的一个例子。
图3A-C示出了NSG搜索的例子。
图4示出了根据本发明一个实施例的在线检索方法的示意性流程图。
图5示出了根据本发明的一个实施例训练低维方向导航图的流程图。
图6示出了训练该低维方向导航图的模型网络结构图。
图7示出了利用低维方向导航图的在线检索流程例。
图8示出了根据本发明一个实施例的检索系统的组成示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
近年来,在搜索和推荐相关领域,向量检索应用越发广泛,在向量检索领域一个重要的研究方向是Approximate k-Nearest Neighbor Graph(kNN Graph)的近邻检索,即Approximate Nearest Neighbor Search(ANNS)近邻检索问题。特别是在高维和大规模的数据场景下,如何提升图的检索效率一直是图检索领域的研究热点。
现有近邻检索的优化往往集中于原始kNN的构造上。但在常规kNN中,图中顶点的度越高,检索性能越差,因此无法满足大规模高效检索,尤其是在线检索的需求。
为此,发明人在深入理解高维空间内图形结构特点,分析图结构中影响检索的因素后,提炼出方向向量特征,以从多个特征维度认识基础的图形结构。具体地,本发明在方向向量基础上引入方向导航图概念,并且可以优选地利用机器学习方法学习低维空间方向导航图,以方便在线搜索的使用。而在将方向导航图应用于图在线检索时,可以结合启发式的在线检索策略,利用方向导航图可以有效对邻居进行剪枝操作,大幅提升了图检索效率。本发明将机器学习与基础的数据结构相结合,尝试用人工智能提升基础检索模型性能,取得良好搜索效果。
为了增进对本发明的理解,在此首先对本发明所涉及的一些基础概念进行阐述。
一、近似最近邻搜索(ANN)
随着机器学习、深度神经网络的不断发展,数据的向量化无处不在。而针对海量向量数据的搜索,无论是工业界还是学术界都做了大量的研究。
现在常用的索引类型在面对海量向量数据的搜索具有天然的局限性。首先是基于树的算法,例如经典的KD-tree。这种索引类型在向量维度稍大一些的情况下(d>10),索引性能会急剧下降甚至不如暴力搜索。其次,基于LSH(locality-sensitive hashing)的索引,如果想要取得高召回率,LSH算法必须要建立大量的Hash表,这会使得索引大小膨胀数倍。不仅如此,树和LSH都属于空间切分类算法,此类算法有一个无法避免的缺陷,即为了提高搜索精度,只能增大搜索空间。而空间切分类算法在最坏的情况下需要扫描几乎整个数据集,这在很多场景下显然是无法接受的。
为此,进入一个对应名词Approximate Nearest Neighbor Search(ANNS),近似的最近邻搜索。之所以近似是由于精确的近邻搜索太过困难,研究随之转向了在精确性和搜索时间做取舍。由于精确的向量搜索在海量数据的场景下搜索时间过长,所以目前的常见做法,是在向量上建立近似搜索索引。
由于图数据结构有天生近邻关系的特性,在图上做最近邻搜索也是近年来的一个研究热点。
1.近邻图(Proximity Graph):最朴素的图算法
近邻图的特性可以粗略理解成:构建一张图,每一个顶点连接着最近的N个顶点。它的搜索过程可见图1。图1示出了近邻图搜索的一个例子。如图所示,目标是待查询的向量。在搜索时,由于无法知道该从图的哪个区域开始搜索,所以我们选择任意一个顶点S出发。首先遍历S的邻居,找到距离与目标最近的A节点,将A设置为起始节点,再从A节点出发进行遍历,反复迭代,不断逼近,最后找到与目标距离最近的节点A``时搜索结束。
基础的近邻图存在诸多问题,最为关键的就是搜索复杂度无法确定,孤岛效应难以解决,以及构建图的开销太高,复杂度达到了指数级别。由于这些原因,近年来在近邻图的基础上,对图的构建、度数的限制、边的裁选、图的连通性、节点的导向性等方面都做了许多改进。这里简单介绍下近年来较为热门的算法:HNSW和NSG。
2.HNSW(分层可导航小世界图)
HNSW的前身是NSW(Navigable-Small-World-Graph)。NSW通过设计出一个具有导航性的图来解决近邻图发散搜索的问题,但其搜索复杂度仍然过高,达到多重对数的级别,并且整体性能极易被图的大小所影响。HNSW则是提出了Hierarchical-NSW的设想,以解决上述搜索复杂度过高的问题。简单来说,按照一定的规则把一张的图分成多张,越接近上层的图,平均度数越低,节点之间的距离越远;越接近下层的图平均度数越高,节点之间的距离也就越近。图2示出了HNSW搜索的一个例子。
搜索从最上层(层=2)开始,找到本层距离最近的节点之后进入下一层。下一层(层=1)搜索的起始节点即是上一层的最近节点,往复循环,直至找到结果,如层0中的黑色节点。由于越是上层的图,节点越少,平均度数也低,距离也远,所以可以通过非常小的代价提供了良好的搜索方向,通过这种方式减少大量没有价值的计算,减少了搜索算法复杂度。更进一步,如果把HNSW中节点的最大度数设为常数,这样可以获得一张搜索复杂度仅为log(n)的图
HNSW利用多层图的优势,天生保证了图的连通性。并且由于每个新节点的加入都会被随机到任意一层中,这样做一定程度上避免了由于数据输入顺序从而改变图的分布,最后影响搜索路径的情况。
3.NSG(导航展开图)
NSG全写为Navigating Spreading-out Graph。NSG围绕四个方向来改进:图的连通性,减少出度,缩短搜索路径,缩减图的大小。具体是通过建立导航点(NavigationPoint),特殊的选边策略,深度遍历收回离散节点(Deep Traversal)等方法。
首先是Navigation Point,在建图时,首先需要一张预先建立的K-nearest-neighbor-graph(KNNG)作为构图基准。随机选择一个点作为Navigation Point,后续所有新插入的节点在选边时都会将Navigation Point加入候选。在建图过程中,逐渐会将子图都和Navigation point相连接,这样其他的节点只需保持很少的边即可,从而减少了图的大小。每次搜索从Navigation Point出发能够指向具体的子图,从而减少无效搜索,获得更好搜索性能。
NSG使用的择边策略与HNSW类似,但是不同于HNSW只选择最短边为有效边,NSG使用的择边策略如图3A-C所示。图3A-C示出了NSG搜索的例子。以点r为例,当r与p建立连接时,以r和p为圆心,r和p的距离为半径,分别做圆,如果两个圆的交集内没有其他与p相连接的点,则r与p相连(见图3-B)。在连接点s时,由于以s和p距离为半径的交集圆内,已有点r与p相连,所以s和p不相连(见图3-C)。下图中最终与点p相连的点只有r,t和q(见图3-A)。
NSG这样做的原因是考虑到由于边数一多,整个图就会变得稠密,最后在搜索时会浪费大量算力。但是减少边的数量,带来的坏处也比较明显,最后的图会是一张稀疏图,会使得有些节点难以被搜索到。不仅如此,NSG的边还是单向边。在如此激进的策略下,图的连通性就会产生问题,这时NSG选择使用深度遍历来将离群的节点收回到图中。通过以上步骤,图的建立就完成了。
由上,HNSW从结构入手,利用分层图提高图的导航性减少无效计算从而降低搜索时间,达到优化的目的。而NSG选择将图的整体度数控制在尽可能小的情况下,提高导航性,缩短搜索路径来提高搜索效率。
HNSW由于多层图的结构以及连边策略,导致搜索时内存占用量会大于NSG,在内存受限场景下选择NSG会更好。但是NSG在建图过程中无论内存占用还是耗时都大于HNSW。此外HNSW还拥有目前NSG不支持的特性,即增量索引,虽然耗时巨大。对比其他的现有索引类型,无论NSG还是HNSW在搜索时间和精度两个方面,都有巨大优势。虽然HNSW和NSG在近邻搜索的效率和精度上相比于现有技术得到大幅提升,但是在高维和大规模数据场景下,利用HNSW和NSG的搜索仍然无法满足在线搜索的需要。
为此,需要一种更为高效的在线检索方法。
二、本发明的方向导航图
本发明提出了一种在线检索方法,该方案通过在方向向量的基础上引入方向导航图的概念,利用方向导航图可以对邻居进行方向剪枝的属性,大幅提升了图检索效率,使其能够适应更大数据规模,更高数据维度的在线检索应用场景。
具体地,在本发明中,可以基于如上所述的HNSW图和NSG图构造原始的kNN(k近邻检索图),也可以选择其他方法来构造原始kNN。随后,基于构造好的原始kNN,可以通过方向向量的变化构造得到方向导航图。也就是说,在本发明中原始kNN的构造方法不影响发明的后续实施,例如,kNN以何种方法构造不影响后续进行的方向导航图构造。
具体地,在本发明的方向导航图中,任意起始点的任意两邻居点相对于目标点的朝向与kNN中所述两邻居点与所述目标点之间的距离正相关。例如,在方向导航图中,为了找寻q点,当从任意点v开始搜索时,点v中任意邻居相对于v与q连线的朝向越小,则说明或可大概率推定该邻居在kNN中距离q点的距离越近。换句话说,已知一个顶点v,v到q构成一个方向向量,也就是一条边,v的两个邻居节点v1和v2到v各自构成一条边。v1和v的边与v和q边的夹角θ1,与v2和v的边与v和q边的夹角θ2对比,夹角更小,则代表在原始kNN中,邻居节点v1相比于v2更逼近q。
为此,在构造好的方向导航图中,当给定一个查询点q时,通过从初始点开始不断通过方向剪枝(即,选择方向与查询点所在方向最为一致的一个或多个邻居点),就能够起到在kNN中不断选择最接近q的邻居点并实现快速到达最接近q点的返回点的效果。
基于上述方向导航图的原理,本发明可以实现为一种在线检索方法,该方法利用构造好的方向导航图的方向剪枝快速定位特性,能够满足大数据量下的实时检索需求。
图4示出了根据本发明一个实施例的在线检索方法的示意性流程图。该方法可由检索服务提供方实现,例如,由与客户端直接或间接连接的在线检索服务器实现。
在步骤S410,基于查询操作构造查询点。在此,查询操作可以是客户端获取的操作。在某些实施例中,例如在搜索场景中,从客户端获取的操作可以是用户输入的操作,例如用户在搜索框中输入搜索词并点击搜索。在其他实施例中,例如在推荐场景中,从客户端获取的操作可以是客户端在满足预定条件下自动触发的,例如,基于现有信息的收集,自动为用户推荐信息。推荐场景也可以是用户自行触发的,例如用户自行点击推荐频道等等。在另一个实施例中,也可以是服务端批量进行针对各个客户端的推荐,此时的查询操作可以是服务端,例如,面向客户端的信息推送服务器发起的。
具体地,基于查询操作构造查询点可以包括基于所述查询操作的相关多特征信息,构造具有对应于多个特征的多维数据,例如,构造对应于M个特征的M维数据,作为M维空间内的M维查询点。
例如,在搜索场景中,用户A输入了搜索词“XXX”,上述用户动作对应于查询操作,在触发在线搜索时,除了搜索词“XXX”本身,还需要考虑诸如用户A的用户画像或是历史操作信息等来进行在线检索。与上述用户动作相关的信息包括多个特征,例如,搜索词特征、用户画像特征等,并且这些特征还可以根据搜索模型的不同而被进一步划分。为了方便进行图搜索,上述多个特征(例如,文字特征“XXX”、性别“女”、年龄“27”等)会被转换为对应维度上的相应数字(通常会经过归一化),由此得到一个多维数据,例如q=(x0,x1,…,x99)。在推荐场景中,可以根据用户的在前操作、标签等进行类似的向量化操作,得到类似的多维数据。该100维的数据可以对应于100维空间里的一个查询点,并且可以通过本发明基于方向导航图的方向剪枝操作,迅速找出其附近的最近返回点,例如,前k个最近点。
在步骤S420,在方向导航图中选取初始点,在所述初始点的邻居点中寻找方向最接近所述查询点的邻居点,并以寻找到的邻居点为查找点,继续寻找所述查找点的邻居点中寻找方向最接近所述查询点的邻居点。在此,“方向导航图”是如上所述的本发明基于近似kNN构造到基于方向来表征原始距离的图。所述方向导航图基于近似k近邻检索图(kNN)被预先构造,并且在所述方向导航图中,任意起始点的任意两邻居点相对于目标点的朝向与kNN中所述两邻居点与所述目标点之间的距离正相关。
在某些实施例中,方向导航图可以是经训练得到的机器学习模型,例如经由正负邻居点训练得到的方向导航图模型。由于机器学习模型通常是概率模型,因此v1的夹角θ1相比于v2的夹角θ2更小,并不能完全确定在原始kNN中v1相比于v2相距q的真实距离更近,而只能大概率推定kNN空间中v1相比于v2相距q的真实距离更近。在其他实施例中,该模型可以是结合如下所述的降维操作的低维方向导航图模型,例如,基于机器学习一并训练得到的联合模型。
在步骤S430,基于所述寻找方向最接近所述查询点的邻居点的操作,确定距离所述查询点最近的至少一个返回点。由此,通过不断查找邻居点中方向最接近查询点的点,通过迭代快速查找到查询点附近与查询点最为接近的点作为返回点。
获取的返回点是方向导航图中的点,还需要将其还原成具体信息以提供给客户端。为此,本发明的在线检索方法还可以包括:基于所述至少一个返回点,查询对应的返回信息;以及将所述返回信息作为所述查询操作的结果返回给客户端。例如,在搜索场景中,可以将返回点对应的搜索结果(例如,top k返回点对应于的k个文章的列表)返回给客户端。在推荐场景中,则可以将推荐文章在例如APP的固定位置或是信息流中呈现。
如前所述,查询点的构造可以包括基于所述查询操作的相关多特征信息,构造具有对应于M个特征的M维数据,作为M维空间内的M维查询点。在M值较大时,例如上例中M=100时,在高维空间中的方向导航会引起不必要的查询复杂度。为此提升搜索效率,本发明还可以包括降维步骤。为此,该方法还可以包括对所述M维查询点进行降维操作以获取N维查询点,其中,M大于N。所述方向导航图是针对N维数据点的方向导航图。换句话说,可以在将查询点降维之后,再送入方向导航图。例如,将100维的查询点降维到10维,再送入针对10维数据的方向导航图进行查询。
进一步地,上述降维操作可以经由机器学习模型实现。为此,对所述M维查询点进行降维操作以获取N维查询点包括:将所述M维查询点送入经训练的降维模型以获取N维查询点。
所述经训练的降维模型和所述方向导航图可以在同一个联合模型中被训练,并且在进行在线检索时,所述查询点被送入经训练的所述联合模型,以完成降维和最接近邻居点的方向查找操作。进一步地,所述联合模型可以通过同时输入当前顶点、邻居正例、邻居负例和训练查询点而被训练。
图5示出了根据本发明的一个实施例训练低维方向导航图的流程图。
如图5所示,在步骤S510,首先可以利用诸如HNSW图以及NSG图的近似kNN图构建方法构建原始的kNN图。
其次,在步骤S520,进行采样操作。具体地,可以在构建好的原始kNN图中随机选取节点集合,构造正例与负例。对于图中给定q及任意定点v,假定v有n个邻居,将n个邻居与q的真实距离从近到远进行排序。选取头部邻居(例如,距离q最近的5个邻居),随机组合构造样本对,距离q较近的为正例,距离q较远的为负例。再选取全部邻居,随机取同等数目样本对。
由于模型需要给原始向量做降维,而且需要保证降维后的向量和原始向量要有相似的性质。例如,当前节点有10个邻居,1/2/3/4…10。按照原始向量计算方向,1号节点的方向和目标查询点(q)是最近的,2号节点其次,10号节点的方向偏离最远。那么通过模型降维得到的向量,也需要保持类似的性质。这是,需要引入正例和负例来为模型的收敛规定方向。
随机选点,是为了产生模型训练用的样本。继续参考当前节点有10个邻居的例子。训练用的正负样本对从这10个邻居节点中选出。比如随机选,选到了1号和5号这两个邻居,则把1就作为正样本,5就作为负样本(因为1号离目标的方向近,5号离目标远)。再随机选,选到了5号和9号,则5号为正样本,9号为负样本。由此,使得模型按我们想要的目标去收敛。
在随机选点的基础上,可以基于模型的统计学属性引入头部节点选点(比如1、2、3号),由此使得头部节点出现的次数更多,使得降维后的向量更准确。进一步地,如果选取策略是(1,2)、(1,3)、(3,4)这种头部节点构成的样本对较多出现,(9,10)这种尾部节点构成的样本对较少出现,则能够从选点上加快模型收敛,提升模型训练速度。
在步骤S530,进行训练。在训练过程中,优选利用PairWise(按样本对训练)方法训练模型,将高维原始图中顶点映射到低维向量空间中去,构成低维的方向导航图。作为替换,在模型训练中也可以尝试用ListWise(按样本列表训练)方式。相比PairWise,使用ListWise方法能够在训练时能学到的信息更多,但计算开销更大。因此在需要速度的场景中优选PairWise方法。由此,构造得到低维方向导航图。
图6示出了训练该低维方向导航图的模型网络结构图。如上所述,在构造kNN之后,将训练用的查询点、当前顶点(起始点)以及如上构造的正负邻居样本对送入模型。送入模型时的各个样本是高维度的原始向量,例如输入大小为100维的向量。随后,各自经由包括ReLU(线性整流)功能的神经网络,例如DNN(深度神经网络),可以包括多个具有特定大小的隐藏层,学习降维至具有输出大小的用于DNG(Direction Navigating Graphs,方向导航图)的向量,例如10维向量。
转换为低维的查询点和正负样本向量可以减去当前顶点的低维向量,由此得到各自的角度表征值,例如图示的cos值,并获取该cos值的正负概率(正性概率是接近query的方向,负性概率则是远离query的方向)。
在上述模型被训练好了之后,就可以用作在线检索时的低维方向导航图。图7示出了利用低维方向导航图的在线检索流程例。
在步骤S710,获取查询,在步骤S720,构造查询向量(高维查询点)。随后在步骤S730,应用本发明的启发式检索算法,该算法将该高维查询向量送入训练好的低维方向导航图,在其中进行降维操作,并以随机初始点(也可以是指定初始点)s至降维查询点q的方向(s,q)为基准,选取与查询点方向最接近的邻居集合优先探索。这个集合是按方向有序的,可以按召回率要求选取一个,也可以选取多个。通常情况下,选择集合越多,召回率相对越好,但效率有所降低。重复上述过程直到最终找到距离q最近的前k个结果,即top k集合。
本发明的方向导航图检索方案,与常规kNN检索相比,能获取明显的检索性能提升。且随着向量维度和数据规模的扩大,性能提升进一步升高。
如前所述,本发明涉及的查询操作也可以是推荐操作所引起的查询操作。为此,本发明还可以实现为一种内容推荐方法,包括:基于推荐操作构造查询点;在方向导航图中寻找方向最接近所述查询点的邻居点;以及基于所述寻找方向最接近所述查询点的邻居点的操作,确定距离所述查询点最近的至少一个返回点。
所述推荐操作可以是客户端引起的,也可以是由服务端引起的,并且可以包括:所述用户操作引发的推荐操作;服务器进行的自动推荐操作。
应该理解的是,如上针对在线检索方案所描述的各个优选实施例,例如,降维搜索,联合模型搜索等,都可用于本发明的如上内容推荐方法。
进一步地,虽然本发明借助方向导航图以及优选的降维和模型训练方案,能够实现满足在线检索时效性和精确性需求的检索,但是本发明的上述方案同样可以用于离线检索场景。为此,本发明还可以实现为一种检索方法,包括:基于查询操作构造查询点;在方向导航图中寻找方向最接近所述查询点的邻居点;以及基于所述寻找方向最接近所述查询点的邻居点的操作,确定距离所述查询点最近的至少一个返回点。
所述检索方法当然可以包括如上所述的在线检索方法,也可以包括离线检索方法。
本发明还可以实现为一种检索系统。图8示出了根据本发明一个实施例的检索系统的组成示意图。如图所示,系统800可以包括多个客户端810和在线检索服务器820。
客户端810可以是诸如智能手机、台式机、笔记本电脑、平板电脑等各类终端设备,例如,可以是安装了同一App或应用软件的不同版本的客户端。上述客户端810可以用于:发送查询操作;获取查询操作的返回内容。所述在线检索服务器820可以用于:基于所述客户端810发送的查询操作构造查询点;基于所述查询点,在载入的方向导航图中通过查找方向最接近所述查询点的邻居点,确定距离所述查询点最近的至少一个返回点;基于所述至少一个返回点,查询对应的返回信息;以及将所述返回信息作为所述查询操作的结果返回给客户端810。
具体地,在线检索服务器820可以对M维查询点进行降维操作以获取N维查询点;以及将所述N维查询点送入所述方向导航图进行返回点查找。
进一步地,客户端810可以:接收并发送用户输入的所述查询操作;和/或基于启动条件的满足,自行发送所述查询操作。查询操作的关联信息可以包括:所述查询操作中的查询词;以及所述查询操作相关的用户关联信息。
在线检索服务器820可以基于所述客户端发送的查询操作,搜索所述查询操作的关联信息;以及基于所述关联信息,构造所述查询点。
优选地,该系统800还可以包括方向导航图构造服务器830,用于:构造原始k近邻检索图;经由采样进行模型训练;以及获取经训练的方向导航图模型。
经由采样进行模型训练包括:从当前顶点中选择邻居以构造正例和负例;以及基于所述正例和负例进行方向导航图模型训练。从当前顶点中选择邻居以构造正例和负例包括:选择头部邻居构造正例和负例;和/或随机选择邻居构造正例和负例。
作为补充,经由采样进行模型训练还可以包括:经由采样进行神经网络降维模型训练,并且获取的经训练的方向导航图模型是低维方向导航图模型。
进一步地,该系统还可以包括反馈功能。为此,客户端810可以用于:发送针对所述返回内容的反馈。方向导航图构造服务器830可以收集上述反馈,并且基于来自多个客户端的多个反馈,优化所述方向导航图模型。
相应地,在客户端方面,本发明可以实现为一种客户端实现的反馈方案,该检索方法,包括:所述客户端获取查询操作的返回内容,其中,通过方向导航图模型寻找方向最接近基于所述查询操作构造的查询点的邻居点来确定所述返回内容;以及向服务器发送针对所述返回内容的反馈,其中,所述反馈用于优化所述方向导航图模型。
上文中已经参考附图详细描述了根据本发明的在线检索方案。本发明通过深入分析图结构的特点,利用机器学习算法与图索引结构结合,训练得到一种新的低维空间方向导航图,用于进行在线检索剪枝优化。本发明通过神经网络模型进行降维并结合方向导航图对邻居进行方向剪枝,大幅提升了图检索效率,使其能够适应更大数据规模,更高数据维度的在线检索应用场景。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (26)
1.一种在线检索方法,包括:
基于查询操作构造查询点;
在方向导航图中寻找方向最接近所述查询点的邻居点;以及
基于所述寻找方向最接近所述查询点的邻居点的操作,确定距离所述查询点最近的至少一个返回点。
2.如权利要求1所述的方法,其中,在方向导航图中寻找方向最接近所述查询点的邻居点包括:
在方向导航图中选取初始点,在所述初始点的邻居点中寻找方向最接近所述查询点的邻居点,并以寻找到的邻居点为查找点,继续寻找所述查找点的邻居点中寻找方向最接近所述查询点的邻居点。
3.如权利要求1所述的方法,其中,所述方向导航图基于近似k近邻检索图被预先构造,并且在所述方向导航图中,任意起始点的任意两邻居点相对于目标点的朝向与所述近似k近邻检索图中所述两邻居点与所述目标点之间的距离正相关。
4.如权利要求1所述的方法,其中,所述查询操作包括:
用户输入查询操作;
系统的推荐操作。
5.如权利要求1所述的方法,还包括:
基于所述至少一个返回点,查询对应的返回信息;以及
将所述返回信息作为所述查询操作的结果返回给客户端。
6.如权利要求1所述的方法,其中,基于查询操作构造查询点包括:
基于所述查询操作的相关多特征信息,构造具有对应于M个特征的M维数据,作为M维空间内的M维查询点。
7.如权利要求6所述的方法,还包括:
对所述M维查询点进行降维操作以获取N维查询点,其中,M大于N,
并且,所述方向导航图是针对N维数据点的方向导航图。
8.如权利要求7所述的方法,其中,对所述M维查询点进行降维操作以获取N维查询点包括:
将所述M维查询点送入经训练的降维模型以获取N维查询点。
9.如权利要求8所述的方法,其中,所述经训练的降维模型和所述方向导航图在同一个联合模型中被训练,并且在进行在线检索时,所述查询点被送入经训练的所述联合模型,以完成降维和最接近邻居点的方向查找操作。
10.如权利要求8所述的方法,其中,所述联合模型通过同时输入当前顶点、邻居正例、邻居负例和训练查询点而被训练。
11.如权利要求1所述的方法,其中,所述方向导航图是经由正负邻居点训练得到的方向导航图模型。
12.一种检索系统,包括多个客户端和在线检索服务器,
所述客户端用于:
发送查询操作;
获取查询操作的返回内容,
所述在线检索服务器用于:
基于所述客户端发送的查询操作构造查询点;
基于所述查询点,在载入的方向导航图中通过查找方向最接近所述查询点的邻居点,确定距离所述查询点最近的至少一个返回点;
基于所述至少一个返回点,查询对应的返回信息;以及
将所述返回信息作为所述查询操作的结果返回给客户端。
13.如权利要求12所述的系统,其中,所述在线检索服务器用于:
对M维查询点进行降维操作以获取N维查询点;以及
将所述N维查询点送入所述方向导航图进行返回点查找。
14.如权利要求12所述的系统,其中,所述客户端用于:
接收并发送用户输入的所述查询操作;和/或
基于启动条件的满足,自行发送所述查询操作。
15.如权利要求12所述的系统,其中,所述在线检索服务器用于:
基于所述客户端发送的查询操作,搜索所述查询操作的关联信息;以及
基于所述关联信息,构造所述查询点。
16.如权利要求15所述的系统,其中,所述查询操作的关联信息包括:
所述查询操作中的查询词;
所述查询操作相关的用户关联信息。
17.如权利要求12所述的系统,还包括:
方向导航图构造服务器,用于:
构造原始k近邻检索图;
经由采样进行模型训练;以及
获取经训练的方向导航图模型。
18.如权利要求17所述的系统,其中,经由采样进行模型训练包括:
从当前顶点中选择邻居以构造正例和负例;以及
基于所述正例和负例进行方向导航图模型训练。
19.如权利要求17所述的系统,其中,从当前顶点中选择邻居以构造正例和负例包括:
选择头部邻居构造正例和负例;和/或
随机选择邻居构造正例和负例。
20.如权利要求17所述的系统,其中,经由采样进行模型训练包括:
经由采样进行神经网络降维模型训练,
并且获取的经训练的方向导航图模型是低维方向导航图模型。
21.如权利要求17所述的系统,其中,所述客户端用于:
发送针对所述返回内容的反馈;
所述方向导航图构造服务器用于:
基于来自多个客户端的多个反馈,优化所述方向导航图模型。
22.一种内容推荐方法,包括:
基于推荐操作构造查询点;
在方向导航图中寻找方向最接近所述查询点的邻居点;以及
基于所述寻找方向最接近所述查询点的邻居点的操作,确定距离所述查询点最近的至少一个返回点。
23.如权利要求22所述的方法,其中,所述推荐操作包括:
所述用户操作引发的推荐操作;
服务器进行的自动推荐操作。
24.一种检索方法,包括:
基于查询操作构造查询点;
在方向导航图中寻找方向最接近所述查询点的邻居点;以及
基于所述寻找方向最接近所述查询点的邻居点的操作,确定距离所述查询点最近的至少一个返回点。
25.如权利要求24所述的方法,其中,所述检索方法包括离线检索方法。
26.一种检索方法,包括:
所述客户端获取查询操作的返回内容,其中,通过方向导航图模型寻找方向最接近基于所述查询操作构造的查询点的邻居点来确定所述返回内容;以及向服务器发送针对所述返回内容的反馈,其中,所述反馈用于优化所述方向导航图模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010483924.7A CN113761243A (zh) | 2020-06-01 | 2020-06-01 | 在线检索方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010483924.7A CN113761243A (zh) | 2020-06-01 | 2020-06-01 | 在线检索方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113761243A true CN113761243A (zh) | 2021-12-07 |
Family
ID=78782435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010483924.7A Pending CN113761243A (zh) | 2020-06-01 | 2020-06-01 | 在线检索方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113761243A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312325A (zh) * | 2023-11-28 | 2023-12-29 | 中国科学技术大学 | 基于知识蒸馏的量化索引构建方法、装置及设备 |
-
2020
- 2020-06-01 CN CN202010483924.7A patent/CN113761243A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312325A (zh) * | 2023-11-28 | 2023-12-29 | 中国科学技术大学 | 基于知识蒸馏的量化索引构建方法、装置及设备 |
CN117312325B (zh) * | 2023-11-28 | 2024-03-29 | 中国科学技术大学 | 基于知识蒸馏的量化索引构建方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105912611B (zh) | 一种基于cnn的快速图像检索方法 | |
Cao et al. | Graph-based discriminative learning for location recognition | |
US8645380B2 (en) | Optimized KD-tree for scalable search | |
Lou et al. | Matchminer: Efficient spanning structure mining in large image collections | |
CN111460234B (zh) | 图查询方法、装置、电子设备及计算机可读存储介质 | |
CN102799614B (zh) | 基于视觉词语空间共生性的图像检索方法 | |
CN106874425B (zh) | 基于Storm的实时关键词近似搜索算法 | |
CN113626723B (zh) | 一种基于表示学习的属性图社区搜索方法和系统 | |
CN103744886B (zh) | 一种直接提取的k个最近邻点搜索方法 | |
de Mauro et al. | Similarity learning for graph-based image representations | |
CN109492150A (zh) | 基于语义轨迹大数据的反向最近邻查询方法及装置 | |
Jo et al. | A progressive kd tree for approximate k-nearest neighbors | |
CN110413807B (zh) | 一种基于内容语义元数据的图像查询方法与系统 | |
Chen et al. | Approximation algorithms for 1-Wasserstein distance between persistence diagrams | |
CN113761243A (zh) | 在线检索方法和系统 | |
CN112765490A (zh) | 一种基于知识图谱和图卷积网络的信息推荐方法及系统 | |
CN111898039A (zh) | 一种融合隐藏关系的属性社区搜索方法 | |
Yang et al. | Weakly supervised class-agnostic image similarity search based on convolutional neural network | |
CN116703531A (zh) | 物品数据处理方法、装置、计算机设备和存储介质 | |
CN113688702B (zh) | 基于融合多特征的街景图像处理方法及系统 | |
CN116993374A (zh) | 基于深度神经网络的模型优化方法、装置、设备及介质 | |
Wang et al. | Must: An effective and scalable framework for multimodal search of target modality | |
Bartolini et al. | Imagination: exploiting link analysis for accurate image annotation | |
CN110188098B (zh) | 一种基于双层锚点图投影优化的高维向量数据可视化方法及系统 | |
Lin et al. | Merging grid maps in diverse resolutions by the context-based descriptor |
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 |