本发明专利技术为大数据近似检索方法,具体是基于稀疏哈希的大数据检索方法。主要针对大数据的存储和大数据的检索进行应用开发。首先使用抽样的方法按照理论和计算机内存决定训练集的大小。接着对训练集进行学习,学习出大数据编码的哈希函数和训练集的二进制编码。接着按照学到的哈希函数对大数据进行二进制编码。此时,可以进行在线的检索应用,即对一个测试实例,首先根据得到的哈希函数得到它的二进制代码,然后在对大数据的二进制代码进行实时检索。本方法对大数据检索的时间复杂度为线性,能解决流形学习无显式函数的问题,而且降低大数据的存储量到上万倍,易于实施,编写代码时只涉及到一些简单的数学模型。
【技术实现步骤摘要】
基于稀疏哈希的大数据检索方法
本专利技术涉及计算机科学与
和信息
,具体涉及大数据,特别是一种使用稀疏哈希进行图片、文本、音乐等大数据检索方法。
技术介绍
大数据是指无法在当前条件下使用常规的工具对数据内容进行检索和管理的数据集。数据量大、数据类型繁多、价值密度低和处理速度快是大数据四个非常显著的特点。目前大数据知识发现的研究主要集中在划分、聚类、检索、增量(批量、在线或平行)学习这4个方面。目前对大数据检索问题处理的研究比较少。检索的时候用户通常希望能快速的从所有资料中得到自己所需要的东西。这就涉及到一个速度和准确率如何选取的问题。在二十年甚至十年前,研究者追求的是准确率。因此,设计了各种树形结果KD-tree,M-tree等准确的进行数据库检索,而且取得了很大的应用。近十年,随着网络的日益普及,大数据的产生,准确检索已经满足不了用户的需要。大量文献显示,如果数据的维度小于10维,准确检索能很好的满足用户实际需要。但是维数一旦超过这个阈值或者更高,准确检索的复杂度就非常高,最坏情况达到遍历整个数据库的复杂度,这在实际应用中显然是不可行的。近年来,近似检索已经取得了显著的发展,特别是网络检索,用户追求的是快速而近似的多媒体检索。在众多的近似检索方法中,哈希方法最为突出。哈希方法的原理是把高维的实数值数据降低到低维二进制数据而且保存数据间的相似性,然后尽量把大数据集保存在计算机内存或者外磁盘,以此达到快速检索的目的。
技术实现思路
本专利技术研究大数据近似检索问题。本专利技术的目的在于提供简单而有效的大数据近似检索算法。该方法可解决大数据检索高复杂度和低准确率等。即本方法通过保持数据的流行结构来保证二进制尽可能多的保持原始高维数据的局部结构以提高哈希成绩,通过有效的优化方法降低算法复杂度到线性。本专利技术包含两个关键过程,即哈希函数学习和大数据实时检索。其中哈希函数学习包括高维实数值数据转成低维实数值和低维实数值转成等维二进制两过程。大数据实时检索即根据得到的哈希函数首先转实例为二进制,然后在计算机内存进行检索。本方法的具体步骤如下:(1)从大数据中抽样数据当做训练集用于训练哈希函数。大数据数量过于庞大,根据统计理论,没必要用所有数据作为训练集。本专利技术首先抽样部分数据做为训练集。且抽取的训练集大小n由决定,其中tα/2表示置信度的值,可以通过t分布临界值获得,ε表示最大的允许误差。各种参数设置请见下表。至此,得到训练集X。(2)用X训练哈希函数。首先设计目标函数转高维实数数据到低维数据。目标函数定义为:其中X为训练集,B是基空间,B的每一个向量是从训练集X中训练出来的基向量,S是X被投影在基空间B上的低维实数值,λ1和λ2是通过十折交叉验证方法取得的可调参数,wi,j是X中两个实例xi和xj之间的欧式距离在高斯核上的投影,si和sj是矩阵S中的两个向量,Bi,j是矩阵B中的第i行和第j列元素,i=1,…,n表示实例的记号,j=1,…,k表示基向量的标号,n是实例的个数,k是基向量的个数,表示S中每个元素为非负。第一项||X-BS||2的目标是在基空间B上重构训练集X得到S而且重构错误希望最小;第二项Σi,jwi,j||si-sj||2是保持原始训练集X的局部流行结果,此项保证二进制数据的保持原始高维数据的相似性,从而保证哈希的成绩;第三项保证得到的S是稀疏的;第四项确保得到S是非负的。根据此目标函数,得到的S是X的低维表示。训练哈希函数的第二步即把S转换成二进制代码:S中非0元素转换成0,否则为1。训练哈希函数的第三步即得到哈希函数。假设S的维度是d,X的维度是D,(D>>d),二进制编码的长度为d。在d维中每一维当做一个向量,此向量为二进制(即分类中的二类问题),本专利技术为每一维建立一个哈希函数,一共建立d个哈希函数。建立哈希函数的过程很简单,即找到训练集X中哈希值全为1的实例为类Am1,m=1,…,d,剩余哈希值为0的实例归为类Am0,m=1,…,d,得到2d个类,哈希函数定义为:sign(xi)=argmini{||xi-Aijsi||2,j=0,1,]]>设S的维度是d,X的维度是D,D>>d,d维中每一维为一个二进制向量,为d维中每一维建立一个哈希函数,一共建立d个哈希函数;式中,Xi是矩阵X的第i个向量,Si是矩阵S的第i个向量,i=1,…,n。(3)对大数据集中还没得到二进制代码的实例进行二进制编码过程为:对每一个实例x,通过s=(B'B+2I)-1B'x得到x的低维实数值,然后通过哈希函数得到它的低维二进制代码;其中,B是上面步骤定义的基空间,I是跟B同维度的单位矩阵。这样,对整个大数据进行编码,使得大数据能储存在计算机内存或者外磁盘。(4)对新来的测试实例xt,通过st=(B'B+2I)-1B'xt得到xt的低维实数值,然后通过哈希函数得到它的低维二进制代码;其中,B是上面步骤定义的基空间,I是跟B同维度的单位矩阵。最后,把测试实例的二进制代码跟大数据的二进制代码进行相似性搜索,以得到它的相似实例。其中本专利技术的步骤(2)是关键,保证算法的效率和效果。其算法复杂度近为维度D的三次方。在大数据应用中,维度D的大小远比实例数量小得多,因此本专利技术算法复杂度是实例大小的线性关系。而且由于本专利技术步骤(2)考虑了保持数据的流型结构,算法的效果可以得到保障。另外由于生成的是非负的低维实数值,使得得到的结果便于解释。本专利技术的稀疏哈希大数据检索模型的特征在于:使用稀疏算法和抽样的方法降低算法复杂度;使用流形学习理论生成哈希函数提高哈希成绩;生成显式的哈希函数避免流形学习的隐式哈希函数;二进制化原则是指哈希结果可解释;大数据的存储问题得到大幅度降低。抽样大数据:通常在整个大数据内进行各种数据挖掘学习是非常困难的。即使可行,复杂度也很高,抽样方法使得对大数据分类的操作变为可行,而且使得分类的复杂度降低到线性。这正是大数据挖掘期待的结果。流形理论嵌入哈希学习模型:流形理论已经被证明是一种非常有效的局部结构保持方法,此方法对建立哈希模型尤为重要。本专利技术在学习哈希的过程中加入流形正则化因子。首要目的是保持数据集的流形结果确保高的哈希成绩,其次是设计新颖的优化方法得到了哈希函数的显式表达解决了以往流形学习无显式表达的困难;二进制化的可解释性。在转低维实数值为同维二进制的时候,由于采用非负表示和新颖的二进制转化,使得得到的二进制表示具有可解释性而且相似性继续保持。这区别于现有哈希方法的二进制化方法;低复杂度:由于采用高效的优化方法和抽样方法,使得学习哈希函数的过程复杂度与大数据实例数量无关,最差情况下的复杂度是线性。低储存量:由于创新的使用二进制代码替换正式数据的存储方法,使得大数据的存储节省了上万倍的空间。附图说明图1是一个测试实例的降维结果;图2是图1的图片的二进制代码。具体实施方式随机从网络上截取7万张动物图片,假设每张图片需要1M的存储空间,(注此图片已经不是很保真的图片了),那么整个数据集需70G空间存储。本专利技术代替每张图片用4位二进制代码代替,总过只需约3.5K的存储空间。这样比原始存储省了近20000倍。(1)由于常见的4G内存电脑可以处理本专利技术算法10万实例。因此对此数据集,本文档来自技高网...
【技术保护点】
基于稀疏哈希的大数据检索方法,包括下述步骤:(1)从大数据中抽样数据当做训练集X;(2)用X训练哈希函数;(3)对大数据集中还没得到二进制代码的实例进行二进制编码,并将编码后的大数据储存在计算机内存或者外磁盘;(4)对新来的测试实例,首先得到它的低维实数值,然后得到它的低维二进制代码,最后,把测试实例的二进制代码跟大数据的二进制代码进行相似性搜索,得到它的相似实例。
【技术特征摘要】
1.基于稀疏哈希的大数据检索方法,包括下述步骤:(1)从大数据中抽样数据当做训练集X;(2)用X训练哈希函数;(3)对大数据集中还没得到二进制代码的实例进行二进制编码,并将编码后的大数据储存在计算机内存或者外磁盘;(4)对新来的测试实例,首先得到它的低维实数值,然后得到它的低维二进制代码,最后,把测试实例的二进制代码跟大数据的二进制代码进行相似性搜索,得到它的相似实例;所述步骤(1)的训练集X的训练集大小n由确定,其中tα/2表示置信度的值,通过t分布临界值获得,ε表示设定的最大的允许误差;所述步骤(2)包括下述过程:A).建立目标函数:其中X为训练集,B是基空间,B的每一个向量是从训练集X中训练出来的基向量,S是X被投影在基空间B上的低维实数值,λ1和λ2是通过十折交叉验证方法取得的可调参数,wi,j是X中两个实例xi和xj之间的欧式距离在高斯核上的投影,si和sj是矩阵S中的两个向量,Bi,j是矩阵B中的第i行和第j列元素,i=1,…,n表示实例的记号,j=1,…,k表示基向量的标号,n是实...
【专利技术属性】
技术研发人员:朱晓峰,张师超,刘星毅,
申请(专利权)人:广西师范大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。