CN109446408A - 检索相似数据的方法、装置、设备及计算机可读存储介质 - Google Patents

检索相似数据的方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN109446408A
CN109446408A CN201811092742.6A CN201811092742A CN109446408A CN 109446408 A CN109446408 A CN 109446408A CN 201811092742 A CN201811092742 A CN 201811092742A CN 109446408 A CN109446408 A CN 109446408A
Authority
CN
China
Prior art keywords
data
retrieval
cluster centre
subdata
distance
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.)
Granted
Application number
CN201811092742.6A
Other languages
English (en)
Other versions
CN109446408B (zh
Inventor
安山
黄志标
车广富
陈宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201811092742.6A priority Critical patent/CN109446408B/zh
Publication of CN109446408A publication Critical patent/CN109446408A/zh
Application granted granted Critical
Publication of CN109446408B publication Critical patent/CN109446408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering

Abstract

本公开提供一种检索相似数据的方法、装置、设备及计算机可读存储介质。本实公开提供的检索相似数据的方法、装置、设备及计算机可读存储介质中,将检索数据数据划分为多个子数据,再基于检索子数据确定对应的聚类中心组合,并根据二者的距离确定检索子数据与聚类中心组合对应的数据库子数据间的距离,无需逐一计算检索子数据与对应的每个数据库子数据间的距离,能够降低计算量。并且,基于聚类中心组合,确定检索子数据与聚类中心组合对应的数据库子数据间的距离,得到的近似距离更加精确,从而使得确定的目标数据和检索数据更相近,能够提高检索精度。

Description

检索相似数据的方法、装置、设备及计算机可读存储介质
技术领域
本公开涉及数据检索技术,尤其涉及一种检索相似数据的方法、装置、设备及计算机可读存储介质,属于计算机领域。
背景技术
谷歌、百度、搜狗、奇虎、微软等公司开发了搜索引擎,可以进行数据搜索,如搜索图片,具体可以对用户上传的图片或者网上图片进行相似搜索。图片的搜索是一个近似最近邻搜索问题(Approximate Nearest Neigbor Search)。最近邻检索就是根据数据的相似性,从数据库中寻找与目标数据最相似的数据,而这种相似性通常会被量化到空间上数据之间的距离,可以认为数据在空间中的距离越近,则数据之间的相似性越高。
近似最近邻搜索问题的解决方案主要是哈希算法和积量化算法。哈希算法需根据数据集训练哈希函数,将数据从高维空间降到二值海明空间,再在海明空间进行海明距离(Hamming distance)的计算,优势是速度快,占用内存小,但是距离比较上不够精确,导致搜索结果不够准确。积量化算法将高维数据划分为多个子空间,在子空间用kmeans算法学习聚类中心,根据聚类中心确定搜索结果。优势是更为精确,但是搜索速度慢。
因此,现有技术中搜索相似图片的方案中,搜索速度快的方式精度低,搜索精度高的方式速度慢,导致用户在搜索相似图片时,用户体验较差。
发明内容
本公开提供一种检索相似数据的方法、装置、设备及计算机可读存储介质,以解决现有技术中搜索相似图片的方案中,搜索速度快的方式精度低,搜索精度高的方式速度慢,导致用户在搜索相似图片时,用户体验较差。
本公开的第一个方面是提供一种检索相似数据的方法,包括:
接收检索数据,根据预设划分规则将所述检索数据划分为M个检索子数据;
获取每个所述检索子数据对应的聚类中心组合,其中,所述聚类中心组合是对训练数据进行处理得到的;
确定所述检索子数据与每个所述聚类中心组合对应的第一距离,并将所述第一距离确定为所述检索子数据与所述聚类中心组合对应的数据库子数据间的距离;
根据所述检索子数据与所述数据库子数据间的距离,确定所述检索数据与所述数据库子数据所属的数据库数据与所述检索数据间的总距离;
根据所述总距离在所述数据库数据中确定与所述检索数据相似的目标数据。
本公开的第二个方面是提供一种检索相似数据的装置,包括:
接收模块,用于接收检索数据,根据预设划分规则将所述检索数据划分为M个检索子数据;
获取模块,用于获取每个所述检索子数据对应的聚类中心组合,其中,所述聚类中心组合是对训练数据进行处理得到的;
第一确定模块,用于确定所述检索子数据与每个所述聚类中心组合对应的第一距离,并将所述第一距离确定为所述检索子数据与所述聚类中心组合对应的数据库子数据间的距离;
第二确定模块,用于根据所述检索子数据与所述数据库子数据间的距离,确定所述检索数据与所述数据库子数据所属的数据库数据与所述检索数据间的总距离;
目标数据确定模块,用于根据所述总距离在所述数据库数据中确定与所述检索数据相似的目标数据。
本公开的第三个方面是提供一种检索相似数据的设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并配置为由所述处理器执行以实现如上述第一方面所述的检索相似数据的方法。
本公开的第四个方面是提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如上述第一方面所述的检索相似数据的方法。
本公开提供的检索相似数据的方法、装置、设备及计算机可读存储介质的技术效果是:
本公开提供的检索相似数据的方法、装置、设备及计算机可读存储介质,包括:接收检索数据,根据预设划分规则将检索数据划分为M个检索子数据;获取每个检索子数据对应的聚类中心组合,其中,聚类中心组合是对训练数据进行处理得到的;确定检索子数据与每个聚类中心组合对应的第一距离,并将第一距离确定为检索子数据与聚类中心组合对应的数据库子数据间的距离;根据检索子数据与数据库子数据间的距离,确定检索数据与数据库子数据所属的数据库数据与检索数据间的总距离;根据总距离在数据库数据中确定与检索数据相似的目标数据。本实公开提供的检索相似数据的方法、装置、设备及计算机可读存储介质中,将检索数据划分为多个子数据,再基于检索子数据确定对应的聚类中心组合,并根据二者的距离确定检索子数据与聚类中心组合对应的数据库子数据间的距离,无需计算检索子数据与对应的每个数据库子数据间的距离,能够降低计算量。并且,基于聚类中心组合,确定检索子数据与聚类中心组合对应的数据库子数据间的距离,得到的近似距离更加精确,从而使得确定的目标数据和检索数据更相近,能够提高检索精度。
附图说明
图1A为本发明一示例性实施例示出的应用场景图;
图1为本发明一示例性实施例示出的检索相似数据的方法的流程图;
图2为本发明另一示例性实施例示出的检索相似数据的方法的流程图;
图2A为本发明一示例性实施例示出的四分点示意图;
图3为本发明一示例性实施例示出的检索相似数据的装置的结构图;
图4为本发明另一示例性实施例示出的检索相似数据的装置的结构图;
图5为本发明一示例性实施例示出的检索相似数据的设备的结构图。
具体实施方式
图1A为本发明一示例性实施例示出的应用场景图。
如图1A所示,很多互联网平台都有数据检索的功能,用户可以在其中输入数据,平台前端,也可以是客户端可以将数据转发至后端服务器,由后端服务器对输入的数据进行识别处理,并确定与其相近的目标数据,再将目标数据反馈至平台前端,从而向用户反馈检索结果。例如,用户可以输入图片,网络平台可以向用户反馈搜索结果。在这个过程中,后台服务器对输入数据的处理过程决定了向用户反馈的检索结果的准确性。若检索精度差,则反馈的检索结果就会不准确;若检索速度慢,则反馈检索结果的时间就会较长,都会造成用户的体验差的问题。
本实施例提供的方案,基于积量化算法,通过优化确定检索数据与聚类中心之间距离的方式,能够实现快速且准确的数据检索效果。
图1为本发明一示例性实施例示出的检索相似数据的方法的流程图。
如图1所示,本实施例提供的检索相似数据的方法包括:
步骤101,接收检索数据,根据预设划分规则将检索数据划分为M个检索子数据。
本实施例提供的方法可以应用在图片检索平台的后台服务器中,由处理图片检索的服务器执行本实施例提供的方法。图片检索平台还可以具有前端,如应用软件的客户端,用户可以在前端进行操作,输入需要检索的图片,前端可以将该图片发送至服务器后端,从而使服务器根据接收的检索数据找到相似图像。
其中,服务器在接收到检索数据后,可以对该数据进行处理,得到检索子数据。
具体的,服务器中可以存储有预设的划分规则,并基于该规则对检索数据进行划分,得到M个检索子数据。例如,一个检索数据包括128个浮点位(float),可以将其分为4个检索子数据,每个检索子数据为32位,再基于每个检索子数据进行检索,能够降低计算量。可以理解为,对划分后的检索子数据进行组合,能够得到接收的检索数据。
进一步的,服务器还可以将接收的数据进行矢量化,生成查询矢量q。再对查询矢量进行分割,得到检索子数据。
实际应用时,M的值可以根据需求进行设置,本实施例不对此进行限制。
步骤102,获取每个检索子数据对应的聚类中心组合。
其中,聚类中心组合是对训练数据进行处理得到的。可以预先对训练数据进行训练,得到多个聚类中心组合,在接收到检索数据后,可以直接基于检索子数据找到对应的聚类中心组合。
本实施例提供的方法中,服务器可以获取聚类中心组合以及与聚类中心组合对应的数据库子数据。
具体的,可以获取一些训练数据,例如一些具有代表性的图像,将其作为训练数据集合。按照预设划分规则对每个训练数据进行划分,得到训练子数据,再基于划分规则将相同属性的训练子数据划分为同一组得到训练子数据集,再对每个训练子数据集进行聚类处理,得到多个聚类中心。例如,可以对每个图像数据进行转化得到128位的特征数据,再对特征数据进行划分得到4个子数据,每个子数据包括32位特征数据。
对于每个训练子数据集合来说,将其中的聚类中心两两分组,就可以得到聚类中心组合。例如,将每个训练数据划分为M个训练子数据,将不同训练数据训练子数据分为一组,例如,将每个训练数据的第一个训练子数据为一组,第二个训练子数据分为一组,能够得到M个训练子数据集。再对每个训练子数据集进行聚类处理,能够得到k个聚类中心,最终能够得到M×k个聚类中心。
进一步的,聚类中心组合中的聚类中心具有先后关系,即聚类中心组合(C1,C2),与(C2,C1)是不同的聚类中心组合。
实际应用时,对训练数据进行划分的规则与对检索数据进行划分的规则相同,因此,每个检索子数据与一个训练子数据集相对应。将每个训练数据划分为M个训练子数据,对子数据进行分组得到M个训练子数据集,相似的,对检索数据进行划分得到M个检索子数据,一个检索子数据与一个训练子数据集对应。例如,第一个检索子数据与第一个训练子数据集对应,第M个检索子数据与第M个训练子数据集对应。
其中,每个训练子数据集都具有k个聚类中心,那么这个训练子数据集可以具有k*(k-1)个聚类中心组合。若训练子数据集与检索子数据对应,则可以将这个训练子数据集的聚类中心组合确定为该检索子数据对应的聚类中心组合。例如,第N个检索子数据与第N个训练子数据集对应,第N个训练子数据集中的聚类中心为N1到Nk,那么N1到Nk两两组合得到的聚类中心组合,即为第N个检索子数据对应的聚类中心组合。
可以理解为,在一个训练子数据集中包括M个训练子数据,这些训练子数据与训练数据一一对应。例如,在第一个训练子数据集中可以包括训练数据A的第一部分A1,在第二个训练子数据集中可以包括训练数据A的第二部分A2,在第M个训练子数据集中可以包括训练数据A的第M部分AM,将训练数据A对应的各个部分进行组合,能够得到该训练数据A。因此,在不同的训练子数据集中,都具有同一个训练数据的一部分子数据。
步骤103,确定检索子数据与每个聚类中心组合对应的第一距离,并将第一距离确定为检索子数据与聚类中心组合对应的数据库子数据间的距离。
本实施例提供的方法中,其中,聚类中心组合与数据库子数据间的对应关系,是预先根据数据库子数据与聚类中心确定的。可以预先确定聚类中心组合与数据库子数据间的对应关系。具体可以是基于预设划分规则对数据库数据进行划分,得到M个数据库子数据,并确定与数据库子数据对应的训练子数据集。例如,第一个数据库子数据与第一个训练子数据集对应,第M个据库子数据与第M个训练子数据集对应。对于每个数据库数据来说,都能够被划分为M个数据库子数据,当数据库数据为多个时,一个训练子数据集能够与多个数据库子数据对应。例如,数据库数据为B,则该数据的第一部分B1可以与第一个训练子数据集对应,则该数据的第M部分BM可以与第M个训练子数据集对应。
每个训练子数据集中可以具有k个聚类中心,可以计算数据库子数据与每个聚类中心的距离,并从中确定最近聚类中心c1以及次近聚类中心c2,将c1与c2的组合作为数据库子数据对应的聚类中心组合。例如,可以先确定数据库子数据BN对应的第N个训练子数据集,并确定BN与该训练子数据集中的k个聚类中心的距离,并根据距离确定出聚类中心组合。本实施例提供的方法中,距离是指数据间的距离,具体可以采用欧氏距离、马氏距离、曼哈顿距离、切比雪夫距离、闵式距离、海明距离等算法计算两个数据间的距离。
其中,训练数据可以是数据库数据中的一部分,或是与数据库数据相似的数据,但是数量较少。基于训练数据能够得到各个训练子数据的聚类中心,并且训练数据与数据库数据相关,因此,可以认为聚类中心能够作为数据库子数据的聚类中心。而仅对训练数据进行处理得到聚类中心,相较于对整个数据库中的数据进行处理得到聚类中心,计算量要小得多。
具体的,对于每个聚类中心组合来说,都可以具有相应的数据库子数据。并且,可以设置标识列表,若聚类中心组合具有相应的数据库子数据,则将标识设置为true,若聚类中心组合不具有相应的数据库子数据,则将标识设置为false。
进一步的,聚类中心组合包括数据库子数据的最近聚类中心以及次近聚类中心,因此,可以使用聚类中心组合代替具体的数据库子数据。一般情况下,聚类中心组合的数量远远小于数据库子数据的数量,例如一组聚类中心可能与数百个数据库子数据对应,此时,可以基于聚类中心组合与检索子数据间的第一距离,作为这数百个数据库子数据与检索子数据间的距离,能够减少计算量,无需逐一计算每个数据库子数据与检索子数据间的距离。并且,聚类中心组合与数据库子数据相近,因此通过本实施例提供的方法能够近似的确定出每个数据库子数据与检索子数据间的距离。
实际应用时,可以计算聚类中心组合的中心与检索子数据间的第一距离,还可以计算聚类中心组合的四分点与检索子数据间的第一距离。现有技术中,是基于单个聚类中心确定检索子数据与数据库子数据间的近似距离。例如,聚类中心C具有对应的数据库子数据B1 1、B2 1,然后计算检索子数据S1与聚类中心C的距离最近,则认为检索子数据S1与数据库子数据B1 1、B2 1的距离最近。但是,若存在聚类中心C′,与数据库子数据B1 1′、B2 1′对应,S1与C的距离小于S1与C′的距离,但是S1与B1 1′、B2 1′的距离有可能小于S1与B1 1、B2 1的距离,此时,就会造成检索不准确的问题。
基于本步骤,能够得到检索子数据与数据库子数据间的近似距离,例如,第一个检索子数据与数据库数据B1的第一数据库子数据间的距离,第一个检索子数据与数据库数据B2的第一数据库子数据间的距离。
步骤104,根据检索子数据与数据库子数据间的距离,确定检索数据与数据库子数据所属的数据库数据与检索数据间的总距离。
步骤105,根据总距离在数据库数据中确定与检索数据相似的目标数据。
实际应用时,可以将数据库数据包括的数据库子数据与检索子数据间的距离进行叠加,作为检索数据与数据库数据的总距离。
其中,例如,数据库数据B包括B1到BM,B1到BM与其相应的检索子数据间的距离为l1到lM,则可以将l1到lM进行叠加,得到总距离。
具体的,若检索数据与数据库数据越相似,则得到的总距离越小,因此,可以对总距离进行排序,将总距离最小的若干个数据库数据作为目标数据。还可以根据目标数据向用户反馈检索结果。具体可以通过与服务器配合的客户端显示检索结果。
本实施例提供的方法用于检索相似数据,该方法由安装有本实施例提供的方法的设备执行,该设备通常以硬件和/或软件的方式来实现。
本实施例提供的检索相似数据的方法,包括:接收检索数据,根据预设划分规则将检索数据划分为M个检索子数据;获取每个检索子数据对应的聚类中心组合,其中,聚类中心组合是对训练数据进行处理得到的;确定检索子数据与每个聚类中心组合对应的第一距离,并将第一距离确定为检索子数据与聚类中心组合对应的数据库子数据间的距离;根据检索子数据与数据库子数据间的距离,确定检索数据与数据库子数据所属的数据库数据与检索数据间的总距离;根据总距离在数据库数据中确定与检索数据相似的目标数据。本实施例提供的检索相似数据的方法中,将检索数据划分为多个子数据,再基于检索子数据确定对应的聚类中心组合,并根据二者的距离确定检索子数据与聚类中心组合对应的数据库子数据间的距离,无需计算检索子数据与对应的每个数据库子数据间的距离,能够降低计算量。并且,基于聚类中心组合,确定检索子数据与聚类中心组合对应的数据库子数据间的距离,得到的近似距离更加精确,从而使得确定的目标数据和检索数据更相近,能够提高检索精度。
图2为本发明另一示例性实施例示出的检索相似数据的方法的流程图。
如图2所示,本实施例提供的检索相似数据的方法,包括:
步骤201,根据预设划分规则将每个训练数据划分为M个训练子数据。
本实施例提供的方法中,设置有预设划分规则,该预设划分规则可以对训练数据、数据库数据、检索数据进行划分,并得到相应的M个子数据。采用同一标准对各个数据进行划分,使得划分得到的子数据有可比性,提高检索的准确度。
其中,训练数据可以是预先获取的,可以是数据库数据的一部分。用户可以输入检索数据,后台服务器可以在数据库数据中找到与检索数据相近的数据,并反馈给用户。例如,用户可以在图片搜索引擎中输入图片,后台服务器可以基于该图片找到相近的图片反馈给用户。
具体的,训练数据与数据库数据具有相关性,例如,可以是同一类数据,比如数据库数据是图像数据,则训练数据也可以是图像数据。另外,训练数据还可以是一部分数据库数据。
进一步的,可以根据数据结构的性质设定预设划分规则,例如,每个图像数据具有128个特征值,则可以将这128个特征值划分为4块,每块32个特征值。
步骤202,根据划分规则对训练子数据进行分组得到M个训练子数据集,确定每个训练子数据集中的聚类中心,并根据聚类中心确定聚类中心组合。
实际应用时,可以基于划分规则对所有的训练子数据进行分组。若按照数据结构对训练数据进行划分,则可以将相同结构对应的子数据分为一组。例如,将训练数据的128个特征值划分为4块,每个训练子数据为32个特征值。则可以将所有的第一块子数据确定为一组,所有的第二块数据确定为第二组。比如有训练数据A1、A2,可以将A1划分为A1 1、A1 2、A1 3、A1 4,可以将A2划分为A2 1、A2 2、A2 3、A2 4。在分组时,则可以将A1 1与A2 1分为一组,将A1 2与A2 2分为一组,将A1 3、A2 3分为一组,将A1 4与A2 4分为一组。
可以将每组训练子数据作为一个训练子数据集合,例如,可以得到第一训练数据子集合、第二训练数据子集合、第三训练数据子集合、第四训练数据子集合,并对每个集合中的训练子数据进行聚类,得到每个训练子数据集合的聚类中心。
其中可以采用K-Means方法进行聚类,得到每个训练子数据集合的聚类中心。并且,每个训练子数据集合可以具有多个聚类中心,如每个训练子数据集都具有k个聚类中心。在同一个训练子数据集中,将聚类中心两两组合,得到聚类中心组合,例如,C1、C2可以作为一个聚类中心组合。
具体的,可以根据预设划分规则确定训练子数据的第一属性,将属于同一第一属性的训练子数据分为一组,得到M个训练子数据集。数据结构也属于数据属性的一种,对检索数据或数据库数据来说,也可以预设划分规则确定这些数据的子数据的属性,并将具有相同属性的子数据进行比对,使得各个子数据具有可比性。
在一种可选的实施方式中,可以根据聚类中心组合确定四分点,并根据所述四分点生成码字,并基于码字生成码本。具体的确定四分点的方式与上述记载相似,不再赘述。在这种实施方式中,可以存储码本。还可以存储码本中码字与聚类中心组合间的对应关系。
步骤203,根据预设划分规则将每个数据库数据划分为M个数据库子数据。
进一步的,本实施例提供的方法中,设置有数据库,数据库中存储有大量数据,数据库数据与检索数据类型相同,例如,若检索数据为图像数据,则数据库中存储有图像数据。可以在数据库数据中确定出与检索数据相似的目标数据。
实际应用时,也可以根据预设划分规则将每个数据库数据划分为M个数据库子数据。比如有数据库数据B1、B2、B3,可以将B1划分为B1 1、B1 2、B1 3、B1 4,可以将B2划分为B2 1、B2 2、B2 3、B2 4,可以将B3划分为B3 1、B3 2、B3 3、B3 4
其中,数据库中可以包括大量的数据,可以将所有的数据库数据都进行上述处理,得到每个数据库数据的数据库子数据。
步骤204,根据预设划分规则确定每个数据库子数据对应的训练子数据集,并在训练子数据集中确定与数据库子数据对应的聚类中心组合。
具体的,可以根据预设划分规则确定数据库子数据的第二属性,根据第一属性、第二属性确定每个数据库子数据对应的训练子数据集。例如,若依据数据结构对数据库数据进行划分,则第二个数据库子数据与第二个训练子数据集合。
进一步的,在训练子数据集中确定与数据库子数据对应的第一聚类中心以及第二聚类中心,根据第一聚类中心以及第二聚类中心确定聚类中心组合。
实际应用时,每个训练子数据集都具有k个聚类中心,可以在训练子数据集中确定与数据库子数据对应的聚类中心组合。具体可以计算与数据库子数据对应的训练子数据集中,每个聚类中心与该数据库子数据的距离,并从中确定出的数据库子数据最近聚类中心C1、次近聚类中心C2,C1与数据库子数据的距离最近,C2与数据库子数据的距离最近次近,将最近聚类中心C1、次近聚类中心C2的组合确定为数据库子数据对应的聚类中心组合。
例如,对于数据库子数据B2 3来说,与其对应的训练子数据集为第二训练子数据集为,其中包括的聚类中心为C2 n,n为大于等于1小于等于k的整数。则可以在第二训练子数据集中,找到与其相应的聚类中心组合,例如,可以是C2 3,C2 5。相似的,对于每个数据库子数据来说,都能够确定出与其相应的聚类中心组合。
由于聚类中心组合中包括与数据库子数据相距最近的聚类中心以及次近的聚类中心,因此,该聚类中心组合中的数据特征与数据库子数据的数据特征相近,可以使用聚类中心组合代表与其对应的数据库子数据。本实施例提供的方法中,在根据检索数据进行检索时,使用检索数据与根据聚类中心组合比对,进而找到与检索数据相似的数据库数据,能够降低计算量。
其中,若聚类中心组合具有相应的数据库子数据,则可以将聚类中心组合的标识设置为true,否则,设置为false,例如C2 3,C2 5的组合具有相应的数据库子数据,则这一组合的标识为true。假设,C7 3,C7 5组合没有相应的数据库子数据,则这一组合的标识为false。若聚类中心组合没有相应的数据库子数据,则说明没有数据库子数据与这一组合中的数据特征相近,这一组合不代表任何数据库子数据。否则,说明有数据库子数据与这一组合中的数据特征相近。
在一种可选的实施方式中,若存储有码本,则可以根据数据库子数据与聚类中心组合的对应关系,确定数据库子数据与码字间的对应关系,即原有的数据库子数据与聚类中心组合对应,可以转化为数据库子数据与码字间的关系。
步骤205,接收检索数据,根据预设划分规则将检索数据划分为M个检索子数据。
步骤206,获取每个检索子数据对应的聚类中心组合。
步骤205-206与步骤101-102的具体原理和实现方式类似,此处不再赘述。
步骤207,确定聚类中心组合的四分点,将四分点与检索子数据的距离确定为第一距离。
聚类中心组合可以包括第一聚类中心以及第二聚类中心。其中,可以确定聚类中心组合的四分点,四分点是指将聚类中心组合中的两个聚类中心等分为四分的特征点。一般来说,对于一组聚类中心来说,可以具有两个四分点,但是由于在步骤204中,聚类中心组合代表了与其相应的数据库子数据的特征,而在组合中,第一聚类中心与数据库子数据距离最近,第二聚类中心与数据库子数据距离次近,因此,可以将靠近第一聚类中心的四分点,作为本实施例中提到的四分点。
具体的,可以先确定聚类中心组包括的第一聚类中心与第二聚类中心的第一中心点,可以将第一聚类中心与第二聚类中心相加再除以2,得到第一中心点的值。再将第一聚类中心与第一中心点的中心点确定为四分点,具体可以将第一聚类中心与第一中心点相加,再次除以2,得到需要的四分点的值。
进一步的,可以计算四分点与检索子数据的距离,并将该距离确定为检索子数据与聚类中心组合对应的第一距离。若距离较近,则可以认为检索子数据的数据特征与该聚类中心组合包括的数据特征相近,进而与聚类中心组合对应的数据库子数据的特征相近。
实际应用时,可以根据四分点生成码字(codeword),即每个聚类中心组合具有一个四分点,每个四分点对应一个码字,那么就可以使用码字替代该聚类中心组合。在需要检索数据时,可以直接根据检索子数据与码字生成第一距离,并基于第一距离找到检索数据的目标数据。
在一种可选的实施方式中,若存储有码本,则可以直接根据码字确定第一距离,即计算码字与检索子数据间的距离。在这种实施方式中,实际上还是计算的聚类中心组合四分点与检索子数据间的距离。
图2A为本发明一示例性实施例示出的四分点示意图。
如图所示,点x代表检索子数据,C1为聚类中心组合中的第一聚类中心,C2为聚类中心组合中的第二聚类中心。C3为第一中心点,C4为四分点。C5为四分点与第一聚类中心的中心点。从图中可以直观的看出,x到C4的距离最小,因此,采用C4的值确定聚类中心组合与检索子数据间是否匹配最为合适。
以下计算点x到点c4的距离d4,定义c1到c2的距离为d,x到点c1的距离为d1,x到c2的距离为d2。具体为:
‖c1-c22=d
基于上述计算方式,能够确定数据x到c4的距离d4
步骤208,将第一距离确定为检索子数据与聚类中心组合对应的数据库子数据间的距离。
步骤209,将属于同一数据库数据的数据库子数据与检索子数据间的距离进行叠加,得到数据库数据与检索数据间的总距离。
本实施例提供的方法中,每个检索子数据对应一个训练子数据集,例如,检索子数据S1与第一子数据集对应,S2与第二子数据集对应。则检索子数据S1与第一子数据集中的聚类中心组合对应,检索子数据S2与第二子数据集中的聚类中心组合对应。通过计算第一距离,能够得到检索子数据与其对应的聚类中心组合之间的距离。例如,第一子数据集中具有k×(k-1)个聚类中心组合,则检索子数据S1与其对应的聚类中心组合之间,具有k×(k-1)个第一距离。
并且,本实施例提供的方法中,聚类中心组合与数据库子数据具有对应关系,聚类中心组合与对应的数据库子数据具有相似的数据特征,因此,可以用聚类中心组合代表与其对应的相似的数据特征,因此,可以将将第一距离确定为检索子数据与聚类中心组合对应的数据库子数据间的距离。例如,第一子数据集中,具有C1 3,C1 5这个组合,与其对应的数据库子数据为B3 1、B5 1、B7 1。则可以将检索子数据S1与C1 3,C1 5这个组合的第一距离l1,确定为检索子数据S1与B3 1、B5 1、B7 1分别对应的距离。相应的,在第二子数据集中,可以具有C2 7,C2 8这个组合,与其对应的数据库子数据为B3 2、B4 2、B6 2,则可以将检索子数据S2与C2 7,C2 8的组合对应的第一距离l2,确定为检索子数据S2与B3 2、B4 2、B6 2分别对应的距离。
在一种可选的方式中,若存储有码本,则可以将第一距离确定为检索子数据与码字对应的数据库子数据间的距离。其中,码字与聚类中心组合对应,数据库子数据与聚类中心组合对应,相应的,码字与数据库子数据对应;检索子数据与聚类中心组合对应,相应的,检索子数据与码字对应,因此,而码字可以代表与其对应的数据库子数据的特征,因此,检索子数据与码字间的第一距离,可以认为是检索子数据与数据库子数据的距离。步骤209,将属于同一数据库数据的数据库子数据与检索子数据间的距离进行叠加,得到数据库数据与检索数据间的总距离。
其中,数据库数据被拆分为多个数据库子数据,并将其与聚类中心组合关联,通过聚类中心组合,计算每个检索子数据与数据库子数据之间的距离。因此,可以将检索子数据与数据库子数据间的距离进行叠加,得到数据库数据与检索数据间的距离。例如,检索数据S与数据库数据B3的距离可以是,S1与B3 1间的距离加上S2与B3 2的距离。其中,检索数据具有两个检索子数据S1、S2,数据库数据B3具有两个数据库子数据B3 1、B3 2,S1与B3 1属性相同,S2与B3 2属性相同,将l1与l2进行叠加,能够得到检索数据S与数据库数据B3的总距离。
步骤210,按照总距离从小到大的顺序排列得到排序结果,将排序靠前的预设数量个数据库数据确定为目标数据。
针对数据库数据,可以根据其与检索数据的总距离的大小进行排序,将排序较小的预设数量个数据库数据确定为目标数据,例如,可以确定10个目标数据,并可以按照总距离从小到大的数据向用户反馈这10个目标数据。
其中,距离越小,说明二者数据特征越相近,则可以认为二者是近似的数据。
图3为本发明一示例性实施例示出的检索相似数据的装置的结构图。
如图3所示,本实施例提供的检索相似数据的装置,包括:
接收模块31,用于接收检索数据,根据预设划分规则将所述检索数据划分为M个检索子数据;
获取模块32,用于获取每个所述检索子数据对应的聚类中心组合,其中,所述聚类中心组合是对训练数据进行处理得到的;
第一确定模块33,用于确定所述检索子数据与每个所述聚类中心组合对应的第一距离,并将所述第一距离确定为所述检索子数据与所述聚类中心组合对应的数据库子数据间的距离;
第二确定模块34,用于根据所述检索子数据与所述数据库子数据间的距离,确定所述检索数据与所述数据库子数据所属的数据库数据与所述检索数据间的总距离;
目标数据确定模块35,用于根据所述总距离在所述数据库数据中确定与所述检索数据相似的目标数据。
本实施例提供的检索相似数据的装置,接收模块,用于接收检索数据,根据预设划分规则将检索数据划分为M个检索子数据;获取模块,用于获取每个检索子数据对应的聚类中心组合,其中,聚类中心组合是对训练数据进行处理得到的;第一确定模块,用于确定检索子数据与每个聚类中心组合对应的第一距离,并将第一距离确定为检索子数据与聚类中心组合对应的数据库子数据间的距离;第二确定模块,用于根据检索子数据与数据库子数据间的距离,确定检索数据与数据库子数据所属的数据库数据与检索数据间的总距离;目标数据确定模块,用于根据总距离在数据库数据中确定与检索数据相似的目标数据。本实施例提供的检索相似数据的装置中,将数据划分为多个子数据,再基于子数据确定对应的聚类中心组合,并根据二者的距离确定检索子数据与聚类中心组合对应的数据库子数据间的距离,无需计算检索子数据与对应的每个数据库子数据间的距离,能够降低计算量。并且,基于聚类中心组合,确定检索子数据与聚类中心组合对应的数据库子数据间的距离,得到的近似距离更加精确,从而使得确定的目标数据和检索数据更相近,能够提高检索精度。
本实施例提供的检索相似数据的装置的具体原理和实现方式均与图1所示的实施例类似,此处不再赘述。
图4为本发明另一示例性实施例示出的检索相似数据的装置的结构图。
如图4所示,在上述实施例的基础上,本实施例提供的检索相似数据的装置,所述第一确定模块33,包括:
四分点确定单元331,用于确定所述聚类中心组合的四分点,将所述四分点与所述检索子数据的距离确定为所述第一距离。
所述四分点确定单元331具体用于:
确定所述聚类中心组包括的第一聚类中心与第二聚类中心的第一中心点;
将所述第一聚类中心与所述第一中心点的中心点确定为所述四分点。
所述第二确定模块34具体用于:
将属于同一数据库数据的所述数据库子数据与所述检索子数据间的距离进行叠加,得到所述数据库数据与所述检索数据间的总距离。
本实施例提供的装置,还包括
训练模块36,用于:
根据所述预设划分规则将每个训练数据划分为M个训练子数据;
根据所述预设划分规则对所述训练子数据进行分组得到M个训练子数据集,确定每个所述训练子数据集中的聚类中心,并根据所述聚类中心确定聚类中心组合;
处理模块37,用于
根据所述预设划分规则将每个数据库数据划分为M个数据库子数据;
根据所述预设划分规则确定每个所述数据库子数据对应的训练子数据集,并在所述训练子数据集中确定与所述数据库子数据对应的所述聚类中心组合。
所述训练模块36,包括:
分组单元361,用于根据所述预设划分规则确定所述训练子数据的第一属性,将属于同一第一属性的所述训练子数据分为一组,得到M个训练子数据集。
所述处理模块37,包括:
属性确定单元371,用于根据所述预设划分规则确定所述数据库子数据的第二属性;
子集确定单元372,用于根据所述第一属性、所述第二属性确定每个所述数据库子数据对应的训练子数据集。
所述处理模块37,包括:
中心确定单元373,用于在所述训练子数据集中确定与所述数据库子数据对应的第一聚类中心以及第二聚类中心;
组合确定单元374,用于根据所述第一聚类中心以及第二聚类中心确定所述聚类中心组合;
其中,所述第一聚类中心是所述数据库子数据的最近聚类中心,所述第二聚类中心是所述数据库子数据的次近聚类中心。
所述目标数据确定模块具体用于:
按照所述总距离从小到大的顺序排列得到排序结果,将排序靠前的预设数量个数据库数据确定为所述目标数据。
本实施例提供的检索相似数据的装置的具体原理和实现方式均与图2所示的实施例类似,此处不再赘述。
图5为本发明一示例性实施例示出的检索相似数据的设备的结构图。
如图5所示,本实施例提供的检索相似数据的设备包括:
存储器51;
处理器52;以及
计算机程序;
其中,所述计算机程序存储在所述存储器51中,并配置为由所述处理器52执行以实现如上所述的任一种检索相似数据的方法。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,
所述计算机程序被处理器执行以实现如上所述的任一种检索相似数据的方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种检索相似数据的方法,其特征在于,包括:
接收检索数据,根据预设划分规则将所述检索数据划分为M个检索子数据;
获取每个所述检索子数据对应的聚类中心组合,其中,所述聚类中心组合是对训练数据进行处理得到的;
确定所述检索子数据与每个所述聚类中心组合对应的第一距离,并将所述第一距离确定为所述检索子数据与所述聚类中心组合对应的数据库子数据间的距离;
根据所述检索子数据与所述数据库子数据间的距离,确定所述检索数据与所述数据库子数据所属的数据库数据与所述检索数据间的总距离;
根据所述总距离在所述数据库数据中确定与所述检索数据相似的目标数据。
2.根据权利要求1所述的方法,其特征在于,所述确定所述检索子数据与每个所述聚类中心组合对应的第一距离,包括:
确定所述聚类中心组合的四分点,将所述四分点与所述检索子数据的距离确定为所述第一距离。
3.根据权利要求2所述的方法,其特征在于,所述确定所述聚类中心组合的四分点,包括:
确定所述聚类中心组包括的第一聚类中心与第二聚类中心的第一中心点;
将所述第一聚类中心与所述第一中心点的中心点确定为所述四分点。
4.根据权利要求1所述的方法,其特征在于,所述根据所述检索子数据与所述数据库子数据间的距离,确定所述检索数据与所述数据库子数据所属的数据库数据与所述检索数据间的总距离,包括:
将属于同一数据库数据的所述数据库子数据与所述检索子数据间的距离进行叠加,得到所述数据库数据与所述检索数据间的总距离。
5.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
根据所述预设划分规则将每个训练数据划分为M个训练子数据;
根据所述预设划分规则对所述训练子数据进行分组得到M个训练子数据集,确定每个所述训练子数据集中的聚类中心,并根据所述聚类中心确定聚类中心组合;
根据所述预设划分规则将每个数据库数据划分为M个数据库子数据;
根据所述预设划分规则确定每个所述数据库子数据对应的训练子数据集,并在所述训练子数据集中确定与所述数据库子数据对应的所述聚类中心组合。
6.根据权利要求5所述的方法,其特征在于,所述根据所述划分规则对所述训练子数据进行分组得到M个训练子数据集,包括:
根据所述预设划分规则确定所述训练子数据的第一属性,将属于同一第一属性的所述训练子数据分为一组,得到M个训练子数据集。
7.根据权利要求6所述的方法,其特征在于,所述根据所述预设划分规则确定每个所述数据库子数据对应的训练子数据集,包括:
根据所述预设划分规则确定所述数据库子数据的第二属性;
根据所述第一属性、所述第二属性确定每个所述数据库子数据对应的训练子数据集。
8.根据权利要求5所述的方法,其特征在于,所述在所述训练子数据集中确定与所述数据库子数据对应的所述聚类中心组合,包括:
在所述训练子数据集中确定与所述数据库子数据对应的第一聚类中心以及第二聚类中心,根据所述第一聚类中心以及第二聚类中心确定所述聚类中心组合;
其中,所述第一聚类中心是所述数据库子数据的最近聚类中心,所述第二聚类中心是所述数据库子数据的次近聚类中心。
9.根据权利要求1-4、6-8任一项所述的方法,其特征在于,所述根据所述总距离在所述数据库数据中确定与所述检索数据相似的目标数据,包括:
按照所述总距离从小到大的顺序排列得到排序结果,将排序靠前的预设数量个数据库数据确定为所述目标数据。
10.一种检索相似数据的装置,其特征在于,包括:
接收模块,用于接收检索数据,根据预设划分规则将所述检索数据划分为M个检索子数据;
获取模块,用于获取每个所述检索子数据对应的聚类中心组合,其中,所述聚类中心组合是对训练数据进行处理得到的;
第一确定模块,用于确定所述检索子数据与每个所述聚类中心组合对应的第一距离,并将所述第一距离确定为所述检索子数据与所述聚类中心组合对应的数据库子数据间的距离;
第二确定模块,用于根据所述检索子数据与所述数据库子数据间的距离,确定所述检索数据与所述数据库子数据所属的数据库数据与所述检索数据间的总距离;
目标数据确定模块,用于根据所述总距离在所述数据库数据中确定与所述检索数据相似的目标数据。
11.一种检索相似数据的设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并配置为由所述处理器执行以实现如权利要求1-9任一种所述的方法。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,
所述计算机程序被处理器执行以实现如权利要求1-9任一种所述的方法。
CN201811092742.6A 2018-09-19 2018-09-19 检索相似数据的方法、装置、设备及计算机可读存储介质 Active CN109446408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811092742.6A CN109446408B (zh) 2018-09-19 2018-09-19 检索相似数据的方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811092742.6A CN109446408B (zh) 2018-09-19 2018-09-19 检索相似数据的方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN109446408A true CN109446408A (zh) 2019-03-08
CN109446408B CN109446408B (zh) 2021-01-26

Family

ID=65530731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811092742.6A Active CN109446408B (zh) 2018-09-19 2018-09-19 检索相似数据的方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109446408B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113656373A (zh) * 2021-08-16 2021-11-16 百度在线网络技术(北京)有限公司 构建检索数据库的方法、装置、设备以及存储介质
US11960455B2 (en) 2021-08-16 2024-04-16 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for building database for retrieval, device and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859326A (zh) * 2010-06-09 2010-10-13 南京大学 一种图像检索方法
CN104951562A (zh) * 2015-07-08 2015-09-30 天云融创数据科技(北京)有限公司 一种基于vlad双重自适应的图像检索方法
EP3115909A1 (en) * 2015-07-08 2017-01-11 Thomson Licensing Method and apparatus for multimedia content indexing and retrieval based on product quantization
EP3293696A1 (en) * 2016-09-07 2018-03-14 Facebook, Inc. Similarity search using polysemous codes
CN107895021A (zh) * 2017-11-15 2018-04-10 深圳云天励飞技术有限公司 图像识别方法及装置、计算机装置和计算机可读存储介质
CN107944046A (zh) * 2017-12-15 2018-04-20 清华大学 大规模高维数据快速检索方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859326A (zh) * 2010-06-09 2010-10-13 南京大学 一种图像检索方法
CN104951562A (zh) * 2015-07-08 2015-09-30 天云融创数据科技(北京)有限公司 一种基于vlad双重自适应的图像检索方法
EP3115909A1 (en) * 2015-07-08 2017-01-11 Thomson Licensing Method and apparatus for multimedia content indexing and retrieval based on product quantization
EP3293696A1 (en) * 2016-09-07 2018-03-14 Facebook, Inc. Similarity search using polysemous codes
CN107895021A (zh) * 2017-11-15 2018-04-10 深圳云天励飞技术有限公司 图像识别方法及装置、计算机装置和计算机可读存储介质
CN107944046A (zh) * 2017-12-15 2018-04-20 清华大学 大规模高维数据快速检索方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ARTEM BABENKO 等: ""The Inverted Multi-Index"", 《IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113656373A (zh) * 2021-08-16 2021-11-16 百度在线网络技术(北京)有限公司 构建检索数据库的方法、装置、设备以及存储介质
US11960455B2 (en) 2021-08-16 2024-04-16 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for building database for retrieval, device and storage medium

Also Published As

Publication number Publication date
CN109446408B (zh) 2021-01-26

Similar Documents

Publication Publication Date Title
US11949964B2 (en) Generating action tags for digital videos
US20180276250A1 (en) Distributed Image Search
US9201903B2 (en) Query by image
JP5749279B2 (ja) アイテム関連付けのための結合埋込
US10754887B1 (en) Systems and methods for multimedia image clustering
CN110399515B (zh) 图片检索方法、装置及图片检索系统
JP2010165348A (ja) アノテーション付けを行う方法およびそのためのコンピュータプログラム
CN105701216A (zh) 一种信息推送方法及装置
US20110264651A1 (en) Large scale entity-specific resource classification
WO2018015848A2 (en) Finding k extreme values in constant processing time
US11023473B2 (en) Recurrent binary embedding for information retrieval
CN105989001B (zh) 图像搜索方法及装置、图像搜索系统
WO2018176913A1 (zh) 搜索方法、装置及非临时性计算机可读存储介质
CN109933660A (zh) 面向自然语言形式的基于讲义和Stack Overflow的API信息检索方法
WO2015154679A1 (zh) 多搜索引擎搜索结果的排序方法及装置
TW202109312A (zh) 圖像特徵提取及網路的訓練方法、電子設備和電腦可讀儲存媒體
CN106919588A (zh) 一种应用程序搜索系统及方法
CN109446408A (zh) 检索相似数据的方法、装置、设备及计算机可读存储介质
CN109241360B (zh) 组合字符串的匹配方法及装置和电子设备
Prasanth et al. Effective big data retrieval using deep learning modified neural networks
Xie et al. A combination of boosting and bagging for kdd cup 2009-fast scoring on a large database
CN111582967A (zh) 内容搜索方法、装置、设备及存储介质
CN107622048B (zh) 一种文本模式识别方法及系统
US20220083862A1 (en) Systems and methods for learning new trained concepts used to retrieve content relevant to the concepts learned
Matatov et al. Dataset and case studies for visual near-duplicates detection in the context of social media

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
GR01 Patent grant
GR01 Patent grant