EP2492826A1 - High-accuracy similarity search system - Google Patents

High-accuracy similarity search system Download PDF

Info

Publication number
EP2492826A1
EP2492826A1 EP12153718A EP12153718A EP2492826A1 EP 2492826 A1 EP2492826 A1 EP 2492826A1 EP 12153718 A EP12153718 A EP 12153718A EP 12153718 A EP12153718 A EP 12153718A EP 2492826 A1 EP2492826 A1 EP 2492826A1
Authority
EP
European Patent Office
Prior art keywords
pivot
data
score
training
enrolled
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.)
Withdrawn
Application number
EP12153718A
Other languages
German (de)
French (fr)
Inventor
Takao Murakami
Kenta Takahashi
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of EP2492826A1 publication Critical patent/EP2492826A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes

Definitions

  • the present invent relates to a method and a system for searching similarity in inputted unstructured data.
  • Similarity search Searching, compared to inputted unstructured data such as an image, a moving picture, a document, binary data, or biological body information, unstructured data similar thereto is called similarity search.
  • the similarity search is typically performed by extracting from raw unstructured data (hereinafter called raw data) information called features used for distance calculation (or similarity calculation) and then considering that a smaller distance indicating a degree of disagreement between the features (or a greater degree of similarity indicating a degree of agreement between the features) indicates a greater degree of similarity.
  • the distance (degree of similarity) between the features is called score.
  • Examples include: a method (k-Nearest Neighbor Search) of calculating a distance (or degree of similarity) between raw data inputted at time of search (hereinafter called search data) and raw data enrolled in a database (hereinafter called enrolled data), selecting K pieces of the enrolled data in ascending order of distance (or descending order of the degree of similarity), and outputting information related thereto as search results; and a method (Range Search) of outputting as search results information related to the enrolled data whose distance (or degree of similarity) is smaller (or larger) than a threshold value r.
  • a method k-Nearest Neighbor Search
  • calculating scores for all the pieces of enrolled data where a total number of enrolled data is N requires N times of score calculation.
  • the score calculation requires a significant amount of time; therefore, an increase in the number N of pieces of enrolled data results in an almost proportional increase in the amount of search time.
  • suggested is distance-based indexing by which scores between the pieces of enrolled data are previously calculated, the order to select the pieces of enrolled data for which the score is to be calculated by using this is determined, and the calculation of the scores from the pieces of enrolled data is stopped in the middle of processing to thereby reduce the number of times of score calculation.
  • N pieces of enrolled data for example, M (M ⁇ N) pieces of enrolled data (hereinafter called pivots) are selected randomly, a distance between each piece of enrolled data and each pivot is calculated, a vector (hereinafter called first index vector) used at time of search by using this distance is obtained for each piece of enrolled data, a distance between search data inputted at the time of search and each pivot is calculated to obtain a second index vector of the search data, and then the order to select the remaining pieces of enrolled data (hereinafter called non-pivots) are determined in ascending order of a distance between the first and second index vectors).
  • the index vector obtained in E. CHAVEZ, K. FIGUEROA and G.
  • NAVARRO "Effective Proximity Retrieval by Ordering Permutations," IEEE Trans. On Pattern Analysis and Machine Intelligence, Vol. 30, No. 9, pp. 1647-1658 (2008 ) is a vector with which IDs of the pivots are arranged in ascending order of distance.
  • Non Patent Literature 1 the order to select the non-pivots is determined in the ascending order of the distance between the first and second index vectors.
  • this method leaves room for improvement in that an expected number of non-pivots for which score calculation is not performed (for which a score is not searched) is reduced, despite that the score from the search data is smaller than the threshold value r, when the calculation of the score from the non-pivot is stopped in the middle of processing, that is, in terms of search accuracy.
  • the present invention is characterized by having: a pivot determination unit that determines a pivot from enrolled data; a raw data acquisition unit that acquires raw data; a feature extraction unit that extracts features from the raw data; a score calculation unit that calculates a score as one of a distance and a degree of similarity between the features; an index vector generation unit that generates an index vector by using the score for the pivot; a ⁇ score calculation unit that calculates a ⁇ score as one of a distance and a degree of similarity between the index vectors; an non-pivot-specific parameter training unit that trains, by using training data, a parameter of each non-pivot including a regression coefficient; a non-pivot selection order determination unit that determines, by using the ⁇ score between inputted search data and the non-pivot as well as the regression coefficient, in order to select the non-pivots in descending order of posterior probability through logistic regression; a search result output unit that outputs a search result based on the score between the
  • the order to select the non-pivots is determined in descending order of posterior probability through logistic regression. This makes it possible to theoretically minimize the expected number of non-pivots for which the score is not calculated and thus not searched, despite that the score from the search data is smaller than the threshold value r. This consequently provides effect of dramatically improving accuracy.
  • a similarity search system of this embodiment is a similar image search system that, as a result of inputting an image by the user, searches a database in a server terminal for a similar image.
  • Unstructured data such as a moving picture, music, a document, or binary data instead of an image may be used.
  • the similarity search system of this embodiment uses a color histogram as features of the image and uses a Euclid distance as a score between the features.
  • the similarity search system of this embodiment preselects M pivots from N pieces of enrolled data. As a method of selecting the pivots, there is, for example, a method of selecting them randomly.
  • the similarity search system calculates a score between each piece of the remaining enrolled data (each non-pivot) and each of the pivots and, based on this, obtains a first index vector used at time of search for each non-pivot.
  • the similarity search system calculates a score between the inputted search data and each pivot and, based on this, obtains a second index vector of the search data.
  • the index vector is a vector as a clue directly teaching positional relationship between each non-pivot and the search data without obtaining a score.
  • index vector a vector formed of the score from each pivot (hereinafter called score vector) may be provided or a vector (hereinafter referred to as permutation vector) with IDs of the pivots arranged in ascending order of distance (or degree of similarity) may be provided.
  • permutation vector a vector formed of the score from each pivot
  • index vector a vector formed of the score from each pivot
  • permutation vector a vector with IDs of the pivots arranged in ascending order of distance (or degree of similarity)
  • FIG. 6 shows an example of search data Q and enrolled data X 1 , X 2 , ...X N in a feature space.
  • X 1 , X 2 , ...X M denote pivots and X M+1 , X M+2 , ...X N denote non-pivots.
  • two clusters are formed and they are greatly separated from each other.
  • the number of dimensions of the feature is very large and it takes time to calculate a score between the features.
  • FIGS. 6 (a1) and (a2) show examples of the second index vector of the search data and indexes when a score vector and a permutation vector are respectively used as the index vector. Note that the Euclid distance between the features is used as a score.
  • ⁇ score distance or degree of similarity between the index vectors
  • the score vector is used as the index vector
  • the permutation vector for example, any of Spearman Rho, etc.
  • the degree of similarity may be used as the degree of similarity.
  • T q -1 (i) denotes at what place in the permutation vector T q the element X i is located.
  • T q (X M X 1 , X 2 , ..., X 3 ) T
  • a first characteristic of the similarity search system of this embodiment is that an index vector size (the number of dimensions of the index vector) of each non-pivot is uniquely determined (trained) before search by using prepared data (training data). A method of training the index vector size will be described in detail below.
  • FIGS. 6 (b1) and (b2) show examples of the indexes when index vectors are held in correspondence with the index vector size of each trained non-pivot in a case where the score vector and the permutation vector are used as the index vectors.
  • the score vector is used as the index vector
  • rearrangement is made so that the number of elements corresponding to a score vector size are provided in ascending or descending order of scores, and in order to tell to which pivot the concerned score corresponds, a permutation vector with the same length is also held.
  • a permutation vector size is trained as 2
  • blacked-out sections are saved into the database.
  • the non-pivot-specific index vector size is trained, and the non-pivot-specific index vector is saved in correspondence with the index vector size of this non-pivot. This makes it possible to reduce the index vector size for each non-pivot. This results in reduction in a size of indexes saved into the database, which can provide effect of realizing system weight reduction. Details of a method of training the index vector size will be described below.
  • the ⁇ score, corresponding to the index vector size, between the search data and the non-pivot (that is, distance between z i -dimension vectors) is calculated.
  • a second characteristic of the similarity search system of this embodiment is that after the ⁇ S q , M+1 , ..., ⁇ S q , N for each non-pivot is obtained in this manner, by using logistic regression, the order to select non-pivots is determined in descending order of posterior probability P (sq, i ⁇ r
  • ⁇ S q , i ) can be deformed by use of Bayes' theorem as follows: P s q , i ⁇ r
  • ⁇ S q , i P ⁇ S q , i
  • a logistic sigmoid function ⁇ ( ) is a monotonically increasing function, and thus determining the order to select the non-pivots in descending order of a i permits determination of the order to select the non-pivots in descending order of the posterior probability P (s q , I ⁇ r
  • the a i can be obtained by using the logistic regression. In the logistic regression, a i can be obtained in an approximate manner by: a i ⁇ w i , 1 ⁇ ⁇ S q , i + w i , 0
  • the w i , 1 and w i , 0 are non-pivot-specific regression coefficients of logistic regression (M+1 ⁇ i ⁇ n). It is possible to adopt a method of using a value common to the non-pivots as the regression coefficient, but since the regression coefficient definitely differs in value from one non-pivot to another, it is possible to more properly obtain the a i by using the non-pivot-specific regression coefficient. Moreover, according to Formula 7, a i can be obtained in an approximate manner through performing multiplication once and performing addition once on the ⁇ score ⁇ S q , i , and thus it takes little time for calculating the a i .
  • the regression coefficient is uniquely determined (trained) before search by using prepared data (training data), as is the case with the index vector size. Details of a method of training the regression coefficient will be described below.
  • approximation can be achieved by a sum of posterior probabilities P (sq, m(e) ⁇ r
  • the order to select the non-pivots is determined in descending order of the posterior probability through the logistic regression by using the non-pivot-specific regression coefficient, and this makes it possible to theoretically minimize the expected number of non-pivots for which the score is not calculated and thus not searched despite that the score from the search data is smaller than the threshold value r. This consequently provides effect of dramatically improving accuracy. Details of a method of training the regression coefficient will be described below.
  • FIG. 1 shows a configuration example of the similarity search system of this embodiment.
  • raw data is an image.
  • This system is composed of: an enrollment terminal 100 that transmits to a server terminal enrollment information acquired from a user; a server terminal 200 that saves the enrollment information, generates supplementary information from the enrollment information, and performs similarity search on raw search data by using the enrollment information and the supplementary information; a client terminal 300 that transmits to the server terminal 200 the raw search data inputted by the user; and a network 400.
  • the number of each of the enrollment terminal 100, the server terminal 200, and the client terminal 300 may be one or more.
  • the enrollment terminal 100 may be the same terminal as the server terminal 200 or as the client terminal 300. Moreover, the enrollment terminal 100 is not necessarily provided.
  • the server terminal 200 may be the same terminal as the client terminal 300.
  • the network 400 may use a network such as WAN or LAN, communication between devices using a USB, an IEEE 1394, or the like, or wireless communication such as a portable phone network or BlueTooth.
  • assumed configuration is that the enrollment terminal 100 includes a plurality of PCs in a firm, the server terminal 200 is one server in a data center operated by the firm, the client terminal 300 includes a plurality of users' individual PCs, and the network 400 is the Internet, and assumed operation is that an employee in the firm performs image enrollment.
  • the enrollment terminal 100 may be a server in the data center, so that a server manager can perform image enrollment.
  • the enrollment terminal 100 may be provided in the user's individual PC, so that the user can perform image enrollment.
  • the server terminal 200 may perform automatic collection from the Internet.
  • the enrollment terminal 100, the server terminal 200, and the client terminal 300 may be provided in the user's individual PC, so that image enrollment, supplementary information generation, and search can be performed on the individual PC.
  • the enrollment terminal 100 is composed of: a raw data acquisition unit 101 that acquires raw data; and a communication I/F 102.
  • the server terminal 200 is composed of: a pivot determination unit 201 that determines M pivots from N pieces of enrolled data; a feature extraction unit 202 that extracts features from raw data; a score calculation unit 203 that calculates a score as a distance (or a degree of similarity) between the features; an index vector generation unit 204 that generates an index vector by using a score for a non-pivot or a pivot of search data; a ⁇ score calculation unit 205 that calculates a distance (or degree of similarity) (hereinafter called ⁇ score) between the index vectors; a non-pivot-specific parameter training unit 206 that trains a non-pivot-specific parameter by using training data; a non-pivot selection order determination unit 207 that determines the order to select the non-pivots by using a ⁇ score between the inputted search data and the non-pivot; a search result output unit 208 that outputs search results based on a score between the search data and
  • the database 210 holds master data 220.
  • the master data 220 holds enrollment information 230 of each enrolled user and supplementary information 240.
  • the enrollment information 230 holds, for each piece of the enrolled data, an enrolled data ID 231, raw data 232, and a feature 233.
  • the supplementary information 240 holds: pivot information 241 that indicates which piece of the enrolled data is a pivot; an index 242; and a non-pivot-specific parameter 250.
  • the index 242 holds an index vector 243 for each non-pivot.
  • the non-pivot-specific parameter 250 holds, for each non-pivot, an index vector size 251 and a regression coefficient 252 that is used for logistic regression.
  • the client terminal 300 is composed of: a raw data acquisition unit 301 that acquires raw data; and a communication I/F 302.
  • FIG. 2 shows hardware configuration of the enrollment terminal 100, the server terminal 200, and the client terminal 300 according to this embodiment.
  • These terminals can be composed of: as shown in the figure, a CPU 500, a memory 501, an HDD 502, an input dev ice 503, an output device 504, and a communication device 505.
  • FIG. 3 shows processing procedures and a data flow of enrollment according to this embodiment.
  • the enrollment terminal 100 acquires raw enrolled data from the user (step S101).
  • the enrollment terminal 100 transmits the raw enrolled data to the server terminal 200 (step S102).
  • the server terminal 200 extracts features for enrollment from the raw enrolled data (step S103).
  • the server terminal 200 saves into the database 210 the enrollment information 230 including the enrolled data ID 231 specific to the enrolled data, the raw data 232 for enrollment, and the feature 233 for enrollment (step S104).
  • FIG. 4 shows processing procedures and a data flow of supplementary information generation according to this embodiment.
  • This processing is performed between when enrollment processing is performed and when search processing is performed. For example, it is possible to perform this processing immediately after the enrollment or at night on a day when the enrollment is performed.
  • this processing involves two cases: the case where supplementary information is newly generated; and the case where the supplementary information for enrolled data added after the last supplementary information generation is updated.
  • the server terminal 200 acquires the enrollment information 230 of each enrolled user from the database 210 to newly generate supplementary information and acquires the added enrollment information 230 from the database 210 to updates the supplementary information (step S201).
  • the server terminal 200 To newly generate supplementary information, the server terminal 200 newly determines M pivots from among the raw data 232 of the N pieces of enrollment information 230 (step S202). To update the supplementary information, this step is omitted and the raw data 232 of the added enrollment information 230 is provided as a non-pivot.
  • Methods of determining a pivot include: for example, random selection; and determining as a pivot upon every pivot selection the one which has a smallest (or largest) sum of scores or ⁇ scores from the pivots determined by that time.
  • the server terminal 200 obtains a score between each pivot and each of the (N-M) non-pivots to generate the index vector 243 to newly generate supplementary information, and obtains a score between each pivot and each of the added non-pivots to generate the index vector 243 to update the supplementary information (step S203).
  • the server terminal 200 uniquely determines (trains) the non-pivot-specific parameter 250 composed of the index vector size 251 and the regression coefficient 252 used for the logistic regression by using prepared data (training data) for each of the N-M non-pivots to newly generate supplementary information and for each added non-pivot to update the supplementary information (step S204). Details of a method of training the non-pivot-specific parameter 250 composed of the index vector size 251 and the regression coefficient 252 will be described below.
  • the server terminal 200 to newly generate supplementary information, saves into the database 210, as the supplementary information 240, the pivot information 241 indicating which piece of the enrolled data is a pivot, the index 242 composed of the index vector 243 of each of the N-M non pivots, and the non-pivot-specific parameter 250 composed of the index vector size 251 and the regression coefficient 252 of each trained non-pivot.
  • the server terminal 200 to update the supplementary information, adds the generated index vector 243 to the index 242 of the database 210, and adds the index vector size 251 and the regression coefficient 252 of each trained non-pivot to the non-pivot-specific parameter 250.
  • saving or addition for the index vector size 251 of the concerned non-pivot is performed (step S205).
  • FIG. 5 shows processing procedures and a data flow of search according to this embodiment.
  • the server terminal 200 acquires the master data 220 from the database 210 (step 5301).
  • the client terminal 300 acquires raw search data from the user (step S302).
  • the client terminal 300 transmits the raw search data to the server terminal 200 (step S303).
  • the server terminal 200 extracts a feature for search from the raw search data (step S304).
  • the server terminal 200 calculates a score between the search data and each pivot (step S305).
  • the server terminal 200 based on the score between the search data and each pivot, generates an index vector of the search data (step S306).
  • the server terminal 200 by using the index vector of the search data, the index 242 including the index vector of each non-pivot, and the index vector size 251 of each non-pivot, calculates a ⁇ score between the search data and each of the non-pivots (step S307).
  • the server terminal 200 based on a ⁇ score ⁇ S q , M+1 , ..., ⁇ S q , N , by using regression coefficients w i , 1 and w i , 0 of logistic regression of each non-pivot, obtains by Formula 7 a value a i related in a monotonically increasing manner to posterior probability P(sq, i ⁇ r
  • the server terminal 200 initializes at 0 the number of times t of calculating the score between the search data and the non-pivot (step S309).
  • the server terminal 200 calculates a score between the search data and the non-pivot selected in accordance with the order to select the non-pivots determined at step S308 (step S310).
  • the server terminal 200 increases the number of times t of calculating the score between the search data and the non-pivot by an increment of 1 (step S311).
  • the server terminal 200 proceeds to step S310 if the number of times t of calculating the score between the search data and the non-pivot is equal to or smaller than an upper limit value T and proceeds to step S313 if it is larger than the upper limit value T (step S312).
  • the server terminal 200 transmits the raw data 232 as search results to the client terminal 300 (step S313).
  • a method of selecting k pieces of enrolled data in ascending order (or descending order) of score and providing them as search results k-Nearest Neighbor Search
  • a method of providing as search results the enrolled data for which the score is smaller (or larger) than the threshold value r may be adopted.
  • the client terminal 300 displays the raw data 232 as the search results (step S314).
  • the parameter 250 composed of the index vector size 251 and the regression coefficient 252 for each non-pivot in step S204.
  • the training data (N-1) non-pivots other than the concerned non-pivot for which the parameter is trained may be used, or data previously prepared separately from the enrolled data may be used.
  • the ⁇ S j, i can be expressed as D e (S qj , Si, Ti, Z i ) (where S qj is a score vector of the training data Qj) and can be calculated by Formula 3.
  • the ⁇ S j, i is D ⁇ ⁇ T qj , Ti, Zi ⁇ (where T qj is a permutation vector of the training data Q j ) and can be calculated by Formula 4.
  • the aggregation ⁇ S i of the ⁇ scores for the non-pivot X i and the aggregation L i of the labels are used for training the regression coefficient w i .
  • w i MAP argmaxP w i w i
  • ⁇ S i , L i argmaxP w i ⁇ S i , L i
  • w i P w i argmaxP w i L i
  • w i P w i argmaxP w i L i
  • w i P w i argmaxP w i L i
  • ⁇ S i , w i P ⁇ ⁇ S i P w i argmaxP w i L i
  • ⁇ S i , w i P ⁇ ⁇ S i P w i argmaxP w i L i
  • ⁇ S i , w i P ⁇ ⁇ S i P w i argmaxP
  • Bayes' theorem is used for deformation on the 2nd to 4th lines and the ⁇ S i and w i are independent from each other for deformation on the 4th to 5th lines (that is, P( ⁇ S i
  • w i ) P( ⁇ S i )).
  • P( ⁇ S i ) is fixed, not depending on w i is used.
  • argmax f(x) indicates x that maximizes f(x).
  • w i ML argmaxP w i ⁇ S i , L i
  • w i argmaxP w i L i
  • w i argmaxP w i L i
  • ⁇ S i , w i P ⁇ S i argmaxP w i L i
  • the maximum A posterior probability estimation is different from the maximum likelihood estimation in a point that the regression coefficient is trained in view of the posterior probability P (w i ) of the regression coefficient w i .
  • the maximum A posterior probability estimation is characterized by being capable of training the regression coefficient more toughly than the maximum likelihood estimation, by considering the posterior probability of the regression coefficient, even when the number of pieces of training data is small.
  • the number of labels L ji taking 1 that is, the number of pieces of the training data Q j similar to the non-pivot X i
  • the regression coefficient may not be appropriately trained through the maximum likelihood estimation. Even in such a case, the regression coefficient can be appropriately trained through the maximum A posterior probability estimation.
  • ⁇ S i , w i ) can be obtained by: P L i
  • the label L ji for the 1st to 2nd lines takes 1 when the score s j , i between the training data Q j and the non-pivot X i is smaller than the threshold value r and takes 0 in other cases and dependence on the ⁇ score ⁇ S j , i is used.
  • ⁇ o there are, for example, a method of presetting ⁇ o at an adequate value and a method of automatically determining it by using empirical Bayes method based on the training data.
  • an average vector other than 0 may be used, or for example, exponential distribution or gamma distribution other than normal distribution may be used as a distribution model.
  • the regression coefficient w i MAP or w i ML obtained through the maximum A posterior probability estimation or the maximum likelihood estimation can be calculated by using, for example, a Newton-Raplon method. This is a method of sequentially obtaining the value w i MAP of the maximum A posterior probability estimation or the value w i ML of the maximum likelihood estimation with the following procedures.
  • E(w i ( ⁇ ) is posterior probability, or a negative log of the likelihood.
  • V is a differential operator vector. This is called an error function.
  • E w i ⁇ - log P L i
  • E w i ⁇ - log P L i
  • ⁇ E(w i ( ⁇ ) ) and ⁇ E(w i ( ⁇ ) ) are a first-order differential column vector and a second-order differential line-column, respectively.
  • the aforementioned operation is performed while the index vector size Z i is varied to various values (for example, values of 1 to M), and the w i MAP or the w i ML for which the error function is as small as possible and the Zi that achieves this may be provided as training results. This makes it possible obtain the best parameter in terms of accuracy.
  • the non-pivot-specific parameter may be trained so that a sum of the error functions for the non-pivot becomes as small as possible while the index size is equal to or smaller than a fixed value.
  • the w i MAP with which the sum of error functions for the non-pivot becomes largest while Z i of each non-pivot is varied to various values in a range where the index size is equal to or smaller than the fixed value and Zi that realizes this may be provided as training results (M+1 ⁇ i ⁇ N). This makes it possible to realize, when a required value is set for the size of the supplementary information, most excellent performance in terms of accuracy in a range that satisfies this.
  • obtaining the label L ji (1 ⁇ j ⁇ NI, M+1 ⁇ i ⁇ N) requires calculation of a total (N-M) ⁇ N' scores, which typically takes a great deal of time.
  • a ⁇ score between each non-pivot and each piece of the (N') training data may be obtained, ( ⁇ N') pieces of the training data may be selected in ascending order (where v' is a value predefined by a system manager or the like), and they may be used for training.
  • the piece of training data with a small ⁇ score is similar to the non-pivot with high possibility, and this makes it possible to reduce the number of times of score calculation required for the training to (N-M) ⁇ ' pieces while suppressing reduction in the number of labels L ji that take 1 (that is, that is similar to the non-pivot X i ) as much as possible. This consequently provides effect of performing high-speed training.
  • the parameter such as the index vector size may take a similar or same value for each cluster.
  • clustering may be performed on the non-pivots, the non-pivot-specific parameter may be trained so that some or all of the parameters obtained for each cluster are common.
  • a clustering method any of hierarchical methods such as a nearest neighbor method, a farthest neighbor method, a group average method, and a Ward method may be used. Training a common parameter for each cluster in this manner makes it possible to reduce a size of the parameter. This consequently provides effect of realizing further system weight reduction.
  • a similarity search system of this embodiment is a biological body identification system which, as a result of inputting biological body information by a user who attempts authentication (hereinafter referred to as authenticated user), searches a database in a client terminal for similar biological body information, and thereby identifies to which user (hereinafter referred to as enrolled user) enrolled in the database the authenticated user corresponds, and performs authentication based on results of this identification.
  • authenticated user a biological body identification system which, as a result of inputting biological body information by a user who attempts authentication (hereinafter referred to as authenticated user), searches a database in a client terminal for similar biological body information, and thereby identifies to which user (hereinafter referred to as enrolled user) enrolled in the database the authenticated user corresponds, and performs authentication based on results of this identification.
  • FIG. 7 shows a configuration example of the biological body identification system of this embodiment. Here, only a point different from FIG. 1 will be described.
  • raw data is biological body information.
  • This system is composed of: an enrollment terminal 100 that transmits to a server terminal a feature of biological body information obtained from the user; a server terminal 200 that saves enrollment information, generates supplementary information from the enrollment information, and performs biological body identification on a feature for authentication by using the enrollment information and the supplementary information; a client terminal 300 that transmits to the server terminal 200 a group ID and the feature for the authentication inputted by the user; and a network 400.
  • a group ID 221 may be a value specific to a business place to which the user belongs, or may be set to be specific to each client terminal 300 or each base. In the former case, possible operation is to input the group ID at the time of authentication by the user. In the latter case, the user is not required to input the group ID at the time of authentication.
  • the enrollment terminal 100 further has: a group ID/user name acquisition unit 103 that acquires a group ID and a user name; and a feature extraction unit 104 that extracts a feature from raw data.
  • the server terminal 200 does not have a feature extraction unit 202 but has a group narrowing unit 209a and has master data 220 for each group ID.
  • the master data 220 has a group ID 221.
  • Enrollment information 230 does not have raw data 232 but has a user name 234 for each piece of the enrollment information.
  • Possible features of the biological body information are, for example, minutiae for fingerprints, an iris code for an iris, and cepstrum for a vocal print.
  • Possible scores between the two pieces of biological body information are the number and a ratio of corresponding minutiae for the fingerprint, a Hamming distance for the iris, and a Mahalanobis distance for the vocal print.
  • the client terminal 300 further has: a group ID acquisition unit 303 that acquires a group ID; and a feature extraction unit 304 that extracts a feature from raw data.
  • Hardware configuration of the enrollment terminal 100, the server terminal 200, and the client terminal 300 according to this embodiment is the same as that of FIG. 2 .
  • FIG. 8 shows processing procedures and a data flow of enrollment processing according to this embodiment.
  • Step S101 of FIG. 8 is equal to step S101 of FIG. 3 .
  • the enrollment terminal 100 acquires a group ID and a user name from the user (step S101a).
  • the enrollment terminal 100 extracts a feature for enrollment from raw enrolled data (step S102a).
  • the enrollment terminal 100 transmits to the server terminal 200 the group ID, the user name, and the feature for enrollment (Step S103a).
  • the server terminal 200 adds to the master data 220 the enrollment information 230 including an enrolled data ID 231 specific to the enrolled data, the user name 234, and a feature 233 for enrollment. If there is no master data 220, the enrollment information 230 including the group ID 221, the enrolled data ID 231 specific to the enrolled data, the user name 234, and the feature 233 for enrollment is newly created (step S104a).
  • Processing procedures and a data flow of supplementary information generation processing according to this embodiment is the same as that of FIG. 4 . Note that, however, this processing is performed for each group ID.
  • the number N of pieces of the enrollment information 230 and the number M of pivots may be different from one group ID to another.
  • FIG. 9 shows processing procedures and a data flow of search processing according to this embodiment. Steps S302, S305 to S312, and S314 of FIG. 9 are equal to steps S302, S305 to S312, and S314 of FIG. 3 .
  • the server terminal 200 acquires the master data 220 for each ID from the database 210 (step S301a).
  • the client terminal 300 acquires the group ID from the user (step S302a).
  • the group ID may be a value specific to each client terminal 300 or each base, or may not be acquired from the user in this case.
  • the client terminal 300 extracts a feature for search from raw search data (step S303a).
  • the client terminal 300 transmits the group ID and the feature for search to the server terminal 200 (step S304a) .
  • a target of search by the server terminal 200 is master data corresponding to the acquired group ID (step S305a).
  • narrowing the enrolled data by using the group ID is performed. This makes it possible to dramatically reduce the number of pieces of enrolled data for which the score is calculated. This consequently provides effect of further improving speed.
  • the server terminal 200 transmits, as a search result, the user name 234 corresponding to the enrolled data to the client terminal 300 (step S313a).
  • the client terminal 300 displays the user name 234 corresponding to the enrolled data as the search result (step S314a).
  • the present invention is applicable to any application that performs similarity search on unstructured data such as an image, a moving picture, music, a document, binary data, or biological body information.
  • the invention is applicable to a similar image search system, a similar moving picture search system, a similar music search system, a similar document search system, a similar file search system using fuzzy hash, an information access control system, an attendance management system, and an entrance and exit management system.

Abstract

A pivot is determined from enrolled data by a pivot determination unit, raw data is acquired, features are extracted from the raw data, a score is calculated as one of a distance and a degree of similarity between the features, an index vector is generated by using the score for the pivot, a ” score is calculated as one of a distance and a degree of similarity between the index vectors, a parameter of each non-pivot including a regression coefficient is trained by using training data, order to select the non-pivots is, by using the ” score between search data and the non-pivot as well as the regression coefficient, determined in descending order of posterior probability through logistic regression, and a search result is outputted based on the score between the search data and the enrolled data.

Description

  • The present invent relates to a method and a system for searching similarity in inputted unstructured data.
  • Searching, compared to inputted unstructured data such as an image, a moving picture, a document, binary data, or biological body information, unstructured data similar thereto is called similarity search. The similarity search is typically performed by extracting from raw unstructured data (hereinafter called raw data) information called features used for distance calculation (or similarity calculation) and then considering that a smaller distance indicating a degree of disagreement between the features (or a greater degree of similarity indicating a degree of agreement between the features) indicates a greater degree of similarity. The distance (degree of similarity) between the features is called score.
  • Examples include: a method (k-Nearest Neighbor Search) of calculating a distance (or degree of similarity) between raw data inputted at time of search (hereinafter called search data) and raw data enrolled in a database (hereinafter called enrolled data), selecting K pieces of the enrolled data in ascending order of distance (or descending order of the degree of similarity), and outputting information related thereto as search results; and a method (Range Search) of outputting as search results information related to the enrolled data whose distance (or degree of similarity) is smaller (or larger) than a threshold value r.
  • At this point, calculating scores for all the pieces of enrolled data where a total number of enrolled data is N requires N times of score calculation. Typically, the score calculation requires a significant amount of time; therefore, an increase in the number N of pieces of enrolled data results in an almost proportional increase in the amount of search time. On the contrary, suggested is distance-based indexing by which scores between the pieces of enrolled data are previously calculated, the order to select the pieces of enrolled data for which the score is to be calculated by using this is determined, and the calculation of the scores from the pieces of enrolled data is stopped in the middle of processing to thereby reduce the number of times of score calculation.
  • For example, in E. CHAVEZ, K. FIGUEROA and G. NAVARRO", "Effective Proximity Retrieval by Ordering Permutations," IEEE Trans. on Pattern Analysis and Machine Intelligence, Vol. 30, No. 9, pp. 1647-1658 (2008), from N pieces of enrolled data, for example, M (M<N) pieces of enrolled data (hereinafter called pivots) are selected randomly, a distance between each piece of enrolled data and each pivot is calculated, a vector (hereinafter called first index vector) used at time of search by using this distance is obtained for each piece of enrolled data, a distance between search data inputted at the time of search and each pivot is calculated to obtain a second index vector of the search data, and then the order to select the remaining pieces of enrolled data (hereinafter called non-pivots) are determined in ascending order of a distance between the first and second index vectors). As the index vector, obtained in E. CHAVEZ, K. FIGUEROA and G. NAVARRO, "Effective Proximity Retrieval by Ordering Permutations," IEEE Trans. On Pattern Analysis and Machine Intelligence, Vol. 30, No. 9, pp. 1647-1658 (2008) is a vector with which IDs of the pivots are arranged in ascending order of distance.
  • In Non Patent Literature 1, the order to select the non-pivots is determined in the ascending order of the distance between the first and second index vectors. However, this method leaves room for improvement in that an expected number of non-pivots for which score calculation is not performed (for which a score is not searched) is reduced, despite that the score from the search data is smaller than the threshold value r, when the calculation of the score from the non-pivot is stopped in the middle of processing, that is, in terms of search accuracy.
  • It is a preferred aim of the present invention to theoretically minimize an expected number of non-pivots for which the score is not calculated and thus not searched.
  • The present invention is characterized by having: a pivot determination unit that determines a pivot from enrolled data; a raw data acquisition unit that acquires raw data; a feature extraction unit that extracts features from the raw data; a score calculation unit that calculates a score as one of a distance and a degree of similarity between the features; an index vector generation unit that generates an index vector by using the score for the pivot; a Δ score calculation unit that calculates a Δ score as one of a distance and a degree of similarity between the index vectors; an non-pivot-specific parameter training unit that trains, by using training data, a parameter of each non-pivot including a regression coefficient; a non-pivot selection order determination unit that determines, by using the Δ score between inputted search data and the non-pivot as well as the regression coefficient, in order to select the non-pivots in descending order of posterior probability through logistic regression; a search result output unit that outputs a search result based on the score between the search data and the enrolled data; and a database that holds the feature of the enrolled data, pivot information indicating which piece of the enrolled data is the pivot, an index including the index vector of each non-pivot, and the parameter of each non-pivot.
  • With the present invention, by using a non-pivot-specific regression coefficient, the order to select the non-pivots is determined in descending order of posterior probability through logistic regression. This makes it possible to theoretically minimize the expected number of non-pivots for which the score is not calculated and thus not searched, despite that the score from the search data is smaller than the threshold value r. This consequently provides effect of dramatically improving accuracy.
  • In the drawings:
    • FIG. 1 is a block diagram showing functional configuration according to a first embodiment of the present invention;
    • FIG. 2 is a block diagram showing hardware configuration according to the first embodiment and a second embodiment of the invention;
    • FIG. 3 is a flow diagram showing enrollment processing according to the first embodiment of the invention;
    • FIG. 4 is a flow diagram showing supplementary information generation processing according to the first and second embodiments of the invention;
    • FIG. 5 is a flow diagram showing search processing according to the first embodiment of the invention;
    • FIG. 6 is a schematic diagram showing a feature space and indexes;
    • FIG. 7 is a block diagram showing functional configuration according to the second embodiment of the invention;
    • FIG. 8 is a flow diagram showing enrollment processing according to the second embodiment of the invention; and
    • FIG. 9 is a flow diagram showing search processing according to the second embodiment of the invention.
    [First Embodiment]
  • Hereinafter, the first embodiment will be described with reference to the accompanying drawings.
  • A similarity search system of this embodiment is a similar image search system that, as a result of inputting an image by the user, searches a database in a server terminal for a similar image. Unstructured data such as a moving picture, music, a document, or binary data instead of an image may be used. The similarity search system of this embodiment uses a color histogram as features of the image and uses a Euclid distance as a score between the features.
  • The similarity search system of this embodiment preselects M pivots from N pieces of enrolled data. As a method of selecting the pivots, there is, for example, a method of selecting them randomly. Next, the similarity search system calculates a score between each piece of the remaining enrolled data (each non-pivot) and each of the pivots and, based on this, obtains a first index vector used at time of search for each non-pivot. At time of search, the similarity search system calculates a score between the inputted search data and each pivot and, based on this, obtains a second index vector of the search data. The index vector is a vector as a clue directly teaching positional relationship between each non-pivot and the search data without obtaining a score. Typically, it takes a great deal of time for calculating the score between the search data and each piece of the enrolled data, but the number of times of score calculation can be reduced (that is, high-speed search can be performed) by determining the order to select non-pivots by using a distance (or a degree of similarity) between the index vectors (hereinafter called Δ score), performing calculation of the score from the non-pivot T(<N-M) times (where T is an upper limit value predefined by the system manager or the like), and then stopping the calculation of the score from the non-pivot in the middle of performance.
  • As the index vector, a vector formed of the score from each pivot (hereinafter called score vector) may be provided or a vector (hereinafter referred to as permutation vector) with IDs of the pivots arranged in ascending order of distance (or degree of similarity) may be provided. A collection of the first index vectors of the different non-pivots is called an index.
  • FIG. 6 shows an example of search data Q and enrolled data X1, X2, ...XN in a feature space. Note that X1, X2, ...XM denote pivots and XM+1, XM+2, ...XN denote non-pivots. Here, two clusters are formed and they are greatly separated from each other. Moreover, the number of dimensions of the feature is very large and it takes time to calculate a score between the features.
  • FIGS. 6 (a1) and (a2) show examples of the second index vector of the search data and indexes when a score vector and a permutation vector are respectively used as the index vector. Note that the Euclid distance between the features is used as a score.
  • For example, in FIG. 6 (a1), the score between XM+1 and X1 is 70 and the score vector SM+1 of XM+1 is SM+1=(70, 28, 1053, ..., 43)T. In FIG. 6 (a2), the pivot realizing the smallest score of the scores between XM+1 and the pivots is X2 and the score of XM+1 is TM+1= (X2, XM-1, ..., X3)T.
  • For the Δ score (distance or degree of similarity between the index vectors), when the score vector is used as the index vector, for example, any of Manhattan distance, the Euclid distance, etc. is assumed, and when the permutation vector is used, for example, any of Spearman Rho, etc. is assumed. Alternatively, for example, what is obtained by subtracting the aforementioned distance from a maximum possible value may be used as the degree of similarity.
  • For example, when the score vector is used as the index vector and the Euclid distance is used as the Δ score, where a Euclid distance between a score vector Sq of the search data and a score vector Si of enrolled data Xi is De (Sq, Si), D e S q S i = z = 1 M S q z - S i z 2
    Figure imgb0001

    is obtained. Here, Si(z) denotes a z-th element in the score vector Si. In the case of FIG. 6(a1), obtained calculation can be De(Sq, SM+1)=(78-70)2+(95-28)2+...+(39-43)2.
  • When the permutation vector is used as the index vector and Spearman Rho is used as the Δ score, where Spearman Rho between a permutation vector Tq of the search data and a permutation vector Ti of the enrolled data Xi is Dρ (Tq, Ti), D ρ T q T i = z = 1 M z - T q - 1 T i z 2
    Figure imgb0002

    is obtained. Here, Ti(z) denotes a suffix number of the z-th element in the permutation vector Ti. For example, where Ti=(X2, XM, X1, ..., X3)T, Ti(1)=2, Ti(2)=M, Ti(3)=1, ..., Ti (M) =3. Tq -1(i) denotes at what place in the permutation vector Tq the element Xi is located. For example, where Tq= (XM X1, X2, ..., X3)T, Tq -1(1)=2, Tq -1(2)=3, Tq -1(3)=M, ..., Tq -1(M)=1. In FIG. 6(a2), obtained calculation can be Dp(Tq, TM+1)=(1-3)2+(2-1)2+...+(M-M)2.
  • A first characteristic of the similarity search system of this embodiment is that an index vector size (the number of dimensions of the index vector) of each non-pivot is uniquely determined (trained) before search by using prepared data (training data). A method of training the index vector size will be described in detail below.
  • FIGS. 6(b1) and (b2) show examples of the indexes when index vectors are held in correspondence with the index vector size of each trained non-pivot in a case where the score vector and the permutation vector are used as the index vectors. In this case, when the score vector is used as the index vector, for the score vector, rearrangement is made so that the number of elements corresponding to a score vector size are provided in ascending or descending order of scores, and in order to tell to which pivot the concerned score corresponds, a permutation vector with the same length is also held.
  • For example, in FIG. 6(b1), the score vector size of XM+1 is trained as 3, and the score vector SM+1=(28, 43, 70) is held together with the permutation vector TM+1= (X2, XM, M1)T. In FIG. 6(b2), a permutation vector size is trained as 2, and a permutation vector TM+1 is TM+1 = (X2, XM)T. In FIGS. 6(b1) and (b2), blacked-out sections are saved into the database.
  • As described above, in this embodiment, by using the training data, the non-pivot-specific index vector size is trained, and the non-pivot-specific index vector is saved in correspondence with the index vector size of this non-pivot. This makes it possible to reduce the index vector size for each non-pivot. This results in reduction in a size of indexes saved into the database, which can provide effect of realizing system weight reduction. Details of a method of training the index vector size will be described below.
  • The Δ score in this case is indicated, when the score vector is used as the index vector and the Euclid distance is used as the Δ score, where the Euclid distance between a score vector Sq of the search data and a score vector Si of the enrolled data Xi (permutation vector is Ti and the score vector size is Zi) is De (Sq, Si, Ti, Zi) : D e S q S i T i Z i = z = 1 Z i S q T i z - S i T i z 2
    Figure imgb0003
  • In the case of FIG. 6(b1), obtained calculation can be De(Sq, SM+1, Ti, Zi)=(95-28)2+(39-43)2+...+(78-70)2.
  • Moreover, when the permutation vector is used as the index vector and the Spearman Rho is used as the Δ score, where Spearman Rho between the permutation vector Tq of the search data and the permutation vector Ti of the enrolled data Xi (permutation vector size is Zi) is Dρ (Tq, Ti, Zi), D ρ T q T i Z i = z = 1 Z i z - T q - 1 T i z 2
    Figure imgb0004

    is obtained. In the case of FIG. 6(a2), obtained calculation can be Dρ (Tq, TM+1, Zi) = (1-3)2+(2-1)2.
  • As described above, the Δ score, corresponding to the index vector size, between the search data and the non-pivot (that is, distance between zi-dimension vectors) is calculated. This requires shorter time for the Δ score calculation than for calculating a Δ score corresponding to the number (M) of pivots (that is, distance between M-dimension vectors). This consequently provides effect of improving speed.
  • A second characteristic of the similarity search system of this embodiment is that after the ΔSq, M+1, ..., ΔSq, N for each non-pivot is obtained in this manner, by using logistic regression, the order to select non-pivots is determined in descending order of posterior probability P (sq, i<r|ΔSq, i) (M+1≤i≤N) for which the score sq, i from the search data is smaller than a threshold value r. The posterior probability P (sq, i<r|ΔSq, i) can be deformed by use of Bayes' theorem as follows: P s q , i < r | ΔS q , i = P Δ S q , i | s q , i < r P s q , i < r P Δ S q , i = 1 1 + exp - a i = σ - a i
    Figure imgb0005

    where σ ( )is a logistic sigmoid function, and ai is: a i = l n P Δ S q , i | s q , i < r P s q , i < r P ΔS q , i - P ΔS q , i | s q , i < r P s q , i < r
    Figure imgb0006
  • A logistic sigmoid function σ ( ) is a monotonically increasing function, and thus determining the order to select the non-pivots in descending order of ai permits determination of the order to select the non-pivots in descending order of the posterior probability P (sq, I<r|ΔSq, i) . The ai can be obtained by using the logistic regression. In the logistic regression, ai can be obtained in an approximate manner by: a i w i , 1 ΔS q , i + w i , 0
    Figure imgb0007
  • The wi, 1 and wi, 0 are non-pivot-specific regression coefficients of logistic regression (M+1≤i≤n). It is possible to adopt a method of using a value common to the non-pivots as the regression coefficient, but since the regression coefficient definitely differs in value from one non-pivot to another, it is possible to more properly obtain the ai by using the non-pivot-specific regression coefficient. Moreover, according to Formula 7, ai can be obtained in an approximate manner through performing multiplication once and performing addition once on the Δ score ΔSq, i, and thus it takes little time for calculating the ai. The regression coefficient is uniquely determined (trained) before search by using prepared data (training data), as is the case with the index vector size. Details of a method of training the regression coefficient will be described below.
  • Assuming here that an aggregation of Δ scores ΔSq, M+1, ..., ΔSq, N for each non-pivot is ΔSq and then the non-pivot determined as the e(1≤e≤N-M)-th place is Xm(e) (M+1≤m(e)≤N), an expected number of non-pivots for which the score is consequently not calculated (that is, not searched) despite that the score from the search data is smaller than the threshold value r after calculating the score from the non-pivot T(<N-M) times can be denoted as: e = T + 1 N - M 1 × P s q , m e < r | ΔS q + 0 × P s q , m e r | ΔS q = e = T + 1 N - M P s q , m e < r | ΔS q e = T + 1 N - M P s q , m e < r | ΔS q , m e
    Figure imgb0008
  • Note, however, that for the approximation from the second to third lines, what has the greatest influence on the posterior probability of the non-pivot Xm(e) is a Δ score ΔSq,m(e) for Xm(e). In Formula 8, approximation can be achieved by a sum of posterior probabilities P (sq, m(e)<r|ΔSq, m(e)) of the non-pivot Xm(e) for which score calculation has not yet been performed, but this sum can be minimized when the score from the non-pivot is calculated T-times in descending order of the posterior probability P (sq, m (e) <r|ΔSq, m(e)).
  • Therefore, in this embodiment, the order to select the non-pivots is determined in descending order of the posterior probability through the logistic regression by using the non-pivot-specific regression coefficient, and this makes it possible to theoretically minimize the expected number of non-pivots for which the score is not calculated and thus not searched despite that the score from the search data is smaller than the threshold value r. This consequently provides effect of dramatically improving accuracy. Details of a method of training the regression coefficient will be described below.
  • FIG. 1 shows a configuration example of the similarity search system of this embodiment. In this embodiment, raw data is an image.
  • This system is composed of: an enrollment terminal 100 that transmits to a server terminal enrollment information acquired from a user; a server terminal 200 that saves the enrollment information, generates supplementary information from the enrollment information, and performs similarity search on raw search data by using the enrollment information and the supplementary information; a client terminal 300 that transmits to the server terminal 200 the raw search data inputted by the user; and a network 400.
  • The number of each of the enrollment terminal 100, the server terminal 200, and the client terminal 300 may be one or more. The enrollment terminal 100 may be the same terminal as the server terminal 200 or as the client terminal 300. Moreover, the enrollment terminal 100 is not necessarily provided. The server terminal 200 may be the same terminal as the client terminal 300. The network 400 may use a network such as WAN or LAN, communication between devices using a USB, an IEEE 1394, or the like, or wireless communication such as a portable phone network or BlueTooth.
  • For example, assumed configuration is that the enrollment terminal 100 includes a plurality of PCs in a firm, the server terminal 200 is one server in a data center operated by the firm, the client terminal 300 includes a plurality of users' individual PCs, and the network 400 is the Internet, and assumed operation is that an employee in the firm performs image enrollment. In this case, the enrollment terminal 100 may be a server in the data center, so that a server manager can perform image enrollment. Alternatively, the enrollment terminal 100 may be provided in the user's individual PC, so that the user can perform image enrollment. Alternatively, without providing the enrollment terminal 100, the server terminal 200 may perform automatic collection from the Internet. Alternatively, the enrollment terminal 100, the server terminal 200, and the client terminal 300 may be provided in the user's individual PC, so that image enrollment, supplementary information generation, and search can be performed on the individual PC.
  • The enrollment terminal 100 is composed of: a raw data acquisition unit 101 that acquires raw data; and a communication I/F 102.
  • The server terminal 200 is composed of: a pivot determination unit 201 that determines M pivots from N pieces of enrolled data; a feature extraction unit 202 that extracts features from raw data; a score calculation unit 203 that calculates a score as a distance (or a degree of similarity) between the features; an index vector generation unit 204 that generates an index vector by using a score for a non-pivot or a pivot of search data; a Δ score calculation unit 205 that calculates a distance (or degree of similarity) (hereinafter called Δ score) between the index vectors; a non-pivot-specific parameter training unit 206 that trains a non-pivot-specific parameter by using training data; a non-pivot selection order determination unit 207 that determines the order to select the non-pivots by using a Δ score between the inputted search data and the non-pivot; a search result output unit 208 that outputs search results based on a score between the search data and the enrolled data; a communication I/F 209, and a database 210.
  • The database 210 holds master data 220. The master data 220 holds enrollment information 230 of each enrolled user and supplementary information 240. The enrollment information 230 holds, for each piece of the enrolled data, an enrolled data ID 231, raw data 232, and a feature 233. The supplementary information 240 holds: pivot information 241 that indicates which piece of the enrolled data is a pivot; an index 242; and a non-pivot-specific parameter 250. The index 242 holds an index vector 243 for each non-pivot. The non-pivot-specific parameter 250 holds, for each non-pivot, an index vector size 251 and a regression coefficient 252 that is used for logistic regression.
  • The client terminal 300 is composed of: a raw data acquisition unit 301 that acquires raw data; and a communication I/F 302.
  • FIG. 2 shows hardware configuration of the enrollment terminal 100, the server terminal 200, and the client terminal 300 according to this embodiment. These terminals can be composed of: as shown in the figure, a CPU 500, a memory 501, an HDD 502, an input dev ice 503, an output device 504, and a communication device 505.
  • FIG. 3 shows processing procedures and a data flow of enrollment according to this embodiment.
  • The enrollment terminal 100 acquires raw enrolled data from the user (step S101).
  • The enrollment terminal 100 transmits the raw enrolled data to the server terminal 200 (step S102).
  • The server terminal 200 extracts features for enrollment from the raw enrolled data (step S103).
  • The server terminal 200 saves into the database 210 the enrollment information 230 including the enrolled data ID 231 specific to the enrolled data, the raw data 232 for enrollment, and the feature 233 for enrollment (step S104).
  • FIG. 4 shows processing procedures and a data flow of supplementary information generation according to this embodiment. This processing is performed between when enrollment processing is performed and when search processing is performed. For example, it is possible to perform this processing immediately after the enrollment or at night on a day when the enrollment is performed. Moreover, this processing involves two cases: the case where supplementary information is newly generated; and the case where the supplementary information for enrolled data added after the last supplementary information generation is updated.
  • The server terminal 200 acquires the enrollment information 230 of each enrolled user from the database 210 to newly generate supplementary information and acquires the added enrollment information 230 from the database 210 to updates the supplementary information (step S201).
  • To newly generate supplementary information, the server terminal 200 newly determines M pivots from among the raw data 232 of the N pieces of enrollment information 230 (step S202). To update the supplementary information, this step is omitted and the raw data 232 of the added enrollment information 230 is provided as a non-pivot. Methods of determining a pivot include: for example, random selection; and determining as a pivot upon every pivot selection the one which has a smallest (or largest) sum of scores or Δ scores from the pivots determined by that time.
  • The server terminal 200 obtains a score between each pivot and each of the (N-M) non-pivots to generate the index vector 243 to newly generate supplementary information, and obtains a score between each pivot and each of the added non-pivots to generate the index vector 243 to update the supplementary information (step S203).
  • The server terminal 200 uniquely determines (trains) the non-pivot-specific parameter 250 composed of the index vector size 251 and the regression coefficient 252 used for the logistic regression by using prepared data (training data) for each of the N-M non-pivots to newly generate supplementary information and for each added non-pivot to update the supplementary information (step S204). Details of a method of training the non-pivot-specific parameter 250 composed of the index vector size 251 and the regression coefficient 252 will be described below.
  • The server terminal 200, to newly generate supplementary information, saves into the database 210, as the supplementary information 240, the pivot information 241 indicating which piece of the enrolled data is a pivot, the index 242 composed of the index vector 243 of each of the N-M non pivots, and the non-pivot-specific parameter 250 composed of the index vector size 251 and the regression coefficient 252 of each trained non-pivot. The server terminal 200, to update the supplementary information, adds the generated index vector 243 to the index 242 of the database 210, and adds the index vector size 251 and the regression coefficient 252 of each trained non-pivot to the non-pivot-specific parameter 250. At this point, for the index vector 243 of each non-pivot, saving or addition for the index vector size 251 of the concerned non-pivot is performed (step S205).
  • FIG. 5 shows processing procedures and a data flow of search according to this embodiment.
  • The server terminal 200 acquires the master data 220 from the database 210 (step 5301).
  • The client terminal 300 acquires raw search data from the user (step S302).
  • The client terminal 300 transmits the raw search data to the server terminal 200 (step S303).
  • The server terminal 200 extracts a feature for search from the raw search data (step S304).
  • The server terminal 200 calculates a score between the search data and each pivot (step S305).
  • The server terminal 200, based on the score between the search data and each pivot, generates an index vector of the search data (step S306).
  • The server terminal 200, by using the index vector of the search data, the index 242 including the index vector of each non-pivot, and the index vector size 251 of each non-pivot, calculates a Δ score between the search data and each of the non-pivots (step S307).
  • The server terminal 200, based on a Δ score ΔSq, M+1, ..., ΔSq, N, by using regression coefficients wi, 1 and wi, 0 of logistic regression of each non-pivot, obtains by Formula 7 a value ai related in a monotonically increasing manner to posterior probability P(sq, i<r|ΔSq, i)(M+1≤i≤N) for which the score Sq, i from the search data is smaller than the threshold value r, and determines the order to select the non-pivots in descending order of ai (step S308).
  • The server terminal 200 initializes at 0 the number of times t of calculating the score between the search data and the non-pivot (step S309).
  • The server terminal 200 calculates a score between the search data and the non-pivot selected in accordance with the order to select the non-pivots determined at step S308 (step S310).
  • The server terminal 200 increases the number of times t of calculating the score between the search data and the non-pivot by an increment of 1 (step S311).
  • The server terminal 200 proceeds to step S310 if the number of times t of calculating the score between the search data and the non-pivot is equal to or smaller than an upper limit value T and proceeds to step S313 if it is larger than the upper limit value T (step S312).
  • The server terminal 200 transmits the raw data 232 as search results to the client terminal 300 (step S313). At this point, a method of selecting k pieces of enrolled data in ascending order (or descending order) of score and providing them as search results (k-Nearest Neighbor Search) may be adopted, or a method of providing as search results the enrolled data for which the score is smaller (or larger) than the threshold value r (Range Search) may be adopted.
  • The client terminal 300 displays the raw data 232 as the search results (step S314).
  • Hereinafter, details of the method of training by using the training data the parameter 250 composed of the index vector size 251 and the regression coefficient 252 for each non-pivot in step S204 will be described. As the training data, (N-1) non-pivots other than the concerned non-pivot for which the parameter is trained may be used, or data previously prepared separately from the enrolled data may be used.
  • First, the method of training the regression coefficients wi, 1 and wi, o when an index vector size Zi is fixed at a certain value will be described. Assume that the training data are Q1, Q2, ...QN' (where N' is the number of pieces of training data). Moreover, a Δ score between the training data Qj (1≤j≤N') and the non-pivot Xi
  • (M+1≤i≤N) is a ΔSj, i, and an aggregation of Δ scores for the non-pivot Xi of each training data Qj (1≤j≤N') is expressed by: ΔS i = ΔS j , i | 1 j
    Figure imgb0009
  • For example, when the score vector is used as the index vector and the Euclid distance is used as the Δ score, the ΔSj, i can be expressed as De (Sqj, Si, Ti, Zi) (where Sqj is a score vector of the training data Qj) and can be calculated by Formula 3. When the permutation vector is used as the index vector and the Spearman Rho is used as the Δ score, the ΔSj, i is Dρ 〈Tqj, Ti, Zi〉 (where Tqj is a permutation vector of the training data Qj) and can be calculated by Formula 4.
  • Further, assume that a label that takes 1 when a score Sj, i between the training data Qj (1≤j≤N') and the non-pivot Xi (M+1≤i≤N) is smaller than the threshold value r and that takes 0 in other cases is defined as Lji and an aggregation of labels for the non-pivot Xi of each training data Qj (1≤j≤N') is expressed by: L i = L j i | 1 j
    Figure imgb0010
  • Furthermore, a regression coefficient of the non-pivot Xi can be expressed, where wi, 1 and wi, 0 are arranged, in a vector form of: w i = w i , 1 w i , 0 T
    Figure imgb0011
  • In this embodiment, the aggregation ΔSi of the Δ scores for the non-pivot Xi and the aggregation Li of the labels are used for training the regression coefficient wi.
  • As the method of training the regression coefficient, there is a method of using maximum A posterior probability estimation and maximum likelihood estimation. To train the regression coefficient wi through the maximum A posterior probability estimation by using the aggregation ΔSi of the Δ scores for the non-pivot Xi and the aggregation Li of the labels, a parameter wi MAP is obtained through: w i MAP = argmaxP w i w i | ΔS i , L i = argmaxP w i ΔS i , L i | w i P w i = argmaxP w i L i | ΔS i , w i P ΔS i | w i P w i = argmaxP w i L i | ΔS i , w i P Δ S i P w i = argmaxP w i L i | ΔS i , w i P w i
    Figure imgb0012

    and they are provided as training results. However, Bayes' theorem is used for deformation on the 2nd to 4th lines and the ΔSi and wi are independent from each other for deformation on the 4th to 5th lines (that is, P(ΔSi|wi)=P(ΔSi)). For deformation on the 5th to 6th deformation, the fact that P(ΔSi) is fixed, not depending on wi is used. Moreover, argmax f(x) indicates x that maximizes f(x). To train the regression coefficient wi through the maximum likelihood estimation, a parameter wi ML is obtained through: w i ML = argmaxP w i ΔS i , L i | w i = argmaxP w i L i | ΔS i , w i P ΔS i | w i = argmaxP w i L i | ΔS i , w i P ΔS i = argmaxP w i L i | ΔS i , w i
    Figure imgb0013

    and they are provided as training results.
  • As shown by Formulae 12 and 13, the maximum A posterior probability estimation is different from the maximum likelihood estimation in a point that the regression coefficient is trained in view of the posterior probability P (wi) of the regression coefficient wi. As described above, the maximum A posterior probability estimation is characterized by being capable of training the regression coefficient more toughly than the maximum likelihood estimation, by considering the posterior probability of the regression coefficient, even when the number of pieces of training data is small. In particular, in this embodiment, the number of labels Lji taking 1 (that is, the number of pieces of the training data Qj similar to the non-pivot Xi) is typically very small, and thus the regression coefficient may not be appropriately trained through the maximum likelihood estimation. Even in such a case, the regression coefficient can be appropriately trained through the maximum A posterior probability estimation.
  • P(Li|ΔSi, wi) can be obtained by: P L i | ΔS i , w i = j = 1 P s j , i < r | ΔS j , i , w i L j i P s j , i r | ΔS j , i , w i 2 - L j i = j = 1 P s j , i < r | ΔS j , i , w i L j i ( 1 - P s j , i < r | ΔS j , i , w i ) 1 - L j i = j = 1 σ a j , i L j i 1 - σ a j , i 1 - L j i
    Figure imgb0014
  • Note that, however, the label Lji for the 1st to 2nd lines takes 1 when the score sj, i between the training data Qj and the non-pivot Xi is smaller than the threshold value r and takes 0 in other cases and dependence on the Δ score ΔSj, i is used. Moreover, aj, i is: a j , i = l n P ΔS j , i | s j , i < r P s j , i < r P ΔS j , i - P ΔS j , i | s j , i < r P s j , i < r
    Figure imgb0015
  • By using the logistic regression described above, a j , i w i , 1 ΔS j , i + w i , 0
    Figure imgb0016

    can be obtained.
  • Assuming that P(wi) is, for example, normal distribution of an average vector 0 and variance-covariance matrix Σo,
  • There is a method of obtaining: P w i = N 0 0
    Figure imgb0017
  • There are, for example, a method of presetting Σo at an adequate value and a method of automatically determining it by using empirical Bayes method based on the training data. Moreover, an average vector other than 0 may be used, or for example, exponential distribution or gamma distribution other than normal distribution may be used as a distribution model.
  • At this point, the regression coefficient wi MAP or wi ML obtained through the maximum A posterior probability estimation or the maximum likelihood estimation (that is, which maximizes Formula 16 or 17) can be calculated by using, for example, a Newton-Raplon method. This is a method of sequentially obtaining the value wi MAP of the maximum A posterior probability estimation or the value wi ML of the maximum likelihood estimation with the following procedures.
    1. 1. An initial value wi (o) of wi is set appropriately. For example, wi (o) =0, and τ←0.
    2. 2. As described below, wi (τ+1) is obtained. The symbol τ is the number of times of sequential calculation: w i τ + 1 = w i τ - E w i τ - 1 E w i τ
      Figure imgb0018
  • Note that E(wi (τ) is posterior probability, or a negative log of the likelihood. The symbol V is a differential operator vector. This is called an error function. In the case of the maximum A posterior probability estimation, E w i τ = - log P L i | ΔS i , w i τ P w i τ
    Figure imgb0019

    and in the case of the maximum likelihood estimation, E w i τ = - log P L i | ΔS i , w i τ
    Figure imgb0020
  • Moreover, ∇E(wi (τ)) and ∇∇E(wi (τ)) are a first-order differential column vector and a second-order differential line-column, respectively. For example, in the case of the maximum A posterior probability estimation, when Formulae 14, 16, and 17 are employed, E w i τ = 0 - 1 w i τ + j = 1 σ a j , i τ - L j , i x j
    Figure imgb0021
    E w i τ = 0 - 1 + j = 1 σ a j , i τ 1 - σ a j , i τ x j x j T
    Figure imgb0022

    can be obtained, where a j , i τ w i , 1 τ ΔS j , i + w i , 0 τ
    Figure imgb0023
    x j = ΔS j , i 1 T
    Figure imgb0024
    • 3. when a difference between wi (τ+1) and wi (τ) is sufficiently small or when τ exceeds a fixed value, wi (τ+1) ends as wi MAP or wi ML. Otherwise, as τ ← τ+1, the process returns to 2.
  • Next, a method of training the index vector size Zi will be described. To this end, the aforementioned operation is performed while the index vector size Zi is varied to various values (for example, values of 1 to M), and the wi MAP or the wi ML for which the error function is as small as possible and the Zi that achieves this may be provided as training results. This makes it possible obtain the best parameter in terms of accuracy.
  • Alternatively, the non-pivot-specific parameter may be trained so that a sum of the error functions for the non-pivot becomes as small as possible while the index size is equal to or smaller than a fixed value. To this end, the wi MAP with which the sum of error functions for the non-pivot becomes largest while Zi of each non-pivot is varied to various values in a range where the index size is equal to or smaller than the fixed value and Zi that realizes this may be provided as training results (M+1≤i≤N). This makes it possible to realize, when a required value is set for the size of the supplementary information, most excellent performance in terms of accuracy in a range that satisfies this.
  • Moreover, in this embodiment, obtaining the label Lji (1≤j≤NI, M+1≤i≤N) requires calculation of a total (N-M)×N' scores, which typically takes a great deal of time. Thus, a Δ score between each non-pivot and each piece of the (N') training data may be obtained, (<N') pieces of the training data may be selected in ascending order (where v' is a value predefined by a system manager or the like), and they may be used for training. The piece of training data with a small Δ score is similar to the non-pivot with high possibility, and this makes it possible to reduce the number of times of score calculation required for the training to (N-M) ×ν' pieces while suppressing reduction in the number of labels Lji that take 1 (that is, that is similar to the non-pivot Xi) as much as possible. This consequently provides effect of performing high-speed training.
  • Moreover, for example, in a case where the pieces of enrolled data form several clusters in the feature space, the parameter such as the index vector size may take a similar or same value for each cluster.
  • Therefore, in this embodiment, clustering may be performed on the non-pivots, the non-pivot-specific parameter may be trained so that some or all of the parameters obtained for each cluster are common. As a clustering method, any of hierarchical methods such as a nearest neighbor method, a farthest neighbor method, a group average method, and a Ward method may be used. Training a common parameter for each cluster in this manner makes it possible to reduce a size of the parameter. This consequently provides effect of realizing further system weight reduction.
  • Moreover, in a case where the enrolled data is used as the training data, when enrolled data has been added, it is possible that the parameter training is not performed successfully since the index vector size of the training data is small. However, training the common parameter for each cluster as described above makes it possible to easily perform the parameter training by using the common parameter for the cluster to which the concerned enrolled data belongs.
  • [Second Embodiment]
  • Hereinafter, with reference to the accompanying drawings, the second embodiment will be described. A similarity search system of this embodiment is a biological body identification system which, as a result of inputting biological body information by a user who attempts authentication (hereinafter referred to as authenticated user), searches a database in a client terminal for similar biological body information, and thereby identifies to which user (hereinafter referred to as enrolled user) enrolled in the database the authenticated user corresponds, and performs authentication based on results of this identification.
  • FIG. 7 shows a configuration example of the biological body identification system of this embodiment. Here, only a point different from FIG. 1 will be described. In this embodiment, raw data is biological body information.
  • This system is composed of: an enrollment terminal 100 that transmits to a server terminal a feature of biological body information obtained from the user; a server terminal 200 that saves enrollment information, generates supplementary information from the enrollment information, and performs biological body identification on a feature for authentication by using the enrollment information and the supplementary information; a client terminal 300 that transmits to the server terminal 200 a group ID and the feature for the authentication inputted by the user; and a network 400.
  • For example, it is possible to from, for an information access control system or an attendance management system of a firm, the enrollment terminal 100 with a plurality of PCs in the firm, the server terminal 200 with one server in a data center operated by the firm, the client terminal 300 with a plurality of employees' PCs, and the network 400 with the Internet. Moreover, it is possible to form, for an entrance and exit management system in the firm, the enrollment terminal 100, the server terminal 200, and the client terminal 300 in the same entrance and exit management device. A group ID 221 may be a value specific to a business place to which the user belongs, or may be set to be specific to each client terminal 300 or each base. In the former case, possible operation is to input the group ID at the time of authentication by the user. In the latter case, the user is not required to input the group ID at the time of authentication.
  • The enrollment terminal 100 further has: a group ID/user name acquisition unit 103 that acquires a group ID and a user name; and a feature extraction unit 104 that extracts a feature from raw data.
  • The server terminal 200 does not have a feature extraction unit 202 but has a group narrowing unit 209a and has master data 220 for each group ID. The master data 220 has a group ID 221. Enrollment information 230 does not have raw data 232 but has a user name 234 for each piece of the enrollment information.
  • Possible features of the biological body information are, for example, minutiae for fingerprints, an iris code for an iris, and cepstrum for a vocal print. Possible scores between the two pieces of biological body information are the number and a ratio of corresponding minutiae for the fingerprint, a Hamming distance for the iris, and a Mahalanobis distance for the vocal print.
  • The client terminal 300 further has: a group ID acquisition unit 303 that acquires a group ID; and a feature extraction unit 304 that extracts a feature from raw data.
  • Hardware configuration of the enrollment terminal 100, the server terminal 200, and the client terminal 300 according to this embodiment is the same as that of FIG. 2.
  • FIG. 8 shows processing procedures and a data flow of enrollment processing according to this embodiment. Step S101 of FIG. 8 is equal to step S101 of FIG. 3.
  • The enrollment terminal 100 acquires a group ID and a user name from the user (step S101a).
  • The enrollment terminal 100 extracts a feature for enrollment from raw enrolled data (step S102a).
  • The enrollment terminal 100 transmits to the server terminal 200 the group ID, the user name, and the feature for enrollment (Step S103a).
  • The server terminal 200, if the master data 220 corresponding to the group ID is in the database 210, adds to the master data 220 the enrollment information 230 including an enrolled data ID 231 specific to the enrolled data, the user name 234, and a feature 233 for enrollment. If there is no master data 220, the enrollment information 230 including the group ID 221, the enrolled data ID 231 specific to the enrolled data, the user name 234, and the feature 233 for enrollment is newly created (step S104a).
  • Processing procedures and a data flow of supplementary information generation processing according to this embodiment is the same as that of FIG. 4. Note that, however, this processing is performed for each group ID. The number N of pieces of the enrollment information 230 and the number M of pivots may be different from one group ID to another.
  • FIG. 9 shows processing procedures and a data flow of search processing according to this embodiment. Steps S302, S305 to S312, and S314 of FIG. 9 are equal to steps S302, S305 to S312, and S314 of FIG. 3.
  • The server terminal 200 acquires the master data 220 for each ID from the database 210 (step S301a).
  • The client terminal 300 acquires the group ID from the user (step S302a). The group ID may be a value specific to each client terminal 300 or each base, or may not be acquired from the user in this case.
  • The client terminal 300 extracts a feature for search from raw search data (step S303a).
  • The client terminal 300 transmits the group ID and the feature for search to the server terminal 200 (step S304a) .
  • A target of search by the server terminal 200 is master data corresponding to the acquired group ID (step S305a).
  • As described above, in this embodiment, narrowing the enrolled data by using the group ID is performed. This makes it possible to dramatically reduce the number of pieces of enrolled data for which the score is calculated. This consequently provides effect of further improving speed.
  • The server terminal 200 transmits, as a search result, the user name 234 corresponding to the enrolled data to the client terminal 300 (step S313a).
  • The client terminal 300 displays the user name 234 corresponding to the enrolled data as the search result (step S314a).
  • The present invention is applicable to any application that performs similarity search on unstructured data such as an image, a moving picture, music, a document, binary data, or biological body information. For example, the invention is applicable to a similar image search system, a similar moving picture search system, a similar music search system, a similar document search system, a similar file search system using fuzzy hash, an information access control system, an attendance management system, and an entrance and exit management system.

Claims (15)

  1. A similarity search system comprising:
    a pivot determination unit that determines a pivot from enrolled data;
    a raw data acquisition unit that acquires raw data;
    a feature extraction unit that extracts features from the raw data;
    a score calculation unit that calculates a score as one of a distance and a degree of similarity between the features;
    an index vector generation unit that generates an index vector by using the score for the pivot;
    a Δ score calculation unit that calculates a Δ score as one of a distance and a degree of similarity between the index vectors;
    a non-pivot-specific parameter training unit that trains, by using training data, a parameter of each non-pivot including a regression coefficient;
    a non-pivot selection order determination unit that determines, by using the Δ score between search data and the non-pivot as well as the regression coefficient, in order to select the non-pivots in descending order of posterior probability through logistic regression;
    a search result output unit that outputs a search result based on the score between the search data and the enrolled data; and
    a database that holds the feature of the enrolled data, pivot information indicating which piece of the enrolled data is the pivot, an index including the index vector of each non-pivot, and the parameter of each non-pivot.
  2. The similarity search system according to claim 1,
    wherein the non-pivot-specific parameter training unit trains the parameter of each non-pivot including an index vector size.
  3. The similarity search system according to claim 2,
    wherein the non-pivot-specific parameter training unit trains the parameter of each non-pivot including the index vector size so as to provide the smallest possible error function.
  4. The similarity search system according to claim 2,
    wherein the non-pivot-specific parameter training unit trains the parameter of each non-pivot including the index vector size so that a sum of error functions for the non pivot becomes as small as possible while a size of the index is equal to or smaller than a fixed value.
  5. The similarity search system according to claim 1,
    wherein the non-pivot-specific parameter training unit trains the parameter of each non-pivot through maximum a posterior probability estimation.
  6. The similarity search system according to claim 1,
    wherein the non-pivot-specific parameter training unit trains the parameter of each non-pivot through maximum likelihood estimation.
  7. The similarity search system according to claim 1,
    wherein the non-pivot-specific parameter training unit, for each non-pivot, calculates a Δ score from the training data and selects the training data to be used for training by using the Δ score.
  8. The similarity search system according to claim 1,
    wherein the non-pivot-specific parameter training unit uses the enrolled data as the training data.
  9. The similarity search system according to claim 1,
    wherein the non-pivot-specific parameter training unit uses, as the training data, data previously prepared separately from the enrolled data.
  10. The similarity search system according to claim 1,
    wherein the non-pivot-specific parameter training unit performs clustering on the non-pivots and trains the parameter of each non-pivot so that some or all of the parameters are common for each obtained cluster.
  11. The similarity search system according to claim 1,
    wherein the index vector generation unit generates a permutation vector as the index vector.
  12. The similarity search system according to claim 1,
    wherein the index vector generation unit generates a score vector as the index vector.
  13. The similarity search system according to claim 1, having a group narrowing unit that narrows the enrolled data by using a group ID,
    wherein the data base holds the group ID.
  14. A high-precision similarity search method in a server terminal performing similarity search on raw data transmitted from a client terminal by an enrollment terminal, the high-precision similarity search method comprising the steps of:
    generating enrolled data composed of features extracted from the raw data;
    selecting a pivot from the enrolled data;
    calculating a score defined as one of a distance and a degree of similarity between the features;
    generating an index vector by using the score for the pivot;
    calculating a Δ score defined as one of a distance and a degree of similarity between the index vectors;
    training, by using prepared training data, a parameter including a regression coefficient of each non-pivot not selected as the pivot from the enrolled data;
    determining, by using the Δ score between inputted search data and the non-pivot as well as the regression coefficient, in order to select the non-pivots in descending order of posterior probability through logistic regression;
    outputting a search result based on the score between the search data and the enrolled data; and
    holding in a database the features of the enrolled data, pivot information indicating which piece of the enrolled data is the pivot, an index including the index vector of each non-pivot, and a parameter of each non-pivot.
  15. The high-precision similarity search method according to claim 14, further comprising the steps of:
    In the determination of the selection order, by using the training data, training the parameter of each non-pivot including the regression coefficient, and by using the Δ score between the search data and the non-pivot as well as the regression coefficient, determining the order to select the non-pivots in the descending order of posterior probability through the logistic regression.
EP12153718A 2011-02-28 2012-02-02 High-accuracy similarity search system Withdrawn EP2492826A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011041268A JP5465689B2 (en) 2011-02-28 2011-02-28 High-precision similarity search system

Publications (1)

Publication Number Publication Date
EP2492826A1 true EP2492826A1 (en) 2012-08-29

Family

ID=45562814

Family Applications (1)

Application Number Title Priority Date Filing Date
EP12153718A Withdrawn EP2492826A1 (en) 2011-02-28 2012-02-02 High-accuracy similarity search system

Country Status (4)

Country Link
US (1) US20120221574A1 (en)
EP (1) EP2492826A1 (en)
JP (1) JP5465689B2 (en)
CN (1) CN102693258A (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6223897B2 (en) * 2014-04-17 2017-11-01 株式会社日立製作所 Abnormality detection device and abnormality detection system
EP3188039A1 (en) * 2015-12-31 2017-07-05 Dassault Systèmes Recommendations based on predictive model
US10754744B2 (en) 2016-03-15 2020-08-25 Wisconsin Alumni Research Foundation Method of estimating program speed-up in highly parallel architectures using static analysis
CN107423309A (en) * 2016-06-01 2017-12-01 国家计算机网络与信息安全管理中心 Magnanimity internet similar pictures detecting system and method based on fuzzy hash algorithm
KR101758219B1 (en) * 2017-01-24 2017-07-14 김훈 Number information management appratus able to search number information
CN112347282A (en) * 2020-11-12 2021-02-09 四川长虹电器股份有限公司 Method for searching picture with highest similarity based on native JavaScript

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6468476B1 (en) * 1998-10-27 2002-10-22 Rosetta Inpharmatics, Inc. Methods for using-co-regulated genesets to enhance detection and classification of gene expression patterns
US6223133B1 (en) * 1999-05-14 2001-04-24 Exxon Research And Engineering Company Method for optimizing multivariate calibrations
JP2005107743A (en) * 2003-09-29 2005-04-21 Nec Corp Learning system
JP5120254B2 (en) * 2006-07-06 2013-01-16 旭硝子株式会社 Clustering system and defect type determination apparatus
JP4274221B2 (en) * 2006-10-02 2009-06-03 ソニー株式会社 Information processing apparatus and method, program, and recording medium
JP5216497B2 (en) * 2008-09-18 2013-06-19 Kddi株式会社 SV reduction method for multi-class SVM
JP5457024B2 (en) * 2008-12-25 2014-04-02 楽天株式会社 Real store search server and real store search method

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
E. CHAVEZ; K. FIGUEROA; G. NAVARRO: "Effective Proximity Retrieval by Ordering Permutations", IEEE TRANS. ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, vol. 30, no. 9, 2008, pages 1647 - 1658
GONZALEZ E C ET AL: "Effective Proximity Retrieval by Ordering Permutations", IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 30, no. 9, 1 September 2008 (2008-09-01), pages 1647 - 1658, XP011246527, ISSN: 0162-8828 *
KARINA FIGUEROA ET AL: "Speeding Up Permutation Based Indexing with Indexing", SIMILARITY SEARCH AND APPLICATIONS, 2009. SISAP '09. SECOND INTERNATIONAL WORKSHOP ON, IEEE, PISCATAWAY, NJ, USA, 29 August 2009 (2009-08-29), pages 107 - 114, XP031533860, ISBN: 978-0-7695-3765-8 *
PATELLA M ET AL: "Approximate similarity search: A multi-faceted problem", JOURNAL OF DISCRETE ALGORITHMS, ELSEVIER, AMSTERDAM, NL, vol. 7, no. 1, 1 March 2009 (2009-03-01), pages 36 - 48, XP025898363, ISSN: 1570-8667, [retrieved on 20080926], DOI: 10.1016/J.JDA.2008.09.014 *
TAKAO MURAKAMI ET AL: "Versatile probability-based indexing for approximate similarity search", PROCEEDINGS OF THE FOURTH INTERNATIONAL CONFERENCE ON SIMILARITY SEARCH AND APPLICATIONS (SISAP '11), 30 June 2011 (2011-06-30), NY, USA, pages 51 - 58, XP055032974, ISBN: 978-1-45-030795-6, Retrieved from the Internet <URL:http://delivery.acm.org/10.1145/2000000/1995423/p51-murakami.pdf?ip=145.64.134.242&acc=ACTIVE SERVICE&CFID=127872392&CFTOKEN=19248629&__acm__=1342525642_b28105ebc63a49b79c9a73325d49aa70> [retrieved on 20120717], DOI: 10.1145/1995412.1995423 *

Also Published As

Publication number Publication date
US20120221574A1 (en) 2012-08-30
CN102693258A (en) 2012-09-26
JP2012178095A (en) 2012-09-13
JP5465689B2 (en) 2014-04-09

Similar Documents

Publication Publication Date Title
CN108829822B (en) Media content recommendation method and device, storage medium and electronic device
US9734436B2 (en) Hash codes for images
EP2492826A1 (en) High-accuracy similarity search system
CN111708873A (en) Intelligent question answering method and device, computer equipment and storage medium
CN109036577B (en) Diabetes complication analysis method and device
EP2348458B1 (en) Biometric authentication system
US20150095017A1 (en) System and method for learning word embeddings using neural language models
CN110457672A (en) Keyword determines method, apparatus, electronic equipment and storage medium
CN113806582B (en) Image retrieval method, image retrieval device, electronic equipment and storage medium
CN112560485B (en) Entity linking method and device, electronic equipment and storage medium
CN111026877A (en) Knowledge verification model construction and analysis method based on probability soft logic
Sahu et al. Multivariate beta mixture model for automatic identification of topical authoritative users in community question answering sites
CN113836938A (en) Text similarity calculation method and device, storage medium and electronic device
CN113722512A (en) Text retrieval method, device and equipment based on language model and storage medium
WO2021174923A1 (en) Concept word sequence generation method, apparatus, computer device, and storage medium
CN113886697A (en) Clustering algorithm based activity recommendation method, device, equipment and storage medium
Cahyani et al. Relevance classification of trending topic and twitter content using support vector machine
Parker et al. Named entity recognition through deep representation learning and weak supervision
CN113761192A (en) Text processing method, text processing device and text processing equipment
Manchanda et al. Text segmentation on multilabel documents: A distant-supervised approach
CN110472057B (en) Topic label generation method and device
CN116450829A (en) Medical text classification method, device, equipment and medium
CN112988699B (en) Model training method, and data label generation method and device
Ribeiro et al. UA. PT Bioinformatics at ImageCLEF 2019: Lifelog Moment Retrieval based on Image Annotation and Natural Language Processing.
CN113761218B (en) Method, device, equipment and storage medium for entity linking

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20120217

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

18W Application withdrawn

Effective date: 20150511