CN117390013A - 数据存储方法、检索方法、***、设备及存储介质 - Google Patents
数据存储方法、检索方法、***、设备及存储介质 Download PDFInfo
- Publication number
- CN117390013A CN117390013A CN202311182707.4A CN202311182707A CN117390013A CN 117390013 A CN117390013 A CN 117390013A CN 202311182707 A CN202311182707 A CN 202311182707A CN 117390013 A CN117390013 A CN 117390013A
- Authority
- CN
- China
- Prior art keywords
- data set
- dimensional vector
- low
- dimensional
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000013500 data storage Methods 0.000 title claims abstract description 56
- 239000013598 vector Substances 0.000 claims abstract description 536
- 238000006243 chemical reaction Methods 0.000 claims abstract description 59
- 238000005192 partition Methods 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 16
- 230000009466 transformation Effects 0.000 claims description 13
- 230000011218 segmentation Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 8
- 230000004927 fusion Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 12
- 238000013527 convolutional neural network Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000009467 reduction Effects 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 238000013523 data management Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000007500 overflow downdraw method Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据存储方法、检索方法、***、设备及存储介质,属于数据处理技术领域。该方法包括:获取待存储的目标数据集,并提取目标数据集的数据类型,目标数据集包括原始数据特征;根据数据类型,分别对目标数据集进行高维转换和低维转换,得到包括高维矢量特征的高维矢量数据集和包括低维矢量特征的低维矢量数据集;根据预先设定好的索引结构,将低维矢量数据集、高维矢量数据集和目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层,以使当根据低维矢量特征或高维矢量特征进行检索时得到目标数据集,高维矢量特征、低维矢量特征和原始数据特征之间相互存在关联。本申请能够实现目标数据的高效存储与快速检索。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种数据存储方法、检索方法、***、设备及存储介质。
背景技术
随着互联网信息技术的不断发展与普及,传统纸质文件逐渐被数字化文档代替、传统业务逐渐转向电子商务平台、越来越多的用户选择在社交媒体平台以及在线论坛等发布数字化内容,这些都导致了包括文本、图像、音频等不同类型的数据在内的大量数据产生,因此,对这些数据的存储管理十分必要。
目前,不同类型的数据分别存放于不同的数据库中,当需要查找某一类型的数据时,首先需要找到对应的数据库,再根据原始数据中的关键信息进行检索,使用多个数据库存储不同类型的数据增加了数据在检索时的复杂性,并且,根据原始数据的关键信息进行检索需要逐个分析数据内容并进行匹配,可见,这样的存储与检索数据方式严重影响了数据的检索效率。
发明内容
本申请实施例的主要目的在于提出一种数据存储方法、检索方法、***、设备及存储介质,能够实现目标数据的高效存储与快速检索。
为实现上述目的,本申请实施例的第一方面提出了一种数据存储方法,所述方法包括:获取待存储的目标数据集,并提取所述目标数据集的数据类型,其中,所述目标数据集包括原始数据特征;根据所述数据类型,对所述目标数据集进行高维转换,得到高维矢量数据集,其中,所述高维矢量数据集包括高维矢量特征;根据所述数据类型,对所述高维矢量数据集进行低维转换,得到低维矢量数据集,其中,所述低维矢量数据集包括低维矢量特征;根据预先设定好的索引结构,将所述低维矢量数据集、所述高维矢量数据集和所述目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层,以使当根据所述低维矢量特征或所述高维矢量特征进行检索时,得到所述目标数据集,其中,所述高维矢量特征、所述低维矢量特征和所述原始数据特征之间相互存在关联。
在一些实施例中,所述根据所述数据类型,对所述目标数据集进行高维转换,得到高维矢量数据集,包括:当所述数据类型为第一类型时,对所述目标数据集进行分词操作并得到分词结果,对所述分词结果进行高维矢量映射操作,得到高维矢量数据集;当所述数据类型为第二类型时,将所述目标数据集输入预先训练好的转换模型,根据所述转换模型对所述目标数据集进行特征提取操作,得到高维矢量特征,对所述高维矢量特征进行高维矢量化操作,得到高维矢量数据集。
在一些实施例中,所述根据所述数据类型,对所述目标数据集进行高维转换,得到高维矢量数据集,还包括:当待存储的所述目标数据集中包括至少两种互有关联的子目标数据集时,分别根据各所述子目标数据集的数据类型对各所述子目标数据集进行高维转换,得到多个包含子高维矢量特征的子高维矢量数据集;将多个所述子高维矢量数据集进行矢量融合,得到包括多个所述子高维矢量特征的高维矢量数据集。
在一些实施例中,所述根据所述数据类型,对所述高维矢量数据集进行低维转换,得到低维矢量数据集,包括:当所述数据类型为线性类型时,从所述高维矢量数据集中提取多个线性矢量特征,根据所述线性矢量特征对所述高维矢量数据集进行低维矢量映射操作,得到低维矢量数据集;当所述数据类型为非线性类型时,计算所述高维矢量数据集中各非线性矢量特征之间的相似度值,根据所述相似度值对所述非线性矢量特征进行低维矢量映射操作,得到低维矢量数据集。
在一些实施例中,所述根据预先设定好的索引结构,将所述低维矢量数据集、所述高维矢量数据集和所述目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层,包括:分别提取所述低维矢量数据集、所述高维矢量数据集和所述目标数据集的索引信息,并根据所述索引信息分别确定所述高维矢量数据集、所述低维矢量数据集和所述目标数据集对应的索引结构;将所述高维矢量数据集、所述低维矢量数据集和所述目标数据集分别划分为多个特征数据组,其中,所述特征数据组包括多个特征数据;对每一所述特征数据组的所述特征数据进行维度方差计算,得到维度最大方差值,并计算所述矢量数据的平均值或众数值,根据所述平均值或所述众数值得到维度划分值;获取各所述特征数据组的存储分区,根据所述最大方差值、所述维度划分值和所述存储分区,将所述高维矢量数据集、所述低维矢量数据集和所述目标数据集分别依据对应的所述索引结构存储于数据库的第一矢量层、第二矢量层和原始数据层。
在一些实施例中,在所述根据预先设定好的索引结构,将所述低维矢量数据集、所述高维矢量数据集和所述目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层之后,还包括:记录各所述高维矢量数据集、所述低维矢量数据集和所述目标数据集的检索次数;当所述检索次数超过预设的检索阈值时,将所述高维矢量数据集/所述低维矢量数据集/所述目标数据集调整至对应索引结构的优先节点,其中,所述优先节点用于表征数据的优先检索位置。
为实现上述目的,本申请实施例的第二方面提出了一种数据检索方法,所述方法包括:获取待检索目标数据集的目标检索特征;若所述目标检索特征为低维检索特征,根据所述低维检索特征,在数据库的第一矢量层中确定低维矢量数据集,以及所述低维矢量数据集对应的低维矢量特征;根据高维转换后的所述低维矢量特征,在数据库的第二矢量层中确定高维矢量数据集,以及所述高维矢量数据集对应的高维矢量特征;根据低维转换后的所述高维矢量特征,从数据库的原始数据层中确定所述高维矢量特征对应的目标数据集,其中,检索得到的所述目标数据集包括原始数据特征,所述原始数据特征与所述目标检索特征匹配,所述高维矢量特征、所述低维矢量特征和所述原始数据特征之间相互存在关联。
为实现上述目的,本申请实施例的第三方面提出了一种数据存储***,所述***包括:获取模块,用于获取待存储的目标数据集,并提取所述目标数据集的数据类型,其中,所述目标数据集包括原始数据特征;高维转换模块,用于根据所述数据类型,对所述目标数据集进行高维转换,得到高维矢量数据集,其中,所述高维矢量数据集包括高维矢量特征;低维转换模块,用于根据所述数据类型,对所述高维矢量数据集进行低维转换,得到低维矢量数据集,其中,所述低维矢量数据集包括低维矢量特征;存储模块,用于根据预先设定好的索引结构,将所述低维矢量数据集、所述高维矢量数据集和所述目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层,以使当根据所述低维矢量特征或所述高维矢量特征进行检索时,得到所述目标数据集,其中,所述高维矢量特征、所述低维矢量特征和所述原始数据特征之间相互存在关联。
为实现上述目的,本申请实施例的第四方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面实施例所述的方法或上述第二方面实施例所述的方法。
为实现上述目的,本申请实施例的第五方面提出了一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面实施例所述的方法或上述第二方面实施例所述的方法。
本申请实施例提出的一种数据存储方法、检索方法、***、设备及存储介质,其首先获取待存储的目标数据集,并提取目标数据集的数据类型,其中,目标数据集包括原始数据特征;接着,根据数据类型,对目标数据集进行高维转换,得到高维矢量数据集,其中,高维矢量数据集包括高维矢量特征;然后,根据数据类型,对高维矢量数据集进行低维转换,得到低维矢量数据集,其中,低维矢量数据集包括低维矢量特征;之后,根据预先设定好的索引结构,将低维矢量数据集、高维矢量数据集和目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层,以使当根据低维矢量特征或高维矢量特征进行检索时,得到目标数据集,其中,高维矢量特征、低维矢量特征和原始数据特征之间相互存在关联。
即本申请中的目标数据集以及目标数据集对应的高维矢量数据集和低维矢量数据集能够存储在同一数据库中,无需分别存储于多个数据库中,实现了目标数据多种数据模态的高效存储;并且,通过这样的数据存储方式,能够使得当对目标数据集进行检索时,无需对目标数据集的原始数据特征进行逐一检索,而是可以通过与原始数据特征存在关联的高维矢量特征和低维矢量特征进行检索,以通过低维矢量数据和高维矢量数据缩小目标数据集的检索范围,由于低维矢量数据的检索速度十分迅速,也因此能够实现目标数据的快速检索。
附图说明
图1是本申请实施例提供的数据存储***的应用场景示意图;
图2是本申请实施例提供的数据存储方法的一个可选的流程图;
图3是图2步骤S102的一个实现流程图;
图4是图2步骤S102的另一个实现流程图;
图5是图2步骤S103的一个实现流程图;
图6是图2步骤S104的一个实现流程图;
图7是图2步骤S104之后的一个实现流程图;
图8是本申请实施例提供的数据检索方法的一个可选的流程图;
图9是本申请实施例提供的数据存储的功能模块示意图;
图10是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
高维矢量数据,是指在多维空间中表示的数据,其中每个数据点由多个特征或维度组成,这些特征可以是数值、类别、文本等不同类型的数据。在本申请实施例中,高维矢量数据集包括一个或多个高维矢量数据。
低维矢量数据,是指在较低的维度空间中表示的数据,其中每个数据点由少量特征或维度组成,相对于高维矢量数据而言,低维矢量数据的维度较少。在本申请实施例中,低维矢量数据集包括一个或多个低维矢量数据。
随着互联网信息技术的不断发展与普及,传统纸质文件逐渐被数字化文档代替、传统业务逐渐转向电子商务平台、越来越多的用户选择在社交媒体平台以及在线论坛等发布数字化内容,这些都导致了包括文本、图像、音频等不同类型的数据在内的大量数据产生,因此,对这些数据的存储管理十分必要。
目前,不同类型的数据分别存放于不同的数据库中,当需要查找某一类型的数据时,首先需要找到对应的数据库,再根据原始数据中的关键信息进行检索,使用多个数据库存储不同类型的数据增加了数据在检索时的复杂性,并且,根据原始数据的关键信息进行检索需要逐个分析数据内容并进行匹配,可见,这样的存储与检索数据方式严重影响了数据的检索效率。
基于此,本申请实施例提出的一种数据存储方法、检索方法、***、设备及存储介质,其首先获取待存储的目标数据集,并提取目标数据集的数据类型,其中,目标数据集包括原始数据特征;接着,根据数据类型,对目标数据集进行高维转换,得到高维矢量数据集,其中,高维矢量数据集包括高维矢量特征;然后,根据数据类型,对高维矢量数据集进行低维转换,得到低维矢量数据集,其中,低维矢量数据集包括低维矢量特征;之后,根据预先设定好的索引结构,将低维矢量数据集、高维矢量数据集和目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层,以使当根据低维矢量特征或高维矢量特征进行检索时,得到目标数据集,其中,高维矢量特征、低维矢量特征和原始数据特征之间相互存在关联。
即本申请中的目标数据集以及目标数据集对应的高维矢量数据集和低维矢量数据集能够存储在同一数据库中,无需分别存储于多个数据库中,实现了目标数据多种数据模态的高效存储;并且,通过这样的数据存储方式,能够使得当对目标数据集进行检索时,无需对目标数据集的原始数据特征进行逐一检索,而是可以通过与原始数据特征存在关联的高维矢量特征和低维矢量特征进行检索,以通过低维矢量数据和高维矢量数据缩小目标数据集的检索范围,由于低维矢量数据的检索速度十分迅速,也因此能够实现目标数据的快速检索。
本申请实施例提供的数据存储方法、检索方法、***、设备及存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的数据存储***。
示例性地,如图1所示,图1是本申请实施例提供的数据存储***的应用场景示意图,在数据存储***(以下简称“***”)中,包含有用户端11和服务器端12,其中,服务器端12包含数据库,该数据库能够将高维矢量数据集、低维矢量数据集和目标数据集分别存储于不同的数据层;用户可以在用户端11进行检索操作,当用户在用户端11输入目标检索特征时,服务器端12可以根据目标检索特征在数据库中进行检索,得到目标数据集。需要说明的是,服务器端12还可以与多个用户端11连接,以实现多端用户的数据检索操作,具体按照操作人员的实际需要进行设定,在此本申请实施例不做具体限制。
本申请实施例中的数据存储方法可以通过如下实施例进行说明。
在一些实施例中,本申请实施例还可以基于人工智能技术对相关的数据进行获取和处理。例如,可以通过人工智能对目标数据集进行高维转换和低维转换以存储至服务器端的数据库中。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例提供的数据存储方法,涉及人工智能技术领域。本申请实施例提供的数据存储方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式***,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现数据存储方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据用户信息、用户行为数据,用户历史数据以及用户位置信息等与用户身份或特性相关的数据进行相关处理时,都会先获得用户的许可或者同意。而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取用户的敏感个人信息时,会通过弹窗或者跳转到确认页面等方式获得用户的单独许可或者单独同意,在明确获得用户的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的用户相关数据。
基于此,本申请实施例中的多渠道动态文件直传方法可以通过如下实施例进行说明。
图2是本申请实施例提供的数据存储方法的一个可选的流程图,图2中的方法可以包括但不限于包括步骤S101至步骤S104。
步骤S101,获取待存储的目标数据集,并提取目标数据集的数据类型,其中,目标数据集包括原始数据特征;
在一些实施例中,目标数据集可以由用户输入得到,或者,从预先存储有目标数据集的数据库中获取得到。
在一些实施例中,目标数据集可以是文本、音频、图像或视频等多种数据形式,且每一目标数据集中可以包括一个或多个目标数据,目标数据的数据特征即为目标数据集的原始数据特征。
示例性地,某一目标数据集为学生信息,其包括了所有学生的身高和体重,则每一学生对应一个目标数据,身高信息和体重信息为该目标数据集的原始数据特征。
在一些实施例中,目标数据集的数据类型可以通过提取操作得到,当目标数据集存储于特定的存储格式时,可以提取得到目标数据集的数据类型。示例地,当目标数据集存储于txt文件中时,可以确定该目标数据集的数据类型为文本类型。
在一些实施例中,目标数据集的数据类型还可以通过传输渠道确定,如果数据是通过HTTP或HTTPS协议进行传输的,其通常会在请求头(HTTP Header)中包含Content-Type字段,该字段指示了请求或响应体的数据类型。示例性地,当Content-Type为"text/plain"时,确定其数据类型为文本类型,当Content-Type为"image/jpeg"、"image/png"、"image/gif"时,确定其数据类型为图像类型。
步骤S102,根据数据类型,对目标数据集进行高维转换,得到高维矢量数据集,其中,高维矢量数据集包括高维矢量特征;
在一些实施例中,针对目标数据集的不同数据类型,可以对目标数据集采取不同的高维转换操作,并生成该目标数据集对应的高维矢量数据集,其中,高维矢量数据集包括一个或多个高维矢量数据,每一高维矢量数据均包括了高维矢量特征。
在一些实施例中,当将目标数据集通过高维转换得到高维数据集后,可以更容易地使用各种机器学习算法对高维矢量数据进行分类、聚类或回归等处理操作,以更准确地反映各目标数据集之间的差异性和相似性。由于高维矢量数据集与目标数据集存在关联,通过高维矢量数据集和目标数据集的关联存储,能够使得在检索时通过检索高维矢量特征得到对应的高维矢量数据集来缩小目标数据集的检索范围,进而实现目标数据集的快速检索。
步骤S103,根据数据类型,对低维矢量数据集进行低维转换,得到低维矢量数据集,其中,低维矢量数据集包括低维矢量特征;
在一些实施例中,针对目标数据集的不同数据类型,可以对高维矢量数据集采取不同的低维转换操作,并生成该高维矢量数据集对应的低维矢量数据集,其中,低维矢量数据集包括一个或多个低维矢量数据,每一低维矢量数据均包括了低维矢量特征。
在一些实施例中,当将高维矢量数据集通过低维转换得到低维数据集后,可以更容易地使用各种机器学习算法对低维矢量数据进行分类、聚类或回归等处理操作,以更准确地反映各目标数据集之间的差异性和相似性。由于低维矢量数据集与目标数据集存在关联,通过低维矢量数据集和目标数据集的关联存储,能够使得在检索时通过检索低维矢量特征得到对应的低维矢量数据集来缩小目标数据集的检索范围,进而实现目标数据集的快速检索。
步骤S104,根据预先设定好的索引结构,将低维矢量数据集、高维矢量数据集和目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层,以使当根据低维矢量特征或高维矢量特征进行检索时,得到目标数据集,其中,高维矢量特征、低维矢量特征和原始数据特征之间相互存在关联。
在一些实施例中,低维矢量数据集、高维矢量数据集和目标数据集分别存储于数据库的不同数据层,示例性地,低维矢量数据集、高维矢量数据集和目标数据集可以分别存储于第一矢量层、第二矢量层和原始数据层。
在一些实施例中,可以预先设定多种索引结构,相关人员可以根据具体地需要选取一种或多种索引结构来存储数据集。
在一些实施例中,常用的索引结构包括B-Tree索引、Hash索引、Full-Text索引和R-Tree索引等。
在一些实施例中,低维矢量数据集、高维矢量数据集和目标数据集(以下将简称为“数据集”)能够依据不同的索引结构进行存储,其中,各数据集对应的索引结构可以不同,并且,每一存储层可以包括多个不同的索引结构,用于以多种不同的存储方式存储各数据集,这样,在数据检索时,能够根据不同需求使用不同的索引结构进行检索。示例性地,原始数据层采用使用B树索引结构,而第一矢量层和第二矢量层采用KD(K-Dimensional Tree,KD)树和LSH(Locality Sensitive Hashing,LSH)树两种索引结构进行数据集的存储。
在一些实施例中,低维矢量数据集、高维矢量数据集和目标数据集可以分别存放于数据库的不同数据层中,实现了数据的高效存储。
在一些实施例中,还可以根据实际需要在数据库中设置更多地数据存储层以存储目标数据集的其他转换形式,以实现更高效的数据管理。如可以设置元数据层,其中,元数据层用于存储与目标数据集相关的元数据,如数据的来源、创建时间、使用的提取或降维方法等,这些数据能够用于数据管理和审计。
在一些实施例中,由于低维矢量数据集是通过高维矢量数据集低维转换得到,而高维矢量数据集又是通过目标数据集高维转换得到,因此,低维矢量数据集、高维矢量数据集和目标数据集之间相互存在关联。
在一些实施例中,由于每一数据层均有自己的索引结构,不同层级的索引结构之间的交互和关联通常通过一些映射关系来实现,由此实现了不同数据层之间的关联。具体地,每个上级索引结构中的索引条目可以包含一个指向下级索引的索引结构中的索引条目的指针,如此,可以实现从上级索引条目快速地找到下级索引条目。例如,原始数据层的一个索引条目可能包含一个指向第二矢量层的相应索引条目的指针。
可以理解的是,通过将目标数据集进行高维转换和低维转换,将目标数据集的多种模态数据分别存储在数据库的不同数据层中,避免了将不同模态数据存储于不同数据库带来的低效存储,同时,这样的存储方式能够提高对目标数据集的检索效率。
如图3所示,图3是图2步骤S102的一个实现流程图,在一些实施例中,步骤S101还可以包括步骤S201至步骤S202:
步骤S201,当数据类型为第一类型时,对目标数据集进行分词操作并得到分词结果,对分词结果进行高维矢量映射操作,得到高维矢量数据集;
在一些实施例中,第一类型的数据包括文本类型,当目标数据集为文本类型数据时,可以首先对目标数据集进行分词操作得到分词结果,接着,对分词结果进行高维矢量映射操作,可以得到高维矢量数据集。
在一些实施例中,对于文本数据,可以使用词嵌入(Word Embeddings)或句子嵌入(Sentence Embeddings)技术将文本转换为高维向量。
在一些实施例中,可以采用词向量算法Word2Vec或词向量算法GloVe,其均是将单词映射到向量空间中,使得语义上相近的单词在向量空间中的距离也相近。
在一些实施例中,可以使用句子向量化算法BERT或Sentence-BERT,其均是将整个句子映射到高维向量空间中,以捕捉句子的语义信息。
在一些实施例中,在对目标是数据集进行高维转换之间,可以对高维矢量数据集进行预处理。其中,预处理可以包括数据清洗、格式转换、特征提取等相关操作。
步骤S202,当数据类型为第二类型时,将目标数据集输入预先训练好的转换模型,根据转换模型对目标数据集进行特征提取操作,得到高维矢量特征,对高维矢量特征进行高维矢量化操作,得到高维矢量数据集。
在一些实施例中,第二类型的数据包括图像、音频和视频等需要使用数据模型进行处理的数据。
在一些实施例中,对于图像数据,可以使用卷积神经网络(Convolutional NeuralNetworks,CNN)将图像转换为高维向量。在卷积神经网络训练过程中,CNN学习到的特征表示能够捕捉图像的各种视觉属性,通常,我们可以从CNN的全连接层(或其他适当的层)提取特征向量,用作图像的高维向量表示。
在一些实施例中,对于音频数据,可以使用深度学习方法,如循环神经网络(Recurrent Neural Networks,RNN)或一维卷积神经网络(1D CNN)将音频信号转换为高维向量。示例性地,首先对音频信号进行预处理,如提取梅尔频率倒谱系数(Mel-FrequencyCepstral Coefficients,MFCC)或其他特征,接着,使用RNN或1D CNN学习音频特征的向量表示。
在一些实施例中,对于视频数据,可以使用三维卷积神经网络(3D CNN)或两流卷积神经网络(Two-Stream CNN)将视频帧序列转换为高维向量。其中,3D CNN能够捕捉视频的空间和时间信息,而两流CNN分别学习视频的空间信息(使用RGB帧)和时间信息(使用光流),接着,可以从这些网络的适当层提取特征向量,用作视频的高维向量表示。
在一些实施例中,高维矢量数据集通常是由浮点数表示的,这些浮点数可能需要较大的存储空间。为了减少存储需求,可以使用矢量编码技术,如乘积量化(ProductQuantization,PQ)或SimHash等将原始浮点数向量编码为更紧凑的二进制或整数向量。这种编码方法可以大大减少存储空间需求,同时保持矢量之间相似性的近似计算。
在一些实施例中,还可以对高维矢量数据集使用各种压缩算法如LZ77(Lempel-Ziv77)、LZ78(Lempel-Ziv78)或Brotli等进行压缩,以进一步减少存储空间需求,压缩后的数据可以以更少的存储空间存储在数据库中。
如图4所示,图4是图2步骤S102的另一个实现流程图,在一些实施例中,步骤S102还可以包括步骤S301至步骤S302:
步骤S301,当待存储的目标数据集中包括至少两种互有关联的子目标数据集时,分别根据各子目标数据集的数据类型对各子目标数据集进行高维转换,得到多个包含子高维矢量特征的子高维矢量数据集;
在一些实施例中,目标数据集可能包含不止一种数据类型的子目标数据集,并且,多个子目标数据集之间存在关联,为实现更快速地数据检索,可以将多个存在关联的子目标数据集均进行高维转换,并得到包含子高维矢量特征的各子高维矢量数据集。
在一些实施例中,互有关联的子目标数据集可以是一种数据的多种表示方式,如城市天气的文本类型数据和图像类型数据;或者,可以是两种存在关联的不同数据,如城市天气的文本类型数据和城市介绍视频类型数据。
在一些实施例中,目标数据集可能包含多个子目标数据集,其中,部分子目标数据集之间互有关联,另一部分目标数据集之间则没有关联,对此,可以对存在关联的子目标数据集部分进行高维转换。
步骤S302,将多个子高维矢量数据集进行矢量融合,得到包括多个子高维矢量特征的高维矢量数据集。
在一些实施例中,可以对高维转换后得到的多个包含子高维矢量特征的子高维矢量数据集进行矢量融合,矢量融合后得到的高维矢量数据集包括了多个参与矢量融合的子目标数据集的子高维矢量特征,这样,融合了多种不同模态的高维矢量数据集,可以利用不同感知通道的信息,并更好地理解和表达多模态对象的特征,以使在进行目标数据集的检索时,能够更准确、迅速地检索到目标数据集。
在一些实施例中,矢量融合方法可以包括向量拼接法、加权平均法、特征交叉法、线性变换法或者模型融合法等多种矢量融合方法。
示例性地,目标数据集包括文本数据类型的子目标数据集A和与其存在数据关联的图像数据类型的子目标数据集B,首先,使用词嵌入(例如Word2Vec或GloVe)来将子目标数据集A转换为子高维矢量数据集A,假设词嵌入函数为E,那么对于子目标数据集A,我们可以得到它的向量表示为E(A);同样,可以使用预先训练好的卷积神经网络(例如VGG或ResNet)来将子目标数据集B转换为子高维矢量数据集B。假设我们的卷积神经网络为C,那么对于子目标数据集B,可以得到它的向量表示为C(B)。接着,可以将子高维矢量数据集A和子高维矢量数据集B进行矢量融合,形成一个新的向量,如当使用向量拼接法进行矢量融合时,可以得到融合后的高维矢量数据集为[E(A),C(B)]。
示例性地,在得到的融合后高维矢量数据集后,还可以对该高维矢量数据集做进一步地矢量数据特征增强处理操作,例如,可以将融合后的高维矢量数据集为[E(A),C(B)]输入到一个全连接神经网络F(Fully Connected Network,FCN)中,则可以得到矢量数据特征增强后的数据结果为F([E(A),C(B)])。
如图5所示,图5是图2步骤S103的一个实现流程图,在一些实施例中,步骤S103可以包括步骤S401至步骤S402:
步骤S401,当数据类型为线性类型时,从高维矢量数据集中提取多个线性矢量特征,根据线性矢量特征对高维矢量数据集进行低维矢量映射操作,得到低维矢量数据集;
在一些实施例中,在将目标数据集对应的高维矢量数据集存储至数据库中后,还需要对高维矢量数据集进行低维转换以得到低维矢量数据集,其中,低维矢量数据集包含了低维矢量特征,并且,低维矢量特征的检索速度十分迅速。
在一些实施例中,低维矢量映射操作即为降维处理,其是将高维数据映射到低维空间的过程,旨在保留数据的关键特征和结构。可以理解的是,在处理高维向量时,通过降维技术得到低维矢量数据集可以帮助减少计算复杂度、降低存储需求并提高可视化效果。
在一些实施例中,当目标数据集的数据类型还包括线性类型和非线性类型,当目标数据集为线性类型时,可以从高维矢量数据集中提取多个线性矢量特征,接着,根据线性矢量特征对高维矢量数据集进行低维矢量映射操作,得到低维矢量数据集。
在一些实施例中,主成分分析(Principal Component Analysis,PCA)是一种线性降维技术,其通过找到数据的主要方差方向将数据投影到由主成分组成的低维空间,从而实现降维,PCA通常用于处理连续型数据即线性类型数据,并且假设该数据在低维空间中呈线性结构。
在一些实施例中,线性判别分析(Linear Discriminant Analysis,LDA)是一种监督式降维方法,其试图找到将数据投影到低维空间时类别之间的距离最大化的方向,LDA通常用于分类问题,其目标是在降维后的空间中最大化类别可分性。
步骤S402,当数据类型为非线性类型时,计算高维矢量数据集中各非线性矢量特征之间的相似度值,根据相似度值对非线性矢量特征进行低维矢量映射操作,得到低维矢量数据集。
在一些实施例中,当目标数据集的数据类型为非线性类型时,需对应采用非线性降维方法。
在一些实施例中,t分布随机邻域嵌入(t-Distributed Stochastic NeighborEmbedding,t-SNE)是一种非线性降维方法,它将高维数据映射到低维空间,同时尽量保持原始数据中的相似度结构,t-SNE通过最小化高维空间和低维空间中相似度分布之间的KL(Kullback-Leibler)散度来实现降维,t-SNE特别适用于可视化高维数据,例如图像、文本和生物信息学数据。
如图6所示,图6是图2步骤S104的一个实现流程图,在一些实施例中,步骤S104可以包括步骤S501至步骤S504:
步骤S501,分别提取低维矢量数据集、高维矢量数据集和目标数据集的索引信息,并根据索引信息分别确定高维矢量数据集、低维矢量数据集和目标数据集对应的索引结构;
在一些实施例中,索引信息可以是关键属性或关键字段等信息,并根据该索引信息,一一确定各低维矢量数据集、高维矢量数据集和目标数据集的索引结构。示例性地,目标数据集的索引信息为数据序列号,且各数据序列号唯一,则可以使用B+树作为存储的索引结构。
在一些实施例中,为实现高效的向量检索,需要使用合适的数据结构(即索引结构)来存储高维向量。常用的数据结构包括KD树、球树(Ball-Tree)和VP树(Vantage-PointTree)等。这些树结构可以根据向量之间的距离关系进行组织,以便在检索时减少不必要的距离计算。
在一些实施例中,为进一步提高检索效率,可以对数据库使用索引技术并进行分区。如使用倒排索引技术将相似的向量聚集在一起,以减少检索过程中的搜索空间。使用分区技术如局部敏感哈希(Locality Sensitive Hashing,LSH)或k-means聚类等可以将矢量数据库划分为较小的子集,从而实现分布式存储和并行检索。
步骤S502,将高维矢量数据集、低维矢量数据集和目标数据集分别划分为多个特征数据组,其中,特征数据组包括多个矢量数据;
在一些实施例中,在确定对应的索引结构后,还需要进一步确定划分策略,以更好地存储数据集。
在一些实施例中,首先将高维矢量数据集、低维矢量数据集和目标数据集分别划分为多个特征数据组,特征数据组的划分是为了从多个组别中确定目标维度最大方差值和维度划分值。
步骤S503,对每一特征数据组的特征数据进行维度方差计算,得到维度最大方差值,并计算特征数据的平均值或众数值,根据平均值或众数值得到维度划分值;
在一些实施例中,相关技术通常采用目标数据的中位数作为划分值,这些简单的策略在处理高维数据或者非均匀分布的数据时可能效果不佳。对此,本申请实施例中采用目标数据的最大方差的维度作为划分维度,以尽可能地增大子空间的差异性。
示例性地,设定特征数据组是一个n维的数据集D,我们的目标是选择一个划分维度d,则可以计算每个特征数据组的方差,接着选择方差最大的维度即维度最大方差值作为划分维度,其中,划分维度d具体的计算公式如下式(1)所示:
d=argmax_{i=1}^n*var(D_i) (1)
其中,D_i表示数据集D在第i维的数据,var(D_i)表示D_i的方差,argmax表示找出使方差最大的维度。
在一些实施例中,维度划分值表示的是在确定划分维度最大方差值后需要对应的维度划分值,其中,维度划分值是为了将高维矢量数据集、低维矢量数据集和目标数据集对应分配到相应的子节点或区域中,维度划分值决定了划分的位置和方式,对于数据集的存储和查询起着重要的作用。
步骤S504,获取各特征数据组的存储分区,根据最大方差值、维度划分值和存储分区,将高维矢量数据集、低维矢量数据集和目标数据集分别依据对应的索引结构存储于数据库的第一矢量层、第二矢量层和原始数据层。
在一些实施例中,存储分区用于表征不同的存储区域,第一矢量层、第二矢量层和原始数据层各自对应有一个或多个存储分区。
在一些实施例中,在确定了最大方差值、维度划分值和存储分区后,即可依据不同层的索引结构将高维矢量数据集、低维矢量数据集和目标数据集分别依据对应的索引结构存储于数据库的第一矢量层、第二矢量层和原始数据层。
在一些实施例中,可以将数据库的不同数据层进一步划分为多个存储分区,其中,不同的存储分区可以对应不同的索引结构,同一数据集可以利用不同的索引结构在不同的存储分区进行数据集的存储,或者,在不同的存储分区使用同样的索引结构进行不同数据的存储。
如图7所示,图7是图2步骤S104之后的一个实现流程图,在一些实施例中,步骤S104之后还可以包括步骤S601至步骤S602:
步骤S601,记录各高维矢量数据集、低维矢量数据集和目标数据集的检索次数;
在一些实施例中,检索次数指的是数据访问频率或查询负载。
在一些实施例中,在数据库的各数据存储层中,还可以记录并保存各高维矢量数据集、低维矢量数据集和目标数据集的检索次数,并根据该检索次数对数据集的存储进行调整,以使数据集的存储更为高效合理,进而提高数据集检索的效率。
步骤S602,当检索次数超过预设的检索阈值时,将高维矢量数据集/低维矢量数据集/目标数据集调整至对应索引结构的优先节点,其中,优先节点用于表征数据的优先检索位置。
在一些实施例中,可以预先设定有检索阈值,检索阈值用于与检索次数进行比较,当检索次数大于检索阈值时,可以对存储结构进行优化。
在一些实施例中,当检索次数超过预设的检索阈值时,可以将高维矢量数据集/低维矢量数据集/目标数据集调整至对应索引结构的优先节点。示例性地,第一矢量层的索引结构包括三个节点层,在进行数据检索时,通常优先对第一节点层进行检索,那么,当某一高维矢量数据集的检索次数超过预设的检索阈值时,可以将该可以将高维矢量数据集调整至第一矢量层对应索引结构的第一节点层,由此完成数据集的存储动态调整,并进而提高数据集的检索效率。
在一些实施例中,还可以根据负载情况动态调整存储资源。具体可以包括存储资源的动态调整、计算资源的动态调整和网络资源的动态调整。
在一些实施例中,存储资源的动态调整包括数据的动态迁移和副本的动态调整。例如,当索引结构的某一存储节点的存储空间不足时,可以将该存储节点的一部分数据迁移到其他存储节点;或者,当某个数据集的访问频率增加时,可以增加该数据集的副本数量,以提高数据的访问速度。
在一些实施例中,计算资源的动态调整包括动态调度和存储节点的动态扩展。例如,当某个存储节点的计算负载过高时,可以将该存储节点的一部分存储数据集调度到其他节点;或者,当数据库的总体存储需求增加时,可以增加新的存储节点,以提高数据的总体存储能力。
在一些实施例中,网络资源的动态调整包括网络拓扑的动态调整。例如,当网络的带宽不足时,由于同一数据集可能采用了不同的索引结构进行存储,因此,当网络的延迟过高时,可以选择另一索引结构进行检索以优化提高检索速度。
图8是本申请实施例提供的数据检索方法的一个可选的流程图,图8中的方法可以包括但不限于包括步骤S701至步骤S704。
步骤S701,获取待检索目标数据集的目标检索特征;
在一些实施例中,根据上述通过本申请实施例提供的数据存储方法得到的存储有低维矢量数据集、高维矢量数据集和目标数据集的数据库,可以对其进行数据集的检索。
在一些实施例中,目标检索特征可以是高维矢量数据集/低维矢量数据集/目标数据集的关键特征数据。
步骤S702,若目标检索特征为低维检索特征,根据低维检索特征,在数据库的第一矢量层中确定低维矢量数据集,以及低维矢量数据集对应的低维矢量特征;
在一些实施例中,当目标检索特征为低维检索特征时,可以在数据库的第一矢量层中检索得到该低维检索特征对应的低维矢量数据集,该低维矢量数据集包括了低维矢量特征。
步骤S703,根据高维转换后的低维矢量特征,在数据库的第二矢量层中确定高维矢量数据集,以及高维矢量数据集对应的高维矢量特征;
在一些实施例中,由于低维矢量数据集是由高维矢量数据集转换而来,因此,在得到低维矢量数据集后,还可以将低维矢量数据集对应的低维矢量特征进行高维转换,利用高维转换得到的高维矢量特征在第二矢量层进行检索,能够确定检索到的低维矢量数据集对应的高维矢量数据集,该高维矢量数据集包括了高维矢量特征。
步骤S704,根据低维转换后的高维矢量特征,从数据库的原始数据层中确定高维矢量特征对应的目标数据集,其中,检索得到的目标数据集包括原始数据特征,原始数据特征与目标检索特征匹配,高维矢量特征、低维矢量特征和原始数据特征之间相互存在关联。
在一些实施例中,由于高维矢量数据集是由目标数据集转换而来,因此,在得到高维矢量数据集后,还可以将高维矢量数据集对应的高维矢量特征进行低维转换,利用低维转换得到的目标数据集的原始数据特征在原始数据层进行检索,由此,最终确定检索到的高维矢量数据集对应的目标数据集。
在一些实施例中,通过首先在第一矢量层进行低维矢量数据集的快速相似性搜索,接着在第二矢量层进行对应高维矢量数据集精确的相似性匹配,最后在原始数据层返回最终的目标数据集检索结果,可以理解的是,通过数据库的分层检索策略,可以充分利用多层级存储结构的优势,实现目标数据集的高效检索。
需要说明的是,由于低维矢量特征包含的数据量少、检索复杂度低,因此,通过低维检索特征能够快速确定与最终检索的目标数据集对应的低维矢量数据集,这样,可以预先缩小检索范围,接着,再利用高维转换后的低维矢量特征进一步确定高维矢量数据集,能够精确检索范围以最终确定目标数据集,避免逐一检索目标数据集造成的数据集检索效率低下。
在一些实施例中,目标检索特征也可以是高维矢量特征,此时,可以直接从数据库的第二矢量层中确定高维矢量数据集,并根据低维转换后的高维矢量特征从数据库的原始数据层中确定高维矢量特征对应的目标数据集。或者,目标检索特征也可以是原始数据特征,此时,可以直接从数据库的原始数据层中确定对应的目标数据集。
如图9所示,图9是本申请实施例提供的数据存储的功能模块示意图,本申请实施例还提供一种数据存储***,可以实现上述数据存储方法,数据存储***包括:
获取模块801,用于获取待存储的目标数据集,并提取目标数据集的数据类型,其中,目标数据集包括原始数据特征;
高维转换模块802,用于根据数据类型,对目标数据集进行高维转换,得到高维矢量数据集,其中,高维矢量数据集包括高维矢量特征;
低维转换模块803,用于根据数据类型,对高维矢量数据集进行低维转换,得到低维矢量数据集,其中,低维矢量数据集包括低维矢量特征;
存储模块804,用于根据预先设定好的索引结构,将低维矢量数据集、高维矢量数据集和目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层,以使当根据低维矢量特征或高维矢量特征进行检索时,得到目标数据集,其中,高维矢量特征、低维矢量特征和原始数据特征之间相互存在关联。
在一些实施例中,目标数据集可以由用户输入得到,或者,从预先存储有目标数据集的数据库中获取得到。
在一些实施例中,
在一些实施例中,目标数据集可以是文本、音频、图像或视频等多种数据形式,且每一目标数据集中可以包括一个或目标数据,目标数据的数据特征即为目标数据集的原始数据特征。
示例性地,某一目标数据集为学生信息,其包括了所有学生的身高和体重,则每一学生对应一个目标数据,身高信息和体重信息为该目标数据集的原始数据特征。
在一些实施例中,目标数据集的数据类型可以通过提取操作得到,当目标数据集存储于特定的存储格式时,可以提取得到目标数据集的数据类型。示例地,当目标数据集存储于txt文件中时,可以确定该目标数据集的数据类型为文本类型。
在一些实施例中,目标数据集的数据类型还可以通过传输渠道确定,如果数据是通过HTTP或HTTPS协议进行传输的,其通常会在请求头(HTTP Header)中包含Content-Type字段,该字段指示了请求或响应体的数据类型。示例性地,当Content-Type为"text/plain"时,确定其数据类型为文本类型,当Content-Type为"image/jpeg"、"image/png"、"image/gif"时,确定其数据类型为图像类型。
在一些实施例中,针对目标数据集的不同数据类型,可以对目标数据集采取不同的高维转换操作,并生成该目标数据集对应的高维矢量数据集,其中,高维矢量数据集包括一个或高维矢量数据,每一高维矢量数据均包括了高维矢量特征。
在一些实施例中,当将目标数据集通过高维转换得到高维数据集后,可以更容易地使用各种机器学习算法对高维矢量数据进行分类、聚类或回归等处理操作,以更准确地反映各目标数据集之间的差异性和相似性。由于高维矢量数据集与目标数据集存在关联,通过高维矢量数据集和目标数据集的关联存储,能够使得在检索时通过检索高维矢量特征得到对应的高维矢量数据集来缩小目标数据集的检索范围,进而实现目标数据集的快速检索。
在一些实施例中,针对目标数据集的不同数据类型,可以对高维矢量数据集采取不同的低维转换操作,并生成该高维矢量数据集对应的低维矢量数据集,其中,低维矢量数据集包括一个或低维矢量数据,每一低维矢量数据均包括了低维矢量特征。
在一些实施例中,当将高维矢量数据集通过低维转换得到低维数据集后,可以更容易地使用各种机器学习算法对低维矢量数据进行分类、聚类或回归等处理操作,以更准确地反映各目标数据集之间的差异性和相似性。由于低维矢量数据集与目标数据集存在关联,通过低维矢量数据集和目标数据集的关联存储,能够使得在检索时通过检索低维矢量特征得到对应的低维矢量数据集来缩小目标数据集的检索范围,进而实现目标数据集的快速检索。
在一些实施例中,低维矢量数据集、高维矢量数据集和目标数据集分别存储于数据库的不同数据层,示例性地,低维矢量数据集、高维矢量数据集和目标数据集可以分别存储于第一矢量层、第二矢量层和原始数据层。
在一些实施例中,可以预先设定多种索引结构,相关人员可以根据具体地需要选取一种或多种索引结构来存储数据集。
在一些实施例中,常用的索引结构包括B-Tree索引、Hash索引、Full-Text索引和R-Tree索引等。
在一些实施例中,低维矢量数据集、高维矢量数据集和目标数据集(以下将简称为“数据集”)能够依据不同的索引结构进行存储,其中,各数据集对应的索引结构可以不同,并且,每一存储层可以包括不同的索引结构,用于以多种不同的存储方式存储各数据集,这样,在数据检索时,能够根据不同需求使用不同的索引结构进行检索。示例性地,原始数据层采用使用B树索引结构,而第一矢量层和第二矢量层采用KD(K-Dimensional Tree,KD)树和LSH(Locality Sensitive Hashing,LSH)树两种索引结构进行数据集的存储。
在一些实施例中,低维矢量数据集、高维矢量数据集和目标数据集可以分别存放于数据库的不同数据层中,实现了数据的高效存储。
在一些实施例中,还可以根据实际需要在数据库中设置更多地数据存储层以存储目标数据集的其他转换形式,以实现更高效的数据管理。如可以设置元数据层,其中,元数据层用于存储与目标数据集相关的元数据,如数据的来源、创建时间、使用的提取或降维方法等,这些数据能够用于数据管理和审计。
在一些实施例中,由于低维矢量数据集是通过高维矢量数据集低维转换得到,而高维矢量数据集又是通过目标数据集高维转换得到,因此,低维矢量数据集、高维矢量数据集和目标数据集之间相互存在关联。
在一些实施例中,由于每一数据层均有自己的索引结构,不同层级的索引结构之间的交互和关联通常通过一些映射关系来实现,由此实现了不同数据层之间的关联。具体地,每个上级索引结构中的索引条目可以包含一个指向下级索引的索引结构中的索引条目的指针,如此,可以实现从上级索引条目快速地找到下级索引条目。例如,原始数据层的一个索引条目可能包含一个指向第二矢量层的相应索引条目的指针。
在一些实施例中,为方便用户使用,数据存储***可以提供统一的API接口和查询语言,以支持对多层级存储结构的透明访问。此外,数据存储***还可以提供可视化工具和监控功能,以帮助用户了解数据存储和检索的状态,并根据需要进行调整和优化。
可以理解的是,通过将目标数据集进行高维转换和低维转换,将目标数据集的多种模态数据分别存储在数据库的不同数据层中,避免了将不同模态数据存储于不同数据库带来的低效存储,同时,这样的存储方式能够提高对目标数据集的检索效率。
该数据存储***的具体实施方式与上述数据存储方法的具体实施例基本相同,在此不再赘述。在满足本申请实施例要求的前提下,数据存储***还可以设置其他功能模块,以实现上述实施例中的数据存储方法。
本申请实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述数据存储方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
如图10所示,图10是本申请实施例提供的电子设备的硬件结构示意图,电子设备包括:
处理器901,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器902,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器902可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器902中,并由处理器901来调用执行本申请实施例的数据存储方法;
输入/输出接口903,用于实现信息输入及输出;
通信接口904,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线905,在设备的各个组件(例如处理器901、存储器902、输入/输出接口903和通信接口904)之间传输信息;
其中处理器901、存储器902、输入/输出接口903和通信接口904通过总线905实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述数据存储方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”和“若干”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的***和方法,可以通过其它的方式实现。例如,以上所描述的***实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (10)
1.一种数据存储方法,其特征在于,所述方法包括:
获取待存储的目标数据集,并提取所述目标数据集的数据类型,其中,所述目标数据集包括原始数据特征;
根据所述数据类型,对所述目标数据集进行高维转换,得到高维矢量数据集,其中,所述高维矢量数据集包括高维矢量特征;
根据所述数据类型,对所述高维矢量数据集进行低维转换,得到低维矢量数据集,其中,所述低维矢量数据集包括低维矢量特征;
根据预先设定好的索引结构,将所述低维矢量数据集、所述高维矢量数据集和所述目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层,以使当根据所述低维矢量特征或所述高维矢量特征进行检索时,得到所述目标数据集,其中,所述高维矢量特征、所述低维矢量特征和所述原始数据特征之间相互存在关联。
2.根据权利要求1所述的数据存储方法,其特征在于,所述根据所述数据类型,对所述目标数据集进行高维转换,得到高维矢量数据集,包括:
当所述数据类型为第一类型时,对所述目标数据集进行分词操作并得到分词结果,对所述分词结果进行高维矢量映射操作,得到高维矢量数据集;
当所述数据类型为第二类型时,将所述目标数据集输入预先训练好的转换模型,根据所述转换模型对所述目标数据集进行特征提取操作,得到高维矢量特征,对所述高维矢量特征进行高维矢量化操作,得到高维矢量数据集。
3.根据权利要求1所述的数据存储方法,其特征在于,所述根据所述数据类型,对所述目标数据集进行高维转换,得到高维矢量数据集,还包括:
当待存储的所述目标数据集中包括至少两种互有关联的子目标数据集时,分别根据各所述子目标数据集的数据类型对各所述子目标数据集进行高维转换,得到多个包含子高维矢量特征的子高维矢量数据集;
将多个所述子高维矢量数据集进行矢量融合,得到包括多个所述子高维矢量特征的高维矢量数据集。
4.根据权利要求1所述的数据存储方法,其特征在于,所述根据所述数据类型,对所述高维矢量数据集进行低维转换,得到低维矢量数据集,包括:
当所述数据类型为线性类型时,从所述高维矢量数据集中提取多个线性矢量特征,根据所述线性矢量特征对所述高维矢量数据集进行低维矢量映射操作,得到低维矢量数据集;
当所述数据类型为非线性类型时,计算所述高维矢量数据集中各非线性矢量特征之间的相似度值,根据所述相似度值对所述非线性矢量特征进行低维矢量映射操作,得到低维矢量数据集。
5.根据权利要求1所述的数据存储方法,其特征在于,所述根据预先设定好的索引结构,将所述低维矢量数据集、所述高维矢量数据集和所述目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层,包括:
分别提取所述低维矢量数据集、所述高维矢量数据集和所述目标数据集的索引信息,并根据所述索引信息分别确定所述高维矢量数据集、所述低维矢量数据集和所述目标数据集对应的索引结构;
将所述高维矢量数据集、所述低维矢量数据集和所述目标数据集分别划分为多个特征数据组,其中,所述特征数据组包括多个特征数据;
对每一所述特征数据组的所述特征数据进行维度方差计算,得到维度最大方差值,并计算所述矢量数据的平均值或众数值,根据所述平均值或所述众数值得到维度划分值;
获取各所述特征数据组的存储分区,根据所述最大方差值、所述维度划分值和所述存储分区,将所述高维矢量数据集、所述低维矢量数据集和所述目标数据集分别依据对应的所述索引结构存储于数据库的第一矢量层、第二矢量层和原始数据层。
6.根据权利要求1所述的数据存储方法,其特征在于,在所述根据预先设定好的索引结构,将所述低维矢量数据集、所述高维矢量数据集和所述目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层之后,还包括:
记录各所述高维矢量数据集、所述低维矢量数据集和所述目标数据集的检索次数;
当所述检索次数超过预设的检索阈值时,将所述高维矢量数据集/所述低维矢量数据集/所述目标数据集调整至对应索引结构的优先节点,其中,所述优先节点用于表征数据的优先检索位置。
7.一种数据检索方法,其特征在于,所述方法包括:
获取待检索目标数据集的目标检索特征;
若所述目标检索特征为低维检索特征,根据所述低维检索特征,在数据库的第一矢量层中确定低维矢量数据集,以及所述低维矢量数据集对应的低维矢量特征;
根据高维转换后的所述低维矢量特征,在数据库的第二矢量层中确定高维矢量数据集,以及所述高维矢量数据集对应的高维矢量特征;
根据低维转换后的所述高维矢量特征,从数据库的原始数据层中确定所述高维矢量特征对应的目标数据集,其中,检索得到的所述目标数据集包括原始数据特征,所述原始数据特征与所述目标检索特征匹配,所述高维矢量特征、所述低维矢量特征和所述原始数据特征之间相互存在关联。
8.一种数据存储***,其特征在于,所述***包括:
获取模块,用于获取待存储的目标数据集,并提取所述目标数据集的数据类型,其中,所述目标数据集包括原始数据特征;
高维转换模块,用于根据所述数据类型,对所述目标数据集进行高维转换,得到高维矢量数据集,其中,所述高维矢量数据集包括高维矢量特征;
低维转换模块,用于根据所述数据类型,对所述高维矢量数据集进行低维转换,得到低维矢量数据集,其中,所述低维矢量数据集包括低维矢量特征;
存储模块,用于根据预先设定好的索引结构,将所述低维矢量数据集、所述高维矢量数据集和所述目标数据集分别存储于数据库的第一矢量层、第二矢量层和原始数据层,以使当根据所述低维矢量特征或所述高维矢量特征进行检索时,得到所述目标数据集,其中,所述高维矢量特征、所述低维矢量特征和所述原始数据特征之间相互存在关联。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的数据存储方法或权利要求7所述的数据检索方法。
10.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的数据存储方法或权利要求7所述的数据检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311182707.4A CN117390013A (zh) | 2023-09-12 | 2023-09-12 | 数据存储方法、检索方法、***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311182707.4A CN117390013A (zh) | 2023-09-12 | 2023-09-12 | 数据存储方法、检索方法、***、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117390013A true CN117390013A (zh) | 2024-01-12 |
Family
ID=89462070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311182707.4A Pending CN117390013A (zh) | 2023-09-12 | 2023-09-12 | 数据存储方法、检索方法、***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117390013A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140583A (zh) * | 2007-10-09 | 2008-03-12 | 华为技术有限公司 | 一种文本检索的方法和装置 |
CN104318046A (zh) * | 2014-08-18 | 2015-01-28 | 南京大学 | 增量式的高维数据转换为低维数据的***及方法 |
CN108629345A (zh) * | 2017-03-17 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 高维图像特征匹配方法和装置 |
US20180349735A1 (en) * | 2015-07-23 | 2018-12-06 | Beijing Jingdong Shangke Information Technology Co Ltd. | Method and Device for Comparing Similarities of High Dimensional Features of Images |
CN115129949A (zh) * | 2022-06-30 | 2022-09-30 | 上海徐毓智能科技有限公司 | 向量范围检索的方法、装置、设备、介质及程序产品 |
-
2023
- 2023-09-12 CN CN202311182707.4A patent/CN117390013A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140583A (zh) * | 2007-10-09 | 2008-03-12 | 华为技术有限公司 | 一种文本检索的方法和装置 |
CN104318046A (zh) * | 2014-08-18 | 2015-01-28 | 南京大学 | 增量式的高维数据转换为低维数据的***及方法 |
US20180349735A1 (en) * | 2015-07-23 | 2018-12-06 | Beijing Jingdong Shangke Information Technology Co Ltd. | Method and Device for Comparing Similarities of High Dimensional Features of Images |
CN108629345A (zh) * | 2017-03-17 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 高维图像特征匹配方法和装置 |
CN115129949A (zh) * | 2022-06-30 | 2022-09-30 | 上海徐毓智能科技有限公司 | 向量范围检索的方法、装置、设备、介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111753060B (zh) | 信息检索方法、装置、设备及计算机可读存储介质 | |
CN112131350B (zh) | 文本标签确定方法、装置、终端及可读存储介质 | |
US8498455B2 (en) | Scalable face image retrieval | |
CN111125422A (zh) | 一种图像分类方法、装置、电子设备及存储介质 | |
EP3138051A1 (en) | Learning multimedia semantics from large-scale unstructured data | |
WO2023108993A1 (zh) | 基于深度聚类算法的产品推荐方法、装置、设备及介质 | |
JP2016540332A (ja) | 視覚・意味複合ネットワーク、および当該ネットワークを形成するための方法 | |
CN114329029B (zh) | 对象检索方法、装置、设备及计算机存储介质 | |
CN112149410A (zh) | 语义识别方法、装置、计算机设备和存储介质 | |
TW202001621A (zh) | 語料庫產生方法及裝置、人機互動處理方法及裝置 | |
CN114627282A (zh) | 目标检测模型的建立方法、应用方法、设备、装置及介质 | |
CN114490923A (zh) | 相似文本匹配模型的训练方法、装置、设备及存储介质 | |
CN114329004A (zh) | 数字指纹生成、数据推送方法、装置和存储介质 | |
CN116821307B (zh) | 内容交互方法、装置、电子设备和存储介质 | |
CN114328800A (zh) | 文本处理方法、装置、电子设备和计算机可读存储介质 | |
CN116578729B (zh) | 内容搜索方法、装置、电子设备、存储介质和程序产品 | |
WO2023168997A1 (zh) | 一种跨模态搜索方法及相关设备 | |
CN117435685A (zh) | 文档检索方法、装置、计算机设备、存储介质和产品 | |
CN112084338A (zh) | 一种文档自动归类方法、***、计算机设备及存储介质 | |
CN116775875A (zh) | 问题语料库构建方法和装置、问答方法、设备及存储介质 | |
CN115017263B (zh) | 文章推荐方法、文章推荐装置、电子设备、存储介质 | |
CN115145980B (zh) | 对话回复生成方法和装置、电子设备及存储介质 | |
KR102590388B1 (ko) | 영상 컨텐츠 추천 장치 및 방법 | |
CN113449522A (zh) | 一种文本模糊匹配方法和装置 | |
Bouhlel et al. | Hypergraph learning with collaborative representation for image search reranking |
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 |