Server, method, and non-transitory computer-readable recording medium for searching for vector
OwnerSeung Jae Lee, Hong Chan Roh +2inventors
InventorsSeung Jae Lee, Hong Chan Roh, Moo Hyeon Nam, Moo Kyoung Chung
Life of this patent
Estimating the term…
Abstract
Provided are a server, method, and computer-readable recording medium for searching for a vector. The method includes generating a vector index structure of data points, searching for a node similar to a query vector using the vector index structure, calculating a similarity between the node and the query vector, and updating the similarity by giving a weight to a vector index inflow time of the node.
Claims8
A method of searching for a vector by a server, the method comprising:
- generating a vector index structure of data points, wherein the vector index structure is expressed as a graph including nodes which represent feature values of the data points and edges which represent correlations between a plurality of nodes, and vector indexes corresponding to vectors of the data points are stored in a memory, and wherein the generating of the vector index structure comprises adding the vectors of the data points to the vector indexes and recording timestamps indicating times at which the vectors of the data points are added to the vector indexes such that the timestamps correspond to the vectors of the data points;
- and
- searching for a node similar to a query vector using the vector index structure,
- wherein the searching comprises calculating a similarity between each of the vectors of the nodes and the query vector by using a weight that changes according to a timestamp indicating a time when a vector of a data point among the data points is added to a corresponding vector index among the vector indexes,
- wherein the method further comprises allocating a memory space for the vector indexes stored in the memory, and
- wherein the allocating of the memory space comprises:
- calculating an importance of each of the nodes based on (i) a time that has elapsed since a last access time of a corresponding node of the nodes, (ii) a minimum number of hops from a starting node of the nodes, and (iii) a total number of accesses to the corresponding node of the nodes, and
- deleting a vector index of a node having an importance lower than an importance of another node among the nodes from the vector indexes stored in the memory based on the calculated importance of each of the nodes.
A server for searching for a vector, the server comprising:
- a communication unit configured to receive a query;
- and
- a processor,
- wherein the processor is configured to:
- generate a vector index structure of data points, wherein the vector index structure is expressed as a graph including nodes which represent feature values of the data points and edges which represent correlations between a plurality of nodes, and vector indexes corresponding to vectors of the data points are stored in a memory, and wherein the generating of the vector index structure comprises adding the vectors of the data points to the vector indexes and recording timestamps indicating times at which the vectors of the data points are added to the vector indexes such that the timestamps correspond to the vectors of the data points, and
- search for a node similar to a query vector using the vector index structure,
- wherein the searching comprises calculating a similarity between each of the vectors of the nodes and the query vector by using a weight that changes according to a timestamp indicating when a vector of a data point among the data points is added to a corresponding vector index among the vector indexes,
- wherein the processor is further configured to allocate a memory space for the vector indexes stored in the memory, and
- wherein the allocating of the memory space comprises:
- calculating an importance of each of the nodes based on (i) a time that has elapsed since a last access time of a corresponding node of the nodes, (ii) a minimum number of hops from a starting node of the nodes, and (iii) a total number of accesses to the corresponding node of the nodes, and
- deleting a vector index of a node having an importance lower than an importance of another node among the nodes from the vector indexes stored in the memory based on the calculated importance of each of the nodes.
A non-transitory computer-readable recording medium on which a computer program executed by a computer device is recorded, wherein the computer program comprises:
- generating a vector index structure of data points, wherein the vector index structure is expressed as a graph including nodes which represent feature values of the data points and edges which represent correlations between a plurality of nodes, and vector indexes corresponding to vectors of the data points are stored in a memory, and wherein the generating of the vector index structure comprises adding the vectors of the data points to the vector indexes and recording timestamps indicating times at which the vectors of the data points are added to the vector indexes such that the timestamps correspond to the vectors of the data points;
- and
- searching for a node similar to a query vector using the vector index structure,
- wherein the searching comprises calculating a similarity between each of the vectors of the nodes and the query vector by using a weight that changes according to a timestamp indicating a time when a vector of a data point among the data points is added to a corresponding vector index among the vector indexes,
- wherein the computer program further comprises allocating a memory space for the vector indexes stored in the memory, and
- wherein the allocating of the memory space comprises:
- calculating an importance of each of the nodes based on (i) a time that has elapsed since a last access time of a corresponding node of the nodes, (ii) a minimum number of hops from a starting node of the nodes, and (iii) a total number of accesses to the corresponding node of the nodes, and
- deleting a vector index of a node having an importance lower than an importance of another node among the nodes from the vector indexes stored in the memory based on the calculated importance of each of the nodes.
Dependencies are inferred from the claim text.