首页 / 专利库 / 资料储存系统 / 区块链 / 一种特征数据的检索方法、装置及存储介质

一种特征数据的检索方法、装置及存储介质

阅读:1034发布:2020-07-07

专利汇可以提供一种特征数据的检索方法、装置及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种特征数据的检索方法、装置及存储介质。其中,所述方法包括:接收针对目标对象的检索 请求 ,所述检索请求中携带有用于表示所述目标对象的原始的特征数据所对应的 降维 特征数据;基于所述降维特征数据,查找降维特征数据的数据分片与检索实例的对应关系,确定用于响应所述检索请求的检索实例;向确定的所述检索实例下发所述检索请求,以使所述检索实例响应于所述检索请求,基于所述降维特征数据查找所述目标对象对应的原始的特征数据;基于所述目标对象对应的原始的特征数据响应所述检索请求。通过本发明,能够在降低海量特征库中数据检索过程所需的 硬件 成本的同时,提高目标对象对应的原始的特征数据的检索效率。,下面是一种特征数据的检索方法、装置及存储介质专利的具体信息内容。

1.一种特征数据的检索方法,其特征在于,所述方法包括:
接收针对目标对象的检索请求,所述检索请求中携带有用于表示所述目标对象的原始的特征数据所对应的降维特征数据;
基于所述降维特征数据,查找降维特征数据的数据分片与检索实例的对应关系,确定用于响应所述检索请求的检索实例;
向确定的所述检索实例下发所述检索请求,以使
所述检索实例响应于所述检索请求,基于所述降维特征数据查找所述目标对象对应的原始的特征数据;
基于所述目标对象对应的原始的特征数据响应所述检索请求。
2.如权利要求1所述的方法,其特征在于,所述接收针对目标对象的检索请求,包括:
调用面向检索客户端的检索接入接口
通过所述检索接入接口接收针对所述目标对象的检索请求。
3.如权利要求1所述的方法,其特征在于,所述基于所述降维特征数据,查找降维特征数据的数据分片与检索实例的对应关系,确定用于响应所述检索请求的检索实例,包括:
确定所述降维特征数据所属的数据分片;
基于降维特征数据的数据分片与检索实例的对应关系,查找与所述降维特征数据所属的数据分片相对应的检索实例;
将查找到的所述检索实例作为用于响应所述检索请求的检索实例。
4.如权利要求1所述的方法,其特征在于,所述基于所述降维特征数据查找所述目标对象对应的原始的特征数据,包括:
将所述降维特征数据进行哈希处理,得到所述降维特征数据对应的哈希散列值;
确定所述哈希散列值相映射的哈希桶的标识;
从所述哈希桶的标识对应的哈希桶中查找所述目标对象对应的原始的特征数据。
5.如权利要求1所述的方法,其特征在于,所述基于所述降维特征数据查找所述目标对象对应的原始的特征数据,包括:
基于所述降维特征数据,查找路由表中检索实例的标识与特征数据库的标识的对应关系,确定所述检索实例的标识对应的特征数据库;
从确定的所述特征数据库中查找所述目标对象对应的原始的特征数据。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收第一空间中的原始的特征数据;
将所述原始的特征数据进行降维处理,得到所述原始的特征数据在第二空间中对应的降维特征数据,所述第一空间的维度多于所述第二空间的维度,所述第二空间中的降维特征数据分布式存储在多个检索实例中;
将所述原始的特征数据与对应的所述降维特征数据存储在哈希表中。
7.如权利要求6所述的方法,其特征在于,所述将所述原始的特征数据进行降维处理,得到所述原始的特征数据在第二空间中对应的降维特征数据,包括:
获取用于对特征数据进行降维的降维向量;
确定所述降维向量中各个值,分别与所述原始的特征数据对应的数据点之间的位置关系;
基于所述位置关系,确定所述原始的特征数据对应的数据点的二进制编码值;
基于所述二进制编码值的组合,得到所述原始的特征数据在第二空间中对应的降维特征数据。
8.如权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
将所述目标对象及对应的所述原始的特征数据发送至链网络中,以使所述区块链网络的节点将所述目标对象及对应的所述原始的特征数据填充至新区块,且当对所述新区块取得共识一致时,将所述新区块追加至区块链的尾部。
9.一种特征数据的检索装置,其特征在于,所述装置包括:
接收单元,用于接收针对目标对象的检索请求,所述检索请求中携带有用于表示所述目标对象的原始的特征数据所对应的降维特征数据;
确定单元,用于基于所述降维特征数据,查找降维特征数据的数据分片与检索实例的对应关系,确定用于响应所述检索请求的检索实例;
检索单元,用于向确定的所述检索实例下发所述检索请求,以使所述检索实例响应于所述检索请求,基于所述降维特征数据查找所述目标对象对应的原始的特征数据;
基于所述目标对象对应的原始的特征数据响应所述检索请求。
10.一种存储介质,其特征在于,存储有可执行指令,所述可执行指令被执行时,用于实现如权利要求1至8任一项所述的特征数据的检索方法。

说明书全文

一种特征数据的检索方法、装置及存储介质

技术领域

[0001] 本发明涉及人工智能(AI,Artificial Intelligence)领域中的大数据处理技术,尤其涉及一种特征数据的检索方法、装置及存储介质。

背景技术

[0002] 人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法和技术及应用系统。人工智能技术现如今已得到快速发展,并广泛应用于各种行业,例如高维度特征数据的检索应用。
[0003] 目前,相关人工智能技术中,在面对海量的特征数据库中的数据检索问题时,一般采用性能要求比较高的硬件来完成数据检索,例如,当特征数据库的量级达到百万级别时,一般会借助图形处理器(GPU,Graphics Processing Unit)硬件加速处理,可见,相关技术需要通过使用性能更好的硬件才能实现海量高维数据的检索,随之带来的是硬件成本上升的问题,但是,若降低硬件成本,则将严重影响高维特征数据的检索效率。

发明内容

