Information processing device, information processing method, and information processing program

A hierarchical clustering approach for large datasets, involving multiple stages of k-means refinement, addresses efficiency and accuracy issues in conventional clustering techniques, enabling faster and more precise clustering of large datasets.

JP7829443B2Active Publication Date: 2026-03-13LY CORP
View PDF 7 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-08-15
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

Existing clustering techniques, such as k-means, struggle with efficiency when applied to large datasets, and do not adequately consider hierarchical clustering, leading to suboptimal processing times and results.

Method used

Implementing a hierarchical clustering approach that involves multiple stages of clustering, starting with a subset of objects and progressively adding more objects, using k-means methods to refine clusters at each level, allowing for efficient division of large datasets into multiple clusters.

Benefits of technology

This method enables appropriate clustering of large datasets more efficiently than conventional methods, reducing processing time and improving clustering accuracy through multiple levels of refinement.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007829443000001
    Figure 0007829443000001
  • Figure 0007829443000002
    Figure 0007829443000002
  • Figure 0007829443000003
    Figure 0007829443000003
Patent Text Reader

Abstract

To allow appropriate clustering.SOLUTION: An information processing apparatus according to the present application has an acquisition unit and a processing unit. The acquisition unit acquires object information indicating a plurality of objects to be subjected to clustering. The processing unit executes multiple times clustering processing of defining some objects of the plurality of objects as an object group at the start of processing, and generating a plurality of clusters for the object group, and in one clustering processing, when another cluster processing has been executed before the one clustering processing, generates clustering information indicating clustering used for predetermined processing through hierarchical clustering to further divide each of a plurality of clusters generated through the another clustering processing.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing apparatus, an information processing method, and an information processing program.

Background Art

[0002] Conventionally, techniques for clustering (classifying) various information have been provided. For example, in order to efficiently search (retrieve) various information, the target information is clustered, and the clustering result is used.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] However, in the above prior art, there is room for improvement in terms of the processing related to clustering. In the above prior art, although objects to be searched are clustered by k-means or the like, for example, hierarchical clustering is not considered. Therefore, it is desired to perform the processing related to clustering more appropriately.

[0005] The present application has been made in view of the above, and an object thereof is to provide an information processing apparatus, an information processing method, and an information processing program that enable appropriate clustering.

Means for Solving the Problems

[0006] The information processing device according to the present invention is characterized by comprising: an acquisition unit that acquires object information indicating a plurality of objects to be clustered; and a processing unit that performs a clustering process multiple times, in which some of the plurality of objects are used as the object group at the start of processing, and generates a plurality of clusters targeting the object group, and in one clustering process, if there is another clustering process executed before the first clustering process, generates clustering information indicating the clustering to be used in a predetermined process by hierarchical clustering, which further divides each of the plurality of clusters generated by the other clustering process. [Effects of the Invention]

[0007] According to one embodiment, it is possible to achieve appropriate clustering. [Brief explanation of the drawing]

[0008] [Figure 1] Figure 1 shows an example of information processing according to the embodiment. [Figure 2] Figure 2 shows an example of the configuration of an information processing system according to the embodiment. [Figure 3] Figure 3 shows an example of the configuration of an information processing device according to the embodiment. [Figure 4] Figure 4 shows an example of an object information storage unit according to the embodiment. [Figure 5] Figure 5 is a flowchart showing an example of information processing according to the present invention. [Figure 6] Figure 6 is a hardware configuration diagram showing an example of a computer that implements the functions of an information processing device. [Modes for carrying out the invention]

[0009] The following describes in detail, with reference to the drawings, the embodiments for implementing the information processing apparatus, information processing method, and information processing program according to the present application (hereinafter referred to as "embodiments"). Note that these embodiments do not limit the information processing apparatus, information processing method, and information processing program according to the present application. Furthermore, the same parts are denoted by the same reference numerals in each of the following embodiments, and redundant descriptions are omitted.

[0010] (Embodiment) [1. Embodiments] [1-1. Information Processing] An example of information processing according to the embodiment will be explained using Figure 1. Figure 1 is a diagram showing an example of information processing according to the embodiment. In the following explanation, an example will be given in which image information is used as the object to be clustered (classified), but the object to be clustered (classified) can be any object on which clustering processing can be performed, and any type of information such as video information or audio information can be used.

[0011] The information processing device 100 (see Figure 3) performs clustering on a vast number of objects, such as billions, but only a portion of them (several dozen objects, such as object N1 in Figure 1) are shown in the diagram. For example, as shown in the spatial information SP11 to SP13 in Figure 1, the information processing device 100 acquires information on multiple objects (vectors), such as objects N1, N7, N9, etc. In the following, the progress of the clustering process by the information processing device 100 is shown using spatial information SP11 to SP13, but when explaining spatial information SP11 to SP13 without distinguishing between them, it will be referred to as spatial information SP.

[0012] In the following, when "Object N* (* is any number)" is written, it indicates that the object is identified by object ID "N*". For example, when "Object N1" is written, it means that the object is identified by object ID "N1". Each of the circles other than the black circles (●) in the spatial information SP (white circles and hatched circles) represents an object. Note that the black circles represent the centroids of the first cluster FC, which will be described later, and are not circles that correspond to objects. In other words, among all the circles in the spatial information SP, the circles other than the black circles, i.e., the white circles and hatched circles that each correspond to an object, may be referred to as "object points".

[0013] In the spatial information SP in Figure 1, object points that are mainly related to the explanation are labeled, but each unlabeled object point also has a corresponding object, and many objects other than the objects that illustrate the object points are included in the overall group (also called the "object set") that is subject to clustering.

[0014] For example, the spatial information SP in Figure 1 may be in Euclidean space. For example, the spatial information SP may correspond to the number of dimensions of the object's vector and be a multidimensional space such as 100 dimensions or 1000 dimensions. Note that each of the multiple local features extracted from the image may be an object. Also, for example, various data with defined distances between objects may be objects.

