本发明专利技术提供了一种机器学习数据索引结构的自适应结构调整方法及系统,包括:选取节点步骤:按照预设的节点编号顺序逐个选取机器学习数据索引结构中的节点;分析节点步骤:分析选取得的节点,根据节点中缓存数据量和误差范围大小执行对应的结构调整操作:若节点中缓存数据量或节点内机器学习模型的预测误差过大,则执行节点分裂步骤;若节点与其相邻节点中的缓存数据量及误差范围都过小,则两节点执行节点合并步骤;否则,则结束流程。本发明专利技术提供细粒度的机器学习索引结构调整方法,相比对全部数据重新训练,能减少重新训练模型的个数,避免结构调整时对不相关模型和缓存的性能影响。
Adaptive structure adjustment method and system for index structure of machine learning data
【技术实现步骤摘要】
机器学习数据索引结构的自适应结构调整方法及系统
本专利技术涉及数据存储系统数据索引领域,具体地,涉及机器学习数据索引结构的自适应结构调整方法及系统。
技术介绍
在如今的大数据时代,数据规模愈发庞大,数据库被越来越多地运用,并且也在这个过程中不断遇到新的挑战,主要包括对低延时,高吞吐索引的更高要求等。索引是从数据库原始数据派生出来的附加结构,包括许多关键词,每个关键词指向一项数据,索引可以快速地查询某个关键词对应的数据,在数据库中可以利用索引加速数据查询。机器学习研究如何通过算法与统计学模型使计算机系统基于对模式的观察与推断可以不需要人为提供指示而可以有效地进行某项具体任务。按照学习形式的不同,机器学习可以分为监督学习、无监督学习、半监督学习、增强学习等等。其具体算法又包括线性回归、支持向量机、决策树、深度神经网络等等。近年来,机器学习因其强大的学习、推理、规划等能力,被广泛应用于包括数据库在内的各个领域。机器学习为数据库提供了新的发展机遇,甚至替代数据库中的部分组件。机器学习和索引的结合应运而生。2018年,谷歌提出机器学习索引结构,将索引视为从键到数据位置的函数映射,使用包括神经网络在内的多种机器学习模型拟合这一函数关系,构建了高效的索引结构。现有的机器学习索引结构是一种分层结构,每层包含若干个节点,节点中包括数据和一个对应的模型。结构中的每一个节点保存一部分数据,并根据保存的数据训练节点的对应的模型。每一个节点的机器学习模型选择下一层要使用的节点的模型,而最后一层节点的模型对关键词对应的数据位置进行预测,得到一个误差范围。之后便可以在误差范围内进行二分搜索,从而得到最终的数据。然而,该索引结构的设计与实现较为初步,假设工作场景是只读的且访问是均匀分布的,而在真实场景下,伴随着写操作的执行,索引数据是频繁变化的,从而带来数据分布的动态变化。同时,真实场景下工作负载是具有访问模式的,从而带来数据访问偏向性。这些广泛存在于真实场景里的动态场景为机器学习索引结构的应用带来了许多挑战,其中最主要的就是随着数据分布的动态变化,机器学习索引无法自适应地调整结构。机器学习索引结构非常依赖机器学习模型预测的精确性,若模型预测误差范围过大,则机器学习索引结构将在二分搜索上花费大量时间,导致难以发挥其高性能的优势。因此,机器学习模型预测的精确性是机器学习索引结构的性能的关键因素。机器学习索引结构对于数据分布非常敏感,随着数据分布的动态变化,机器学习模型也必须重新训练,适应新的数据分布。然而,在机器学习索引无法自适应地调整结构的情况下,训练数据索引结构中全部的机器学习模型会耗费大量时间,并且阻塞索引操作引起性能大幅下降,这对于支持读写操作的机器学习索引结构而言是极大的缺陷;同时,变化后的的数据分布可能难以重新训练得到预测精确的机器学习模型,这也会导致机器学习索引性能由于数据分布的动态变化而大幅下降。目前,还没有一种机器学习索引结构的工作,能够根据数据分布进行索引结构的动态调整。因此,先前的工作对于机器学习索引结构的研究并不全面,还有一定的空白。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种机器学习数据索引结构的自适应结构调整方法。根据本专利技术提供的一种机器学习数据索引结构的自适应结构调整方法,包括:选取节点步骤:按照预设的节点编号顺序逐个选取机器学习数据索引结构中的节点;分析节点步骤:分析选取得的节点,根据节点中缓存数据量和误差范围大小执行对应的结构调整操作:若节点中缓存数据量或节点内机器学习模型的预测误差过大,则执行节点分裂步骤;若节点与其相邻节点中的缓存数据量及误差范围都过小,则两节点执行节点合并步骤;否则,则结束流程。节点分裂步骤:将原节点数据范围分为两部分,分配两个新节点管理,两个新节点根据各自分配的数据范围将原节点数组和缓存中的数据拷贝入各自的数组中,执行重新训练步骤。节点合并步骤:将两个原节点数据范围合并,分配一个新节点管理。新节点将两个原节点数组和缓存中的数据拷贝入自己的数组中,执行重新训练步骤。重新训练步骤:根据新节点中的数据重新训练机器学习模型。训练完成后执行节点生效步骤。节点生效步骤:将根节点中保存的原节点指针和原节点的数据范围对应修改为新节点指针和新节点的数据范围。新节点生效,结束流程。优选地,所述缓存数据量和误差范围均有指定的上限阈值与下限阈值,若节点的缓存数据量或误差范围大于该上限阈值则视为缓存数据量或误差范围过大,缓存数据量和误差范围都小于该下限阈值则视为缓存数据量和误差范围都过小。优选地,所述的节点分裂步骤和节点合并步骤从开始直到节点调整完成时,需要并发控制保证该区间内操作的原子性。优选地,所述的节点保存特定范围的有序数据以及从该范围内数据训练得到的机器学习模型,根节点保存指向其他节点的指针以及其他节点的数据范围。优选地,所述数据主要存储于数组中;新插入数据暂时存储于缓存中,之后写入数组。根据本专利技术提供的一种机器学习数据索引结构的自适应结构调整系统,包括:选取节点模块:按照预设的节点编号顺序逐个选取机器学习数据索引结构中的节点;分析节点模块:分析选取得的节点,根据节点中缓存数据量和误差范围大小执行对应的结构调整操作:若节点中缓存数据量或节点内机器学习模型的预测误差过大,则调用节点分裂模块;若节点与其相邻节点中的缓存数据量及误差范围都过小,则两节点调用节点合并模块;否则,则结束流程。节点分裂模块:将原节点数据范围分为两部分,分配两个新节点管理,两个新节点根据各自分配的数据范围将原节点数组和缓存中的数据拷贝入各自的数组中,执行重新训练模块。节点合并模块:将两个原节点数据范围合并,分配一个新节点管理。新节点将两个原节点数组和缓存中的数据拷贝入自己的数组中,调用重新训练模块。重新训练模块:根据新节点中的数据重新训练机器学习模型。训练完成后调用节点生效模块。节点生效模块:将根节点中保存的原节点指针和原节点的数据范围对应修改为新节点指针和新节点的数据范围。新节点生效,结束流程。优选地,所述缓存数据量和误差范围均有指定的上限阈值与下限阈值,若节点的缓存数据量或误差范围大于该上限阈值则视为缓存数据量或误差范围过大,缓存数据量和误差范围都小于该下限阈值则视为缓存数据量和误差范围都过小。优选地,所述的节点分裂模块和节点合并模块从开始直到节点调整完成时,需要并发控制保证该区间内操作的原子性。优选地,所述的节点保存特定范围的有序数据以及从该范围内数据训练得到的机器学习模型,根节点保存指向其他节点的指针以及其他节点的数据范围。优选地,所述数据主要存储于数组中;新插入数据暂时存储于缓存中,之后写入数组。与现有技术相比,本专利技术具有如下的有益效果:1.在现有的机器学习索引的基础上,本系统能动态地进行节点结构调整,使机器学习模型能适应动态变化的数据分布和访问模式,充分利用机器学习模型的高索引性能。...
【技术保护点】
1.一种机器学习数据索引结构的自适应结构调整方法,其特征在于,包括:/n选取节点步骤:按照预设的节点编号顺序逐个选取机器学习数据索引结构中的节点;/n分析节点步骤:分析选取得的节点,根据节点中缓存数据量和误差范围大小执行对应的结构调整操作:若节点中缓存数据量或节点内机器学习模型的预测误差过大,则执行节点分裂步骤;若节点与其相邻节点中的缓存数据量及误差范围都过小,则两节点执行节点合并步骤;否则,则结束流程。/n节点分裂步骤:将原节点数据范围分为两部分,分配两个新节点管理,两个新节点根据各自分配的数据范围将原节点数组和缓存中的数据拷贝入各自的数组中,执行重新训练步骤。/n节点合并步骤:将两个原节点数据范围合并,分配一个新节点管理。新节点将两个原节点数组和缓存中的数据拷贝入自己的数组中,执行重新训练步骤。/n重新训练步骤:根据新节点中的数据重新训练机器学习模型。训练完成后执行节点生效步骤。/n节点生效步骤:将根节点中保存的原节点指针和原节点的数据范围对应修改为新节点指针和新节点的数据范围。新节点生效,结束流程。/n
【技术特征摘要】
1.一种机器学习数据索引结构的自适应结构调整方法,其特征在于,包括:
选取节点步骤:按照预设的节点编号顺序逐个选取机器学习数据索引结构中的节点;
分析节点步骤:分析选取得的节点,根据节点中缓存数据量和误差范围大小执行对应的结构调整操作:若节点中缓存数据量或节点内机器学习模型的预测误差过大,则执行节点分裂步骤;若节点与其相邻节点中的缓存数据量及误差范围都过小,则两节点执行节点合并步骤;否则,则结束流程。
节点分裂步骤:将原节点数据范围分为两部分,分配两个新节点管理,两个新节点根据各自分配的数据范围将原节点数组和缓存中的数据拷贝入各自的数组中,执行重新训练步骤。
节点合并步骤:将两个原节点数据范围合并,分配一个新节点管理。新节点将两个原节点数组和缓存中的数据拷贝入自己的数组中,执行重新训练步骤。
重新训练步骤:根据新节点中的数据重新训练机器学习模型。训练完成后执行节点生效步骤。
节点生效步骤:将根节点中保存的原节点指针和原节点的数据范围对应修改为新节点指针和新节点的数据范围。新节点生效,结束流程。
2.根据权利要求1所述的机器学习数据索引结构的自适应结构调整方法,其特征在于,所述缓存数据量和误差范围均有指定的上限阈值与下限阈值,若节点的缓存数据量或误差范围大于该上限阈值则视为缓存数据量或误差范围过大,缓存数据量和误差范围都小于该下限阈值则视为缓存数据量和误差范围都过小。
3.根据权利要求1所述的机器学习数据索引结构的自适应结构调整方法,其特征在于,所述的节点分裂步骤和节点合并步骤从开始直到节点调整完成时,需要并发控制保证该区间内操作的原子性。
4.根据权利要求1所述的机器学习数据索引结构的自适应结构调整方法,其特征在于,所述的节点保存特定范围的有序数据以及从该范围内数据训练得到的机器学习模型,根节点保存指向其他节点的指针以及其他节点的数据范围。
5.根据权利要求1所述的机器学习数据索引结构的自适应结构调整方法,其特征在于,所述数据主要存储于数组中;新插入数据暂时存储于缓存中,之后写入数组。
【专利技术属性】
技术研发人员:王肇国,王友运,唐楚哲,董致远,胡淦森,陈海波,
申请(专利权)人:上海交通大学,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。