[0004] 本发明实施例提供一种特征数据的检索方法、装置及存储介质,能够在降低海量特征库中数据检索过程所需的硬件成本的同时,提高目标对象对应的原始的特征数据的检索效率。
[0005] 本发明实施例的技术方案是这样实现的:
[0006] 本发明实施例提供一种特征数据的检索方法,所述方法包括:
[0007] 接收针对目标对象的检索请求,所述检索请求中携带有用于表示所述目标对象的原始的特征数据所对应的降维特征数据;
[0008] 基于所述降维特征数据,查找降维特征数据的数据分片与检索实例的对应关系,确定用于响应所述检索请求的检索实例;
[0009] 向确定的所述检索实例下发所述检索请求,以使
[0010] 所述检索实例响应于所述检索请求,基于所述降维特征数据查找所述目标对象对应的原始的特征数据;
[0011] 基于所述目标对象对应的原始的特征数据响应所述检索请求。
[0012] 本发明实施例还提供一种特征数据的检索装置,所述装置包括:
[0013] 接收单元,用于接收针对目标对象的检索请求,所述检索请求中携带有用于表示所述目标对象的原始的特征数据所对应的降维特征数据;
[0014] 确定单元,用于基于所述降维特征数据,查找降维特征数据的数据分片与检索实例的对应关系,确定用于响应所述检索请求的检索实例;
[0015] 检索单元,用于向确定的所述检索实例下发所述检索请求,以使所述检索实例响应于所述检索请求,基于所述降维特征数据查找所述目标对象对应的原始的特征数据;
[0016] 基于所述目标对象对应的原始的特征数据响应所述检索请求。
[0017] 上述方案中,所述接收单元,还用于:
[0018] 调用面向检索客户端的检索接入接口
[0019] 通过所述检索接入接口接收针对所述目标对象的检索请求。
[0020] 上述方案中,所述确定单元,还用于:
[0021] 确定所述降维特征数据所属的数据分片;
[0022] 基于降维特征数据的数据分片与检索实例的对应关系,查找与所述降维特征数据所属的数据分片相对应的检索实例;
[0023] 将查找到的所述检索实例作为用于响应所述检索请求的检索实例。
[0024] 上述方案中,所述检索单元,还用于:
[0025] 将所述降维特征数据进行哈希处理,得到所述降维特征数据对应的哈希散列值;
[0026] 确定所述哈希散列值相映射的哈希桶的标识;
[0027] 从所述哈希桶的标识对应的哈希桶中查找所述目标对象对应的原始的特征数据。
[0028] 上述方案中,所述检索单元,还用于:
[0029] 基于所述降维特征数据,查找路由表中检索实例的标识与特征数据库的标识的对应关系,确定所述检索实例的标识对应的特征数据库;
[0030] 从确定的所述特征数据库中查找所述目标对象对应的原始的特征数据。
[0031] 上述方案中,所述特征数据的检索装置还包括:
[0032] 所述接收单元,还用于接收第一空间中的原始的特征数据;
[0033] 降维处理单元,用于将所述原始的特征数据进行降维处理,得到所述原始的特征数据在第二空间中对应的降维特征数据,所述第一空间的维度多于所述第二空间的维度,所述第二空间中的降维特征数据分布式存储在多个检索实例中;
[0034] 存储单元,用于将所述原始的特征数据与对应的所述降维特征数据存储在哈希表中。
[0035] 上述方案中,所述降维处理单元,还用于:
[0036] 获取用于对特征数据进行降维的降维向量;
[0037] 确定所述降维向量中各个值,分别与所述原始的特征数据对应的数据点之间的位置关系;
[0038] 基于所述位置关系,确定所述原始的特征数据对应的数据点的二进制编码值;
[0039] 基于所述二进制编码值的组合,得到所述原始的特征数据在第二空间中对应的降维特征数据。
[0040] 上述方案中,所述特征数据的检索装置还包括:
[0041] 发送单元,用于将所述目标对象及对应的所述原始的特征数据发送至链网络中,以使
[0042] 所述区块链网络的节点将所述目标对象及对应的所述原始的特征数据填充至新区块,且当对所述新区块取得共识一致时,将所述新区块追加至区块链的尾部。
[0043] 本发明实施例还提供一种电子设备,所述电子设备包括:
[0044] 存储器,用于存储可执行指令;
[0045] 处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的特征数据的检索方法。
[0046] 本发明实施例还提供一种存储介质,存储有可执行指令,所述可执行指令被执行时,用于实现本发明实施例提供的特征数据的检索方法。
[0047] 应用本发明上述实施例具有以下有益效果:
[0048] 应用本发明实施例提供的特征数据的检索方法、装置及存储介质,通过目标对象的原始的特征数据所对应的降维特征数据,来确定响应检索请求的检索实例,由分布式存储的检索实例负责响应检索请求,基于降维特征数据查找目标对象对应的原始的特征数据,由于检索实例分布式运行在计算服务器上,可以独立响应检索请求从而分担负载,完成高性能的特征数据检索,如此,本发明实施例的技术方案不受限于硬件成本,适用于非高性能的计算服务器,能够在降低海量特征库中数据检索过程所需的硬件成本的同时,提高目标对象对应的原始的特征数据的检索效率。附图说明
[0049] 图1为本发明实施例提供的特征数据的检索系统10的一个可选的架构示意图;
[0050] 图2A为本发明实施例提供的电子设备40的一个可选的硬件结构示意图;
[0051] 图2B为本发明实施例提供的特征数据的检索装置455的一个可选的组成结构示意图;
[0052] 图3A至图3E为本发明实施例提供的特征数据的检索方法的一个可选的流程示意图;
[0053] 图4为本发明实施例提供的采用通用哈希算法和局部敏感哈希算法进行数据降维的对比效果示意图;
[0054] 图5为本发明实施例提供的特征数据的检索装置455的架构示意图;
[0055] 图6为本发明实施例提供的区块链网络81中区块链的一个可选的结构示意图;
[0056] 图7为本发明实施例提供的区块链网络81的功能架构示意图;
[0057] 图8为本发明实施例提供的特征数据的检索方法的一个可选的原理结构示意图;
[0058] 图9为本发明实施例提供的数据降维的实现原理示意图;
[0059] 图10为本发明实施例提供的采用局部敏感哈希进行数据降维的过程示意图;
[0060] 图11A至图11C为本发明实施例提供的任意两个数据点在同一个桶中的概率分布图;
[0061] 图12为本发明实施例提供的查找目标对象对应的原始的特征数据的示意图。

具体实施方式