[0015] [1-1-1. Processing Example] From here, we will explain the details of the process using Figure 1. First, we will briefly explain the premise before describing the process shown below. For example, simply applying the k-means method (sometimes written as "k-means" or "kmeans") or the k-means++ method (sometimes written as "k-means++" or "kmeans++") to one billion objects (vectors) is currently difficult to complete in a practical amount of time. Therefore, the information processing device 100 performs hierarchical clustering as shown below. Specifically, in the following, the information processing device 100 performs three-tiered clustering. For example, in the example described below, the object set to be clustered (let's call it "object set OS1") contains one billion objects (vectors).

[0016] First, the information processing device 100 performs a first clustering process (step S1) on a subset of objects (also called the "first object group") from the object set OS1, as shown in the spatial information SP11. The information processing device 100 obtains the first object group by randomly selecting C1 objects from the object set OS1. For example, C1, which is used to determine the number of objects in the first object group, can be set by an option, and any number such as several hundred thousand or several million may be set. For example, the information processing device 100 obtains C1 objects (vectors) as the first object group and performs a first clustering process on the obtained first object group. In Figure 1, objects N1, N4, etc., indicated by white circles in the spatial information SP11, represent the objects selected as the first object group (also called the "first objects").

[0017] For example, the information processing apparatus 100 clusters (classifies) a plurality of clusters (also referred to as "first clusters") for a first object group by a method related to k-means. The information processing apparatus 100 designates the number of clusters as O1 and classifies each object in the first object group into any one of the O1 first clusters. For example, O1 used for determining the number of the first clusters can be set optionally, and any number such as several tens or several hundreds may be set. Note that the method related to k-means may be any method such as the k-means method or the k-means++ method as long as it is related to k-means. In this way, the information processing apparatus 100 can complete the clustering process in a shorter processing time compared to the case of targeting the entire set by clustering a first object group having a smaller number of objects than the entire object set OS1.

[0018] In FIG. 1, the information processing apparatus 100 executes a first clustering process for C1 objects (vectors) including objects N1, N4, etc. as a first object group, thereby clustering the first object group into first clusters FC1 to FC10, etc. For example, the information processing apparatus 100 assigns objects N7, N9, N85, N126, etc. to the first cluster FC1 by the first clustering process. Further, the information processing apparatus 100 assigns objects N1, N4, N5, etc. to the first cluster FC9 by the first clustering process. When explaining without distinguishing the first clusters FC1 to FC10, etc., it is described as "first cluster FC".

[0019] Next, as shown in the spatial information SP12, the information processing apparatus 100 executes a second clustering process for clustering a second object group obtained by adding objects not included in the first object group to the first object group among the object set OS1 (step S2). The information processing apparatus 100 randomly selects C2 - C1 objects from the set (population) excluding the first object group among the object set OS1, and generates the second object group by adding the selected objects to the first object group. For example, C2 used for determining the number of the second object group can be set optionally. For example, if it is larger than C1, an arbitrary number such as several million or tens of millions may be set. For example, the information processing apparatus 100 acquires C2 objects (vectors) as the second object group, and executes the second clustering process for the acquired second object group. In FIG. 1, objects such as object N3, N6, etc., shown by gray circles, are objects added to the first object group (also referred to as "second objects").

[0020] For example, the information processing apparatus 100 executes a first allocation process for allocating each of the objects (second objects) added to the second object group to the corresponding first cluster FC among the plurality of first clusters FC. For example, as shown in the spatial information SP12, the information processing apparatus 100 allocates each of the objects added to the second object group to the corresponding first cluster FC. For example, the information processing apparatus 100 allocates each of the second objects to the first cluster FC corresponding to the centroid having the shortest distance among the centroids of each of the first clusters FC. For example, the information processing apparatus 100 allocates the objects N3, N6, N28, etc. added to the second object group to the first cluster FC1.

[0021] The information processing device 100 determines the number of second clusters (also called "second clusters") for each first cluster in proportion to the number of objects belonging to that first cluster, so as to generate O2 clusters (also called "second clusters") for the second group of objects. For example, O2, which is used to determine the total number of second clusters, can be set by option, and any number such as several hundred or several thousand may be set, for example, if it is greater than the number of first clusters.

[0022] In this way, the information processing device 100 performs a second cluster number determination process to determine the number of second clusters belonging to each first cluster FC, according to the number of objects belonging to each first cluster FC after the first allocation process. For example, the information processing device 100 increases the number of second clusters belonging to each first cluster FC as the number of objects belonging to each first cluster FC increases. Then, the information processing device 100 clusters each first cluster FC using a k-means method to divide it into the number of clusters determined in the second cluster number determination process.

[0023] In Figure 1, the information processing device 100 determines the number of second clusters belonging to the first cluster FC1 to be "3" according to the number of objects belonging to the first cluster FC1 after the first assignment process. For example, the information processing device 100 clusters (classifies) the objects belonging to the first cluster FC1 into three second clusters using a k-means method.

[0024] In Figure 1, the information processing device 100 clusters (classifies) objects N3, N6, N7, N9, N28, N85, N126, etc., belonging to the first cluster FC1 into three second clusters SC11, SC112, and SC13. For example, the information processing device 100 assigns objects N6, N85, N126, etc. to the second cluster SC11. The information processing device 100 also assigns objects N3, N9, etc. to the second cluster SC12. The information processing device 100 also assigns objects N7, N28, etc. to the second cluster SC13. When explaining without distinguishing between the second clusters SC11 to SC13, etc., they will be referred to as "second cluster SC". The information processing device 100 similarly divides other first clusters FCs other than the first cluster FC1 into the number of second clusters SC determined by the second cluster number determination process. In Figure 1, the clustering shown by the dotted lines in the spatial information SP corresponds to the second cluster SC.

[0025] Next, the information processing device 100 performs a third clustering process (step S3) on a third object group, which is created by adding objects from the object set OS1 that are not included in the second object group to the second object group, as shown in the spatial information SP13. The information processing device 100 generates a third object group by randomly selecting C3-C2 objects from the set (population) of the object set OS1 excluding the second object group, and adding the selected objects to the second object group. For example, C3, which is used to determine the number of objects in the third object group, can be set by option, and any number such as tens of millions or hundreds of millions may be set as long as it is greater than C2. For example, the information processing device 100 acquires C3 objects (vectors) as the third object group and performs a third clustering process on the acquired third object group. In Figure 1, objects shown as circles with a black outer line and hatched interiors are the objects added to the second object group (also called "third objects").

[0026] For example, the information processing device 100 performs a second assignment process to assign each object added to the third object group (third object) to the corresponding second cluster SC among multiple second cluster SCs. For example, as shown in spatial information SP13, the information processing device 100 assigns each object added to the third object group to the corresponding second cluster SC. For example, the information processing device 100 assigns each third object to the second cluster SC corresponding to the centroid that is closest to it among the centroids of each second cluster SC. For example, the information processing device 100 assigns objects N2, N8, etc., added to the third object group to the second cluster SC11.

[0027] The information processing device 100 determines the number of third clusters (also called "third clusters") for each second cluster in proportion to the number of objects belonging to that second cluster, so as to generate O3 clusters (also called "third clusters") for the third object group. For example, O3, which is used to determine the total number of third clusters, can be set by option, and any number such as several hundred or several thousand may be set, for example, if it is greater than the number of second clusters.

[0028] In this way, the information processing device 100 performs a third cluster number determination process to determine the number of third clusters belonging to each second cluster SC, according to the number of objects belonging to each second cluster SC after the second assignment process. For example, the more objects there are in each second cluster SC, the more third clusters each second cluster SC will have. Then, the information processing device 100 clusters each second cluster SC using a k-means method to divide it into the number of clusters determined in the third cluster number determination process.

[0029] In Figure 1, the information processing device 100 determines the number of third clusters belonging to the second cluster SC11 to be "2" based on the number of objects belonging to the second cluster SC11 after the second assignment process. For example, the information processing device 100 clusters (classifies) the objects belonging to the second cluster SC11 into two third clusters using a k-means method.

[0030] In Figure 1, the information processing device 100 clusters (classifies) objects N2, N6, N8, N85, N126, etc., belonging to the second cluster SC11 into two third clusters TC111 and TC112. For example, the information processing device 100 assigns objects N8, N126, etc. to the third cluster TC111. Also, the information processing device 100 assigns objects N2, N6, N85, etc. to the third cluster TC112. When explaining without distinguishing between the third clusters TC111, TC112, etc., they will be referred to as "third cluster TC". Similarly, the information processing device 100 divides other second clusters SC besides the second cluster SC11 into the number of third clusters TC determined by the third cluster number determination process. In Figure 1, the clustering shown by the dashed-dotted lines in the spatial information SP corresponds to the third clusters TC.

[0031] As described above, the information processing device 100 can enable appropriate clustering through hierarchical clustering such as a first clustering process, a second clustering process, and a third clustering process. For example, by using hierarchical clustering, the information processing device 100 can cluster a large collection of objects, such as billions of them, more efficiently than when clustering them all at once as in the conventional method.

[0032] In Figure 1, among the white circles shown in spatial information SP13, objects corresponding to white circles other than those shown in spatial information SP11 (i.e., white circles corresponding to the first object) may be third objects added in the third clustering process. The information processing device 100 may use the results of the third clustering process to assign the remaining objects to one of the third clusters TC. For example, the information processing device 100 may maintain the number of clusters after the third clustering process and assign the remaining objects to one of the third clusters TC.

[0033] [1-1-2. Scope of Application] Objects to be clustered may be the subject of various processes. For example, objects may be the subject of data retrieval. That is, information generated by the clustering process performed by the information processing device 100 may be used for data retrieval. For example, the second cluster SC may be used as a group (blob) disclosed in Patent Document 1. In this case, the third cluster TC may be used as a cluster that serves as a unit of quantization (quantization cluster). Alternatively, the second cluster SC may be used as a cluster that serves as a unit of quantization (quantization cluster). In this case, the third cluster TC may be used as a group (blob).

[0034] Furthermore, the information generated by the clustering process is not limited to data retrieval; it can be used in any process that can utilize the clustering results. In other words, the clustering process performed by the information processing device 100 is applicable to any process that can utilize the results of that clustering process. Moreover, the generation of information through the clustering process itself may be the objective. For example, the information processing device 100 may provide the results of the clustering process to a service provider that provides services using information related to clustering.

[0035] [1-2. Configuration of the Information Processing System] As shown in Figure 4, the information processing system 1 includes a terminal device 10, an information providing device 50, and an information processing device 100. The terminal device 10, the information providing device 50, and the information processing device 100 are connected to each other via a predetermined network N, either by wired or wireless means. Figure 4 is a diagram showing an example configuration of the information processing system according to the first embodiment. Note that the information processing system 1 shown in Figure 4 may include multiple terminal devices 10, multiple information providing devices 50, and multiple information processing devices 100.

[0036] Terminal device 10 is an information processing device used by the user. Terminal device 10 accepts various operations from the user. In the following, terminal device 10 may be referred to as the user. That is, in the following, the user can be read as terminal device 10. The above-mentioned terminal device 10 can be implemented as, for example, a smartphone, a tablet device, a notebook PC (Personal Computer), a desktop PC, a mobile phone, or a PDA (Personal Digital Assistant).

[0037] The information providing device 50 is an information processing device that stores information for providing various information to users, etc. For example, the information providing device 50 stores object IDs based on character information, etc., collected from various external devices such as web servers. For example, the information providing device 50 is an information processing device that provides image search services to users, etc. For example, the information providing device 50 stores various information for providing image search services. For example, the information providing device 50 provides vector information corresponding to images that are the target of the image search service to the information processing device 100. The information providing device 50 also receives object IDs, etc., indicating images corresponding to queries from the information processing device 100 by sending queries to the information processing device 100.

[0038] The information processing device 100 is a computer that performs clustering-related processing. The information processing device 100 takes some of the multiple objects as the object group at the start of processing, and performs clustering processing multiple times to generate multiple clusters on the object group, thereby generating clustering information that indicates the clustering to be used in a predetermined process. If, in one clustering process, there are other clustering processes that have been executed before the first clustering process, the information processing device 100 generates clustering information that indicates the clustering to be used in a predetermined process by performing hierarchical clustering, which further divides each of the multiple clusters generated by the other clustering processes.

[0039] The information processing device 100 may also provide a search service. For example, when the information processing device 100 receives a query (search query) from the terminal device 10, it searches for objects similar to the search query and provides the search results to the terminal device. For example, the data that the information processing device 100 provides to the terminal device may be the data itself, such as image information, or it may be information for referencing corresponding data, such as a URL (Uniform Resource Locator). Furthermore, the search query and the search target (object) may be any type of data, such as images, audio, or text data.

[0040] [1-3. Configuration of Information Processing Device] Next, the configuration of the information processing device 100 according to the embodiment will be described using Figure 3. Figure 3 is a diagram showing an example of the configuration of the information processing device 100 according to the embodiment. As shown in Figure 3, the information processing device 100 has a communication unit 110, a storage unit 120, and a control unit 130. The information processing device 100 may also have an input unit (for example, a keyboard or mouse) that receives various operations from the administrator of the information processing device 100, and a display unit (for example, a liquid crystal display) for displaying various information.

[0041] (Communications Department 110) The communication unit 110 is implemented, for example, by a NIC (Network Interface Card). The communication unit 110 is connected to the network (for example, network N in Figure 2) by wire or wireless connection and transmits and receives information with the terminal device 10 and the information providing device 50.

[0042] (Storage unit 120) The storage unit 120 is implemented by, for example, semiconductor memory elements such as RAM (Random Access Memory) and flash memory, or by storage devices such as hard disks and optical discs. As shown in Figure 3, the storage unit 120 according to this embodiment includes an object information storage unit 121, a clustering information storage unit 122, a quantization information storage unit 123, a codebook information storage unit 124, and a graph information storage unit 125.

[0043] (Object information storage unit 121) The object information storage unit 121 according to this embodiment stores various information about an object. For example, the object information storage unit 121 stores an object ID and vector data. Figure 4 shows an example of the object information storage unit according to this embodiment. The object information storage unit 121 shown in Figure 4 includes items such as "object ID" and "vector information".

[0044] The "Object ID" indicates identification information used to identify an object. The "Vector Information" indicates vector information corresponding to the object identified by the Object ID. In other words, in the example in Figure 4, the vector data (vector information) corresponding to the object is registered and associated with the Object ID that identifies the object.

[0045] For example, in the example in Figure 4, the object (target) identified by object ID "N1" is associated with multidimensional vector information of the form "10, 24, 51, 2...".

[0046] Furthermore, the object information storage unit 121 may store various types of information depending on the purpose, not limited to those mentioned above.

[0047] (Clustering information storage unit 122) The clustering information storage unit 122 according to this embodiment stores various information related to clustering. For example, the clustering information storage unit 122 stores the generated clusters.

[0048] The clustering information storage unit 122 stores the results of hierarchical clustering. The clustering information storage unit 122 stores clusters generated by hierarchical clustering through a first clustering process, a second clustering process, a third clustering process, etc. For example, it stores information on the results of clustering generated by a clustering process in association with identification information (such as a clustering ID) used to identify a clustering.

[0049] For example, the clustering information storage unit 122 stores information showing the clustering (classification) results by the first clustering, as shown in the spatial information SP11 in Figure 1. The clustering information storage unit 122 also stores information showing the assignment of objects to the first cluster by the first clustering. For example, the clustering information storage unit 122 stores information showing the first clusters FC1 to FC10, etc., to which the first group of objects such as objects N1 and N4 have been classified by the first clustering. For example, the clustering information storage unit 122 stores identification information (object ID, etc.) for identifying objects N7, N9, N85, N126, etc., in association with identification information (object ID, etc.) for identifying the first cluster FC1.

[0050] For example, the clustering information storage unit 122 stores information showing the clustering (classification) results by the second clustering, as shown in the spatial information SP12 in Figure 1. The clustering information storage unit 122 also stores information showing the assignment of objects to the second cluster by the second clustering. For example, the clustering information storage unit 122 stores information showing the second clusters SC11 to SC13, etc., into which the second group of objects such as objects N1, N3, and N4 have been classified by the second clustering. For example, the clustering information storage unit 122 stores identification information (object ID, etc.) for identifying objects such as objects N6, N85, and N126 in association with identification information (cluster ID, etc.) for identifying the second cluster SC11.

[0051] For example, the clustering information storage unit 122 stores information showing the clustering (classification) results by the third clustering, as shown in the spatial information SP13 in Figure 1. The clustering information storage unit 122 also stores information showing the assignment of objects to the third cluster by the third clustering. For example, the clustering information storage unit 122 stores information showing the third clusters TC111, TC112, etc., into which the third group of objects such as objects N1, N2, N3, N4, etc., have been classified by the third clustering. For example, the clustering information storage unit 122 stores identification information (object ID, etc.) for identifying objects such as objects N8, N126, etc., in association with identification information (cluster ID, etc.) for identifying the third cluster TC111.

[0052] Furthermore, the clustering information storage unit 122 may store various types of information depending on the purpose, not limited to those mentioned above.

[0053] (Quantization information storage unit 123) The quantization information storage unit 123 according to the embodiment stores various information related to quantization. The quantization information storage unit 123 has items such as "object ID" and "quantization information". For example, the quantization information storage unit 123 stores information corresponding to the unit of quantization. For example, the quantization information storage unit 123 stores quantized information for each second cluster SC. Alternatively, the quantization information storage unit 123 may store quantized information for each first cluster FC or third cluster TC.

[0054] The "Object ID" indicates identification information for identifying an object. The "Quantization Information" indicates information about the quantized vector of each object. For example, the "Quantization Information" includes information such as "Elements" and "Codebook ID". The "Element" indicates the placement of the corresponding object in the vector. For example, it indicates that the vector of each object is divided into four parts, and each divided sub-vector is quantized by the codebook. Note that the number of divisions is not limited to four. The "Codebook ID" indicates information for identifying the codebook corresponding to each element (sub-vector).

[0055] Regarding quantization using a codebook, it may be performed as appropriate by conventional techniques such as those described in Patent Document 1, and a detailed explanation is omitted. Furthermore, the quantization information storage unit 123 is not limited to the above and may store various types of information depending on the purpose.

[0056] (Codebook information storage unit 124) The codebook information storage unit 124 according to this embodiment stores various information related to the codebook. For example, the codebook information storage unit 124 stores the codebook ID and vector information for each codebook. For example, the codebook information storage unit 124 stores a lookup table that shows the correspondence between each codebook and a vector.

[0057] The codebook information storage unit 124 stores codebooks and the like used to quantize each of the four divided subvectors. The codebooks are information such as that disclosed in prior art such as Patent Document 1, and a detailed explanation is omitted. Furthermore, the codebook information storage unit 124 is not limited to the above and may store various types of information depending on the purpose. For example, the codebook information storage unit 124 may store information indicating the difference (distance) between each codebook and the search query.

[0058] (Graph information storage unit 125) The graph information storage unit 125 according to this embodiment stores various information related to the graph. For example, the graph information storage unit 125 stores the graph used for search processing. The graph information storage unit 125 stores information (identification information such as IDs) for identifying edges and the connection targets connected (linked) by those edges. The connection targets can be any target such as groups (blobs, etc.) or objects. The information processing device 100 performs search processing using a graph index (graph) which is a graph structure of connection targets related to multiple objects that are the target of data retrieval.

[0059] For example, the graph information storage unit 125 stores an object graph (also called an "object graph") when such a graph, which connects objects with edges, is used for searching. In this case, the graph information storage unit 125 stores an object graph in which a predetermined number of neighboring objects are connected to each object. The information processing device 100 may generate the object graph or obtain it from an external device. For example, the object graph is a k-nearest neighbor graph. For example, the object graph can be generated using various graph generation techniques as appropriate, as long as it is a graph that can be used for searching, and a detailed explanation is omitted.

[0060] Furthermore, for example, the graph information storage unit 125 stores a group-linked graph (also called a "group-linked graph") when such a graph is used for searching. In this case, the graph information storage unit 125 stores a group-linked graph in which a predetermined number of neighboring groups are linked to each group. The information processing device 100 may generate the group-linked graph or obtain it from an external device. For example, the group-linked graph is a k-nearest neighbor graph. For example, the group-linked graph can be generated using various graph generation techniques as appropriate, as long as it is a graph that can be used for search processing, and a detailed explanation is omitted.

[0061] For example, when a group linkage graph connecting third clusters TC is used for searching, the graph information storage unit 125 stores the group linkage graph connecting third clusters TC. In this case, the graph information storage unit 125 stores a group linkage graph in which a predetermined number of neighboring third clusters TC are linked to each third cluster TC. For example, the graph information storage unit 125 stores a group linkage graph in which a predetermined number of centroids of neighboring third clusters TC are linked to the centroid of each third cluster TC.

[0062] For example, a group connection graph connecting centroids in the third cluster TC is generated by connecting a predetermined number of neighboring centroids according to the distance between each centroid. Note that the group connection graph connecting centroids in the third cluster TC can be generated using various graph generation techniques as appropriate, as long as it is a graph usable for search processing; therefore, a detailed explanation is omitted.

[0063] For example, when a group linkage graph connecting second clusters SC is used for searching, the graph information storage unit 125 stores the group linkage graph connecting second clusters SC. In this case, the graph information storage unit 125 stores a group linkage graph in which a predetermined number of neighboring second clusters SC are linked to each second cluster SC. For example, the graph information storage unit 125 stores a group linkage graph in which a predetermined number of centroids of neighboring second clusters SC are linked to the centroid of each second cluster SC.

[0064] For example, a group connection graph connecting centroids in the second cluster SC is generated by connecting a predetermined number of neighboring centroids according to the distance between each centroid. Note that the group connection graph connecting centroids in the second cluster SC can be generated using various graph generation techniques as appropriate, as long as it is a graph usable for search processing; therefore, a detailed explanation is omitted.

[0065] The graph information storage unit 125 is not limited to the above and may store various types of information depending on the purpose. For example, the graph information storage unit 125 may store the lengths of the edges connecting each connection target. That is, the graph information storage unit 125 may store information indicating the distance between connection targets. The above data structure is merely an example, and the graph information storage unit 125 is not limited to the above and may store graph information using various data structures.

[0066] Furthermore, the graph may include a program module that takes a query as input, searches for connection targets by traversing edges in the graph, and extracts and outputs connection targets similar to the query. In other words, the graph may be intended for use as a program module that performs search processing using the graph. For example, the graph may be a program that, when vector data is input as a query, extracts and outputs connection targets from the graph that correspond to vector data similar to that vector data. For example, the graph may be data used as a program module that searches for similar images corresponding to a query image. For example, the graph causes the computer to function so that, based on the input query, it extracts and outputs connection targets similar to that query in the graph.

[0067] (Control unit 130) Returning to the explanation of Figure 3, the control unit 130 is a controller, and is realized by executing various programs (corresponding to an example of an information processing program) stored in the memory device inside the information processing device 100 using RAM as the working area, for example, by a CPU (Central Processing Unit), MPU (Micro Processing Unit), GPU (Graphics Processing Unit), etc. Furthermore, the control unit 130 is a controller, and is realized by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array).

