CN113901278A - 一种基于全局多探测和适应性终止的数据搜索方法和装置 - Google Patents
一种基于全局多探测和适应性终止的数据搜索方法和装置 Download PDFInfo
- Publication number
- CN113901278A CN113901278A CN202111260468.0A CN202111260468A CN113901278A CN 113901278 A CN113901278 A CN 113901278A CN 202111260468 A CN202111260468 A CN 202111260468A CN 113901278 A CN113901278 A CN 113901278A
- Authority
- CN
- China
- Prior art keywords
- data
- hash
- search
- bucket
- vector
- 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
Images
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/909—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明请求保护一种基于全局多探测和适应性终止的数据搜索方法和装置,通过随机XBOX数据变换,使得数据集分布得更均匀,具体的,依据模长划分策略将数据按照模长分区,对每个分区使用随机XBOX变换,并借助局部敏感哈希函数建立索引,当搜索数据时,使用全局多桶探测策略生成候选点,利用原空间两点的内积和它们的哈希值之间的紧密关系,定义量化距离指导搜索,从而提高候选点质量,同时使用自适应提前终止条件,可以在效率和搜索精度之间取得更好的平衡。本发明的全局多探测和适应性终止策略的最大内积搜索方法具有搜索时间快且稳定,搜索精度高等特性,同时由于采用全局多桶探测,所需空间开销也很小,使之适用于处理大规模数据集。
Description
技术领域
本发明属于大数据管理应用领域,具体的,涉及一种基于全局多探测和适应性终止的数据搜索方法、装置、设备和可读存储介质。
背景技术
最大內积搜索问题作为基础搜索操作在数据库中被广泛使用,因此对于它的搜索优化引起了研究者的兴趣。大量研究着重于解决高维数据的近似最大内积问题。主流方法采用局部敏感哈希来进行求解。然而,由于內积不是测度,不满足距离公理,因此使用局部敏感哈希的近似最大內积搜索算法,需要借助非对称变换把原內积空间转化成一个度量空间,再使用局部敏感哈希在这个度量空间求解。因此,一个采用局部敏感哈希函数来求解最大内积搜索的算法,通常需要一个性质良好的非对称变换函数和一套与之适应的局部敏感哈希框架组成。将原来的d维向量扩充到d+m维,从而把近似最大內积搜索问题转化成了基于余弦距离的近似近邻搜索问题;XBOX变换,只需将原来的d维向量扩充到d+1维,使近似最大內积搜索问题转化为基于余弦距离或欧氏距离的近似近邻搜索问题。
这些方法使用的变化函数存在一些不足,使得搜索效率受到了极大影响。比如,欧氏变换和余弦变换会引入数据失真误差,从而使变换空间中得到的结果并非原内积空间的最佳结果。XBOX变换避免了数据失真误差,却使得变换后的数据分布得很不均匀。另外,在使用了非对称变换后,大部分方案采用很基础的局部敏感哈希策略来完成搜索,而没有去考虑内积自身的特性。即使有人开始尝试了改进局部敏感哈希方案中的搜索策略,但是也忽略了XBOX变换带来的数据不均匀问题,从而使搜索效率依旧受到限制。
发明内容
针对上述介绍的现有技术的缺陷,本发明将打造搜索时间快且稳定,搜索精度高等特性的一种基于全局多探测和适应性终止的数据搜索方法与装置。
本申请实施例提供了一种基于全局多探测和适应性终止的数据搜索方法、装置、设备和可读存储介质。
第一方面,本申请实施例提供了一种基于全局多探测和适应性终止的数据搜索方法,用于数据库中,所述数据库中包括数据点,所述数据点位于内积空间中,其特征在于,所述方法包括:
数据预处理,将所述数据库中的数据点依据模长进行分区,使用数据变换,将所述分区中的数据点从内积空间映射到余弦空间中,获得所述数据点的第一向量;
索引构建,基于所述第一向量,采用构桶策略为每一个所述分区构建索引,将所述第一向量转化为多个不同的哈希表;
数据搜索,输入搜索数据,采用全局多桶探测策略,依据所述多个不同的哈希表获得多个量化距离,基于所述量化距离获得搜索结果。
在上述第一方面的一种可能的实现中,所述数据预处理,将所述数据库中的数据点依据模长进行分区之前,还包括:
将所述数据库中的所有数据点转换为高维向量数据;
所述数据点的数据源包括但不限于文本和/或图片和/或音频和/或视频和/或评分数据;
所述将所述数据库中的数据点转换为多维向量数据时,依据所述数据点的类型采用不同的策略将所述数据点统一表示为维数为d的高维向量,所述d维向量的每一个维度,代表着不同类型的属性,所述高维向量在每一维度的值,表示所述每一维度的属性下的权重值;
所述将所述数据库中的所有数据点转换为高维向量数据通过数据嵌入方法。
在上述第一方面的一种可能的实现中,所述索引构建,基于所述第一向量,采用构桶策略为每一个所述分区构建索引,将所述第一向量转化为多个不同的哈希表,具体还包括:
联立多个局部敏感哈希函数,获得多维联合哈希函数,将每个分区中的所述第一向量输入所述多维联合哈希函数,获得所述哈希表;
每个所述哈希表中包括多个哈希桶;
采用(K,L)构桶策略来对所述数据点构建哈希桶,所述(K,L)构桶策略中,对每一所述分区采用K*L个哈希函数来构建索引。
在上述第一方面的一种可能的实现中,所述数据搜索,输入搜索数据,采用全局多桶探测策略,依据所述多个不同的哈希表获得多个量化距离,基于所述量化距离获得搜索结果,还包括:
通过随机XBOX将所述搜索数据变换转换为搜索向量,使用用于构建索引的相同的K*L个哈希函数对所述搜索向量进行哈希处理;
采用GMP策略确定要在所有2K*L个哈希桶中具体探测的哈希桶对象序列,具体的,通过量化距离评估哈希桶中出现所述搜索结果的概率,量化距离越小,表示哈希桶中出现所述搜索结果的概率越大;
不断探测所有未访问的哈希桶中量化距离最小的那个探测桶中的数据点被视为候选点;
当终止条件成立时,查询过程结束。
第二方面,本申请实施例提供了一种基于全局多探测和适应性终止的数据搜索装置,用于数据库中,所述数据库中包括数据点,所述数据点位于内积空间中,其特征在于,所述方法包括:
数据预处理模块,将所述数据库中的数据点依据模长进行分区,使用数据变换,将所述分区中的数据点从内积空间映射到余弦空间中,获得所述数据点的第一向量;
索引构建模块,基于所述第一向量,采用构桶策略为每一个所述分区构建索引,将所述第一向量转化为多个不同的哈希表;
数据搜索模块,输入搜索数据,采用全局多桶探测策略,依据所述多个不同的哈希表获得多个量化距离,基于所述量化距离获得搜索结果。
在上述第二方面的一种可能的实现中,所述数据预处理模块,将所述数据库中的数据点依据模长进行分区之前,还包括:
将所述数据库中的所有数据点转换为高维向量数据;
所述数据点的数据源包括但不限于文本和/或图片和/或音频和/或视频和/或评分数据;
所述将所述数据库中的数据点转换为多维向量数据时,依据所述数据点的类型采用不同的策略将所述数据点统一表示为维数为d的高维向量,所述d维向量的每一个维度,代表着不同类型的属性,所述高维向量在每一维度的值,表示所述每一维度的属性下的权重值;
所述将所述数据库中的所有数据点转换为高维向量数据通过数据嵌入方法。
在上述第二方面的一种可能的实现中,所述索引构建模块,基于所述第一向量,采用构桶策略为每一个所述分区构建索引,将所述第一向量转化为多个不同的哈希表,具体还包括:
联立多个局部敏感哈希函数,获得多维联合哈希函数,将每个分区中的所述第一向量输入所述多维联合哈希函数,获得所述哈希表;
每个所述哈希表中包括多个哈希桶;
采用(K,L)构桶策略来对所述数据点构建哈希桶,所述(K,L)构桶策略中,对每一所述分区采用K*L个哈希函数来构建索引。
在上述第二方面的一种可能的实现中,所述数据搜索模块,输入搜索数据,采用全局多桶探测策略,依据所述多个不同的哈希表获得多个量化距离,基于所述量化距离获得搜索结果,还包括:
通过随机XBOX将所述搜索数据变换转换为搜索向量,使用用于构建索引的相同的K*L个哈希函数对所述搜索向量进行哈希处理;
采用GMP策略确定要在所有2K*L个哈希桶中具体探测的哈希桶对象序列,具体的,通过量化距离评估哈希桶中出现所述搜索结果的概率,量化距离越小,表示哈希桶中出现所述搜索结果的概率越大;
不断探测所有未访问的哈希桶中量化距离最小的那个探测桶中的数据点被视为候选点;
当终止条件成立时,查询过程结束。
第三方面,本申请实施例提供了一种基于全局多探测和适应性终止的数据搜索设备,其特征在于,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行所述指令以实施第一方面所述的任一种基于全局多探测和适应性终止的数据搜索方法。
第四方面,本申请实施例提供了一种使用计算机程序编码的计算机可读存储介质,其特征在于,所述计算机可读介质上存储有指令,所述指令在计算机上执行时使计算机执行第一方面所述的任一种基于全局多探测和适应性终止的数据搜索方法。
本发明请求保护的一种基于全局多探测和适应性终止的数据搜索方法和装置,通过随机XBOX数据变换,使得数据集分布得更均匀,具体的,依据模长划分策略将数据按照模长分区,对每个分区使用随机XBOX变换,并借助局部敏感哈希函数建立索引,当搜索数据时,使用全局多桶探测策略生成候选点,利用原空间两点的内积和它们的哈希值之间的紧密关系,定义量化距离指导搜索,从而提高候选点质量,同时使用自适应提前终止条件,可以在效率和搜索精度之间取得更好的平衡。本发明的全局多探测和适应性终止策略的最大内积搜索方法具有搜索时间快且稳定,搜索精度高等特性,同时由于采用全局多桶探测,所需的空间开销也很小,使之适用于处理大规模数据集。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1根据本申请的一些实施例,示出了一种基于全局多探测和适应性终止的数据搜索方法的工作流程图;
图2根据本申请的一些实施例,示出了一种基于全局多探测和适应性终止的数据搜索方法的应用场景图;
图3根据本申请的一些实施例,示出了一种基于全局多探测和适应性终止的数据搜索装置的硬件结构框图;
图4根据本申请的一些实施例,示出了一种基于全局多探测和适应性终止的数据搜索方法的XBOX变换与随机XBOX变换对比示意图;
图5根据本申请的一些实施例,示出了一种基于全局多探测和适应性终止的数据搜索方法的哈希投影示意图;
图6a根据本申请的一些实施例,示出了一种基于全局多探测和适应性终止的数据搜索方法的哈希桶的量化距离示意图;
图6b根据本申请的一些实施例,示出了一种基于全局多探测和适应性终止的数据搜索方法的GMP探测序列示意图图;
图7根据本申请的一些实施例,示出了一种基于全局多探测和适应性终止的数据搜索方法的候选点查询点示意图;
图8根据本申请的一些实施例,示出了一种基于全局多探测和适应性终止的数据搜索方法的数据集上GMP的召回率-查询时间曲线对比图;
图9根据本申请的一些实施例,示出了一种基于全局多探测和适应性终止的数据搜索装置的硬件结构框图;
图10根据本申请的一些实施例,示出了一种基于全局多探测和适应性终止的数据搜索方法的数据集上GMP的总体比率-查询时间曲线示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本申请的说明性实施例包括但不限于一种基于全局多探测和适应性终止的数据搜索方法、装置、设备和可读存储介质。
可以理解,本申请提供的数据搜索方法方法可以在各种系统上实施,包括但不限于,服务器、多个服务器组成的分布式服务器集群、手机、平板电脑、膝上型计算机、台式计算机、可穿戴设备、头戴式显示器、移动电子邮件设备、便携式游戏机、便携式音乐播放器、阅读器设备、个人数字助理、虚拟现实或者增强现实设备、其中嵌入或耦接有一个或多个处理器的电视机等数据搜索系统等。
可以理解,在本申请各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,处理器可以是单核处理器,多核处理器等,和/或其任何组合。
下面对本申请实施例的发明构思进行简要介绍。
大数据时代下,信息技术的发展给数据分析带来新的机遇,海量数据(如生物基因数据,金融数据,环境数据,卫星影像数据等)的迅速积累引起了各个领域的广泛关注。其中,针对高维数据的最大内积搜索成为数据科学研究领域的热点之一,如大规模推荐系统、深度学习、搜索引擎等。如何有效开发利用高维数据不仅成为学术界热烈讨论的课题,而且相关技术也被工业界各大互联网公司应用到实际产品中。字节跳动旗下的智能推荐产品灵驹(ByteAir),依托于字节跳动全球领先的大数据及机器学习平台,结合在新闻资讯、视频直播、社交、电商等多个领域的能力积累,为合作伙伴提供定制化推荐算法服务,持续提升核心业务指标,通过算法能力创造价值。百度大脑推出的零门槛AI开发平台EasyDL,支持包括数据管理与数据标注、模型训练、模型部署的一站式AI开发流程。原始图片、文本、音频、视频等数据,经过EasyDL加工、学习、部署,可通过公有云API调用,或部署在本地服务器、小型设备、软硬一体方案的专项适配硬件上,通过SDK或API进一步集成。
这些产品在处理大规模图片、文本、音频、视频等数据时,会将其表征为高维向量,并需要借助最大内积搜索等技术来对其压缩,划分,存储及检索。因此,本发明有着十分广泛的应用前景。
图1根据本申请的第一实施例,示出了一种基于全局多探测和适应性终止的数据搜索方法,用于数据库中,数据库中包括数据点,数据点位于内积空间中,,方法包括:
数据预处理,将数据库中的数据点依据模长进行分区,使用数据变换,将分区中的数据点从内积空间映射到余弦空间中,获得数据点的第一向量;
索引构建,基于数据点的第一向量,采用构桶策略为每一个分区构建索引,将数据点的第一向量转化为多个不同的哈希表;
数据搜索,输入搜索数据,采用全局多桶探测策略,依据多个不同的哈希表获得多个量化距离,基于量化距离获得搜索结果。
总体而言本发明的设计流程由三部分组成,即数据预处理,索引构建和搜索。为了实现高效准确的近似最大内积搜索,首先,本发明使用了效果更好的随机XBOX变换,使变换后的数据集分布更均匀。其次,本发明采用了全局多桶探测策略来生成候选点,提高了候选点的质量。
在介绍完本申请实施例的发明构思之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
本发明把输入的数据对象通过数据嵌入(Embedding)技术表示成一个d维向量。输入的数据对象可以来源于文本,图片,音频,视频甚至评分数据。对不同类型的输入数据采用不同的策略,将它们统一表示为维数为d的高维向量,这个d维向量的每一个维度,代表着不同类型的属性,而某个向量在该维度的值,表示该属性下它的权重为多少。通过这样的表示手段,可以使不同类型数据对象的相似度,可以通过它们表示后的高维向量之间的内积来衡量。接着,我们简单介绍如何嵌入不同类型的数据。具体的,图2根据本申请的一些实施例,示出了一种基于全局多探测和适应性终止的数据搜索方法的应用场景图。具体的,该场景包括终端101、处理器1021、存储器102、I/O接口1023、数据库1024和网络103。
终端101可以是台式终端或移动终端,移动终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等。终端101可以安装有可以进行文本、视频、音频等数据输入的应用程序。本申请实施例涉及的应用可以是软件客户端,也可以是网页、小程序等客户端,若应用为网页、小程序等客户端时,后台服务器则是与软件或是网页、小程序等相对应的后台服务器,不限制客户端的具体类型。其中,用户可以通过在应用上登录自己的用户,进而进行搜索数据的输入。
1021-1024可以为终端101上安装的应用所对应的后台服务器,例如可以是独立的物理服务器或者是多个服务器组成的服务器集群或分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。1021-1024构成了服务器。
服务器还可以配置数据库1024,数据库1024可以用于存储用户搜索的范围内的数据点。其中,服务器102的存储器1022中还可以存储本申请实施例的搜索结果等程序指令,这些程序指令被处理器1021执行时能够用以实现本申请实施例提供的确定数据搜索方法的的步骤,以对用户输入的搜索内容进行数据库中的待候选内容的匹配比对,将搜索结果的内容推送给目标用户,以在终端101中用于后续的人工智能交互应用。
终端101和服务器102之间通过网络103连接,网络103包括一个或多个,并且可以包括各种连接类型,例如有线、无线通信链路、云或者光纤电缆等等,上述的网络具体实例可包括终端101的通信供应商提供的互联网。
首先,处理器1021通过与终端101交互的I/O接口1023,读取终端101所对应的存储于数据库1024中的用户提交的自然语言处理语料库训练数据集,接下来,存储器1022通过执行存储的数据搜索方法的程序指令,训练完成后并通过与终端交互的I/O接口1023将其推送至终端101,展示给用户。
具体的,当101终端的输入数据和1024的存储数据为文本数据时,对于文本数据,本发明采用经典的word2vec技术来进行嵌入。在这里,文本数据被看作词的有序组合,每个词都属于词库中的某一个元素。由于词库中的元素个数有限,并远小于可能的不同文本数据数目,因此本发明使用Word2vec技术,对词库中的每个词进行Embedding,将其表示为d维特征向量,此时,每个词就是一个词向量。而文本数据,就可以看作词向量的一个有序组合。通过使用LSTM等神经网络对这个有序组合进行语义分析,就可以把原文本数据表示成一个d维特征向量。
具体的,当101终端的输入数据和1024的存储数据为音频数据时,对于音频数据,本发明采用著名的ASRT端到端语音识别框架,将音频数据表示为文本,之后采用上述的文本数据嵌入手段将其表示为d维向量。
具体的,当101终端的输入数据和1024的存储数据为图像数据时,对于图像数据,本发明以著名的LeNet图像识别框架为基础,将组成图像数据的像素矩阵作为输入,分析该图像与d个属性中每一个属性的相关性,从而得到该图像的d维特征向量。
具体的,当101终端的输入数据和1024的存储数据为视频数据时,对于视频数据,本发明对视频进行插值采样,将其看作一系列的图像的有序组合。对其中的每一个图像进行嵌入后,把这些图像的特征向量进行线性组合,就可以得到所需的视频对象的d维特征向量。
图3根据本申请的一些实施例,示出了一种基于人工智能的数据搜索系统的硬件结构框图。具体地,如图3所示,其包括一个或多个处理器与处理器中的至少一个连接的系统控制逻辑,与系统控制逻辑连接的系统内存,与系统控制逻辑连接的非易失性存储器(NVM),以及与系统控制逻辑连接的网络接口。
在一些实施例中,处理器可以包括一个或多个单核或多核处理器。在一些实施例中,处理器可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在数据搜索系统采用eNB(Evolved Node B,增强型基站)或RAN(RadioAccess Network,无线接入网)控制器的实施例中,处理器可以被配置为执行各种符合的实施例。
在一些实施例中,处理器包括GPU,CPU,FPGA和TPU。基于待处理的训练和推理任务的数据集情况进行处理器的资源调度,将GPU的任务迁移至其他非GPU处理器中,之后,基于各处理器的计算资源对其上的待处理的训练和推理任务进行相应的控制逻辑处理。
在一些实施例中,系统控制逻辑可以包括任意合适的接口控制器,以向处理器中的至少一个和/或与系统控制逻辑通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,系统控制逻辑可以包括一个或多个存储器控制器,以提供连接到系统内存的接口。系统内存可以用于加载以及存储数据和/或指令。在一些实施例中数据搜索系统的内存可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。在一些实施例中,系统内存可以用于加载或者存储实施上述数据搜索的指令,或者系统内存可以用于加载或者存储实施利用上述数据搜索方法进行数据搜索的应用程序的指令。
NVM/存储器可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM/存储器可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard Disk Drive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(Digital Versatile Disc,数字通用光盘)驱动器中的至少一个。NVM/存储器还可以用于存储上述数据搜索别中所用的训练模型。
NVM/存储器可以包括安装数据搜索系统的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口通过网络访问NVM/存储器。
特别地,系统内存和NVM/存储器可以分别包括:指令的暂时副本和永久副本。指令可以包括:由处理器中的至少一个执行时导致数据搜索系统实施本申请中的数据搜索方法的指令。在一些实施例中,指令、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑,网络接口和/或处理器中。
网络接口可以包括收发器,用于为数据搜索系统提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口可以集成于数据搜索系统的其他组件。例如,网络接口可以集成于处理器的,系统内存,NVM/存储器,和具有指令的固件设备(未示出)中的至少一种,当处理器中的至少一个执行指令时,数据搜索系统实现本申请中的数据搜索方法。
网络接口可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。网络接口还用于与云端应用通信连接,实现云端的数据处理。
在一些实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑封装在一起,以形成系统封装(SiP)。在一些实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(SoC)。
数据搜索系统可以进一步包括:输入/输出(I/O)设备。I/O设备可以包括用户界面,使得用户能够与数据搜索系统进行交互;外围组件接口的设计使得外围组件也能够与数据搜索系统交互。
在上述第一实施例的一种可能的实现中,数据预处理,将数据库中的数据点依据模长进行分区之前,还包括:
将数据库中的数据点转换为高维向量数据;
数据点的数据源包括但不限于文本和/或图片和/或音频和/或视频和/或评分数据;
将数据库中的数据点转换为多维向量数据时,依据数据点的类型采用不同的策略将数据点统一表示为维数为d的高维向量,d维向量的每一个维度,代表着不同类型的属性,高维向量在每一维度的值,表示每一维度的属性下的权重值;
将数据库中的数据点转换为高维向量数据通过数据嵌入方法。
除了上述陈述的数据点具体的可以包括的文本和/或图片和/或音频和/或视频之外,由于推荐系统的兴起,评分数据也逐渐引起了人们的兴趣。如Netflix,豆瓣等平台中,用户对电影的评分。将这些数据收集起来,就可以分析出某个用户钟爱什么类型的影视作品,也可以分析得到某个影视作品具有哪些吸引人的属性。为了提高本发明的实用价值,本发明支持了对评分数据的处理。在这里,一套评分数据将不再是单个数据对象的特征,而是在该评分系统中涉及到的所有对象的组合。本发明通过经典的矩阵分解及特征重组技术,可以从一套评分数据中整理出其涉及到的数据对象,并得到这些数据对象的d维特征向量。
在上述第一实施例的一种可能的实现中,数据预处理,将数据库中的数据点依据模长进行分区,使用数据变换,将分区中的数据点从内积空间映射到余弦空间中,获得数据点的第一向量,还包括:
由于大的模长||x||会导致内积qTx极有可能很大,因此qTx与x的模长成正比。本发明通过设置两个参数,模长比率b和每个分区的点数上限N0,该策略依据准将数据划分到D1,D2,...DS多个分区:对于任意两个点x∈Di和y∈Di,如果i<j,则有||x||≤||y||;对于任意两个点x,y∈Di,如果||x||≤||y||,则有b0·||y||<||x||,b0∈(0,1);对于每个分区Di,满足|Di|<N0。
数据变换为随机XBOX变换(RandomXBOXTransformation,RXT),将c′-近似最大内积查询问题转化为c′-近似最近邻查询问题。随机XBOX变换使用两个函数
P:Rd→Rd+1和Q:Rd→Rd+1,其定义如下:
Q(q)=[q:0]
r为随机变量,取值范围为r∈{1,-1}且Pr[r=1]=Pr[r=-1]=1/2。
在使用随机XBOX变换进行变换后,本方案会使用SRP来把变换空间中的P(x)映射到投影空间。对于每个哈希函数h(·),本方案随机选择一个向量a使h(P(x))=sign(aTP(x))。为了描述方便,本方案用h(x)表示来表示h(P(x))。然后本方案使用(K,L)-构桶策略在投影空间中构建哈希桶。利用随机XBOX变换进行空间变换后的数据,相比于利用XBOX变换进行空间变换后的数据分布得更为均匀。附图4为本发明实施例中随机XBOX变换和XBOX变换对比示意图。
在上述第一实施例的一种可能的实现中,索引构建,基于数据点的第一向量,采用构桶策略为每一个分区构建索引,将数据点的第一向量转化为多个不同的哈希表,具体还包括:
联立多个局部敏感哈希函数,获得多维联合哈希函数,将每个分区中的第一向量输入多维联合哈希函数,获得哈希表;
每个哈希表中包括多个哈希桶;
采用(K,L)构桶策略来对数据点构建哈希桶,(K,L)构桶策略中,对每一分区采用K*L个哈希函数来构建索引。
如前面,对于变换空间每个点P(x),采用SRP作为作为哈希函数族对数据进行划分,其形式为h(x)=sign(aTP(x))。根据SRP定义,该哈希函数有如下性质:
对于一个查询点q和一个数据点x,在投影空间中Q(q)和P(x)的角距离为:
之后,本方案构建L个哈希表,每个哈希表使用了K个哈希函数H={h1,h2,…,hK}。因此,对于一个分区,本方案一共采用了K·L个哈希函数,共有2KL个哈希桶。为了简化计算和减少所使用的哈希函数数目,所有的s个分区均采用相同的K·L个哈希函数来构建索引。
在上述第一实施例的一种可能的实现中,数据搜索,输入搜索数据,采用全局多桶探测策略,依据多个不同的哈希表获得多个量化距离,基于量化距离获得搜索结果,还包括:
通过随机XBOX将搜索数据变换转换为搜索向量,使用用于构建索引的相同的K*L个哈希函数对搜索向量进行哈希处理;
采用GMP策略确定要在所有2K*L个哈希桶中具体探测的哈希桶对象序列,具体的,通过量化距离评估哈希桶中出现搜索结果的概率,量化距离越小,表示哈希桶中出现搜索结果的概率越大;
不断探测所有未访问的哈希桶中量化距离最小的那个探测桶中的数据点被视为候选点;
当终止条件成立时,查询过程结束。
在查询阶段,首先,本方案将查询点q通过随机XBOX变换转换为Q(q)。然后,使用用于构建索引的相同的L·K个哈希函数对Q(q)进行哈希处理。由于本方案已将数据集划分为s个分区,因此本方案按其最大模长Mi的降序查询它们,即首先查询分区Ds,然后查询Ds-1。在分区Di中查询候选对象时,本方案采用全局多桶探测(globalmulti-probe,GMP)算法策略来确定要在所有2K*L个哈希桶中探测哪些哈希桶。为了构造探测序列,本方案通过量化距离评估哈希桶B中出现所需结果的概率,量化距离越小,表示B中出现所需结果的概率越大。因此,在所有L哈希表中,本方案将不断探测所有未访问的哈希桶中QD最小的那个。探测桶中的点被视为候选点。当终止条件成立时,查询过程结束。
对于哈希桶B=(b1,b2,...bK)和查询点q,它们之间的量化距离4E3A
QD(q,B)是一组随机变量ξi(q)的和,因此它也是一个随机变量;记B(x)为数据点x所在的一个哈希桶,本方案用累积分布函数Pr[QD(q,B(x))≤ω]来描述这个分布。其中,q和B(x)的量化距离是基于相同的K个哈希函数得到的,Pr[QD(q,B(x))≤ω]只与q和x相关。
给定一个数据点x使其与查询点在变换空间的角距离为θP(x),Q(q)=θ,QD(q,B)的累积分布函数将只受θ影响,而与B(x)位于哪个哈希表无关。θP(x),Q(q)越小,QD(q,B(x))很可能越小。
全局多桶探测算法策略为L个哈希表中的所有哈希桶维护一个全局探测序列。通过维护一个最小堆来记录下一个量化距离最小的哈希桶的可能位置,来减小要计算的QD的量。图5展示了通过SRP投影后得到的两个哈希表。假设对于第一个哈希表,使用的投影向量为a1,1=(1.0,0.1,-0.8)和a2,1=(0.2,0.9,-1.3)。对于第二个哈希表,投影向量为a1,2=(0.6,-0.6,1.1)和a2,2=(0.4,0.9,-1.2)。q的投影值为(h1,1(q),h2,1(q))=(-1.6,2.4)和(h1,2(q),h2,2(q))=(-3.0,2.6)。记TiBj为第i个哈希表中的第j个哈希桶。q和每个哈希桶的量化距离如图6a所示。通过检查一定数目的候选点,本方案比较GMP和多桶探测的准确性。假设检查8个候选点(不计重复的点)。在GMP中,本方案按照图6b中的全局探测序列检查8个候选点。被检查的哈希桶以红色标出。在GMP中,T1B1,T2B1,T1B2和T1B3被检查,x9作为结果被返回。
进一步地,当终止条件成立时,查询过程结束,还包括:
在探测过程中,GMP使用一个自适应提前终止条件来判断查询过程何时结束。为了方便理解,在介绍它之前,本方案先介绍一个正常终止条件。给定一个参数T和一个阈值t,对于一个(θ,c′)-近似最近邻查询,GMP的查询过程在以下两个条件中的一个被满足时终止。
1.GMP已经验证了T个候选点;
2.B*是未访问哈希桶中量化距离最小的那个候选点且QD(q,B)>t。
对所有的查询点,采用固定的参数T和t。然而,对于不同查询点,达到同一精度时需要的候选点数目是十分不同的,这使得算法的性能不高,尤其是当数据比较歪斜时。本方案提出了一个自适应提前终止(AET)条件,因为它“适应性地”把I0和QD(q,B)都纳入考虑。假设B*是下一个将要被探测的哈希桶,I0是当前第大内积。
根据I0和QD(q,B)定义如下两个事件。
E1:对于一个点x,若qTx≥I0,某个哈希表中,x所在的哈希桶仍未被探测;
E2:对于一个点x,若qTx≥I0,x所在的L个哈希桶,至少有一个未被探测。
当E2发生的概率Pr[E2]足够小时,GMP在余下哈希桶中,能找到一个更好结果的概率将很小。此时终止查询过程将十分合理。因此,给定一个失败率pt,AET被定义如下:
这里,α1为Pr[E1],α2=1-(1-α1)L为Pr[E2]。基于中间结果QD(q,B*)和I0,AET判断Pr[E2]是否在允许的失败率pτ之内。当满足AET时,表明在Di中找到的结果足以作为(c,k)-近似最大内积查询的正确结果。
具体的,全局多桶探测GMP方法为:
输入:查询点q,分区D1,D2,...DS,c,pτ,L个哈希表
输出:一个数据点
计算q的哈希值;
令x0为当前最好结果;
循环执行:B*←未探测哈希桶中QD最小的那个,验证B*中的点与q的内积并更新x0;直至满足AET
自适应提前终止条件的建立不依赖于固定的预定义阈值T和t,而是取决于中间查询结果,这使本方案能够更早地自适应地终止查询。
使用自适应提前终止条件时,GMP不需要评估初始的Imax并执行多个(θ,c′)-近似最近邻查询,这使算法更简单,更高效;
自适应提前终止条件是查询相关的,它可根据每一个查询点来为其判断是否可以终止,从而减少了许多不必要的候选点,尤其是在数据偏斜的情况下;
自适应提前终止条件将近似比从c2逼近到c,也就是说,它直接求解(c,k)-近似最大内积查询而不是(c2,k)-近似最大内积查询,使得查询成本更小。
如图7所示,本方案按照数据的模长将数据集分成三个分区,记{x3,x9}为分区D3,{x1,x2,x6,x7,x10,x11}为分区D2,{x4,x5,x8,x12}为分区D1。
当查询点到来,GMP首先查询D3。在8个哈希桶中,本方案根据图6b中的全局探测序列来探测哈希桶,直至自适应提前终止条件被满足。在这个过程中,x3会在T1B2中被发现,x9会在T1B3中被发现。接着,GMP查询D2。AET会在探测完T1B2后被满足且I0=qTx6=16。由于I0>0.5_M1,GMP结束查询过程并返回x9和x6作为结果。
当得到最终的输出结果后,本发明可以告知用户每一个输出结果代表的原数据对象是何种类型并向用户展示其真实模样。使用户可以根据返回的结果进行下一步决策。
具体的,当原数据对象为文本数据时,对于文本数据,通过之前使用LSTM等神经网络对这个有序组合进行语义分析,就可以把原文本数据表示成一个d维特征向量的逆运算,将最终获取的搜索结果转换为文本相似度的计算结果。
具体的,当原数据对象为音频数据时,对于音频数据,通过之前采用著名的ASRT端到端语音识别框架,将音频数据表示为文本,之后采用上述的文本数据嵌入手段将其表示为d维向量的逆运算,将最终获取的搜索结果转换为音频相似度的计算结果。
具体的,当原数据对象为图像数据时,对于图像数据,通过之前采用的LeNet图像识别框架为基础,将组成图像数据的像素矩阵作为输入,分析该图像与d个属性中每一个属性的相关性,从而得到该图像的d维特征向量的逆运算,将最终获取的搜索结果转换为图像相似度的计算结果。
具体的,当原数据对象为视频数据时,对于视频数据,通过之前采用对视频进行插值采样,将其看作一系列的图像的有序组合。对其中的每一个图像进行嵌入后,把这些图像的特征向量进行线性组合,就可以得到所需的视频对象的d维特征向量的逆运算,将最终获取的搜索结果转换为视频相似度的计算结果。
本方案仅报告三个数据集的性能,即MNIST,YahooMusic和GIST,这些数据集被广泛使用在局部敏感哈希相关算法中;评估三个数据集上各个算法(c,k)-近似最大内积查询的召回率或总体比率与查询时间之间的关系。实验结果显示在图8和图9中。由于查询质量和查询时间之间的平衡是局部敏感哈希算法中非常重要的一点,因此本方案希望算法能在尽量短的查询时间内达到所需精度。结果表明,当使用更多查询时间时,所有算法均返回更准确的结果。除此之外,与对比算法相比,GMP具有更高的效率和准确性。只有H2-ALSH和Range-LSH具有与GMP相当的性能。特别是在大规模数据集上,在达到一个相同的精度时,其他算法的查询时间随数据集的规模增大而迅速增加,但是这三个算法的查询时间保持相对稳定。可以通过以下事实来解释:模长划分策略可以筛除大量模长较小的数据点。并且,这个效果随着数据集规模增大而变强。这是因为当有足够多的模长较大的数据点时,最大内积很有可能接近其最大可能值,这使本方案能够快速终止查询。
总体而言,本方案提出的一种新颖的变换函数,使变换后的数据集分布得更均匀,且不引入失真。然后,本方案通过模长划分策略将数据按照他们的模长划分为几个分区。对于每个分区,对其进行空间转换,并采用随机超平面投影为其建立索引。当查询到来时,GMP使用一种简单而有效的策略,即全局多桶探测策略来生成候选点。为了提高候选点的质量,GMP利用原空间两点的内积和它们的哈希值之间的紧密关系,定义了一个量化距离来指导查询。最后,GMP使用一种新型的自适应提前终止条件,可以在效率和查询精度之间取得更好的平衡。这些手段,使GMP拥有比现有的用于最大内积查询的局部敏感哈希方法更高的效率和精度。
第二实施例,参照附图10,本申请实施例提供了一种基于全局多探测和适应性终止的数据搜索装置,用于数据库中,数据库中包括数据点,数据点位于内积空间中,,方法包括:
数据预处理模块,将数据库中的数据点依据模长进行分区,使用数据变换,将分区中的数据点从内积空间映射到余弦空间中,获得数据点的第一向量;
索引构建模块,基于数据点的第一向量,采用构桶策略为每一个分区构建索引,将数据点的第一向量转化为多个不同的哈希表;
数据搜索模块,输入搜索数据,采用全局多桶探测策略,依据多个不同的哈希表获得多个量化距离,基于量化距离获得搜索结果。
在上述第二实施例的一种可能的实现中,数据预处理模块,将数据库中的数据点依据模长进行分区之前,还包括:
将数据库中的数据点转换为高维向量数据;
数据点的数据源包括但不限于文本和/或图片和/或音频和/或视频和/或评分数据;
将数据库中的数据点转换为多维向量数据时,依据数据点的类型采用不同的策略将数据点统一表示为维数为d的高维向量,d维向量的每一个维度,代表着不同类型的属性,高维向量在每一维度的值,表示每一维度的属性下的权重值;
将数据库中的数据点转换为高维向量数据通过数据嵌入方法。
除了上述陈述的数据点具体的可以包括的文本和/或图片和/或音频和/或视频之外,由于推荐系统的兴起,评分数据也逐渐引起了人们的兴趣。如Netflix,豆瓣等平台中,用户对电影的评分。将这些数据收集起来,就可以分析出某个用户钟爱什么类型的影视作品,也可以分析得到某个影视作品具有哪些吸引人的属性。为了提高本发明的实用价值,本发明支持了对评分数据的处理。在这里,一套评分数据将不再是单个数据对象的特征,而是在该评分系统中涉及到的所有对象的组合。本发明通过经典的矩阵分解及特征重组技术,可以从一套评分数据中整理出其涉及到的数据对象,并得到这些数据对象的d维特征向量。
在上述第二实施例的一种可能的实现中,数据预处理模块,将数据库中的数据点依据模长进行分区,使用数据变换,将分区中的数据点从内积空间映射到余弦空间中,获得数据点的第一向量,还包括:
由于大的模长||x||会导致内积qTx极有可能很大,因此qTx与x的模长成正比。本发明通过设置两个参数,模长比率b和每个分区的点数上限N0,该策略依据准将数据划分到D1,D2,...DS多个分区:对于任意两个点x∈Di和y∈Di,如果i<j,则有||x≤||y||;对于任意两个点x,y∈Di,如果||x||≤||y||,则有b0·||y||<||x||,b0∈(0,1);对于每个分区Di,满足|Di|<D0。
数据变换为随机XBOX变换(RandomXBOXTransformation,RXT),将c′-近似最大内积查询问题转化为c′-近似最近邻查询问题。随机XBOX变换使用两个函数P:Rd→Rd+1和Q:Rd→Rd+1,其定义如下:
Q(q)=[q:0]
r为随机变量,取值范围为r∈{1,-1}且Pr[r=1]=Pr[r=-1]=1/2。
在使用随机XBOX变换进行变换后,本方案会使用SRP来把变换空间中的P(x)映射到投影空间。对于每个哈希函数h(·),本方案随机选择一个向量a使h(P(x))=sign(aTP(x))。为了描述方便,本方案用h(x)表示来表示h(P(x))。然后本方案使用(K,L)-构桶策略在投影空间中构建哈希桶。利用随机XBOX变换进行空间变换后的数据,相比于利用XBOX变换进行空间变换后的数据分布得更为均匀。附图4为本发明实施例中随机XBOX变换和XBOX变换对比示意图。
在上述第二实施例的一种可能的实现中,索引构建模块,基于数据点的第一向量,采用构桶策略为每一个分区构建索引,将数据点的第一向量转化为多个不同的哈希表,具体还包括:
联立多个局部敏感哈希函数,获得多维联合哈希函数,将每个分区中的第一向量输入多维联合哈希函数,获得哈希表;
每个哈希表中包括多个哈希桶;
采用(K,L)构桶策略来对数据点构建哈希桶,(K,L)构桶策略中,对每一分区采用K*L个哈希函数来构建索引。
如前面,对于变换空间每个点P(x),采用SRP作为作为哈希函数族对数据进行划分,其形式为h(x)=sign(aTP(x))。根据SRP定义,该哈希函数有如下性质:
对于一个查询点q和一个数据点x,在投影空间中Q(q)和P(x)的角距离为:
之后,本方案构建L个哈希表,每个哈希表使用了K个哈希函数H={h1,h2,...hK}。因此,对于一个分区,本方案一共采用了K·L个哈希函数,共有2KL个哈希桶。为了简化计算和减少所使用的哈希函数数目,所有的s个分区均采用相同的K·L个哈希函数来构建索引。
在上述第二实施例的一种可能的实现中,数据搜索模块,输入搜索数据,采用全局多桶探测策略,依据多个不同的哈希表获得多个量化距离,基于量化距离获得搜索结果,还包括:
通过随机XBOX将搜索数据变换转换为搜索向量,使用用于构建索引的相同的K*L个哈希函数对搜索向量进行哈希处理;
采用GMP策略确定要在所有2K*L个哈希桶中具体探测的哈希桶对象序列,具体的,通过量化距离评估哈希桶中出现搜索结果的概率,量化距离越小,表示哈希桶中出现搜索结果的概率越大;
不断探测所有未访问的哈希桶中量化距离最小的那个探测桶中的数据点被视为候选点;
当终止条件成立时,查询过程结束。
在查询阶段,本方案首先将查询点q通过随机XBOX变换转换为Q(q)。然后,使用用于构建索引的相同的L·K个哈希函数对Q(q)进行哈希处理。由于本方案已将数据集划分为s个分区,因此本方案按其最大模长Mi的降序查询它们,即首先查询分区Ds,然后查询Ds-1。在分区Di中查询候选对象时,本方案采用全局多桶探测(globalmulti-probe,GMP)算法策略来确定要在所有2K*L个哈希桶中探测哪些哈希桶。为了构造探测序列,本方案通过量化距离评估哈希桶B中出现所需结果的概率,量化距离越小,表示B中出现所需结果的概率越大。因此,在所有L哈希表中,本方案将不断探测所有未访问的哈希桶中QD最小的那个。探测桶中的点被视为候选点。当终止条件成立时,查询过程结束。
对于哈希桶B=(b1,b2,...bK)和查询点q,它们之间的量化距离4E3A
QD(q,B)是一组随机变量ξi(q)的和,因此它也是一个随机变量;记B(x)为数据点x所在的一个哈希桶,本方案用累积分布函数Pr[QD(q,B(x))≤ω]来描述这个分布。其中,q和B(x)的量化距离是基于相同的K个哈希函数得到的,Pr[QD(q,B(x))≤ω]只与q和x相关。
给定一个数据点x使其与查询点在变换空间的角距离为θP(x),Q(q)=θ,QD(q,B)的累积分布函数将只受θ影响,而与B(x)位于哪个哈希表无关。θP(x),Q(q)越小,QD(q,B(x))很可能越小。
全局多桶探测算法策略为L个哈希表中的所有哈希桶维护一个全局探测序列。通过维护一个最小堆来记录下一个量化距离最小的哈希桶的可能位置,来减小要计算的QD的量。图5展示了通过SRP投影后得到的两个哈希表。假设对于第一个哈希表,使用的投影向量为a1,1=(1.0,0.1,-0.8)和a2,1=(0.2,0.9,-1.3)。对于第二个哈希表,投影向量为a1,2=(0.6,-0.6,1.1)和a2,2=(0.4,0.9,-1.2)。q的投影值为(h1,1(q),h2,1(q))=(-1.6,2.4)和(h1,2(q),h2,2(q))=(-3.0,2.6)。记TiBj为第i个哈希表中的第j个哈希桶。q和每个哈希桶的量化距离如图6a所示。通过检查一定数目的候选点,本方案比较GMP和多桶探测的准确性。假设检查8个候选点(不计重复的点)。在GMP中,本方案按照图6b中的全局探测序列检查8个候选点。被检查的哈希桶以红色标出。在GMP中,T1B1,T2B1,T1B2和T1B3被检查,x9作为结果被返回。
进一步地,当终止条件成立时,查询过程结束,还包括:
在探测过程中,GMP使用一个自适应提前终止条件来判断查询过程何时结束。为了方便理解,在介绍它之前,本方案先介绍一个正常终止条件。给定一个参数T和一个阈值t,对于一个(θ,c′)-近似最近邻查询,GMP的查询过程在以下两个条件中的一个被满足时终止。
1.GMP已经验证了T个候选点;
2.B*是未访问哈希桶中量化距离最小的那个候选点且QD(q,B*)>t。
对所有的查询点,采用固定的参数T和t。然而,对于不同查询点,达到同一精度时需要的候选点数目是十分不同的,这使得算法的性能不高,尤其是当数据比较歪斜时。本方案提出了一个自适应提前终止(AET)条件,因为它“适应性地”把I0和QD(q,B)都纳入考虑。假设B*是下一个将要被探测的哈希桶,I0是当前第大内积。
根据I0和QD(q,B)定义如下两个事件。
E1:对于一个点x,若qTx≥I0,某个哈希表中,x所在的哈希桶仍未被探测;
E2:对于一个点x,若qTx≥I0,x所在的L个哈希桶,至少有一个未被探测。
当E2发生的概率Pr[E2]足够小时,GMP在余下哈希桶中,能找到一个更好结果的概率将很小。此时终止查询过程将十分合理。因此,给定一个失败率pt,AET被定义如下:
这里,α1为Pr[E1],α2=1-(1-α1)L为Pr[E2]。基于中间结果QD(q,B*)和I0,AET判断Pr[E2]是否在允许的失败率pt之内。当满足AET时,表明在Di中找到的结果足以作为(c,k)-近似最大内积查询的正确结果。
具体的,全局多桶探测GMP方法为:
输入:查询点q,分区D1,D2,...DS,c,pτ,L个哈希表
输出:一个数据点
计算q的哈希值;
令x0为当前最好结果;
循环执行:B*←未探测哈希桶中QD最小的那个,验证B*中的点与q的内积并更新c;直至满足AET
自适应提前终止条件的建立不依赖于固定的预定义阈值T和t,而是取决于中间查询结果,这使本方案能够更早地自适应地终止查询。
使用自适应提前终止条件时,GMP不需要评估初始的Imax并执行多个(θ,c′)-近似最近邻查询,这使算法更简单,更高效;
自适应提前终止条件是查询相关的,它可根据每一个查询点来为其判断是否可以终止,从而减少了许多不必要的候选点,尤其是在数据偏斜的情况下;
自适应提前终止条件将近似比从c2逼近到c,也就是说,它直接求解(c,k)-近似最大内积查询而不是(c2,k)-近似最大内积查询,使得查询成本更小。
如图7所示,本方案按照数据的模长将数据集分成三个分区,记{x3,x9}为分区D3,{x1,x2,x6,x7,x10,x11}为分区D2,{x4,x5,x8,x12}为分区D1。
当查询点到来,GMP首先查询D3。在8个哈希桶中,本方案根据图6b中的全局探测序列来探测哈希桶,直至自适应提前终止条件被满足。在这个过程中,x3会在T1B2中被发现,x9会在T1B3中被发现。接着,GMP查询D2。AET会在探测完T1B2后被满足且c=x6=16。由于c>0.5_M1,GMP结束查询过程并返回x9和x6作为结果。
当得到最终的输出结果后,本发明可以告知用户每一个输出结果代表的原数据对象是何种类型并向用户展示其真实模样。使用户可以根据返回的结果进行下一步决策。
具体的,当原数据对象为文本数据时,对于文本数据,通过之前使用LSTM等神经网络对这个有序组合进行语义分析,就可以把原文本数据表示成一个d维特征向量的逆运算,将最终获取的搜索结果转换为文本相似度的计算结果。
具体的,当原数据对象为音频数据时,对于音频数据,通过之前采用著名的ASRT端到端语音识别框架,将音频数据表示为文本,之后采用上述的文本数据嵌入手段将其表示为d维向量的逆运算,将最终获取的搜索结果转换为音频相似度的计算结果。
具体的,当原数据对象为图像数据时,对于图像数据,通过之前采用的LeNet图像识别框架为基础,将组成图像数据的像素矩阵作为输入,分析该图像与d个属性中每一个属性的相关性,从而得到该图像的d维特征向量的逆运算,将最终获取的搜索结果转换为图像相似度的计算结果。
具体的,当原数据对象为视频数据时,对于视频数据,通过之前采用对视频进行插值采样,将其看作一系列的图像的有序组合。对其中的每一个图像进行嵌入后,把这些图像的特征向量进行线性组合,就可以得到所需的视频对象的d维特征向量的逆运算,将最终获取的搜索结果转换为视频相似度的计算结果。
第三实施例,本申请实施例提供了一种基于全局多探测和适应性终止的数据搜索设备,,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行指令以实施第一实施例中任一方面的基于全局多探测和适应性终止的数据搜索方法。
第四实施例,本申请实施例提供了一种使用计算机程序编码的计算机可读存储介质,计算机可读介质上存储有指令,指令在计算机上执行时使计算机执行第一实施例中任一方面的基于全局多探测和适应性终止的数据搜索方法。
需要说明的是,本申请的各方法实施例均可以以软件、硬件、固件等方式实现。不管本申请是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically ErasableProgrammable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部位,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部位,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施例并不存在其它的单元。
需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (10)
1.一种基于全局多探测和适应性终止的数据搜索方法,用于数据库中,所述数据库中包括数据点,所述数据点位于内积空间中,其特征在于,所述方法包括:
数据预处理,将所述数据库中的数据点依据模长进行分区,使用数据变换,将所述分区中的数据点从内积空间映射到余弦空间中,获得所述数据点的第一向量;
索引构建,基于所述第一向量,采用构桶策略为每一个所述分区构建索引,将所述第一向量转化为多个不同的哈希表;
数据搜索,输入搜索数据,采用全局多桶探测策略,依据所述多个不同的哈希表获得多个量化距离,基于所述量化距离获得搜索结果。
2.如权利要求1所述的一种基于全局多探测和适应性终止的数据搜索方法,其特征在于,所述数据预处理,将所述数据库中的数据点依据模长进行分区之前,还包括:
将所述数据库中的数据点转换为高维向量数据;
所述数据点的数据源包括但不限于文本和/或图片和/或音频和/或视频和/或评分数据;
所述将所述数据库中的数据点转换为多维向量数据时,依据所述数据点的类型采用不同的策略将所述数据点统一表示为维数为d的高维向量,所述d维向量的每一个维度,代表着不同类型的属性,所述高维向量在每一维度的值,表示所述每一维度的属性下的权重值;
所述将所述数据库中的所有数据点转换为高维向量数据通过数据嵌入方法。
3.如权利要求1所述的一种基于全局多探测和适应性终止的数据搜索方法,其特征在于,所述索引构建,基于所述第一向量,采用构桶策略为每一个所述分区构建索引,将所述第一向量转化为多个不同的哈希表,具体还包括:
联立多个局部敏感哈希函数,获得多维联合哈希函数,将每个分区中的所述第一向量输入所述多维联合哈希函数,获得所述哈希表;
每个所述哈希表中包括多个哈希桶;
采用(K,L)构桶策略来对所述数据点构建哈希桶,所述(K,L)构桶策略中,对每一所述分区采用K*L个哈希函数来构建索引。
4.如权利要求1所述的一种基于全局多探测和适应性终止的数据搜索方法,其特征在于,所述数据搜索,输入搜索数据,采用全局多桶探测策略,依据所述多个不同的哈希表获得多个量化距离,基于所述量化距离获得搜索结果,还包括:
通过随机XBOX将所述搜索数据变换转换为搜索向量,使用用于构建索引的相同的K*L个哈希函数对所述搜索向量进行哈希处理;
采用GMP策略确定要在所有2K*L个哈希桶中具体探测的哈希桶对象序列,具体的,通过量化距离评估哈希桶中出现所述搜索结果的概率,量化距离越小,表示哈希桶中出现所述搜索结果的概率越大;
不断探测所有未访问的哈希桶中量化距离最小的那个探测桶中的数据点被视为候选点;
当终止条件成立时,查询过程结束。
5.一种基于全局多探测和适应性终止的数据搜索装置,用于数据库中,所述数据库中包括数据点,所述数据点位于内积空间中,其特征在于,所述方法包括:
数据预处理模块,将所述数据库中的数据点依据模长进行分区,使用数据变换,将所述分区中的数据点从内积空间映射到余弦空间中,获得所述数据点的第一向量;
索引构建模块,基于所述第一向量,采用构桶策略为每一个所述分区构建索引,将所述第一向量转化为多个不同的哈希表;
数据搜索模块,输入搜索数据,采用全局多桶探测策略,依据所述多个不同的哈希表获得多个量化距离,基于所述量化距离获得搜索结果。
6.如权利要求5所述的一种基于全局多探测和适应性终止的数据搜索装置,其特征在于,所述数据预处理模块,将所述数据库中的数据点依据模长进行分区之前,还包括:
将所述数据库中的所有数据点转换为高维向量数据;
所述数据点的数据源包括但不限于文本和/或图片和/或音频和/或视频和/或评分数据;
所述将所述数据库中的数据点转换为多维向量数据时,依据所述数据点的类型采用不同的策略将所述数据点统一表示为维数为d的高维向量,所述d维向量的每一个维度,代表着不同类型的属性,所述高维向量在每一维度的值,表示所述每一维度的属性下的权重值;
所述将所述数据库中的所有数据点转换为高维向量数据通过数据嵌入方法。
7.如权利要求5所述的一种基于全局多探测和适应性终止的数据搜索装置,其特征在于,所述索引构建模块,基于所述第一向量,采用构桶策略为每一个所述分区构建索引,将所述第一向量转化为多个不同的哈希表,具体还包括:
联立多个局部敏感哈希函数,获得多维联合哈希函数,将每个分区中的所述第一向量输入所述多维联合哈希函数,获得所述哈希表;
每个所述哈希表中包括多个哈希桶;
采用(K,L)构桶策略来对所述数据点构建哈希桶,所述(K,L)构桶策略中,对每一所述分区采用K*L个哈希函数来构建索引。
8.如权利要求5所述的一种基于全局多探测和适应性终止的数据搜索装置,其特征在于,所述数据搜索模块,输入搜索数据,采用全局多桶探测策略,依据所述多个不同的哈希表获得多个量化距离,基于所述量化距离获得搜索结果,还包括:
通过随机XBOX将所述搜索数据变换转换为搜索向量,使用用于构建索引的相同的K*L个哈希函数对所述搜索向量进行哈希处理;
采用GMP策略确定要在所有2K*L个哈希桶中具体探测的哈希桶对象序列,具体的,通过量化距离评估哈希桶中出现所述搜索结果的概率,量化距离越小,表示哈希桶中出现所述搜索结果的概率越大;
不断探测所有未访问的哈希桶中量化距离最小的那个探测桶中的数据点被视为候选点;
当终止条件成立时,查询过程结束。
9.一种基于全局多探测和适应性终止的数据搜索设备,其特征在于,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行所述指令以实施权利要求1-4所述的基于全局多探测和适应性终止的数据搜索方法。
10.一种使用计算机程序编码的计算机可读存储介质,其特征在于,所述计算机可读介质上存储有指令,所述指令在计算机上执行时使计算机执行权利要求1-4中任一项所述的基于全局多探测和适应性终止的数据搜索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111260468.0A CN113901278A (zh) | 2021-10-28 | 2021-10-28 | 一种基于全局多探测和适应性终止的数据搜索方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111260468.0A CN113901278A (zh) | 2021-10-28 | 2021-10-28 | 一种基于全局多探测和适应性终止的数据搜索方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113901278A true CN113901278A (zh) | 2022-01-07 |
Family
ID=79026648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111260468.0A Pending CN113901278A (zh) | 2021-10-28 | 2021-10-28 | 一种基于全局多探测和适应性终止的数据搜索方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113901278A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194737A (zh) * | 2023-09-14 | 2023-12-08 | 上海交通大学 | 基于距离阈值的近似近邻搜索方法、系统、介质及设备 |
-
2021
- 2021-10-28 CN CN202111260468.0A patent/CN113901278A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194737A (zh) * | 2023-09-14 | 2023-12-08 | 上海交通大学 | 基于距离阈值的近似近邻搜索方法、系统、介质及设备 |
CN117194737B (zh) * | 2023-09-14 | 2024-06-07 | 上海交通大学 | 基于距离阈值的近似近邻搜索方法、系统、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106649890B (zh) | 数据存储方法和装置 | |
WO2021083239A1 (zh) | 一种进行图数据查询的方法、装置、设备及存储介质 | |
JP5749279B2 (ja) | アイテム関連付けのための結合埋込 | |
US8762383B2 (en) | Search engine and method for image searching | |
JP5926291B2 (ja) | 類似画像を識別する方法および装置 | |
WO2013129580A1 (ja) | 近似最近傍探索装置、近似最近傍探索方法およびそのプログラム | |
CN110909182A (zh) | 多媒体资源搜索方法、装置、计算机设备及存储介质 | |
CN112395487A (zh) | 信息推荐方法、装置、计算机可读存储介质及电子设备 | |
CN114329029B (zh) | 对象检索方法、装置、设备及计算机存储介质 | |
CN114565807A (zh) | 训练目标图像检索模型的方法和装置 | |
CN113901278A (zh) | 一种基于全局多探测和适应性终止的数据搜索方法和装置 | |
CN110209895B (zh) | 向量检索方法、装置和设备 | |
Yin et al. | Content‐Based Image Retrial Based on Hadoop | |
Yang | Personalized Song recommendation system based on vocal characteristics | |
US20220156336A1 (en) | Projecting queries into a content item embedding space | |
JPWO2012077818A1 (ja) | ハッシュ関数の変換行列を定める方法、該ハッシュ関数を利用するハッシュ型近似最近傍探索方法、その装置及びそのコンピュータプログラム | |
CN114268625B (zh) | 特征选择方法、装置、设备及存储介质 | |
Antaris et al. | Similarity search over the cloud based on image descriptors' dimensions value cardinalities | |
CN110110199B (zh) | 信息输出方法和装置 | |
CN111291182A (zh) | 热点事件发现方法、装置、设备及存储介质 | |
JP7414906B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
CN111563159B (zh) | 文本排序方法及装置 | |
Li et al. | Parallel image search application based on online hashing hierarchical ranking | |
CN117312535B (zh) | 基于人工智能的问题数据处理方法、装置、设备及介质 | |
CN112015922B (zh) | 多媒体文件的检索方法、装置、设备及存储介质 |
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 |