基于神经网络的可学习kd树
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Abstract:As the dimension increases, the efficiency of the nearest neighbor search using the traditional Kd tree becomes lower, and the query time becomes longer. In order to solve this problem, the learned Kd tree (LK) method is used to input the point to be searched into the neural network, locate and search through the neural network, and finally output the index value of the nearest neighbor to find the nearest neighbor. The results show that the neural network can be used to replace the traditional Kd tree for nearest neighbor search, which is effective and efficient. Key words:learned Kd Tree;neural network;index
随着大数据和 gpu 技术的繁荣, 人们能够 探索更高的计算能力和更灵活的数据结构。 然 而传统上的数据结构更多是为了适应 cpu 而设 计的, 其特点是按照固定的模式来组织数据, 并不考虑数据的分布。 如何设计高效灵活的数 据结构以降低原有模型的复杂度成为一个急 需解决的问题。 神经网络经常被用于实现各种 复杂的功能, 使用 Kd 树进行最近邻查找可以
其他用于k近邻查询的树形结构例如r树8采用了空间分割的理念其核心思想是聚合距离相近的节点并在树结构的上一层将其表示为这些节点的最小外接矩形这个最小外接矩形就成为上一层的一个节点
第 33 卷 第 6 期 2019 年 12 月
doi:10.13440/j.slxy.1674-0033.2019.06.003
关键词:可学习的 Kd 树;神经网络;索引 中图分类号:TP183 文献标识码:A 文章编号:1674-0033(2019)06-0009-05
Neural Network-based Learned Kd Tree
PENG Yong-xin
(School of Software, Yunnan University, Kunming 650000, Yunnan)
商洛学院学报 Journal of Shangluo University
Vol.33 No.6 Dec. 2019
基于神经网络的可学习 Kd 树
彭永鑫
(云南大学 软件学院,云南昆明 650000)
摘 要:随 着 维 度 的 增 加 ,使 用 传 统 Kd 树 进 行 最 近 邻 搜 索 时 效 率 变 低 ,查 询 时 间 变 长 。 为了解决这个问题,采用可学习的 Kd 树(LK)方法,将待搜索的点输入神经网络,通过神经 网络进行定位和查找,最终输出最近邻点的索引值,从而找到最近邻点。 结果表明,可使用 神经网络代替传统 Kd 树进行最近邻查找,该方案是有效的、高效的。
收 稿 日 期 :2019-09-19 作 者 简 介 :彭永鑫,男,陕西山阳人,硕士研究生
10
商洛学院学报
2019 年 12 月
看作是一个分类问题,这与神经网络完成的工 作没有本质上的区别。 因此,使用神经网络来 代替 Kd 树应该是一种具有可行性的工作。 传 统的索引结构是按固定的方式构建的,而机器 学习模型是在训练数据的基础上建立的,但这 两者本质上都是对空间位置的定位和寻找,潜 在来说神经网络和索引是具有一定联系的。 文 献[6]提出了一种基于机器学习的可学习索引 的方法,该方法具有学习数据分布的能力。 它 探索了使用神经网络在一定程度上代替传统 索引结构的可行性,并进一步讨论了可学习哈 希映射索引与传统哈希映射索引之间的区别。 在 之 前 的 工 作 [7] 中 , 探 索 利 用 神 经 网 络 建 立 倒 排索引,表明了无监督的可学习索引相比传统 索引有着明显的优势。 在此基础上,本文提出 了基于神经网络的可学习 Kd 树模型, 用于解 决中高维空间中的最近邻搜索问题。 在本文的 方案中,首先构建一棵 Kd 树,并对构成 Kd 树 的数据构建索引。 随后通过 Kd 树找到输入数 据的最近邻点,将最近邻点所在的分类作为标 签进行训练。
这种基于神经网络的可学习的 Kd 树方案 新颖而且可扩展, 为最近邻查找提供了一种全 新的思路。 该方案使用神经网络,能够并行的解 决搜索问题, 能在更短的时间内进行较为精确 的查找,运行时间更具优势。
1 传统 Kd 树
传统上研究人员使用 Kd 树进行最近邻搜 索。 Kd 树是每个节点为一个 k 维向量的二叉 树。 每个非叶子节点可以看作一个超平面, 而 这个超平面将多维空间分割为两个子平面。 在 这个超平面左侧的点被分为左子树, 右侧的点 则被分为右子树。 决定这个超平面方向的方式 如下: 每个 Kd 树中的点都与 k 维向量中的一 个特定维度相关联, 而这个维度正是垂直于分 割空间的超平面的轴的维度。 举个例子,如果这 个轴是 X 轴,那么 x 的值小于决定这个超平面 的点的剩余点被分到左子树, 所有 x 的值大于 这个点的被分到右子树。
近几十年来,高维数据在数据仓库、信息检 索、数据挖掘等方面的应用越来越广泛。 Kd 树 作为一种用于查询高维键值的流行算法, 由于 其准确性高、可扩展性强、查询速度较快,通常 被用来进行多维空间关键数据的检索。 使用 Kd 树进行 k 近邻搜索, 就是对于给定的一个查询 点 q,需要从一个构成 Kd 树的数据集 D 里找到 距离 q 最近的 k 个数据。当 k=1 时,就是最近邻 搜索。
使 用 Kd 树 在 高 维 向 量 空 间 中 进 行 搜 索 时, 由于高维向量的距离计算需要花费相当大 的代价,使得查询在一定程度上变为线性搜索, 极大影响了查找效率。 为了减少距离的计算,提
高执行效率, 目前已有很多文献对此提出了不 同的解决方法。 这些方法能够有效的回答低维 和中维空间中的最近邻查找问题 , [1-4] 但是由于 “维度灾难”[5], 依然ຫໍສະໝຸດ 能很好地应用于中高维 空间的搜索。