[0068] As shown in Figure 3, the control unit 130 includes an acquisition unit 131, a generation unit 132, a search processing unit 133, and a provision unit 134, and realizes or executes the information processing functions and operations described below. Note that the internal configuration of the control unit 130 is not limited to the configuration shown in Figure 3, and other configurations are also acceptable as long as they perform the information processing described later.

[0069] (Acquisition part 131) The acquisition unit 131 acquires various types of information. For example, the acquisition unit 131 acquires various types of information from the storage unit 120. For example, the acquisition unit 131 acquires various types of information from the object information storage unit 121, the clustering information storage unit 122, the quantization information storage unit 123, the codebook information storage unit 124, the graph information storage unit 125, etc. The acquisition unit 131 also acquires various types of information from external information processing devices. The acquisition unit 131 acquires various types of information from the terminal device 10 and the information providing device 50.

[0070] The acquisition unit 131 acquires object information indicating multiple objects that are the target of clustering. The acquisition unit 131 acquires object information indicating multiple objects that are the target of data retrieval.

[0071] The acquisition unit 131 acquires search queries for multiple objects that are the target of data retrieval. For example, the acquisition unit 131 acquires search queries related to image retrieval. For example, the acquisition unit 131 acquires queries from the terminal device 10 being used. For example, the acquisition unit 131 acquires queries from the information providing device 50 that has received queries from the terminal device 10 being used. The acquisition unit 131 acquires graphs. For example, the information processing device 100 may acquire graphs from an external device such as the information providing device 50.

