用于快速在线最近邻搜索的邻近图维护制造技术

技术编号:37172062 阅读:18 留言:0更新日期:2023-04-20 22:42
用于在线ANN搜索的增量邻近图维护(IPGM)系统和方法支持邻近图上的在线顶点删除和顶点插入。在各种实施例中,更新邻近图包括接收表示邻近图中的一组顶点的工作负载,每个顶点与诸如查询、插入或删除的操作类型相关联。对于查询或插入,可以在图形上执行搜索以获得每个顶点的一组前K个顶点。在删除的情况下,可以从邻近图中删除顶点,并且可以使用局部或全局重新连接更新方法来重构邻近图的至少一部分。重新连接更新方法来重构邻近图的至少一部分。重新连接更新方法来重构邻近图的至少一部分。

【技术实现步骤摘要】
用于快速在线最近邻搜索的邻近图维护


[0001]本公开总体上涉及用于计算机学习的系统和方法,其可以提供改进 的计算机性能,特征和使用。更具体地,本公开涉及用于快速在线最近 邻搜索的邻近图维护的系统和方法。

技术介绍

[0002]近似最近邻(ANN)搜索是用于涉及例如推荐系统部署的应用的基 本技术。最近的研究将基于邻近图的方法引入到从业者的关注中;基于 邻近图的方法优于其它解决方案,例如量化,哈希和基于树的ANN算法 族。在当前的推荐系统中,随着用户和项目的动态变化,数据点插入、 删除和查询以在线方式流入系统中。在邻近图方法中,由于通过将数据 点作为新的顶点插入到图中来递增地构造邻近图,因此在线插入和查询 得到了很好的支持。然而,没有涉及从邻近图索引中去除顶点的、用于 数据点删除的适当的图索引更新机制。
[0003]因此,所需要的是使用可以模仿真实世界的设置的、基于图形的编 索引的在线ANN搜索方法,例如,通过在给定的ANN搜索向量集中递 增地执行插入和删除来动态地处理数据分布的变化。

技术实现思路