[0062] 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0063] 在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且本发明实施例所记载的各技术方案之间,可以在不冲突的情况下相互结合。
[0064] 在以下的描述中,所涉及的术语“第一”、“第二”等仅仅是用于区别类似的对象,不代表针对对象的特定的顺序或先后次序,可以理解地,“第一”、“第二”等在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在图示或描述的以外的顺序实施。
[0065] 除非另有定义,本发明实施例所使用的所有的技术和科学术语与属于本发明实施例的技术领域的技术人员通常理解的含义相同。本发明中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本发明。
[0066] 在对本发明实施例进行进一步详细说明之前,先对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
[0067] 1)特征数据,表示为一个高维度的特征向量,在人工智能领域中,通常会通过非线性系统将目标对象表征为一个高维度的特征向量,用于数值计算。
[0068] 2)降维(Embedding),用于表示将高维度的特征向量转化为低维度的特征向量的过程,从而降低数据计算的复杂程度。
[0069] 3)哈希(Hash),用于表示将任意长度的输入通过散列算法转化为固定长度的输出的过程,该固定长度的输出就是散列值,这种转换实际上是一种压缩映射,也就是说,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。
[0070] 4)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
[0071] 5)交易(Transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
[0072] 例如,部署(Deploy)交易用于向区块链网络中的节点安装指定智能合约并准备好被调用;调用(Invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值(Key-Value)对)和查询操作(即查询状态数据库中的键值对)。
[0073] 6)区块链(Block Chain),是由区块(Block)形成的加密的、链式的交易的存储结构。
[0074] 例如,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,从而基于哈希值实现区块中交易的防篡改和防伪造;新产生的交易被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长。
[0075] 7)区块链网络(Block Chain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
[0076] 8)账本(Ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。
[0077] 其中,区块链是以文件系统中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持对区块链中交易的快速查询。
[0078] 9)智能合约(Smart Contracts),也称为链码(Chain Code)或应用代码,部署在区块链网络的节点中的程序,该程序是根据条件而触发执行的,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询的操作。
[0079] 10)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
[0080] 本发明实施例提供的特征数据的检索方法涉及人工智能领域中的大数据处理技术,大数据处理技术可通过机器学习技术实现,下面对机器学习技术进行说明。机器学习(ML,Machine Learning)是一多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习和归纳学习等技术。本发明实施例通过机器学习技术可从海量特征数据库中检索目标对象对应的原始的特征数据,在海量高维数据的检索应用中具有非常高的应用价值。
[0081] 下面说明实施本发明实施例的特征数据的检索方法的电子设备的示例性应用,本发明实施例提供的电子设备可以实施为笔记本电脑平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端设备,也可以为终端设备和服务器协同实施,其中,服务器可以为端服务器,但本发明实施例中并不仅限于云端服务器。
[0082] 下面以终端设备和服务器协同实施为例,将参考附图对本发明实施例的特征数据的检索系统的示例性应用进行说明。参见图1,图1为本发明实施例提供的特征数据的检索系统10的一个可选的架构示意图,为实现支撑的一个示例性应用,终端100(示例性示出了终端100-1和终端100-2)通过网络200向服务器300发起目标对象的检索请求,服务器300通过调用面向终端100中的所有检索客户端(比如用于图像检索的客户端,用于音乐检索的客户端等)的检索接入接口来接收检索请求,并调用服务器300提供的海量高维数据的检索功能,来执行本发明实施例提供的特征数据的检索方法,具体地,在获取到针对目标对象的检索请求后,先基于检索请求中携带的用于表示目标对象的原始的特征数据所对应的降维特征数据,查找降维特征数据的数据分片与检索实例的对应关系,确定用于响应检索请求的检索实例,其中检索实例分布式运行在服务器300中,然后再向确定的检索实例下发检索请求,以使检索实例响应于检索请求,基于降维特征数据查找目标对象对应的原始的特征数据,并将查找到的关于目标对象对应的原始的特征数据的检索结果返回给终端100。
[0083] 需要说明的是,终端100可以基于各种无线通信方式,或者有线通信方式,通过网络200与服务器300进行连接。其中,网络200可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。
[0084] 终端100可以在图形界面110(例如终端100-1的图形界面110-1和终端100-2的图形界面110-2)中显示特征数据的检索过程中的各种中间结果和最终结果,例如,显示确定的检索实例的标识,或者显示查找到的目标对象对应的原始的特征数据。
[0085] 接下来继续对实施本发明实施例的特征数据的检索方法的电子设备的硬件结构进行说明。电子设备可以实施为终端设备,还可以为上述图1示出的终端设备和服务器的协同实施。
[0086] 参见图2A,图2A为本发明实施例提供的电子设备40的一个可选的硬件结构示意图,可以理解,图2A仅仅示出了电子设备的示例性结构而非全部结构,根据需要可以实施图2A示出的部分结构或全部结构。本发明实施例提供的电子设备40包括:至少一个处理器
410、存储器450、至少一个网络接口420和用户接口430。电子设备40中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统
440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2A中将各种总线都标为总线系统440。
[0087] 处理器410可以是一种集成电路芯片,具有信号的处理能,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0088] 用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘鼠标、麦克、触屏显示屏、摄像头、其他输入按钮和控件。
[0089] 存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
[0090] 存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本发明实施例描述的存储器450旨在包括任意适合类型的存储器。
[0091] 在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
[0092] 操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
[0093] 网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
[0094] 呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
[0095] 输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
[0096] 在一些实施例中,本发明实施例提供的特征数据的检索装置可以采用软件方式实现,图2A示出了存储在存储器450中的特征数据的检索装置455,其可以是程序和插件等形式的软件,包括一系列的软件模块,参见图2B,图2B为本发明实施例提供的特征数据的检索装置455的一个可选的组成结构示意图,例如,特征数据的检索装置455包括接收单元4551、确定单元4552和检索单元4553,这些单元的功能是逻辑上的,因此,根据各软件模块所实现的功能可以进行任意的组合或进一步的拆分。这里,需要说明的是,对于图2B所示的本发明实施例提供的特征数据的检索装置455中的各个单元的具体功能,将在下文进行说明。
[0097] 在另一些实施例中,本发明实施例提供的特征数据的检索装置455可以采用硬件方式实现,作为示例,本发明实施例提供的特征数据的检索装置455可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的特征数据的检索方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
[0098] 下面将结合本发明实施例提供的电子设备的示例性应用和实施,对本发明实施例提供的特征数据的检索方法的实现进行说明。本发明实施例提供的特征数据的检索方法可进行在线的数据检索应用。
[0099] 参见图3A,图3A为本发明实施例提供的特征数据的检索方法的一个可选的流程示意图,根据上文可以理解,本发明实施例提供的特征数据的检索方法可由终端设备和服务器(比如云端服务器)协同实施,也可由终端设备单独实施。下面以电子设备为终端设备和云端服务器协同实施为例,结合图3A示出的步骤进行说明。
[0100] 步骤301,终端设备向云端服务器发起针对目标对象的检索请求。
[0101] 在本发明实施例中,目标对象可以表示为一个高维度的特征向量,例如,目标对象可以表示为一个高维度的新闻网页、文章或图像等的特征向量,在此不做限定。
[0102] 步骤302,云端服务器接收针对目标对象的检索请求,检索请求中携带有用于表示目标对象的原始的特征数据所对应的降维特征数据。
[0103] 在本发明实施例中,目标对象的原始的特征数据是高维空间中的特征数据,目标对象的原始的特征数据所对应的降维特征数据是低维空间中的特征数据,也就是说,可以通过对高维空间中目标对象的原始的特征数据进行降维处理,得到对应的低维空间中的降维特征数据,从而降低数据计算的复杂程度。需要说明的是,本发明实施例中的对目标对象的原始的特征数据进行降维处理的过程,一定要符合局部敏感哈希(LSH,Locality Sensitive Hashing)的条件,即原始的特征数据间的相似程度,与降维处理后得到的降维特征数据间的相似程度应当保持一致性。对于局部敏感哈希在数据降维过程中的应用,将在下文进行说明。
[0104] 在一些实施例中,参见图3B,图3B为本发明实施例提供的特征数据的检索方法的一个可选的流程示意图,基于图3A,上述步骤302中云端服务器接收针对目标对象的检索请求,可以通过以下步骤3021和步骤3022来实现,下面将结合各步骤进行说明。
[0105] 步骤3021,调用面向检索客户端的检索接入接口。
[0106] 步骤3022,通过检索接入接口接收针对目标对象的检索请求。
[0107] 具体来说,终端设备中设置有检索客户端,例如用于检索图像的客户端,云端服务器通过检索接入接口接收检索客户端发起的针对目标对象的检索请求,该检索接入接口面向所有的检索客户端,也就是说,终端设备中所有的检索客户端均可以通过检索接入接口请求接入至云端服务器,以确定响应检索请求的检索实例,可见,本发明实施例中的检索接入接口具有一致性。
[0108] 步骤303,云端服务器基于降维特征数据,查找降维特征数据的数据分片与检索实例的对应关系,确定用于响应检索请求的检索实例。
[0109] 在一些实施例中,参见图3C,图3C为本发明实施例提供的特征数据的检索方法的一个可选的流程示意图,基于图3A,上述步骤303中云端服务器基于降维特征数据,查找降维特征数据的数据分片与检索实例的对应关系,确定用于响应检索请求的检索实例,可以通过以下步骤3031和步骤3032来实现,下面将结合各步骤进行说明。
[0110] 步骤3031,确定降维特征数据所属的数据分片。
[0111] 步骤3032,基于降维特征数据的数据分片与检索实例的对应关系,查找与降维特征数据所属的数据分片相对应的检索实例,将查找到的检索实例作为用于响应检索请求的检索实例。
[0112] 在本发明实施例中,根据实际需求预先设置降维特征数据的数据分片与检索实例的对应关系,根据对应关系将降维特征数据分散存储在检索实例中,每个检索实例负责响应针对所维护的降维特征数据对应的检索请求。每个检索实例将运行在一个或多个机器上,可以独立响应检索请求,从而分担负载,也可以多个检索实例并行响应检索请求,从而提升数据检索的效率。
[0113] 步骤304,向确定的检索实例下发检索请求,以使检索实例响应于检索请求,基于降维特征数据查找目标对象对应的原始的特征数据,以及基于目标对象对应的原始的特征数据响应检索请求,以将查找到的目标对象对应的原始的特征数据返回给终端设备。
[0114] 在一些实施例中,参见图3D,3D为本发明实施例提供的特征数据的检索方法的一个可选的流程示意图,基于图3A,上述步骤304中云端服务器基于降维特征数据查找目标对象对应的原始的特征数据,可以通过以下步骤3041至步骤3043来实现,下面将结合各步骤进行说明。
[0115] 步骤3041,将降维特征数据进行哈希处理,得到降维特征数据对应的哈希散列值。
[0116] 步骤3042,确定哈希散列值相映射的哈希桶的标识。
[0117] 步骤3043,从哈希桶的标识对应的哈希桶中查找目标对象对应的原始的特征数据。
[0118] 在本发明实施例中,云端服务器可采用哈希算法,例如除留余数法、直接寻址法等将降维特征数据进行哈希处理,以得到降维特征数据对应的哈希散列值,然后,根据预先设置的哈希散列值与哈希桶的标识的映射关系,查找与确定的哈希散列值相映射的哈希桶的标识,进而将查找范围进行限缩,即从哈希桶的标识对应的哈希桶中查找目标对象对应的原始的特征数据,其中,可将哈希散列值与哈希桶的标识的映射关系存储在哈希路由表中,可见,本发明实施例通过计算降维特征数据对应的哈希散列值,进而通过哈希路由表就可以实现对目标对象对应的原始的特征数据的查找,该查找方式通常适用于特征数据库的数量较多且单特征数据库的容量较小的应用场景。
[0119] 在另一些实施例中,参见图3E,图3E为本发明实施例提供的特征数据的检索方法的一个可选的流程示意图,基于图3A,上述步骤304中云端服务器基于降维特征数据查找目标对象对应的原始的特征数据,还可以通过以下步骤3044和步骤3045来实现,下面将结合各步骤进行说明。
[0120] 步骤3044,基于降维特征数据,查找路由表中检索实例的标识与特征数据库的标识的对应关系,确定检索实例的标识对应的特征数据库。
[0121] 步骤3045,从确定的特征数据库中查找目标对象对应的原始的特征数据。
[0122] 在本发明实施例中,云端服务器可根据实际需求在一个路由表中预先设置检索实例的标识与特征数据库的标识的对应关系,通过路由表的查询可从降维特征数据对应的特征数据库中查找目标对象对应的原始的特征数据。该查找方式通常适用于特征数据库的数量较少且单特征数据库的容量较大的应用场景。
[0123] 在一些实施例中,在实现特征数据的检索的过程之前,需要进行离线的特征数据的预存储处理,本发明实施例中将海量特征数据库中的大量特征数据进行分布式存储,降低存储组件的性能要求,从而以高性能的分布式存储方式实现海量特征数据的存储,在降低存储组件的成本的同时,还能提升海量特征数据的存储速度。下面对海量特征数据的存储过程进行说明。在实现特征数据的检索的过程之前,特征数据的检索方法还可包括:接收第一空间中的原始的特征数据;将原始的特征数据进行降维处理,得到原始的特征数据在第二空间中对应的降维特征数据,第一空间的维度多于第二空间的维度,所述第二空间中的降维特征数据分布式存储在多个检索实例中;将原始的特征数据与对应的降维特征数据存储在哈希表中。
[0124] 在实际实施时,就将原始的特征数据进行降维处理,得到原始的特征数据在第二空间中对应的降维特征数据来说,可以采用以下方式实现:获取用于对特征数据进行降维的降维向量;确定降维向量中各个值,分别与原始的特征数据对应的数据点之间的位置关系;基于位置关系,确定原始的特征数据对应的数据点的二进制编码值;基于二进制编码值的组合,得到原始的特征数据在第二空间中对应的降维特征数据。
[0125] 需要说明的是,本发明实施例通过对原始的特征数据对应的数据点进行编码的方式,将高维空间中分布的数据点落到低维空间中,以实现原始的特征数据的降维过程。本发明实施例中的对原始的特征数据进行降维处理的过程,一定要符合局部敏感哈希(LSH,Locality Sensitive Hashing)的条件,即原始的特征数据间的相似程度,与降维处理后得到的降维特征数据间的相似程度应当保持一致性。
[0126] 下面对局部敏感哈希的原理进行说明。局部敏感哈希的基本思想类似于一种空间域转换思想,例如,如果两个文本在原有的数据空间是相似的,那么分别经过哈希函数转换以后,它们也具有很高的相似度;相反,如果两个文本在原有的数据空间是不相似的,那么经过哈希函数转换后仍不具有相似性。也就是说,局部敏感哈希在特征数据的降维过程中能够保持数据的最大可能的相似性,这是因为当特征数据对应的维度越高,其信息量也就越大,若对特征数据进行了降维,则降维特征数据所反映的信息必然会有所损失,而采用上述的局部敏感哈希算法对原始的特征数据进行降维处理,即将原始的特征数据间的相似程度,与降维处理后得到的降维特征数据间的相似程度保持一致性,能够最大程度的避免信息损失的问题发生。
[0127] 举例来说,参见图4,图4为本发明实施例提供的采用通用哈希算法和局部敏感哈希算法进行数据降维的对比效果示意图,假设a、b、c、d为高维空间中的四个数据点,其中,a和b为高维空间中的“邻居”数据点,即a和b之间的相似度较高(可通过计算数据点a和b之间的距离如汉明距离、欧式距离等来表征数据点之间的相似度),c和d之间的相似度较高,如图4的左图所示,若采用通用哈希算法进行数据降维,则通过通用哈希算法将a、b、c、d经过哈希函数转换后,本身相似度较高的数据点a和b落到低维空间中的两个哈希桶A1和A6中,且本身相似度较高的数据点c和d落到低维空间中的两个哈希桶A4和A3中,显然,原本相似度较高的两个数据点经过普通哈希变换后被落入至不同的哈希桶内,而事实上只有落入到同一个哈希桶内的数据点才有更大的概率具有相似性。如图4的右图所示,若采用局部敏感哈希算法进行数据降维,则通过局部敏感哈希函数将a、b、c、d进行哈希转换后,本身相似度较高的数据点a和b落到低维空间中的同一个哈希桶A1中,且本身相似度较高的数据点c和d落到低维空间中的同一个哈希桶A4中,显然,本发明实施例采用局部敏感哈希算法进行数据降维,能够使得数据在降维前后保持最大可能的相似度,降低降维特征数据所表达的目标对象信息的损失程度。
[0128] 在一些示例中,局部敏感哈希函数需要同时满足以下两个条件:1)如果d(x,y)≤d1,则h(x)=h(y)的概率至少为p1;2)如果d(x,y)≥d2,则h(x)=h(y)的概率至多为p2;其中,d(x,y)表示数据点x和y之间的距离,d1和d2分别表示距离阈值,且d1
[0129] 为了便于对目标对象及对应的原始的特征数据的存储和查询,在一些实施例中,特征数据的检索方法还包括:将目标对象及对应的原始的特征数据发送至区块链网络中,以使区块链网络的节点将目标对象及对应的原始的特征数据填充至新区块,且当对新区块取得共识一致时,将新区块追加至区块链的尾部。
[0130] 参见图5,图5为本发明实施例提供的特征数据的检索装置455的架构示意图,包括区块链网络81(示例性示出了共识节点810-1至共识节点810-3)、认证中心82、业务主体83和业务主体84,下面分别进行说明。
[0131] 区块链网络81的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户终端和服务器(比如云端服务器),都可以在不需要授权的情况下接入区块链网络81;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如终端/服务器)可以接入区块链网络81,此时,成为区块链网络81中的客户端节点。
[0132] 在一些实施例中,客户端节点可以只作为区块链网络81的观察者,即提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)的功能,对于区块链网络81中的共识节点810的功能,例如排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络81中,通过区块链网络81实现数据和业务处理过程的可信和可追溯。
[0133] 区块链网络81中的共识节点接收来自不同业务主体(例如图5中示出的业务主体83和业务主体84)的客户端节点(例如,图5中示出的归属于业务主体83的客户端节点410、以及归属于业务主体84的客户端节点510)提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结果或最终结果可以返回业务主体的客户端节点中进行显示。
[0134] 例如,客户端节点410/510可以订阅区块链网络81中感兴趣的事件,例如区块链网络81中特定的组织/通道中发生的交易,由共识节点810推送相应的交易通知至客户端节点410/510,从而触发客户端节点410/510中相应的业务逻辑。
[0135] 下面以多个业务主体接入区块链网络以实现目标对象及对应的原始的特征数据的管理为例,说明区块链网络的示例性应用。参见图5,管理环节涉及的多个业务主体,如业务主体83可以是特征数据的检索装置对应的客户端,业务主体84可以是带有播放显示功能的显示系统,从认证中心82进行登记注册获得各自的数字证书,数字证书中包括业务主体的公钥、以及认证中心82对业务主体的公钥和身份信息签署的数字签名,用来与业务主体针对交易的数字签名一起附加到交易中,并被发送到区块链网络,以供区块链网络从交易中取出数字证书和签名,验证消息的可靠性(即是否未经篡改)和发送消息的业务主体的身份信息,区块链网络81会根据身份进行验证,例如是否具有发起交易的权限。业务主体下辖的电子设备(例如终端或者服务器)运行的客户端都可以向区块链网络81请求接入而成为客户端节点。
[0136] 业务主体83的客户端节点410用于接收针对目标对象的检索请求,所述检索请求中携带有用于表示所述目标对象的原始的特征数据所对应的降维特征数据;基于所述降维特征数据,查找降维特征数据的数据分片与检索实例的对应关系,确定用于响应所述检索请求的检索实例;向确定的所述检索实例下发所述检索请求,以使所述检索实例响应于所述检索请求,基于所述降维特征数据查找所述目标对象对应的原始的特征数据;基于所述目标对象对应的原始的特征数据响应所述检索请求,以将目标对象及对应的原始的特征数据发送至区块链网络81。
[0137] 其中,将目标对象及对应的原始的特征数据发送至区块链网络81,可以预先在客户端节点410设置业务逻辑,当查找到目标对象对应的原始的特征数据时,客户端节点410将目标对象及对应的原始的特征数据自动发送至区块链网络81,也可以由业务主体83的业务人员在客户端节点410中登录,手动打包目标对象及对应的原始的特征数据,并将其发送至区块链网络81。在发送时,客户端节点410根据目标对象及对应的原始的特征数据生成对应更新操作的交易,在交易中指定了实现更新操作需要调用的智能合约、以及向智能合约传递的参数,交易中还携带了客户端节点410的数字证书、签署的数字签名(例如,使用客户端节点410的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络81中的共识节点810。
[0138] 区块链网络81中的共识节点810接收到交易时,对交易携带的数字证书和数字签名进行验证,验证成功后,根据交易中携带的业务主体83的身份,确认业务主体83是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署节点810自己的数字签名(例如,使用节点810-1的私钥对交易的摘要进行加密得到),并继续在区块链网络81中广播。
[0139] 区块链网络81中的共识节点810接收到验证成功的交易后,将交易填充到新的区块中并进行广播。区块链网络81中的共识节点810广播新区块时,会对新区块进行共识过程,如果共识成功,则将新区块追加到自身所存储的区块链的尾部,并根据交易的结果更新状态数据库,执行新区块中的交易:对于提交更新目标对象及对应的原始的特征数据的交易,在状态数据库中添加包括目标对象及对应的原始的特征数据的键值对。
[0140] 业务主体84的业务人员在客户端节点510中登录,输入目标对象及对应的原始的特征数据的查询请求,客户端节点510根据目标对象及对应的原始的特征数据的查询请求生成对应更新操作/查询操作的交易,在交易中指定了实现更新操作/查询操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了客户端节点510的数字证书、签署的数字签名(例如,使用客户端节点510的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络81中的共识节点810。
[0141] 区块链网络81中的共识节点810接收到交易,对交易进行验证、区块填充及共识一致后,将填充的新区块追加到自身所存储的区块链的尾部,并根据交易的结果更新状态数据库,执行新区块中的交易:对于提交的更新某一目标对象对应的原始的特征数据的交易,根据目标对象对应的原始的特征数据更新状态数据库中该目标对象对应的键值对;对于提交的查询某个目标对象对应的原始的特征数据的交易,从状态数据库中查询目标对象对应的原始的特征数据对应的键值对,并返回交易结果。
[0142] 值得说明的是,在图5中示例性地示出了将目标对象及对应的原始的特征数据直接上链的过程,但在另一些实施例中,对于目标对象的数据量较大的情况,客户端节点410可将目标对象的哈希以及相应的原始的特征数据的哈希成对上链,将原始的目标对象及对应的原始的特征数据存储于分布式文件系统或数据库。客户端节点510从分布式文件系统或数据库获取到目标对象及对应的原始的特征数据后,可结合区块链网络81中对应的哈希进行校验,从而减少上链操作的工作量。
[0143] 作为区块链的示例,参见图6,图6为本发明实施例提供的区块链网络81中区块链的一个可选的结构示意图,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,新产生的交易的记录被填充到区块并经过区块链网络中节点的共识后,将被追加到区块链的尾部从而形成链式的增长,各区块之间基于哈希值的链式结构,保证了区块中交易的防篡改和防伪造。
[0144] 下面说明本发明实施例提供的区块链网络的示例性功能架构,参见图7,图7为本发明实施例提供的区块链网络81的功能架构示意图,包括应用层201、共识层202、网络层203、数据层204和资源层205,下面分别进行说明。
[0145] 资源层205封装了实现区块链网络81中的各个节点810的计算资源、存储资源和通信资源。
[0146] 数据层204封装了实现账本的各种数据结构,包括以文件系统中的文件实现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
[0147] 网络层203封装了点对点(P2P,Point to Point)网络协议、数据传播机制和数据验证机制、接入认证机制和业务主体身份管理的功能。
[0148] 其中,P2P网络协议实现区块链网络81中节点810之间的通信,数据传播机制保证了交易在区块链网络81中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点810之间传输数据的可靠性;接入认证机制用于根据实际的业务场景对加入区块链网络81的业务主体的身份进行认证,并在认证通过时赋予业务主体接入区块链网络81的权限;业务主体身份管理用于存储允许接入区块链网络81的业务主体的身份、以及权限(例如能够发起的交易的类型)。
[0149] 共识层202封装了区块链网络81中的节点810对区块达成一致性的机制(即共识机制)、交易管理和账本管理的功能。共识机制包括POS、POW和DPOS等共识算法,支持共识算法的可插拔。
[0150] 交易管理用于验证节点810接收到的交易中携带的数字签名,验证业务主体的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主体身份管理读取相关信息);对于获得接入区块链网络81的授权的业务主体而言,均拥有认证中心颁发的数字证书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法身份。
[0151] 账本管理用于维护区块链和状态数据库。对于取得共识的区块,追加到区块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态数据库中的键值对,当交易包括查询操作时查询状态数据库中的键值对并向业务主体的客户端节点返回查询结果。支持对状态数据库的多种维度的查询操作,包括:根据区块向量号(例如交易的哈希值)查询区块;根据区块哈希值查询区块;根据交易向量号查询区块;根据交易向量号查询交易;根据业务主体的账号(向量号)查询业务主体的账号数据;根据通道名称查询通道中的区块链。
[0152] 应用层201封装了区块链网络能够实现的各种业务,包括交易的溯源、存证和验证等。
[0153] 采用本发明实施例提供的技术方案,通过目标对象的原始的特征数据所对应的降维特征数据,来确定响应检索请求的检索实例,由分布式存储的检索实例负责响应检索请求,基于降维特征数据查找目标对象对应的原始的特征数据,由于检索实例分布式运行在计算服务器上,可以独立响应检索请求从而分担负载,完成高性能的特征数据检索,如此,本发明实施例的技术方案不受限于硬件成本,适用于非高性能的计算服务器,能够在降低海量特征库中数据检索过程所需的硬件成本的同时,提高目标对象对应的原始的特征数据的检索效率。
[0154] 下面,将说明本发明实施例在一个实际的应用场景中的示例性应用。
[0155] 参见图8,图8为本发明实施例提供的特征数据的检索方法的一个可选的原理结构示意图,首先,在最下面的数据降维层中,将海量特征数据库中的原始的特征数据进行降维操作,得到原始的特征数据对应的降维特征数据,之后将原始的特征数据与降维特征数据的对应关系存储在一张哈希表中,降维特征数据对应的数据分片(shard),比如shard0、shard1、shard2、shard3分别存放到对应的检索实例(比如检索实例0、检索实例1、检索实例2、检索实例3)中进行缓存,并将检索实例与数据分片的对应关系同步到上面的检索接入层,其中,检索接入层中设置有检索接入接口,通过检索接入接口可以接收外部实体即检索客户端发起的针对目标对象的检索请求,之后,检索接入层将根据检索请求中携带的表示目标对象的原始的特征数据所对应的降维特征数据,来判断待检索的目标对象属于哪一个数据分片,接下来确定对应的检索实例,并将检索请求下发给确定的检索实例,进而由确定的检索实例根据降维特征数据实现小规模的目标对象对应的原始的特征数据的检索。本发明实施例提供的特征数据的检索方案不受限于硬件成本,可以使用较低成本完成海量特征库中的特征数据检索,从而能够在降低海量特征库中数据检索过程所需的硬件成本的同时,提高目标对象对应的原始的特征数据的检索效率。
[0156] 需要说明的是,检索性能提升的倍数取决于数据分片的数量,当然,在实际实施时,数据分片的数量也不能过多,因为数据分片的数量过多时会直接影响检索整体的召回率。
[0157] 下面结合附图对数据降维的过程进行说明。
[0158] 在人工智能领域中,通常所说的特征就是一个高维向量,所谓数据降维,其实就是通过计算转换将高维向量转化为低维向量的过程,得到该特征对应的降维特征数据(也可称为签名)。参见图9,图9为本发明实施例提供的数据降维的实现原理示意图,假设P0和P1为二维空间中的两个数据点,对这两个数据点进行数据降维的过程如下:通过一组向量[M0,M1](在图9中采用两条虚线分别表示向量的元素)分别计算二维空间中的两个数据点P0和P1,与向量[M0,M1]之间的位置关系,根据位置关系按照编码策略将数据点P0和P1编码为二维向量,在本发明实施例中,编码策略可设置为:第一维向量,若数据点在M0上则编码为1,若数据点在M0下则编码为0;第二维向量,若数据点在M1上则编码为1,若数据点在M1下则编码为0。
[0159] 比如,数据点P0在M0的“上方”,所以编码取值为1(图9中使用黑方块表示),数据点P0在M1的“上方”,则编码取值为1,这样,数据点P0就可以转换为一个二进制编码值“11”;同理,数据点P1在M0的“下方”,对应编码取值0(图9中使用白方块表示),数据点P1在M1的“上方”,对应编码取值为1,这样,数据点P1就可以转换为一个二进制编码值“01”。可见,一个二维空间中分布的数据点就会落到一维空间中,从而实现高维度数据的降维的目的。同样地,更高维度的数据也可以进行上述类似的数据降维处理,这样特征虽然是高维向量,但也可以快速的将高维度的特征数据降维到低维空间中。
[0160] 需要说明的是,上述数据降维的过程一定要符合局部敏感哈希的条件,只有通过局部敏感哈希的方式,才有可能将高维空间的“邻居”数据点尽可能放到一个哈希桶中,也就是原始的特征数据间的相似程度,与降维特征数据间的相似程度应当保持一致性,使得数据在降维前后保持最大可能的相似度,从而降低降维特征数据所表达的目标对象信息的损失程度。参见图10,图10为本发明实施例提供的采用局部敏感哈希进行数据降维的过程示意图,若海量特征数据库中的m+1个n+1维特征中有两个特征数据的相似度较高,那么对这两个特征数据进行降维后得到的编码结果也呈现这种一致性的相似程度,反之亦然。
[0161] 参见图11A,图11A为本发明实施例提供的理论上高维空间中任意两个数据点在同一个桶中的概率分布图,如果只有一个哈希表,即只有一组Embedding向量,那么理论上高维空间中的任意两个数据点在同一个桶中的概率将非常小。上图不是实际值,而是理论值,但是一定会存在很相近的两个数据点,被哈希到两个不同的桶内,这时因为对于确定的一组Embedding向量来说,总会有一定概率将相近的两个数据点在转换过程中分到两个不同的分桶中,理想中任意两个数据点在同一个桶中的概率分布如图11B所示。为了保证最大概率的将高维空间的“邻居”数据点尽可能放到一个哈希桶中,可以通过选取多组Embedding向量,即建立多个哈希表的方式,将全量特征数据分成多个组,针对每个组应用局部敏感哈希算法进行编码,从而每个组就可以形成一个哈希表,哈希表存储的是特征数据与对应的编码结果的映射关系,图11C中表示的就是b个哈希表,哈希键(即编码结果)长度为r时的任意两个数据点在同一个桶中的概率分布如图11C所示。
[0162] 海量特征库中的高维度的特征数据在经过数据降维处理之后,每个特征数据都有一个(组)哈希键对应,还需要考虑高维度的特征数据的存储方案。在实际应用中,即使按桶分之后,也不能采用随机分配签名(即降维特征数据)的方案,这样会影响整体的检索效率。签名之间也可以衡量特征数据之间的关联度,本发明实施例使用汉明距离(Hamming Distance)来表示签名之间的相似程度,具体存储时可以根据汉明距离将相近的桶数据哈希到同一个存储节点。数据存储通常采用两级架构,即持久层和缓存,其中,持久层可以选择分布式存储系统,比如数据库,甚至本地磁盘,这取决于项目对特征数据可靠性的需求;
缓存是必须的,由于本发明实施例针对的是海量分布式特征库,缓存存放特征数据时需要设计路由算法,可以采取哈希路由,或者查表路由的方式进行存储,这样,借助于哈希路由或者查表路由就可以基于降维特征数据查找目标对象对应的原始的特征数据,参见图12所示的本发明实施例提供的查找目标对象对应的原始的特征数据的示意图,具体的,可根据实际需求在一个路由表中预先设置检索实例的标识与特征数据库的标识的对应关系,通过路由表的查询可从降维特征数据对应的特征数据库中查找目标对象对应的原始的特征数据,该查找方式通常适用于特征数据库的数量较少且单特征数据库的容量较大的应用场景;或者,通过计算降维特征数据对应的哈希散列值,进而通过哈希路由表就可以实现对目标对象对应的原始的特征数据的查找,该查找方式通常适用于特征数据库的数量较多且单特征数据库的容量较小的应用场景。
[0163] 在人工智能应用中,海量特征库的存储和检索是一个重要课题,本发明实施例可以解决这一课题,将海量特征库的存储和检索的能力发挥到极致,尤其是当单特征库的量级达到十亿级别时,也可以完成高性能的数据检索。而且本质上本发明实施例的特征数据的检索方案还适用于非高性能的计算服务器,控制硬件成本,具有很好的成本适应性。
[0164] 接下来对本发明实施例提供的特征数据的检索装置455的软件实现进行说明。以上述实施本发明实施例的特征数据的检索方法的电子设备40中的存储器450所包括的软件模块为例进行说明,对于下文关于模块的功能说明中未尽的细节,可以参考上文而理解。
[0165] 接收单元4551,用于接收针对目标对象的检索请求,所述检索请求中携带有用于表示所述目标对象的原始的特征数据所对应的降维特征数据;确定单元4552,用于基于所述降维特征数据,查找降维特征数据的数据分片与检索实例的对应关系,确定用于响应所述检索请求的检索实例;检索单元4553,用于向确定的所述检索实例下发所述检索请求,以使所述检索实例响应于所述检索请求,基于所述降维特征数据查找所述目标对象对应的原始的特征数据;基于所述目标对象对应的原始的特征数据响应所述检索请求。
[0166] 在一些实施例中,就接收单元接收针对目标对象的检索请求来说,可以采用以下方式实现:调用面向检索客户端的检索接入接口;通过所述检索接入接口接收针对所述目标对象的检索请求。
[0167] 在一些实施例中,就确定单元基于所述降维特征数据,查找降维特征数据的数据分片与检索实例的对应关系,确定用于响应所述检索请求的检索实例来说,可以采用以下方式实现:
[0168] 确定所述降维特征数据所属的数据分片;基于降维特征数据的数据分片与检索实例的对应关系,查找与所述降维特征数据所属的数据分片相对应的检索实例;将查找到的所述检索实例作为用于响应所述检索请求的检索实例。
[0169] 在一些实施例中,就检索单元基于所述降维特征数据查找所述目标对象对应的原始的特征数据来说,可以采用以下方式实现:
[0170] 将所述降维特征数据进行哈希处理,得到所述降维特征数据对应的哈希散列值;确定所述哈希散列值相映射的哈希桶的标识;从所述哈希桶的标识对应的哈希桶中查找所述目标对象对应的原始的特征数据。
[0171] 在一些实施例中,就检索单元基于所述降维特征数据查找所述目标对象对应的原始的特征数据来说,还可以采用以下方式实现:
[0172] 基于所述降维特征数据,查找路由表中检索实例的标识与特征数据库的标识的对应关系,确定所述检索实例的标识对应的特征数据库;从确定的所述特征数据库中查找所述目标对象对应的原始的特征数据。
[0173] 在一些实施例中,所述特征数据的检索装置还包括:
[0174] 所述接收单元,还用于接收第一空间中的原始的特征数据;
[0175] 降维处理单元,用于将所述原始的特征数据进行降维处理,得到所述原始的特征数据在第二空间中对应的降维特征数据,所述第一空间的维度多于所述第二空间的维度,所述第二空间中的降维特征数据分布式存储在多个检索实例中;
[0176] 存储单元,用于将所述原始的特征数据与对应的所述降维特征数据存储在哈希表中。
[0177] 在一些实施例中,就降维处理单元将所述原始的特征数据进行降维处理,得到所述原始的特征数据在第二空间中对应的降维特征数据来说,可以采用以下方式实现:
[0178] 获取用于对特征数据进行降维的降维向量;确定所述降维向量中各个值,分别与所述原始的特征数据对应的数据点之间的位置关系;基于所述位置关系,确定所述原始的特征数据对应的数据点的二进制编码值;基于所述二进制编码值的组合,得到所述原始的特征数据在第二空间中对应的降维特征数据。
[0179] 在一些实施例中,所述特征数据的检索装置还包括:
[0180] 发送单元,用于将所述目标对象及对应的所述原始的特征数据发送至区块链网络中,以使所述区块链网络的节点将所述目标对象及对应的所述原始的特征数据填充至新区块,且当对所述新区块取得共识一致时,将所述新区块追加至区块链的尾部。
[0181] 本发明实施例还提供了一种存储介质,存储有可执行指令,所述可执行指令被执行时,用于实现本发明实施例提供的特征数据的检索方法,例如,如图3A至图3E、图8示出的方法。
[0182] 在一些实施例中,存储介质具体可为计算机可读存储介质,例如可以是电随机存取存储器(FRAM,ferromagnetic random access memory)、ROM、PROM、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘或只读光盘(CD-ROM,Compact Disc Read-Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0183] 在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0184] 作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper Text Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0185] 作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0186] 综上所述,本发明实施例的技术方案具有以下有益效果:
[0187] 通过目标对象的原始的特征数据所对应的降维特征数据,来确定响应检索请求的检索实例,由分布式存储的检索实例负责响应检索请求,基于降维特征数据查找目标对象对应的原始的特征数据,由于检索实例分布式运行在计算服务器上,可以独立响应检索请求从而分担负载,完成高性能的特征数据检索,如此,本发明实施例的技术方案不受限于硬件成本,适用于非高性能的计算服务器,能够在降低海量特征库中数据检索过程所需的硬件成本的同时,提高目标对象对应的原始的特征数据的检索效率。
[0188] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