[0072] (Generation unit 132) The generation unit 132 is a processing unit that performs various processes related to clustering of clustering targets such as objects. The generation unit 132 generates various types of information. For example, the generation unit 132 generates various types of information (data) from the information (data) stored in the storage unit 120. For example, the generation unit 132 generates various types of information from the information (data) stored in the object information storage unit 121, the clustering information storage unit 122, the quantization information storage unit 123, the codebook information storage unit 124, the graph information storage unit 125, etc. The generation unit 132 may also generate a graph as shown in the graph information storage unit 125.

[0073] The generation unit 132 uses some of the multiple objects as the object group at the start of processing, and performs clustering processing multiple times to generate multiple clusters on the object group, thereby generating clustering information that indicates the clustering to be used in a predetermined process. If, in one clustering process, there are other clustering processes that were executed before that clustering process, the generation unit 132 generates clustering information that indicates the clustering to be used in a predetermined process by performing hierarchical clustering, which further divides each of the multiple clusters generated by the other clustering processes.

[0074] The generation unit 132 generates clustering information by performing clustering processing multiple times using a predetermined clustering method. The generation unit 132 generates clustering information by performing clustering processing multiple times using a k-means method.

[0075] The generation unit 132 generates clustering information by increasing the number of objects in the object group and repeating the clustering process after the clustering process by adding objects that are not included in the object group from among the multiple objects. The generation unit 132 generates clustering information by repeating the clustering process with an increased number of objects until multiple objects are added to the object group.

