本发明专利技术公开了一种基于可导航小世界图的多属性近似最近邻搜索方法。本发明专利技术包含以下步骤:步骤一MA‑NSW索引生成方法,包括构建和遍历带有多属性的结点集合
【技术实现步骤摘要】
一种基于可导航小世界图的多属性近似最近邻搜索方法
本专利技术涉及近似最近邻搜索领域,具体涉及一种基于可导航小世界图的多属性近似最近邻搜索方法。
技术介绍
最近邻搜索是使用最为广泛的一种数据搜索技术,广泛应用于计机器学习、模式识别、文本和多媒体搜索等领域。但是实际应用由于搜索集通常非常大,不能满足对于大规模数据检索的时间性能要求。因此,近似最近邻搜索得到越来越多的研究和关注。近似最近邻搜索目前有多种方法实现,比如树方法,哈希方法,矢量量化方法,近邻图方法等。其中近邻图方法是近期提出的查询速度和召回率表现最为优秀的一种方法。可导航小世界图(NSW)是YuryA.Malkov提出的一种图索引方法,使用贪婪算法的变体进行朴素查找最近邻。NSW在大多数情况下召回率和搜索速度十分优秀,并且支持增量更新索引,在推荐系统的应用上具有优势。但是现代近似最近邻搜索的应用需求逐渐变得复杂,常需要多属性近似最近邻搜索,即在近似最近邻搜索的过程中有时需要进行条件筛选,即只返回特定属性组合的最近邻结点。
技术实现思路
本专利技术的目的在于克服上述已有技术的不足,提出一种基于可导航小世界图的多属性近似最近邻搜索方法,称为MA-NSW。MA-NSW是一种多属性覆盖层的可导航小世界图索引,使用多个覆盖层记录每个属性组合的结点集合,并分别形成可导航小世界图(NSW)的结构,以支持多属性近似最近邻搜索。具体内容如下:1.MA-NSW索引生成方法1.1构建结点集合构建向量集合P,将每个向量作为MA-NSW中的一个结点,其中每一个结点p都有其属性T(p),向量集合P即可视作结点集合P。p的属性为T(p)={t1,t2,…,tn},T(p)是一个长度为n的属性组合,其中ti是第i个位置的属性值,属性值允许为NULL,即属性为空。属性组合拥有子集关系,定义如下:给定两个结点p1和p2,存在属性组合T(p1)和T(p2),若T(p1)中存在0个或多个位置的属性值为NULL,且剩余的每一个位置属性值都和T(p2)相同,则1.2构建属性映射表构建属性映射表table,用于记录每一种属性组合对应的属性id映射。通过属性映射表,能够快速找到某个属性组合的id。1.3构建全局入口结点将全局入口结点p0插入MA-NSW作为首结点,p0是独立于结点集合P的结点,不含有任何实际属性与向量,仅仅作为MA-NSW索引的入口存在。1.4遍历步骤1.1的结点集合P,遍历完集合P中的所有结点后,生成的图结构即为MA-NSW索引,对结点集合P中的结点重复以下操作设当前结点为p,设置结点p的最大边数量为ef,对T(p)的所有子集重复如下步骤:(1)设当前T(p)的子集为Ti,查询属性映射表table是否存在键Ti。若不存在键Ti,则进入步骤(2);若存在键Ti,则进入步骤(3)。(2)生成一个新的唯一属性id为wi,并在属性映射表table中记录该键值对为(″key″:Ti,″value″:wi)。在全局入口结点p0与当前结点p之间生成id为wi的边。此时结点p作为新的覆盖层的第一个结点,每一个覆盖层都是独立的可导航小世界图(NSW)结构,该覆盖层的id也为wi。(3)从属性映射表table获取到属性Ti的属性id为wi。找到与全局入口结点p0通过id为wi的边连接的结点ep,将ep作为查询当前id为wi的覆盖层的入口结点,并通过欧氏距离或余弦距离计算入口结点ep的邻居结点与p的距离,使用贪婪算法在该覆盖层中找到欧氏距离或余弦距离最近的ef个结点,并将p与这ef个最近邻结点连接生成id为wi的边。1.5保存索引保存步骤1.4中生成的MA-NSW索引为可被加载的二进制文件。2.MA-NSW多属性近似最近邻搜索基于步骤1.5保存的MA-NSW索引文件,输入一个带有属性组合T(q)的目标向量作为目标结点q,在MA-NSW索引中找到具有相同属性组合T(q)的最近邻的k个结点。具体搜索过程如下:a)加载MA-NSW索引并读取到内存,用户输入目标结点q、q的属性T(q)和需要搜索的近邻数量k。b)通过属性映射表tab2e获取属性组合T(q)的属性id为wq,并且找到与全局入口结点p0通过id为wq的边连接的结点ep,作为id为wq的覆盖层的入口结点。c)以ep为入口结点,在当前id为wq的覆盖层中通过贪婪算法来找到与目标结点q欧氏距离或余弦距离最小的k个结点。本专利技术的有益效果:本专利技术使用多个覆盖层记录每个属性组合的结点集合,并分别形成可导航小世界图(NSW)的结构,同个覆盖层中的结点属性组合相同,以支持多属性近似最近邻搜索。附图说明图1是本专利技术的第1部分流程图。图2是本专利技术的第2部分流程图。图3是本专利技术的MA-NSW结构示意图。具体实施方式本专利技术提出了一种基于可导航小世界图的多属性近似最近邻搜索方法,该方法称为MA-NSW。MA-NSW使用多个覆盖层记录每个属性组合的结点集合,并分别形成可导航小世界图(NSW)的结构,同个覆盖层中的结点属性组合相同,以支持多属性近似最近邻搜索。为使本专利技术的目的、技术方案及效果更加清楚和明确,以下对本专利技术结合图1和图2进一步详细说明,具体内容如下:1.MA-NSW索引生成方法第1部分如图1所示,分为以下步骤:1.1构建结点集合构建向量集合P,将每个向量作为MA-NSW中的一个结点,其中每一个结点p都有其属性T(p),向量集合P即可视作结点集合P。p的属性为T(p)={t1,t2,…,tn},T(p)是一个长度为n的属性组合,其中ti是第i个位置的属性值,属性值允许为NULL,即属性为空。属性组合拥有子集关系,定义如下:给定两个结点p1和p2,存在属性组合T(p1)和T(p2),若T(p1)中存在0个或多个位置的属性值为NULL,且剩余的每一个位置属性值都和T(p2)相同,则1.2构建属性映射表构建属性映射表table,用于记录每一种属性组合对应的属性id映射。通过属性映射表,能够快速找到某个属性组合的id。1.3构建全局入口结点将全局入口结点p0插入MA-NSW作为首结点,p0是独立于结点集合P的结点,不含有任何实际属性与向量,仅仅作为MA-NSW索引的入口存在。1.4遍历步骤1.1的结点集合P,遍历完集合P中的所有结点后,生成的图结构即为MA-NSW索引,对结点集合P中的结点重复以下操作设当前结点为p,设置结点p的最大边数量为ef,对T(p)的所有子集重复如下步骤:(1)设当前T(p)的子集为Ti,查询属性映射表table是否存在键Ti。若不存在键Ti,则进入步骤(2);若存在键Ti,则进入步骤(3)。(2)生成一个新的唯一属性id为wi,并在属性映射表table中记录该键值对为(″key″:Ti,″value″:wi)。在全局入本文档来自技高网...
【技术保护点】
1.一种基于可导航小世界图的多属性近似最近邻搜索方法,其特征在于包含如下步骤:/n步骤1:生成索引/n步骤1.1构建向量集合P,将每个向量作为一个结点,其中每一个结点p都有其属性T(p),向量集合P即可视作结点集合P;/n步骤1.2构建属性映射表table,用于记录每一种属性组合对应的属性id映射;/n步骤1.3构建全局入口结点,将全局入口结点p
【技术特征摘要】
1.一种基于可导航小世界图的多属性近似最近邻搜索方法,其特征在于包含如下步骤:
步骤1:生成索引
步骤1.1构建向量集合P,将每个向量作为一个结点,其中每一个结点p都有其属性T(p),向量集合P即可视作结点集合P;
步骤1.2构建属性映射表table,用于记录每一种属性组合对应的属性id映射;
步骤1.3构建全局入口结点,将全局入口结点p0作为首结点,p0是独立于结点集合P的结点,不含有任何实际属性与向量,仅仅作为索引的入口存在;
步骤1.4遍历步骤1.1的结点集合P,遍历完结点集合P中的所有结点后,生成的图结构即为索引,对结点集合P中的结点重复以下操作:
设当前结点为p,设置结点p的最大边数量为ef,对T(p)的所有子集重复如下步骤:
(1)设当前T(p)的子集为Ti,查询属性映射表table是否存在键Ti;若不存在键Ti,则进入步骤(2);若存在键Ti,则进入步骤(3);
(2)生成一个新的唯一属性id为wi,并在属性映射表table中记录该键值对为(″key″:Ti,″value″:wi);在全局入口结点p0与当前结点p之间生成id为wi的边;此时结点p作为新的覆盖层的第一个结点,每一个覆盖层都是独立的可导航小世界图结构,该覆盖层的id也为wi;
(3)从属性映射表table获取到属性Ti的属性id为wi;找到与全局入口结点p0通过id为wi的边连接的结点ep,将结点ep作为查询当前id为wi的覆盖层的入口结点...
【专利技术属性】
技术研发人员:徐小良,李畅,王宇翔,
申请(专利权)人:杭州电子科技大学,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。