[0004]在一个或多个实施例中,一个或多个计算机的系统可以被配置成通 过在系统上安装软件、固件、硬件或它们的组合来执行特定的操作或动 作,所述软件、固件、硬件或它们的组合在操作中引起或引起系统执行 动作。一个或多个计算机程序可以被配置为通过包括指令来执行特定的 操作或动作,所述指令在由数据处理设备执行时使所述设备执行所述动 作。在一个或多个实施例中,包括用于更新图形的计算机实现的方法。 所述计算机实现的方法可以包括接收包括一个或多个工作负载元素的工 作负载,所述一个或多个工作负载元素中的每一个可以包括数据元素和 操作类型,所述操作类型是查询、插入或删除;响应于操作类型为删除, 执行以下步骤:在邻近图中,删除对应于一个或多个工作负载元素之一 的顶点;使用局部或全局重新连接方法中的至少一个来更新所述邻近图, 所述局部或全局重新连接方法重构所述邻近图的至少一部分。该方法还 可以包括:响应于更新后的邻近图中的顶点被查询,执行搜索,该搜索 获得与更新后的邻近图中的被查询的顶点的邻居对应的一组前k个数据 元素;输出该组前k个数据元素。此方面的其它实施例可包括记录在一 个或多个计算机存储装置上的对应计算机系统、装置和计算机程序,其 每一者经配置以执行所述方法的动作。
[0005]实现可以包括一个或多个以下特征。该计算机实现的方法可以包括: 响应于操作类型为插入,执行搜索,该搜索对于要插入到邻近图中的每 个顶点获得一组前k个候选数据元素。计算机实现的方法可以进一步包 括,使用该组前k个候选数据元素来选择顶点的一组N个最近邻居,并 且至少向邻近图添加边以更新邻近图。该方法还可以包括使用来自
该组 前k个数据元素中的最靠前候选数据元素来执行后续搜索。此外,所述 计算机实现的方法可以包括使用反向邻近图来获得所述邻近图上针对所 删除顶点的向内链接(incoming links)。更新邻近图可以包括更新指向所 删除顶点的顶点的边。删除一个或多个顶点可以包括纯删除方法或顶点 遮盖方法中的至少一个。所描述的技术的实现可以包括在计算机可访问 介质上的硬件、方法或进程,或计算机软件。
[0006]一个或多个实施例可以包括用于使用局部重新连接方法来更新有向 邻近图的系统。该系统还可以包括一个或多个处理器;并且非暂时性计 算机可读介质可以包括一组或多组指令,当所述一组或多组指令由所述 一个或多个处理器中的至少一个执行时,使得执行以下步骤,所述步骤 包括:给定邻近图中的删除顶点,使用反向邻近图来获得先前指向所述 删除顶点的第一组相邻顶点;利用所述邻近图获得所述删除的顶点先前 所指向的第二组相邻顶点;对于所述第二组相邻顶点中的每一个,在所 述第一组相邻顶点中选择最近的邻居;去除邻近图中的第二组相邻顶点 与删除的顶点之间的连接;向所述邻近图添加连接所述最近邻居和所述 第一组相邻顶点中的每一个的边,以更新所述邻近图;输出更新后的邻 近图。此方面的其它实施例可包括记录在一个或多个计算机存储装置上 的对应计算机系统、装置和计算机程序,其每一者经配置以执行所述方 法的动作。
[0007]实现可以包括一个或多个以下特征。该系统可以包括将边添加到反 向邻近图以更新反向邻近图,并且输出更新的反向邻近图。所更新的邻 近图用于查询,所述查询生成与所更新的邻近图中的查询顶点的前K个 邻居相对应的一组前K个数据元素。邻近图可以近似Delaunay图。该系 统可以包括使用反向邻近图来获得在该邻近图上对于该删除的顶点的向 内链接。该系统还可以包括使用贪婪搜索,该贪婪搜索可以包括维护优 先级队列,该优先级队列可以在其前部包括使测量函数最大化的顶点。 所描述的技术的实现可以包括在计算机可访问介质上的硬件、方法或进 程,或计算机软件。
[0008]一个或多个实施例可以包括非暂时性计算机可读介质,其可以包括 一组或多组指令,所述指令在由所述一个或多个处理器中的至少一个执 行时使得执行以下步骤,包括:给定邻近图、反向邻近图和删除顶点, 使用所述反向邻近图来获得先前指向所述删除顶点的第一组相邻顶点; 对所述第一组相邻顶点中的每一个执行搜索以找到候选顶点,在所述候 选顶点中选择候选顶点子集,去除所述邻近图和所述反向邻近图中的先 前链接,使用全局重新连接方法在所述候选顶点子集和所述第一组相邻 顶点中的每一个之间构建新链接,以至少更新所述邻近图,并至少输出 所述更新的邻近图。该方面的其它实施例包括记录在一个或多个计算机 存储设备上的相应的计算机系统、装置和计算机程序,每个计算机存储 设备被配置为执行所述方法的动作。
[0009]实现可以包括以下特征中的一个或多个。在非暂时性计算机可读介 质中,更新邻近图还可以包括更新邻近图中指向先前顶点的相邻顶点的 边,以获得更新的邻近图。非暂时性计算机可读介质可以包括对更新的 邻近图应用搜索以获得相邻顶点中的最近邻居。非暂时性计算机可读介 质还可以包括向反向邻近图添加边以更新反向邻近图并输出更新后的反 向邻近图。更新后的邻近图可用于查询,该查询生成与更新后的邻近图 中的查询顶点的前k个最近邻居相对应的一组前k个数据元素。搜索可 以是波束搜索或贪婪搜索中的至少一个,其可以包括维持优先级队列, 该优先级队列可以在其前部包括使测量函数最大化的顶点。所描述的技 术的实现可以包括在计算机可访问介质上的硬件、方法或进程,
或计算 机软件。
附图说明
[0010]将参考本公开的实施例,其示例可以在附图中示出。这些附图是 说明性的,而不是限制性的。尽管在这些实施例的上下文中一般性地 描述了本公开,但是应当理解,其并不旨在将本公开的范围限制于这 些特定实施例。图中的项目可能不是按比例绘制的。
[0011]图1A至图1E描述了根据本公开的实施例的邻近图删除和图更新 方法。
[0012]图2A至图2D描述了根据本公开的实施例的使用随机更新模式的 每个工作负载批次中的用于获得0.8召回率的每秒相对查询的实验数 据。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于更新图形的计算机实现的方法,包括:接收包括一个或多个工作负载元素的工作负载,每个工作负载元素包括数据元素和操作类型,所述操作类型是查询、插入或删除;响应于所述操作类型包括删除,执行以下步骤:在邻近图中,删除与所述一个或多个工作负载元素中的一个工作负载元素对应的顶点;使用局部或全局重新连接方法中的至少一种来更新所述邻近图,所述局部或全局重新连接方法重构所述邻近图的至少一部分;响应于所更新的邻近图中的顶点被查询,执行搜索,所述搜索获得与所更新的邻近图中的被查询的顶点的邻居对应的一组前K个数据元素;以及输出所述一组前K个数据元素。2.根据权利要求1所述的计算机实现的方法,还包括:响应于所述操作类型包括插入,执行搜索,所述搜索对于要插入到所述邻近图中的每个顶点获得一组前k个候选数据元素。3.根据权利要求2所述的计算机实现的方法,还包括:使用所述一组前k个数据候选元素来选择要插入到所述邻近图中的顶点的一组N个最近邻居,以及至少将边添加到所述邻近图以更新所述邻近图。4.根据权利要求2所述的计算机实现的方法,还包括使用所述一组前k个候选数据元素中的最靠前候选数据元素来执行后续搜索。5.根据权利要求1所述的计算机实现的方法,还包括使用反向邻近图来获得所述邻近图上所删除顶点的向内链接。6.根据权利要求1所述的计算机实现的方法,其中,更新所述邻近图包括更新指向所删除顶点的、顶点的边。7.根据权利要求1所述的计算机实现的方法,其中,删除一个或多个顶点包括纯删除方法。8.根据权利要求1所述的计算机实现的方法,其中,删除一个或多个顶点包括顶点遮盖方法。9.一种使用局部重新连接方法更新有向邻近图的系统,所述系统包括:一个或多个处理器;以及一种包括一组或多组指令的非暂时性计算机可读介质,所述一组或多组指令在由所述一个或多个处理器中的至少一个执行时使得执行以下步骤:给定邻近图中的删除顶点,使用反向邻近图获得先前指向所述删除顶点的第一组相邻顶点;使用所述邻近图获得所述删除顶点先前所指向的第二组相邻顶点;对于所述第二组相邻顶点中的每一个,在所述第一组相邻顶点中选择最近邻居;去除所述邻近图中的所述第二组相邻顶点与所述删除顶点之间的连接;向所述邻近图添加连接所述最近邻居和所述第一组相邻顶点中的...

【专利技术属性】
技术研发人员:谭树龙徐兆卓赵炜捷周至心李平
申请(专利权)人:百度美国有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1