[0076] The generation unit 132 generates clustering information by performing clustering processing three times. The generation unit 132 performs a first clustering process that clusters the object group into multiple first clusters. The generation unit 132 performs a second clustering process that clusters each of the multiple first clusters into multiple second clusters. The generation unit 132 performs a third clustering process that clusters each of the multiple second clusters into multiple third clusters.

[0077] The generation unit 132 performs a first clustering process on a first object group that includes some of the objects from a plurality of objects. After the first clustering process, the generation unit 132 performs a second clustering process on a second object group, which is obtained by adding objects that were not included in the first object group to the first object group. After the second clustering process, the generation unit 132 performs a third clustering process on a third object group, which is obtained by adding objects that were not included in the second object group to the second object group.

[0078] The generation unit 132 generates clustering information by executing a first clustering process, a second clustering process, and a third clustering process. The generation unit 132 generates clustering information based on hierarchical clustering performed by the first clustering process, the second clustering process, and the third clustering process.

[0079] The generation unit 132 performs a first clustering process to perform first-level clustering on the first group of objects. The generation unit 132 performs a second clustering process to perform second-level clustering, which is below the first level, on the second group of objects. The generation unit 132 generates clustering information by performing a third clustering process to perform third-level clustering, which is below the second level, on the third group of objects.

[0080] In the second clustering process, the generation unit 132 performs a first assignment process, which assigns each object added to the second object group to the corresponding first cluster among a plurality of first clusters. After the first assignment process, the generation unit 132 performs a second cluster number determination process, which determines the number of second clusters belonging to each first cluster according to the number of objects belonging to each first cluster.

[0081] The generation unit 132 performs a second cluster number determination process, which increases the number of second clusters belonging to each first cluster as the number of objects belonging to each first cluster increases. Based on the number of second clusters belonging to each first cluster determined by the second cluster number determination process, the generation unit 132 performs a second clustering process.

[0082] In the third clustering process, the generation unit 132 performs a second assignment process, which assigns each object added to the third object group to the corresponding second cluster among a plurality of second clusters. The generation unit 132 then performs a third cluster number determination process, which determines the number of third clusters belonging to each second cluster according to the number of objects belonging to each second cluster after the second assignment process.

[0083] The generation unit 132 performs a third cluster number determination process, which increases the number of third clusters belonging to each second cluster as the number of objects belonging to each second cluster increases. Based on the number of third clusters belonging to each second cluster determined by the third cluster number determination process, the generation unit 132 performs a third clustering process.

[0084] The generation unit 132 generates clustering information that indicates the clustering used in data retrieval. The generation unit 132 generates clustering information that indicates the clustering used in data retrieval using graphs.

[0085] The generation unit 132 may generate information to be stored in the graph information storage unit 125, the quantization information storage unit 123, and the codebook information storage unit 124. However, if the information processing device 100 acquires information to be stored in the quantization information storage unit 123, the codebook information storage unit 124, the graph information storage unit 125, etc. from an external device such as the information providing device 50, the generation unit 132 does not need to generate information to be stored in the quantization information storage unit 123, the codebook information storage unit 124, the graph information storage unit 125, etc.

[0086] (Search processing unit 133) The search processing unit 133 provides a search service for objects. The search processing unit 133 searches for various types of information. The search processing unit 133 retrieves various types of information. For example, the search processing unit 133 searches for objects by searching a graph. For example, if a query is obtained by the acquisition unit 131, the search processing unit 133 searches for objects similar to the query by searching a graph. For example, the search processing unit 133 extracts objects similar to the query by searching a graph. Note that if the information processing device 100 does not provide a search service, it does not need to have the search processing unit 133.

[0087] The search processing unit 133 selects various information during the search process. The search processing unit 133 extracts various information during the search process. The search processing unit 133 determines various information during the search process. The search processing unit 133 decides on various information during the search process. The search processing unit 133 modifies various information during the search process. The search processing unit 133 updates various information during the search process.

[0088] The search processing unit 133 may perform the search processing by any method, as long as it is possible to perform object search processing using the information generated by the clustering described above. For example, the search processing unit 133 may perform the search processing based on a search flow such as that disclosed in Patent Document 1. The search processing unit 133 may perform the search processing using a graph index (graph) which is a graph structure of connections to multiple objects that are the target of data retrieval.

[0089] For example, the search processing unit 133 performs a search using an object graph that structures multiple objects to be searched. The search processing unit 133 performs a nearest neighbor search using an object graph in which the objects to be searched are vectorized and connected as nodes. The search processing unit 133 searches for objects in the vicinity of the given search query (vector) by traversing the object graph with the objects as the search target. Through the search process, the search processing unit 133 extracts a predetermined number of objects (search number) specified as the number of neighbor objects to extract as neighbor objects of the search query.

[0090] For example, the search processing unit 133 performs a search using a group-linked graph, which is a graph structure of clusters (groups) formed by clustering (grouping) multiple objects that are the target of data retrieval. The search processing unit 133 performs a nearest neighbor search using a group-linked graph in which groups (blobs) into which the objects that are the target of data retrieval are classified are connected by edges. The search processing unit 133 uses the objects belonging to each group (blob) in the group-linked graph as the objects to be searched, and searches for neighboring objects of the given search query (vector) by traversing the group-linked graph. Through the search process, the search processing unit 133 extracts a predetermined number of objects (search number) specified as the number of neighboring objects to extract as neighboring objects of the search query.

[0091] (Provider 134) The information provision unit 134 provides various types of information. For example, the information provision unit 134 transmits various types of information to the terminal device 10 and the information provision device 50. For example, the information provision unit 134 provides the object ID corresponding to the search query as a search result. The information provision unit 134 transmits the search results to the terminal device 10. The information provision unit 134 provides the object ID retrieved by the search processing unit 133 to the terminal device 10 as a search result corresponding to the search query.

[0092] Furthermore, the providing unit 134 may provide the object IDs retrieved by the search processing unit 133 to the information providing device 50. For example, the providing unit 134 provides the object IDs extracted by the search processing unit 133 to the information providing device 50. The providing unit 134 provides the object IDs extracted by the search processing unit 133 to the information providing device 50 as information indicating a vector corresponding to the query.

[0093] [1-4. Information Processing Flow] Next, the procedure for information processing by the information processing system 1 according to the embodiment will be explained using Figure 5. Figure 5 is a flowchart showing an example of information processing according to the embodiment.

[0094] As shown in Figure 5, the information processing device 100 acquires object information indicating multiple objects to be clustered (step S101). Then, the information processing device 100 takes some of the multiple objects as the object group at the start of processing and performs a clustering process multiple times to generate multiple clusters targeting the object group (step S102).

[0095] If, in a clustering process, there are other clustering processes executed before the first clustering process, the information processing device 100 generates clustering information indicating the clustering to be used in a predetermined process by performing hierarchical clustering, which further divides each of the multiple clusters generated by the other clustering processes (step S103).

[0096] [2. Effects] As described above, the information processing device 100 according to the embodiment has an acquisition unit 131 and a processing unit (generation unit 132 in the embodiment). The acquisition unit 131 acquires object information indicating a plurality of objects to be clustered. The processing unit takes some of the plurality of objects as the object group at the start of processing and executes a clustering process multiple times to generate a plurality of clusters targeting the object group. If, in one clustering process, there is another clustering process executed before that clustering process, the processing unit generates clustering information indicating the clustering to be used in a predetermined process by hierarchical clustering, which further divides each of the plurality of clusters generated by the other clustering processes.

[0097] Thus, the information processing device 100 according to this embodiment can generate clustering information indicating the clustering to be used in a predetermined process by using hierarchical clustering, which generates multiple clusters targeting a group of objects, with some of the multiple objects to be clustered being used as the object group at the start of processing. Therefore, the information processing device 100 can enable appropriate clustering.

[0098] Furthermore, in the information processing device 100 according to the embodiment, the processing unit generates clustering information by executing clustering processing multiple times using a predetermined clustering method.

[0099] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by generating clustering information through multiple executions of clustering processing using a predetermined clustering method.

[0100] Furthermore, in the information processing device 100 according to the embodiment, the processing unit generates clustering information by performing clustering processing multiple times using a k-means method.

[0101] Thus, the information processing device 100 according to this embodiment can perform clustering processing multiple times using a k-means method to generate clustering information, thereby enabling appropriate clustering.

[0102] Furthermore, in the information processing device 100 according to the embodiment, the processing unit generates clustering information by increasing the number of objects in the object group and repeating the clustering process after the clustering process by adding objects that are not included in the object group from among the multiple objects to the object group.

[0103] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by generating clustering information after clustering processing by adding objects that are not included in the object group from among the multiple objects to the object group, increasing the number of objects in the object group, and repeating the clustering processing.

[0104] Furthermore, in the information processing device 100 according to the embodiment, the processing unit generates clustering information by repeating a clustering process that increases the number of objects until multiple objects are added to the object group.

[0105] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by repeatedly performing clustering processing with an increasing number of objects until multiple objects are added to the object group, thereby generating clustering information.

[0106] Furthermore, in the information processing device 100 according to the embodiment, the processing unit generates clustering information by executing clustering processing three times.

[0107] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by performing clustering processing three times and generating clustering information.

[0108] Furthermore, in the information processing device 100 according to the embodiment, the processing unit generates clustering information by performing a first clustering process on a group of objects to cluster them into a plurality of first clusters, a second clustering process to cluster each of the plurality of first clusters into a plurality of second clusters, and a third clustering process to cluster each of the plurality of second clusters into a plurality of third clusters.

[0109] In this way, the information processing device 100 according to the embodiment can perform a first clustering process, a second clustering process, and a third clustering process, and generate clustering information, thereby enabling appropriate clustering.

[0110] Furthermore, in the information processing device 100 according to the embodiment, the processing unit generates clustering information by performing a first clustering process on a first object group that includes some of the objects among a plurality of objects, performing a second clustering process on a second object group obtained by adding objects not included in the first object group to the first object group after the first clustering process, and performing a third clustering process on a third object group obtained by adding objects not included in the second object group to the second object group after the second clustering process.

[0111] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by adding objects and performing clustering each time a first clustering process, a second clustering process, and a third clustering process are performed, and by generating clustering information.

[0112] Furthermore, in the information processing device 100 according to the embodiment, the processing unit generates clustering information based on hierarchical clustering by a first clustering process, a second clustering process, and a third clustering process.

[0113] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by generating clustering information based on hierarchical clustering through the first clustering process, the second clustering process, and the third clustering process.

[0114] Furthermore, in the information processing device 100 according to the embodiment, the processing unit generates clustering information by executing a first clustering process that performs first-level clustering on a first group of objects, a second clustering process that performs second-level clustering (below the first level) on a second group of objects, and a third clustering process that performs third-level clustering (below the second level) on a third group of objects.

[0115] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by generating clustering information through hierarchical clustering based on a first clustering process, a second clustering process, and a third clustering process.

[0116] Furthermore, in the information processing device 100 according to the embodiment, the processing unit performs a first assignment process in which, in the second clustering process, each object added to the second object group is assigned to the corresponding first cluster among a plurality of first clusters.

[0117] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by performing a first assignment process in the second clustering process, which assigns each object added to the second object group to the corresponding first cluster among a plurality of first clusters.

[0118] Furthermore, in the information processing device 100 according to the embodiment, the processing unit executes a second cluster number determination process to determine the number of second clusters belonging to each first cluster, according to the number of objects belonging to each first cluster after the first allocation process.

[0119] Thus, the information processing device 100 according to the embodiment can enable appropriate clustering by executing a second cluster number determination process that determines the number of second clusters belonging to each first cluster according to the number of objects belonging to each first cluster after the first allocation process.

[0120] Furthermore, in the information processing device 100 according to the embodiment, the processing unit executes a second cluster number determination process that increases the number of second clusters belonging to each first cluster as the number of objects belonging to each first cluster increases.

[0121] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by executing a second cluster number determination process that increases the number of second clusters belonging to each first cluster as the number of objects belonging to each first cluster increases.

[0122] Furthermore, in the information processing device 100 according to the embodiment, the processing unit executes a second clustering process based on the number of second clusters belonging to each of the first clusters determined by the second cluster number determination process.

[0123] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by executing a second clustering process based on the number of second clusters belonging to each of the first clusters determined by the second cluster number determination process.

[0124] Furthermore, in the information processing device 100 according to this embodiment, the processing unit performs a second assignment process in which, in the third clustering process, each object added to the third object group is assigned to the corresponding second cluster among a plurality of second clusters.

[0125] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by performing a second assignment process in the third clustering process, which assigns each object added to the third object group to the corresponding second cluster among a plurality of second clusters.

[0126] Furthermore, in the information processing device 100 according to the embodiment, the processing unit executes a third cluster number determination process that determines the number of third clusters belonging to each second cluster according to the number of objects belonging to each second cluster after the second allocation process.

[0127] Thus, the information processing device 100 according to the embodiment can enable appropriate clustering by executing a third cluster number determination process that determines the number of third clusters belonging to each second cluster according to the number of objects belonging to each second cluster after the second allocation process.

[0128] Furthermore, in the information processing device 100 according to the embodiment, the processing unit executes a third cluster number determination process that increases the number of third clusters belonging to each second cluster as the number of objects belonging to each second cluster increases.

[0129] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by executing a third cluster number determination process that increases the number of third clusters belonging to each second cluster as the number of objects belonging to each second cluster increases.

[0130] Furthermore, in the information processing device 100 according to the embodiment, the processing unit executes a third clustering process based on the number of third clusters belonging to each of the second clusters determined by the third cluster number determination process.

[0131] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by executing a third clustering process based on the number of third clusters belonging to each of the second clusters determined by the third cluster number determination process.

[0132] Furthermore, in the information processing device 100 according to the embodiment, the acquisition unit 131 acquires object information indicating a plurality of objects that are the target of data retrieval. The processing unit generates clustering information indicating the clustering used in data retrieval.

[0133] Thus, the information processing device 100 according to this embodiment can enable appropriate clustering by generating clustering information that indicates the clustering used in data retrieval.

[0134] [3. Hardware Configuration] The information processing device 100 according to each embodiment described above is implemented by a computer 1000 having a configuration such as that shown in Figure 6. Figure 6 is a hardware configuration diagram showing an example of a computer that implements the functions of the information processing device. The computer 1000 has a CPU 1100, RAM 1200, ROM (Read Only Memory) 1300, HDD (Hard Disk Drive) 1400, communication interface (I / F) 1500, input / output interface (I / F) 1600, and media interface (I / F) 1700.

[0135] The CPU 1100 operates based on programs stored in the ROM 1300 or HDD 1400, controlling various components. The ROM 1300 stores boot programs executed by the CPU 1100 when the computer 1000 starts up, as well as programs that depend on the computer 1000's hardware.

[0136] The HDD1400 stores programs executed by the CPU1100, as well as data used by such programs. The communication interface1500 receives data from other devices via the network N and sends it to the CPU1100, and transmits data generated by the CPU1100 to other devices via the network N.

[0137] The CPU 1100 controls output devices such as displays and printers, and input devices such as keyboards and mice, via the input / output interface 1600. The CPU 1100 acquires data from input devices via the input / output interface 1600. The CPU 1100 also outputs the generated data to output devices via the input / output interface 1600.

[0138] The media interface 1700 reads a program or data stored in the recording medium 1800 and provides it to the CPU 1100 via the RAM 1200. The CPU 1100 loads the program from the recording medium 1800 onto the RAM 1200 via the media interface 1700 and executes the loaded program. The recording medium 1800 is, for example, an optical recording medium such as a DVD (Digital Versatile Disc) or PD (Phase Change Rewritable Disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.

[0139] For example, when computer 1000 functions as an information processing device 100 according to the embodiment, the CPU 1100 of computer 1000 realizes the functions of the control unit 130 by executing a program loaded on RAM 1200. The CPU 1100 of computer 1000 reads and executes these programs from the recording medium 1800, but as another example, these programs may be obtained from other devices via a network N.

[0140] Although some embodiments of the present invention have been described in detail above with reference to the drawings, these are illustrative examples, and the present invention can be implemented in various other forms with modifications and improvements based on the knowledge of those skilled in the art, starting with the embodiments described in the lines of disclosure of the invention.

[0141] [4. Other] Furthermore, among the processes described in the above embodiments, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically by known methods. In addition, the processing procedures, specific names, and various data and parameters shown in the above document and drawings can be changed at will unless otherwise specified. For example, the various information shown in each figure is not limited to the information shown.

[0142] Furthermore, the components of each illustrated device are functionally conceptual and do not necessarily need to be physically configured as shown. In other words, the specific forms of distribution and integration of each device are not limited to those shown, and all or part of them can be functionally or physically distributed and integrated in any unit according to various loads and usage conditions.

[0143] Furthermore, the processes described in each of the embodiments described above can be combined as appropriate, provided that the processing content is not contradictory.

[0144] Furthermore, the terms "section, module, unit" mentioned above can be replaced with "means" or "circuit." For example, the acquisition unit can be replaced with acquisition means or acquisition circuit. [Explanation of Symbols]

[0145] 1. Information Processing System 10 Terminal devices 50 Information provision device 100 Information Processing Devices 120 Storage section 121 Object Information Storage Unit 122 Clustering Information Storage Unit 123 Quantization information storage unit 124 Codebook Information Storage Unit 125 Graph Information Storage Unit 130 Control Unit 131 Acquisition Department 132 Generation Unit (Processing Unit) 133 Search Processing Unit 134 Provision Department

Claims

1. An acquisition unit that acquires object information indicating multiple objects that are the target of clustering, At the start of each clustering process that is repeatedly executed on a group of objects, a clustering process is executed that generates multiple clusters on the group of objects, with the addition of objects that have not been added to the group of objects. If, in one clustering process, there are other clustering processes that were executed before the first clustering process, a processing unit generates clustering information indicating the clustering to be used in a predetermined process by performing hierarchical clustering, which further divides each of the multiple clusters generated by the other clustering processes. An information processing device characterized by comprising:

2. The aforementioned processing unit, The clustering information is generated by executing the clustering process multiple times using a predetermined clustering method. The information processing apparatus according to feature 1.

3. The aforementioned processing unit, The clustering information is generated by performing the clustering process multiple times using a k-means method. The information processing apparatus according to feature 2.

4. The aforementioned processing unit, After the clustering process, the clustering information is generated by increasing the number of objects in the object group by adding objects that are not included in the object group to the object group, and repeating the clustering process. The information processing apparatus according to feature 1.

5. The aforementioned processing unit, The clustering process, in which the object group is increased, is repeated until no more objects of the multiple objects are added to the object group, thereby generating the clustering information. The information processing apparatus according to feature 4.

6. The aforementioned processing unit, The clustering information is generated by executing the clustering process three times. The information processing apparatus according to feature 1.

7. The aforementioned processing unit, The clustering information is generated by performing a first clustering process on the aforementioned group of objects to cluster them into multiple first clusters, a second clustering process to cluster each of the multiple first clusters into multiple second clusters, and a third clustering process to cluster each of the multiple second clusters into multiple third clusters. The information processing apparatus according to feature 1.

8. The aforementioned processing unit, The clustering information is generated by performing the first clustering process on a first object group that includes some of the objects from the plurality of objects mentioned above; performing the second clustering process on a second object group obtained by adding objects from the plurality of objects not included in the first object group to the first object group after the first clustering process; and performing the third clustering process on a third object group obtained by adding objects from the plurality of objects not included in the second object group to the second object group after the second clustering process. The information processing apparatus according to feature 7.

9. The aforementioned processing unit, The clustering information is generated based on the hierarchical clustering achieved by the first clustering process, the second clustering process, and the third clustering process. The information processing apparatus according to feature 8.

10. The aforementioned processing unit, The clustering information is generated by executing the first clustering process, which performs first-level clustering on the first group of objects; the second clustering process, which performs second-level clustering (below the first level) on the second group of objects; and the third clustering process, which performs third-level clustering (below the second level) on the third group of objects. The information processing apparatus according to feature 9.

11. The aforementioned processing unit, In the second clustering process, a first assignment process is performed to assign each object added to the second object group to the corresponding first cluster among the plurality of first clusters. The information processing apparatus according to feature 8.

12. The aforementioned processing unit, A second cluster number determination process is executed to determine the number of second clusters belonging to each of the first clusters, according to the number of objects belonging to each first cluster after the first allocation process. The information processing apparatus according to feature 11.

13. The aforementioned processing unit, The process for determining the number of second clusters is executed such that the number of second clusters belonging to each of the first clusters increases as the number of objects belonging to each of the first clusters increases. The information processing apparatus according to feature 12.

14. The aforementioned processing unit, The second clustering process is executed based on the number of second clusters belonging to each of the first clusters determined by the second cluster number determination process. The information processing apparatus according to feature 12.

15. The aforementioned processing unit, In the third clustering process, a second assignment process is performed to assign each object added to the third object group to the corresponding second cluster among the plurality of second clusters. The information processing apparatus according to feature 8.

16. The aforementioned processing unit, A third cluster number determination process is executed to determine the number of third clusters belonging to each of the second clusters, according to the number of objects belonging to each second cluster after the second allocation process. The information processing apparatus according to feature 15.

17. The aforementioned processing unit, The more objects there are in each of the second clusters, the more the third cluster number determination process is executed, which increases the number of third clusters belonging to each of the second clusters. The information processing apparatus according to feature 16.

18. The aforementioned processing unit, The third clustering process is executed based on the number of third clusters belonging to each of the second clusters determined by the third cluster number determination process. The information processing apparatus according to feature 16.

19. The acquisition unit is, Obtain object information indicating the multiple objects that are the target of the data search, The aforementioned processing unit, The clustering information that indicates the clustering used in the aforementioned data search is generated. The information processing apparatus according to feature 1.

20. A method of information processing performed by a computer, The acquisition process involves obtaining object information that indicates multiple objects to be clustered, At the start of each clustering process that is repeatedly executed on a group of objects, a clustering process is executed that generates multiple clusters on the group of objects, with the addition of objects that have not been added to the group of objects. If, in one clustering process, there are other clustering processes that were executed before the first clustering process, a hierarchical clustering process is performed to further divide each of the multiple clusters generated by the other clustering processes, thereby generating clustering information that indicates the clustering to be used in a predetermined process. An information processing method characterized by including

21. Procedure for obtaining object information that indicates multiple objects to be clustered, A processing procedure that, at the start of each clustering process that is repeatedly executed on a group of objects, executes a clustering process that generates multiple clusters on the group of objects, with the addition of objects that have not been added to the group of objects, and in one clustering process, if there are other clustering processes that were executed before the first clustering process, generates clustering information indicating the clustering to be used in a predetermined process by hierarchical clustering that further divides each of the multiple clusters generated by the other clustering processes, An information processing program characterized by causing a computer to execute it.

Citation Information

Patent Citations

  • Document generation device

    JP1998143517A

  • Document data clustering system

    JP2002183171A

  • Server, system and method for retrieving clustered vector data

    JP2007334402A

  • Generation device, generation method, and generation program

    JP2019049909A

  • Information processing device, information processing method, and information processing program

    JP7109522B2