Information processing device, information processing method, and program

The information processing device and method address the inefficiency of existing vector similarity techniques by employing single-variable term calculations and candidate selection to reduce computational cost and improve efficiency in identifying similar vectors.

JP2026115546APending Publication Date: 2026-07-09NEC CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024232322
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-12-27
Publication Date
2026-07-09

AI Technical Summary

Technical Problem

Existing techniques for finding similar vectors are computationally costly and inefficient when the elements constituting a query are not known in advance, limiting their applicability in diverse scenarios.

Method used

An information processing device and method that employs single-variable term calculation, first range calculation, candidate selection, and identification processes to reduce computational cost by narrowing down candidate vectors without requiring multi-variable term calculations.

Benefits of technology

Reduces the computational cost of finding similar vectors by effectively narrowing down candidate vectors using single-variable terms, improving efficiency and reducing the need for large sample sizes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026115546000001_ABST
    Figure 2026115546000001_ABST
Patent Text Reader

Abstract

This reduces the computational cost of finding vectors similar to a given vector. [Solution] The information processing device comprises: a single-variable term calculation unit that calculates a single-variable term that depends on either the candidate vector or the input vector and does not depend on the other, among a plurality of terms for calculating the similarity with the input vector for each of a plurality of candidate vectors that are candidates for similar vectors similar to the input vector; a first range calculation unit that calculates a first range in which the similarity can take based on the single-variable term for each of the plurality of candidate vectors; a candidate selection unit that selects one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range; and a specification unit that identifies a similar vector from the selected one or more candidate vectors.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

Background Art

[0002] Patent Document 1 describes a technique for searching for a feature vector of a retrieved document similar to the feature vector of a search term from a set of retrieved documents. In this technique, the similarity between the feature vector of a word and the feature vector of a retrieved document is calculated in advance, and the similarity between the feature vector of a search term and the feature vector of a retrieved document is calculated by a weighted sum of the similarities calculated in advance for each word constituting the search term.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] Although the technique described in Patent Document 1 reduces the calculation cost related to search, it is premised on the fact that elements (e.g., words) that can constitute a query (e.g., a search term) are known in advance. Therefore, it cannot be applied to cases where it is difficult to assume in advance the elements that can constitute a query. Therefore, there is a need for a technique that reduces the calculation cost for discovering vectors similar to a specified vector in more diverse cases.

[0005] The present disclosure has been made in view of the above problems, and an exemplary object thereof is to provide a technique for reducing the calculation cost for discovering a vector similar to a specified vector.

Means for Solving the Problems

[0006] An information processing device relating to an exemplary aspect of this disclosure includes: a single-variable term calculation means for calculating a single-variable term that depends on either the candidate vector or the input vector and does not depend on the other, among a plurality of terms for calculating the similarity with the input vector for each of a plurality of candidate vectors that are candidates for similar vectors similar to the input vector; a first range calculation means for calculating a first range that the similarity can take based on the single-variable term for each of the plurality of candidate vectors; a candidate selection means for selecting one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range; and a identification means for identifying the similar vector from the selected one or more candidate vectors.

[0007] An information processing method relating to an exemplary aspect of this disclosure includes: a single-variable term calculation process in which at least one processor calculates a single-variable term that depends on either the candidate vector or the input vector and does not depend on the other, from among a plurality of terms for calculating the similarity with the input vector for each of a plurality of candidate vectors that are candidates for similar vectors similar to the input vector; a first range calculation process in which the at least one processor calculates a first range that the similarity can take based on the single-variable term for each of the plurality of candidate vectors; a candidate selection process in which the at least one processor selects one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range; and a identification process in which the at least one processor identifies the similar vector from the selected one or more candidate vectors.

[0008] An exemplary aspect of the present disclosure is a program that causes a computer to function as an information processing device, the program comprising: a single-variable term calculation means for calculating a single-variable term that depends on either the candidate vector or the input vector and does not depend on the input vector, among a plurality of terms for calculating the similarity between each of a plurality of candidate vectors that are candidates for similar vectors similar to the input vector; a first range calculation means for calculating a first range that the similarity can take based on the single-variable term for each of the plurality of candidate vectors; a candidate selection means for selecting one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range; and a identification means for identifying the similar vector from the selected one or more candidate vectors. [Effects of the Invention]

[0009] One exemplary aspect of this disclosure is that it can provide a technique for reducing the computational cost of finding vectors similar to a given vector. [Brief explanation of the drawing]

[0010] [Figure 1] This is a block diagram showing the configuration of the information processing device related to this disclosure. [Figure 2] This is a flowchart showing the flow of the information processing method related to this disclosure. [Figure 3] This is a block diagram showing the configuration of the information processing device related to this disclosure. [Figure 4] This is a flowchart showing the flow of the information processing method related to this disclosure. [Figure 5] This diagram schematically illustrates the process of narrowing down the candidate vectors related to this disclosure. [Figure 6] This figure schematically shows an example of a marginal contribution vector related to this disclosure. [Figure 7] This block diagram shows the hardware configuration of the computer that functions as each device related to this disclosure. [Modes for carrying out the invention]

[0011] The following are examples of embodiments of the present invention. However, the present invention is not limited to the exemplary embodiments shown below, and various modifications are possible within the scope of the claims. For example, embodiments obtained by appropriately combining some or all of the technologies (things or methods) employed in each of the exemplary embodiments shown below may also be included in the scope of the present invention. Furthermore, embodiments obtained by appropriately omitting some of the technologies employed in each of the exemplary embodiments shown below may also be included in the scope of the present invention. In addition, the effects mentioned in each of the exemplary embodiments shown below are examples of effects that can be expected in that exemplary embodiment and do not define the scope of the present invention. That is, embodiments that do not produce the effects mentioned in each of the exemplary embodiments shown below may also be included in the scope of the present invention.

[0012] [First Exemplary Embodiment] A first exemplary embodiment, which is an example of an embodiment of the present invention, will be described in detail with reference to the drawings. This exemplary embodiment is the basic form for each of the exemplary embodiments described later. The scope of application of each technology adopted in this exemplary embodiment is not limited to this exemplary embodiment. That is, each technology adopted in this exemplary embodiment can also be adopted in other exemplary embodiments included in this disclosure, to the extent that no particular technical problems occur. Furthermore, each technology shown in the drawings referenced to explain this exemplary embodiment can also be adopted in other exemplary embodiments included in this disclosure, to the extent that no particular technical problems occur.

[0013] (Overview of Information Processing Device 1) The information processing device 1 is a device that identifies a similar vector to an input vector from among a plurality of candidate vectors. The similar vector may be the candidate vector most similar to the input vector, but it does not necessarily have to be the most similar candidate vector. For example, the similar vector may be a candidate vector that satisfies similarity conditions to be considered to have a sufficiently high degree of similarity to the input vector. Furthermore, there is no limit to one similar vector that can be identified; multiple similar vectors may be identified.

[0014] Furthermore, as a measure of similarity, you may use an index where a larger value indicates greater similarity (e.g., the dot product), or an index where a smaller value indicates greater similarity (e.g., the Euclidean distance). In the following, regardless of which index is used, greater similarity will be described as "high similarity," and less similarity will be described as "low similarity." In other words, when using the dot product as a measure of similarity, a larger dot product indicates higher similarity, and a smaller dot product indicates lower similarity. Similarly, when using the Euclidean distance as a measure of similarity, a smaller Euclidean distance indicates higher similarity, and a larger Euclidean distance indicates lower similarity.

[0015] (Configuration of Information Processing Device 1) The configuration of the information processing device 1 will be explained with reference to Figure 1. Figure 1 is a block diagram showing the configuration of the information processing device 1. As shown in Figure 1, the information processing device 1 includes a single-variable term calculation unit 11, a first range calculation unit 12, a candidate selection unit 13, and a specification unit 14. The single-variable term calculation unit 11 is an example of a configuration that realizes the single-variable term calculation means. The first range calculation unit 12 is an example of a configuration that realizes the first range calculation means. The candidate selection unit 13 is an example of a configuration that realizes the candidate selection means. The specification unit 14 is an example of a configuration that realizes the specification means.

[0016] The single-variable term calculation unit 11 calculates a single-variable term among a plurality of terms for calculating the similarity between each of a plurality of candidate vectors that are candidates for similar vectors to the input vector, which depends on either the candidate vector or the input vector but not on the other. Here, the similarity between each candidate vector and the input vector can be calculated using a plurality of terms, including single-variable terms and multi-variable terms. A single-variable term is a term that depends on either the candidate vector or the input vector but not on the other. A multi-variable term is a term that depends on both the candidate vector and the input vector.

[0017] The first range calculation unit 12 calculates, for each of a plurality of candidate vectors, a first range in which the similarity can be obtained based on single-variable terms. Here, as described above, the similarity between each candidate vector and the input vector is calculated using a plurality of terms including single-variable terms and multi-variable terms. Therefore, when the single-variable terms are obtained, the first range in which the similarity can be obtained can be calculated based on the range in which the multi-variable terms can be obtained. Also, the range in which the multi-variable terms can be obtained can be calculated based on the single-variable terms. Note that the first range indicates, for example, the range of similarity defined by an upper bound and a lower bound. The upper bound indicates the highest value that the similarity can take. The lower bound indicates the lowest value that the similarity can take. Note that the first range calculation unit 12 does not necessarily need to calculate both the upper bound and the lower bound for all the candidate vectors. For example, for some of the candidate vectors, only the upper bound may be calculated, and for some other candidate vectors, only the lower bound may be calculated.

[0018] The candidate selection unit 13 selects one or more candidate vectors from among a plurality of candidate vectors based on the first range. For example, the candidate selection unit 13 may select one or more candidate vectors whose upper bounds of the first range are greater than or equal to a threshold value, where the threshold value is the lower bound of the candidate vector having the highest lower bound among the plurality of candidate vectors. Note that the lower bound used as the threshold value for selection is not limited to the highest lower bound, and may be, for example, the lower bound of an arbitrary rank (e.g., the second rank etc.) counted from the higher ones. Also, the object to be compared with the threshold value is not limited to the upper bound, and may be, for example, a value obtained by adding or subtracting the magnitude of the estimated error with respect to the upper bound to or from the upper bound. In this way, based on the first range, the candidates for the similar vector similar to the input vector are narrowed down from "a plurality of candidate vectors" to "one or more selected candidate vectors".

[0019] The specifying unit 14 specifies a similar vector from the one or more selected candidate vectors. For example, the specifying unit 14 may specify the similar vector using a known technique for specifying a similar vector similar to the input vector from among a plurality of candidate vectors.

[0020] (Effect of the information processing apparatus 1) As described above, the information processing device 1 employs a configuration that includes: a single-variable term calculation unit 11 that calculates a single-variable term that depends on either the candidate vector or the input vector and does not depend on the other, among a plurality of terms for calculating the similarity with the input vector for each of a plurality of candidate vectors that are candidates for similar vectors similar to the input vector; a first range calculation unit 12 that calculates a first range in which the similarity can take based on the single-variable term for each of the plurality of candidate vectors; a candidate selection unit 13 that selects one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range; and a specification unit 14 that identifies a similar vector from the selected one or more candidate vectors.

[0021] Here, the computational cost of single-variable terms can be easily reduced compared to the computational cost of multi-variable terms. For example, if multiple candidate vectors are known in advance, the single-variable terms that depend on each candidate vector can be calculated beforehand. Also, the computational cost of single-variable terms that depend on the input vector does not depend on the number of candidate vectors. On the other hand, the computational cost of multi-variable terms cannot be calculated in advance and depends on the number of candidate vectors, making it difficult to reduce. According to the information processing device 1, since the candidate similar vectors can be narrowed down by calculating single-variable terms without calculating multi-variable terms, the computational cost of finding vectors similar to a specified vector can be reduced.

[0022] (Information processing method S1 flow) The flow of the information processing method S1 will be explained with reference to Figure 2. Figure 2 is a flowchart showing the flow of the information processing method S1. As shown in Figure 2, the information processing method S1 includes a single-variable term calculation process S11, a first range calculation process S12, a candidate selection process S13, and a specific process S14.

[0023] In the single-variable term calculation process S11, at least one processor (for example, the single-variable term calculation unit 11) calculates a single-variable term from among a plurality of terms for calculating the similarity with the input vector for each of a plurality of candidate vectors that are candidates for similar vectors similar to the input vector, which in turn depends on either the candidate vector or the input vector but not on the other.

[0024] In the first range calculation process S12, at least one processor (e.g., the first range calculation unit 12) calculates a first range of similarity that can be taken for each of the multiple candidate vectors based on a single variable term.

[0025] In the candidate selection process S13, at least one processor (for example, the candidate selection unit 13) selects one or more candidate vectors from a portion of a plurality of candidate vectors based on a first range.

[0026] In the specific processing S14, at least one processor (for example, the identification unit 14) identifies similar vectors from one or more selected candidate vectors.

[0027] (Effects of information processing method S1) As described above, the information processing method S1 employs a configuration that includes: a single-variable term calculation process S11 in which at least one processor calculates a single-variable term that depends on either the candidate vector or the input vector and does not depend on the other, among a plurality of terms for calculating the similarity with the input vector for each of a plurality of candidate vectors that are candidates for similar vectors similar to the input vector; a first range calculation process S12 in which at least one processor calculates a first range that the similarity can take for each of the plurality of candidate vectors based on the single-variable term; a candidate selection process S13 in which at least one processor selects one or more candidate vectors from a subset of the plurality of candidate vectors based on the first range; and a identification process S14 in which at least one processor identifies a similar vector from the selected one or more candidate vectors. Therefore, the same effect as the information processing device 1 can be obtained with the information processing method S1.

[0028] [Second exemplary embodiment] A second exemplary embodiment, which is an example of an embodiment of the present invention, will be described in detail with reference to the drawings. Components having the same function as those described in the above-described exemplary embodiment are denoted by the same reference numerals, and their descriptions are omitted as appropriate. The scope of application of each technology adopted in this exemplary embodiment is not limited to this exemplary embodiment. That is, each technology adopted in this exemplary embodiment can also be adopted in other exemplary embodiments included in this disclosure, to the extent that no particular technical problems arise. Furthermore, each technology shown in the drawings referenced to describe this exemplary embodiment can also be adopted in other exemplary embodiments included in this disclosure, to the extent that no particular technical problems arise.

[0029] (Overview of Information Processing Device 1A) Information processing device 1A, like information processing device 1, is a device that identifies a similar vector to the input vector from among multiple candidate vectors. For example, the processing by information processing device 1A can be expressed as shown in equation (1) below.

number

[0030] In equation (1), q represents the input vector. The input vector q is a real-valued vector of length d (number of dimensions). v_i represents a candidate vector that is similar to the input vector q. i is an index that identifies the candidate vector and is one of 1, 2, ..., n. The candidate vector v_i is a real-valued vector of length d (number of dimensions). f is a function that returns the similarity between the input vector q and the candidate vector v_i. i^* indicates the index of the candidate vector identified as a similar vector.

[0031] Note that equation (1) is just one example, and the information processing device 1A is not necessarily limited to selecting the candidate vector with the highest similarity as the similar vector, as in equation (1). It may also select candidate vectors that satisfy the predetermined similarity conditions as the similar vectors. Furthermore, the number of similar vectors identified by the information processing device 1A may be one or multiple.

[0032] (BanditMIPS) Information processing device 1A performs processing that is an improved version of BanditMIPS. BanditMIPS is an example of a technique for identifying similar vectors that are similar to an input vector. BanditMIPS is a method that applies the multi-armed bandit problem (best arm identification) to the Maximum Inner Product Search (MIPS) problem. In BanditMIPS, the inner product of the input vector and the candidate vector (an example of similarity) is considered to be the expected value of the product of random variables. This makes it possible to apply the multi-armed bandit problem, which selects the arm that maximizes the expected value of the reward, to the problem of finding candidate vectors with high similarity. Multiple candidate vectors correspond to multiple arms.

[0033] For example, if we use the dot product as the measure of similarity, the similarity can be expressed as the expected value of the random variables, as shown in equation (2) below.

number

[0034] In BanditMIPS, the range of possible similarities between each candidate vector and the input vector (the confidence interval for the expected reward) is calculated by sampling elements from each candidate vector in the candidate list S. Based on this calculated range, one or more candidate vectors are selected from the candidate list S, and all other candidate vectors are excluded, updating the candidate list S. Next, new elements are sampled from each candidate vector and the input vector in the updated candidate list S, updating the range of possible similarities between each candidate vector and the input vector. Based on this updated range, one or more candidate vectors are selected from the candidate list S, and all other candidate vectors are excluded, updating the candidate list S. In this way, the candidate list S is repeatedly updated while new elements are sampled, and when the number of candidate vectors in the candidate list S falls below a threshold (e.g., one), that candidate vector is identified as a similar vector. In BanditMIPS, it is assumed that the inner product follows a sub-Gaussian distribution. To run BanditMIPS, the parameters σ and δ must be specified. The parameter σ represents the magnitude of variability in the Sub-Gaussian distribution and is equivalent to the standard deviation in a normal distribution. The parameter δ indicates the upper limit of the probability of failing to find the vector with the maximum inner product; a smaller value makes the result more certain but increases the number of trials.

[0035] (Challenges of BanditMIPS) BanditMIPS has a problem in that it takes a long time to search because it requires a large number of samples (sampled elements) before it can calculate the range of similarity that each candidate vector and the input vector can take (confidence interval of the expected value of the reward). The main reason why a large number of samples are needed is that the size of the dot product cannot be determined until the number of samples exceeds a certain level. In other words, when the number of samples is small, it is not possible to find an effective range that can narrow down the candidate list S. Information processing device 1A is an embodiment that solves this problem of BanditMIPS and can effectively narrow down candidate vectors without requiring a large number of samples. As a result, information processing device 1A reduces the computational cost required to identify similar vectors that are similar to the input vector.

[0036] (Configuration of Information Processing Device 1A) The configuration of the information processing device 1A will be explained with reference to Figure 3. Figure 3 is a block diagram showing the configuration of the information processing device 1A. As shown in Figure 3, when the information processing device 1A receives an input vector (q), it outputs a similar vector (v_i^*) or an identifier (i^*) of the similar vector. The information processing device 1A also includes a control unit 110 and a storage unit 120. The control unit 110 controls all parts of the information processing device 1A. The storage unit 120 stores various data and programs used by the control unit 110.

[0037] Furthermore, the information processing device 1A may incorporate an input unit, an output unit, and a communication unit (not shown), or may be connected to peripheral devices that function as these units. The input unit may consist of, for example, a mouse, a keyboard, a touch panel, or a microphone, but is not limited to these. The output unit may consist of, for example, a display, a touch panel, or a speaker, but is not limited to these. The communication unit may consist of, for example, a network interface, but is not limited to these.

[0038] The control unit 110 includes, in addition to the single-variable term calculation unit 11, first range calculation unit 12, candidate selection unit 13, and identification unit 14 provided by the information processing device 1, a second range calculation unit 15 and a division unit 16. The second range calculation unit 15 is an example of a configuration that realizes the second range calculation means. The division unit 16 is an example of a configuration that realizes the division means. The storage unit 120 stores the candidate vector v_i. Note that, instead of or in addition to being stored in the storage unit 120, the candidate vector v_i may be stored in an external device that is communicatively connected to the information processing device 1.

[0039] (Single-variable term calculation unit 11) The single-variable term calculation unit 11 is configured in the same manner as in the exemplary embodiment 1, and is configured as follows: The single-variable term calculation unit 11 includes a first single-variable term calculation unit 111 and a second single-variable term calculation unit 112.

[0040] The first single-variable term calculation unit 111 pre-calculates the first single-variable term, which depends on each candidate vector and does not depend on the input vector. For example, an example of the first single-variable term is the expected value, variance, etc., of a random variable (or a power of the random variable) that can be calculated by treating the elements of the candidate vector as random variables. Alternatively, the first single-variable term may be a term obtained by performing a predetermined operation (e.g., a constant multiplication) using one or both of the expected value and variance. However, the first single-variable term is not limited to the examples described above. The second single-variable term calculation unit 112 calculates the second single-variable term, which depends on the input vector and does not depend on each candidate vector, according to the input of the input vector. For example, an example of the second single-variable term is the expected value, variance, etc., of a random variable (or a power of the random variable) that can be calculated by treating the elements of the input vector as random variables. Alternatively, the second single-variable term may be a term obtained by performing a predetermined operation (e.g., a constant multiplication) using one or both of the expected value and variance. However, the first unvariable term is not limited to the examples given above.

[0041] Here, the expected value E[QV_i] shown to be equivalent to the example of similarity in equation (2) can be decomposed into multiple terms, including unvariable and multivariable terms, as shown in equation (3).

number

number

number

[0042] In equation (3), Var represents the variance. Var[Q-V_i] is an example of a multivariable term that depends on both the input vector q and the candidate vector v_i. E[Q^2], E[V_i^2], E[Q], and E[V_i] are examples of unvariable terms that depend on either the input vector q or the candidate vector v_i, but not on the other.

[0043] Among these single-variable terms, the single-variable terms E[V_i^2] and E[V_i] are examples of first single-variable terms that depend on the candidate vector v_i but not on the input vector q. The first single-variable term calculation unit 111 pre-calculates these first single-variable terms for each candidate vector v_i stored in the storage unit 120 and stores them in the storage unit 120. In addition, the first single-variable term calculation unit 111 pre-calculates the first single-variable term Var[V_i] (details described later) for each candidate vector v_i for calculating the first range and stores it in the storage unit 120. Since the first single-variable terms can be used in common for any input vector, they only need to be calculated once in advance, contributing to a reduction in computational cost.

[0044] Furthermore, among these single-variable terms, the single-variable terms E[Q^2] and E[Q] are examples of second single-variable terms that depend on the input vector q but not on the candidate vector v_i. The second single-variable term calculation unit 112 calculates these second single-variable terms in response to the input vector q and stores them in the storage unit 120. The second single-variable term calculation unit 112 also calculates the second single-variable term Var[Q] (details described later) for calculating the first range in response to the input vector q and stores it in the storage unit 120. The second single-variable terms only need to be calculated once in response to the input vector, and their calculation cost does not depend on the number of candidate vectors. Therefore, calculating the second single-variable terms in response to the input vector contributes to reducing the calculation cost.

[0045] Note that similarity is not limited to the inner product. For example, even when using the Euclidean distance as the measure of similarity, the Euclidean distance can be decomposed into multiple terms, including single-variable and multi-variable terms, as shown in equation (6) below.

number

[0046] In equation (6), Var[Q-V_i] is an example of a multivariable term that depends on both the input vector q and the candidate vector v_i. E[Q] and E[V_i] are examples of unvariable terms that depend on one of the input vector q and the candidate vector v_i, but not on the other. Of these unvariable terms, E[V_i] is an example of a first unvariable term, which is pre-calculated by the first unvariable term calculation unit 111 and stored in the storage unit 120. E[Q] is an example of a second unvariable term, which is calculated by the second unvariable term calculation unit 112 according to the input of the input vector q and stored in the storage unit 120. Although the information processing device 1A can operate when either the dot product or the Euclidean distance is used as the similarity measure, the following explanation will focus on the example where the dot product is used as the similarity measure.

[0047] Furthermore, if the input vector and each candidate vector are divided into multiple groups by the splitting unit 16 described later, the single-variable term calculation unit 11 calculates the single-variable term for each group of each candidate vector and each group of the input vector.

[0048] For example, the first single-variable term calculation unit 111 pre-calculates the first single-variable term for each group of candidate vectors. The first single-variable term for each group of candidate vectors is similarly explained by replacing "candidate vector" in the above explanation of the first single-variable term with "candidate subvector" consisting of elements included in that group.

[0049] Furthermore, for example, the second unvariable term calculation unit 112 calculates the second unvariable term for each group of input vectors. The second unvariable term for each group of input vectors is similarly explained by replacing "input vector" in the above-mentioned explanation and formula for the second unvariable term with "input subvector" consisting of the elements included in that group.

[0050] (First range calculation unit 12) The first range calculation unit 12 is configured in the same manner as in the exemplary embodiment 1, and is configured as follows. The first range calculation unit 12 calculates the first range by calculating the range that the multivariable term can take based on the single-variable term for each of the multiple candidate vectors. For example, the range that the multivariable term Var[Q-V_i] in equation (3) can take can be calculated using the following equation (7) based on the single-variable terms Var[Q] and Var[V_i].

number

[0051] In equation (7), Var[Q] is the second single variable term, and as mentioned above, it is calculated by the second single variable term calculation unit 112 according to the input vector q. Var[V_i] is the first single variable term, and as mentioned above, it is pre-calculated for the candidate vector v_i by the first single variable term calculation unit 111. Here, equation (7) is proven as follows.

number

number

[0052] Thus, by applying the range of possible values ​​of the multivariable term shown in equation (7) to equation (3) above, which decomposes the expected value E[QV_i] into a single-variable term and a multivariable term, the first range of the expected value E[QV_i] (i.e., equivalent to an example of similarity) can be calculated. This first range can be obtained without requiring a large number of samples. Therefore, the computational cost for narrowing down candidate vectors can be reduced.

[0053] Furthermore, if the input vector and each candidate vector are divided into multiple groups by the division unit 16 described later, the first range calculation unit calculates the first range for each group of each candidate vector based on the single variable term. For example, the first range for each group can be similarly explained in the above explanation of the first range by replacing the input vector and candidate vector with input subvectors and candidate subvectors.

[0054] (Candidate selection section 13) The candidate selection unit 13 is configured in the same manner as in Exemplary Embodiment 1, and is configured as follows: The candidate selection unit 13 selects one or more candidate vectors from a subset of multiple candidate vectors based on a second range. Here, the second range is the range of similarity that can take, calculated based on at least a portion of the multivariable terms and the first range, and will be described in detail later. In other words, since the second range is calculated based on the first range, selecting one or more candidate vectors based on the second range is an example of selecting based on the first range. Here, the first range calculated by the single-variable terms and the second range calculated by further considering the multivariable terms in addition to the first range may be different. Because new information derived from the multivariable terms is added in addition to the information derived from the first range, the second range may be narrower than the first range.

[0055] For example, the candidate selection unit 13 may select one or more candidate vectors whose upper bound in the second range is equal to or greater than the lower bound of the candidate vector with the highest lower bound in the second range, using that lower bound as a threshold. Note that the lower bound used as the threshold for selection and the variations of the object to be compared with the threshold are the same as those of the candidate selection unit 13 in Exemplary Embodiment 1, so a detailed explanation will not be repeated.

[0056] In this way, based on the second range, the candidates for similar vectors to the input vector are narrowed down from "multiple candidate vectors" to "one or more selected candidate vectors." Hereafter, "multiple candidate vectors" will also be referred to as the candidate list. The candidate selection unit 13 updates the candidate list by removing the candidate vectors that were not selected from the candidate list. In other words, "one or more selected candidate vectors" corresponds to the updated candidate list. Since the second range is also updated when the candidate list is updated, the candidate selection unit 13 repeatedly updates the candidate list based on the updated second range.

[0057] Furthermore, if the input vector and each candidate vector are divided into multiple groups by the division unit 16 described later, the candidate selection unit 13 selects one or more candidate vectors from a portion of the multiple candidate vectors based on a first range for each group of each candidate vector. More specifically, for example, the candidate selection unit 13 may select the one or more candidate vectors based on a second range for each group of each candidate vector. Here, as will be described in detail later, the second range for each group of each candidate vector is calculated based on the first range of that group of candidate vectors and at least some multivariable terms. Therefore, selecting one or more candidate vectors from a portion of the multiple candidate vectors based on a second range for each group of each candidate vector is one example of selecting based on a first range for each group of each candidate vector.

[0058] (Specific part 14) The identification unit 14 is configured in the same manner as in the exemplary embodiment 1, and is configured as follows: When the number of candidate vectors selected by the candidate selection unit 13 (i.e., the number of candidate vectors included in the candidate list) falls below a threshold, the identification unit 14 identifies the one or more candidate vectors as similar vectors. If the threshold is 1, one similar vector is identified; if it is 2 or more, multiple similar vectors may be identified.

[0059] (Second range calculation unit 15) The second range calculation unit 15 calculates, for each of the multiple candidate vectors, at least a portion of the multivariable terms from the above-mentioned multiple terms that depend on both the candidate vector and the input vector, and calculates a second range that the similarity can take based on the at least portion of the multivariable terms and the first range.

[0060] For example, the second range calculation unit 15 calculates the second range by calculating at least a portion of the multivariable term for each of the multiple candidate vectors based on elements sampled from the candidate vector and the input vector, respectively. For example, the second range calculation unit 15 may calculate the second range based on at least a portion of the multivariable term calculated based on the sampled elements and the first range. As a result, the candidate selection unit 13, as described above, selects one or more candidate vectors from the multiple candidate vectors based on the second range, and updates the candidate list. Then, the second range calculation unit 15 updates the second range by further updating at least a portion of the multivariable term for each of the selected one or more candidate vectors (in other words, each candidate vector included in the updated candidate list) based on elements newly sampled from the candidate vector and the input vector, respectively. As a result, it is expected that a narrower range will be calculated as the second range than the range calculated previously, due to the increase in the number of element samples.

[0061] Here, an example of "a method for calculating the second range based on at least some of the multivariable terms and the first range" is to "calculate the third range based on at least some of the multivariable terms and set the overlapping portion of the first and third ranges as the second range." For example, the second range calculation unit 15 may set the lower of the upper boundary of the first range and the upper boundary of the third range as the upper boundary of the second range, and the higher of the lower boundary of the first range and the lower boundary of the third range as the lower boundary of the second range.

[0062] Known techniques may be applied to the process of calculating the third range based on at least some of the multivariable terms, and as an example, we will continue by describing the case where a method of sampling elements, similar to BanditMIPS, is applied.

[0063] For example, the second range calculation unit 15 may calculate the third range by calculating at least a portion of the multivariable term for each of the multiple candidate vectors based on elements sampled from the candidate vector and the input vector, respectively. This may result in the calculation of a second range where the first and third ranges overlap. Based on this second range, one or more candidate vectors are selected from the multiple candidate vectors, and the candidate list is updated. The second range calculation unit 15 may then update the third range by further updating at least a portion of the multivariable term for each of the selected one or more candidate vectors (in other words, each candidate vector included in the updated candidate list) based on newly sampled elements from the candidate vector and the input vector, respectively. This is expected to result in a third range that is narrower than the range calculated previously, as the number of element samples increases.

[0064] Thus, while the third range is expected to become more accurate with increasing sampling counts, it is likely that it will not be narrow enough to effectively narrow down candidate vectors until a certain number of samples have been taken. On the other hand, the first range, which can be calculated in advance, is expected to be narrow enough to effectively narrow down candidate vectors. Therefore, in the initial stages with a small number of samples, the first range is likely to be adopted as the second range, and as the number of samples increases, the third range is likely to be reflected in the second range. Consequently, by updating the candidate list using the second range which overlaps with the first and third ranges, it is possible to effectively narrow down candidate vectors from the initial stages with a small number of samples, and to narrow down candidate vectors with increasing accuracy as the number of samples increases.

[0065] Up to this point, we have described a method of calculating a third range separately from the first range, and then calculating the second range from the first and third ranges, but this method is not limited to this. For example, the second range calculation unit 15 may directly calculate the second range based on the sampled elements and the first range without calculating the third range. For example, a prior distribution that takes the first range into account may be set, the sampled elements may be used as observed values ​​to calculate the posterior distribution based on Bayesian estimation, and the second range may be calculated from the posterior distribution. Specifically, the following method can be used. Let the multivariable term to be estimated be Var[Q-V_i]. Based on the first range, a prior distribution (e.g., a scaled beta distribution) that shows the range of values ​​that the multivariable term can take is set. Then, when Q is a random variable representing the value sampled from the input vector and V_i is a random variable representing the value sampled from the candidate vector, a probability distribution (e.g., a normal distribution) that Q-V_i follows is set, and it is assumed that the variance of this probability distribution follows the prior distribution. A new posterior distribution is calculated based on Bayesian estimation using the sampled elements as observed values. If the posterior distribution cannot be determined analytically, it may be approximated using methods such as variational Bayes. From the posterior distribution thus calculated, a confidence interval is found, which is the range of values ​​that Var[Q-V_i] can take, and the second range is calculated from this confidence interval. With this method, the second range can be calculated directly based on the sampled elements and the first range without calculating the third range.

[0066] Furthermore, if the input vector and each candidate vector are divided into multiple groups by the division unit 16 described later, the second range calculation unit 15 may calculate the second range for each group of each candidate vector. Here, the second range for each group of each candidate vector can be calculated, for example, by calculating at least a portion of the multivariable term for that group of candidate vectors, and based on that at least portion of the multivariable term and the first range calculated for that group of candidate vectors. Alternatively, the second range calculation unit 15 may calculate the second range for each candidate vector by integrating the second ranges calculated for each group of candidate vectors. When integrating the second ranges of each group, each group may be weighted.

[0067] Furthermore, if the input vector and each candidate vector are divided into multiple groups, instead of merging the second ranges of each group to find the second range of the candidate vector, the first and third ranges of each group may be merged. In this case, the overlapping range of the first range of the candidate vector (formed by merging the first ranges of each group) and the third range of the candidate vector (formed by merging the third ranges of each group) may be calculated as the second range of the candidate vector.

[0068] (Divided part 16) The splitting unit 16 divides the elements of each candidate vector and the elements of the input vector into multiple groups. For example, when the elements of the input vector and candidate vector have different distributions, it is conceivable to divide them into multiple groups, with elements having similar distributions forming one group. Since the elements included in each group have similar distributions, a narrower first range is obtained for each group. As a result, the candidate vectors can be narrowed down even more effectively.

[0069] Furthermore, for example, the single-variable term calculation unit 11 may divide the elements of each candidate vector and the elements of the input vector into multiple groups based on division information that specifies the division of groups. The division information may include information that specifies the number of groups and the size of each group, and can be expressed, for example, by the following equation (10).

number

number

[0070] In equation (10), d^Group is an example of partitioning information, represented by a vector whose elements are the size d_g of each group (where g is 1, 2, ..., G). The number of elements, G, indicates the number of groups. For example, consider a case where the dimension d of the input vector and candidate vector is 12, and d^Group = [4,4,4]. 4 + 4 + 4 = 12, satisfying equation (11). In this example, the input vector and candidate vector are partitioned into three groups, 1 to 3. Group 1 contains elements 1 to 4. Group 2 contains elements 5 to 8. Group 3 contains elements 9 to 12. Note that the number of group partitions and the number of elements in each group are not limited to the example above. For example, the number of elements in each group is not limited to the same number.

[0071] (Information processing method S1A flow) The information processing device 1A configured as described above executes the information processing method S1A. In the explanation of the information processing method S1A, it is assumed that the input vector and each candidate vector are divided into multiple groups, but division is not necessarily required. In the case where division is not performed, it is similarly explained by assuming that there is one group. Below, an example is given in which the first range and the third range are used to calculate the second range. Figure 4 is a flowchart showing the flow of the information processing method S1A. As shown in Figure 4, the information processing method S1A includes steps S101 to S112.

[0072] Step S101 is an example of a partitioning process. In step S101, the partitioning unit 16 obtains multiple candidate vectors from the storage unit 120 and divides the elements of each candidate vector into multiple groups based on the partitioning information. For example, the partitioning is performed based on partitioning information as shown in equation (10).

[0073] Step S102 is an example of the first single variable term calculation process. In step S102, the first single variable term calculation unit 111 calculates the first single variable term for each group of candidate vectors. For example, when the first single variable term shown in equation (3) is applied to each group g (g=1, 2, ..., G), it is expressed as E[V_(i,g)^2] and E[V_(i,g)]. Also, when the first single variable term shown in equation (7) is applied to each group g, it is expressed as Var[V_(i,g)]. These first single variable terms are calculated and stored in the storage unit 120.

[0074] Steps S101 to S102 only need to be executed at least once in advance for each candidate vector stored in the memory unit 120, and do not need to be executed each time an input vector is acquired in the next step S103.

[0075] Step S103 is an example of a splitting process. In step S103, the splitting unit 16 obtains the input vector and splits the elements of the input vector into multiple groups based on the splitting information. The splitting information referenced for splitting the input vector is the same as the splitting information referenced for splitting the candidate vector.

[0076] Step S104 is an example of the second single variable term calculation process. In step S104, the second single variable term calculation unit 112 calculates the second single variable term for each group of input vectors. For example, when the second single variable term shown in equation (3) is applied to each group g (g=1, 2, ..., G), it is expressed as E[Q_g^2] and E[Q_g]. Also, when the second single variable term shown in equation (7) is applied to each group g, it is expressed as Var[Q_g]. These second single variable terms are calculated and stored in the storage unit 120.

[0077] Step S105 is an example of the first range calculation process. In step S105, the first range calculation unit 12 calculates the first range for each group of candidate vectors. For example, based on equations (3) and (7) described above, the upper bound of the first range is calculated by the following equation (12).

number

[0078] Furthermore, for example, based on equations (3), (7), and (12) above, the lower bound of the first range is calculated by the following equation (13).

number

[0079] Note that the calculations for the first range may be performed based on other formulas, not just those given by formulas (12) and (13).

[0080] Furthermore, in step S105, the expected value e_(i,g) of the difference between each candidate vector v_i and the corresponding group g is calculated. Here, e_(i,g) := E[Q_g-V_(i,g)]=E[Q_g]-E[V_(i,g)]. Thus, the expected value of the difference between variables can be calculated by taking the difference between the expected values ​​of each variable. This is because linearity holds for expected values. In other words, the expected value of the difference e_(i,g) can be calculated from the single-variable terms. On the other hand, the variance Var[Q_g-V_(i,g)] cannot be decomposed into the form of a sum of single-variable terms unless the variables are independent, so estimation using sampling is necessary.

[0081] Steps S103 to S105 only need to be executed at least once depending on the acquisition of the input vector, and do not need to be executed each time the iterative processing in steps S106 to S111, which will be described later, takes place.

[0082] Steps S106 to S109 are an example of the second range calculation process. In step S106, the second range calculation unit 15 samples one element from each group of the input vector and each candidate vector. Sampling is performed by random selection. However, within the same group of the input vector and each candidate vector, elements with the same element number are selected. In other words, an element number is randomly selected from each group, and the element with the selected element number is sampled from that group of the input vector and each candidate vector.

[0083] In step S107, the second range calculation unit 15 calculates at least a portion of the multivariable terms for each group of candidate vectors and calculates the third range based on that at least portion of the multivariable terms. For example, the calculation of the third range is expressed by the following equations (14) to (20).

number

[0084] Here, equation (14) shows the value r obtained by sampling the element j belonging to group g in the multivariate term shown in equation (15).

number

[0085] Here, the value shown in equation (15) is the variance, and therefore can be expressed using the sum as shown in equation (16).

number

[0086] In other words, equation (14) above is a sample of the value shown in equation (15). Using the r obtained through this sampling, equation (17) is calculated.

number

[0087] In equation (17), ^μ_(i,j) represents the sample mean of the similarity (expected reward) between the group g of candidate vector v_i and the group g of input vector q, and is initially set to 0. Also, d_used is a counter that indicates the number of samples, and is initially set to 0. That is, when step S107 is executed for the first time, ^μ_(i,j) on the right-hand side is 0 and d_used is 0. As shown in equation (17), the sample mean of the similarity (expected reward) is updated based on the sample mean of the similarity (expected reward) calculated based on the elements q' and v' sampled up to the previous step, and r calculated based on the elements q' and v' sampled this time. In addition, the confidence interval of the similarity (expected reward) is calculated by the following equation (18).

number

[0088] The C shown in equation (18) represents the confidence interval for the similarity (expected value of the reward). Equation (18) assumes that the inner product, which is an example of the similarity, follows a sub-Gaussian distribution, and the parameter σ is used. Furthermore, the confidence interval C becomes smaller as the number of samples d_used increases. Using the sample mean ^μ_(i,j) and confidence interval C calculated in this way, the third range is calculated by equations (19) to (20).

number

number

[0089] Note that the calculations for the third range may be performed based on other formulas, not just those (14) to (20).

[0090] In step S108, the second range calculation unit 15 identifies a second range for each group of candidate vectors in which the first range and the third range overlap. For example, the identification of the second range is expressed by the following equations (21) to (22).

number

number

[0091] Furthermore, the calculation of the second range based on the first and third ranges may be performed based on other formulas, not just formulas (21) and (22).

[0092] In step S109, the second range calculation unit 15 integrates the second ranges of each group for each candidate vector. The integrated second range represents the second range of the candidate vector. For example, the integration of the second ranges may be performed using weighting for each group, and can be expressed by the following equations (23) to (24).

number

[0093] In equation (23), u_(i,g)^Integ represents the upper bound of the unified second range, and d_g represents the weight of group g. As shown in equation (23), the weighted average of the upper bounds u_(i,g)^Group of the second range for each group is calculated as the upper bound u_(i,g)^Integ of the unified second range.

number

[0094] In equation (24), l_(i,g)^Integ represents the lower bound of the unified second range, and d_g represents the weight of group g. As shown in equation (24), the weighted average of the lower bounds l_(i,g)^Group for the second range of each group is calculated as the lower bound l_(i,g)^Integ of the unified second range.

[0095] Furthermore, the integration of the second range may be performed based on other formulas, not just those given in formulas (23) and (24).

[0096] Step S110 is an example of a candidate selection process. In step S110, the candidate selection unit 13 selects one or more candidate vectors from a plurality of candidate vectors (in other words, a candidate list) based on the integrated second range. For example, the candidate selection unit 13 may use the lower bound of the candidate vector with the highest lower bound of the second range as a threshold, and select one or more candidate vectors whose upper bound of the second range is equal to or greater than the threshold. The candidate selection unit 13 also updates the candidate list by removing the candidate vectors that were not selected from the candidate list.

[0097] In step S111, the identification unit 14 determines whether the number of selected candidate vectors (in other words, the candidate vectors remaining in the updated candidate list) is less than or equal to a threshold. The threshold indicates the upper limit of the number of similar vectors to be identified.

[0098] If No is determined in step S110, the control unit 110 adds 1 to the sampling count d_used and repeats the process from step S106. As a result, the third range is updated based on the newly sampled elements (S106-S107). The second range is also updated based on the first range and the updated third range, and the candidate list is updated based on the updated second range (steps S108-S110).

[0099] If the result in step S110 is "Yes", the next step S112 is executed. Step S112 is an example of a specific processing step. In step S112, the specific unit 14 outputs the selected candidate vector (in other words, the candidate vectors remaining in the candidate list) as similar vectors.

[0100] Figure 5 schematically illustrates the candidate vector selection process using the information processing method S1A. Note that Figure 5 assumes that the number of groups is 1 (i.e., not divided). As shown in Figure 5, for each candidate vector v_i, the first and third ranges are calculated, and the second range, where the first and third ranges overlap, is calculated. As in the example in Figure 5, if the first range is included in the third range, the overlapping first range is applied as the second range. In Figure 5, "◇" indicates the lower bound of the second range, and "◆" indicates the upper bound of the second range. As shown in Figure 5, in the candidate list, the lower bound of the second range for candidate vector v_4 is the highest, thus becoming the threshold. Candidate vectors v_2 and v_5 are excluded from the candidate list because their upper bounds of the second range are smaller than this threshold. Therefore, the candidate list is updated, retaining only candidate vectors v_1, v_3, and v_4.

[0101] Here, the first range is calculated at least once in advance, and the third range is calculated and updated each time an element is sampled. The third range is relatively wider the fewer times an element is sampled. Therefore, as a comparative example, in a method that updates the candidate list using only the third range, such as BanditMIPS, it is not possible to effectively narrow down the candidate list until the number of samples exceeds a certain level. In the information processing device 1A, since the first and third ranges overlap and are based on the second range, candidate vector narrowing, as shown in Figure 5, can be performed from the early stages when the number of samples is small. As a result, the computational cost to identify similar vectors can be greatly reduced compared to the comparative example.

[0102] (Effects of Information Processing Device 1A) As described above, in the information processing device 1A, the single-variable term calculation unit 11 includes a first single-variable term calculation unit 111 that pre-calculates a first single-variable term that depends on each candidate vector and does not depend on the input vector, and a second single-variable term calculation unit 112 that calculates a second single-variable term that depends on the input vector and does not depend on each candidate vector, according to the input of the input vector. Therefore, in addition to the effects achieved by the information processing device 1, the information processing device 1A contributes to reducing computation costs by pre-calculating a first single-variable term that can be used in common for any input vector. Furthermore, since the second single-variable term can be calculated in a time independent of the number of candidate vectors according to the input of the input vector, it contributes to reducing computation costs.

[0103] Furthermore, the information processing device 1A is further equipped with a second range calculation unit 15 that calculates at least a portion of the multivariable terms that depend on both the candidate vector and the input vector for each of the multiple candidate vectors, and calculates a second range that the similarity can take based on the at least portion of the multivariable terms and the first range. The candidate selection unit 13 selects one or more candidate vectors based on the second range. Therefore, in addition to the effects achieved by the information processing device 1, the information processing device 1A can accurately determine the range for effectively narrowing down the candidate vectors.

[0104] Furthermore, in the information processing device 1A, the second range calculation unit 15 calculates the second range by calculating at least a portion of the multivariable term based on elements sampled from each of the multiple candidate vectors and the input vector, respectively, and updates the second range by updating at least a portion of the multivariable term based on newly sampled elements from each of the one or more selected candidate vectors, respectively. Therefore, in addition to the effects of the information processing device 1, the information processing device 1A provides the effect of effectively narrowing down candidate vectors with a second range that reflects the first range from the initial stage when the number of samples is small, and further narrowing down candidate vectors with higher accuracy as the number of samples increases, by using a second range that better reflects information derived from the multivariable term.

[0105] [Examples of application] Application examples 1 to 5 using the information processing devices 1 and 1A described above will be explained.

[0106] (Application Example 1) Information processing devices 1 and 1A can be applied, for example, to discover cases with similar marginal contributions in predictions made by machine learning models. Marginal contribution indicates the degree to which each feature contributed to the prediction when a machine learning model outputs a prediction. A vector in which the marginal contributions of each feature are arranged as elements is called a marginal contribution vector. Cases with a marginal contribution vector similar to a given prediction can be said to be cases that make similar predictions based on similar features to that prediction. Therefore, discovering marginal contribution vectors similar to a given marginal contribution vector is useful for data analysis. For example, for cases with a high failure probability, discovering past cases where the same factor contributed to the failure is useful for analyzing the cause of the failure.

[0107] In this application example, a certain marginal contribution vector is used as the input vector, and each of the other marginal contribution vectors is used as a candidate vector. This allows for the rapid identification of marginal contribution vectors similar to a given marginal contribution vector.

[0108] Furthermore, when using the information processing device 1A, it is effective to divide the marginal contribution vector into multiple groups using the division unit 16. Here, the contributions of features corresponding to the same variable among multiple features tend to be close in value. Therefore, by grouping elements of the marginal contribution vector that correspond to the same variable into one group, a narrower range can be calculated as the first range for each group. As a result, according to this application example, it is possible to further effectively narrow down the candidate vectors and is expected to contribute to further reduction of computational cost.

[0109] For example, given a characteristic function v(S) that measures the value of a set S, the marginal contribution M(S,i) representing the contribution of an element i to the set S is defined as shown in equation (25).

number

[0110] Here, the marginal contribution vector is defined as a vector obtained by listing the marginal contributions M(S,i) for all possible combinations of S and i. For example, if the set of elements is {1,2,3}, the marginal contribution vector is as shown in Figure 6. Figure 6 is a schematic representation of an example of a marginal contribution vector. As shown in Figure 6, the elements of the marginal contribution vector can be divided into groups of i=1, i=2, and i=3. This allows elements with similar distributions to be grouped together, and a narrower first range can be calculated for each group. As a result, according to this application example, cases with marginal contribution vectors similar to a given marginal contribution vector can be identified more quickly.

[0111] (Application Example 2) Information processing devices 1 and 1A can be applied, for example, to document retrieval. In this example, a feature vector representing the search query entered by the user is used as the input vector, and feature vectors representing each document are used as candidate vectors. As a result, according to this example, documents similar to the search query entered by the user can be identified at high speed.

[0112] (Application Example 3) Information processing devices 1 and 1A can be applied, for example, to generating answers to user questions using a large-scale language model. For example, in this application, a feature vector representing the question entered by the user is used as the input vector, and feature vectors representing each document that the large-scale language model can refer to in order to generate an answer are used as the candidate vectors. As a result, according to this application, documents related to the question entered by the user can be identified at high speed, and as a result, answers can be generated at high speed by referring to the identified documents.

[0113] (Application Example 4) Information processing devices 1 and 1A can be applied, for example, to similar case search. For example, in this application, a feature vector representing a certain case is used as the input vector, and feature vectors representing other cases are used as candidate vectors. As a result, according to this application, other cases similar to a given case can be identified at high speed. For example, insights can be obtained by identifying similar cases in machine learning.

[0114] (Application Example 5) Information processing devices 1 and 1A can be applied, for example, to product recommendation. Product recommendation is the process of recommending similar products to a user who has viewed a particular product. For example, in this application, the feature vector of the product viewed by the user is used as the input vector, and the feature vectors of other products are used as candidate vectors. According to this application, products to be recommended to the user can be identified at high speed.

[0115] [Examples of implementation using software] Some or all of the functions of the information processing devices 1 and 1A (hereinafter also referred to as "the above devices") may be implemented by hardware such as integrated circuits (IC chips) or by software.

[0116] In the latter case, each of the above devices is implemented, for example, by a computer that executes instructions for a program, which is software that realizes each function. An example of such a computer (hereinafter referred to as Computer C) is shown in Figure 7. Figure 7 is a block diagram showing the hardware configuration of Computer C, which functions as each of the above devices.

[0117] Computer C comprises at least one processor C1 and at least one memory C2. Memory C2 stores a program P that causes computer C to operate as each of the above-mentioned devices. In computer C, processor C1 reads program P from memory C2 and executes it, thereby realizing each of the above-mentioned devices.

[0118] For processor C1, for example, a CPU (Central Processing Unit), GPU (Graphic Processing Unit), DSP (Digital Signal Processor), MPU (Micro Processing Unit), FPU (Floating Point Number Processing Unit), PPU (Physics Processing Unit), TPU (Tensor Processing Unit), quantum processor, microcontroller, or a combination thereof can be used. For memory C2, for example, flash memory, HDD (Hard Disk Drive), SSD (Solid State Drive), or a combination thereof can be used.

[0119] Computer C may also be equipped with RAM (Random Access Memory) for loading program P at runtime and for temporarily storing various data. Furthermore, computer C may be equipped with communication interfaces for sending and receiving data with other devices. Additionally, computer C may be equipped with input / output interfaces for connecting input / output devices such as keyboards, mice, displays, and printers.

[0120] Furthermore, program P can be recorded on a non-temporary, tangible recording medium M that is readable by computer C. Such a recording medium M could be, for example, tape, disk, card, semiconductor memory, or programmable logic circuitry. Computer C can acquire program P via such a recording medium M. Program P can also be transmitted via a transmission medium. Such a transmission medium could be, for example, a communication network or broadcast waves. Computer C can also acquire program P via such a transmission medium.

[0121] Furthermore, each of the above functions of each of the above devices may be implemented by a single processor in a single computer, by multiple processors in a single computer working together, or by multiple processors in each of multiple computers working together. In addition, the programs for implementing each of the above functions in each of the above devices may be stored in a single memory in a single computer, distributed and stored in multiple memories in a single computer, or distributed and stored in multiple memories in each of multiple computers.

[0122] [Additional Note A] This disclosure includes the technologies described in the following appendices. However, the present invention is not limited to the technologies described in the following appendices, and various modifications are possible within the scope of the claims.

[0123] (Note A1) A single-variable term calculation means for calculating a single-variable term that depends on either the candidate vector or the input vector, but does not depend on the other, among a plurality of terms for calculating the similarity with the input vector for each of a plurality of candidate vectors that are candidates for similar vectors similar to the input vector, A first range calculation means calculates a first range that the similarity can take based on the single variable term for each of the plurality of candidate vectors, Candidate selection means for selecting one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range, A means for identifying the similar vector from the one or more candidate vectors selected above, An information processing device equipped with the following features.

[0124] (Appendix A2) The single-variable term calculation means is, A first unvariable term calculation means that pre-calculates a first unvariable term among the unvariable terms that depends on each candidate vector and does not depend on the input vector, A second unvariable term calculation means calculates a second unvariable term from the aforementioned unvariable term that depends on the input vector and does not depend on each candidate vector, in accordance with the input of the input vector. including, The information processing device described in Appendix A1.

[0125] (Note A3) The system further comprises a second range calculation means that calculates, for each of the plurality of candidate vectors, at least a portion of the multivariable terms among the plurality of terms that depend on both the candidate vector and the input vector, and calculates a second range that the similarity can take based on the at least portion of the multivariable terms and the first range. The candidate selection means selects one or more candidate vectors based on the second range. The information processing device described in Appendix A1 or A2.

[0126] (Note A4) The second range calculation means is, For each of the plurality of candidate vectors, the second range is calculated by calculating at least a portion of the multivariable term based on the candidate vector and the input vector, respectively. The second range is updated by updating at least a portion of the multivariable term based on elements newly sampled from each of the one or more selected candidate vectors, respectively. The information processing device described in Appendix A3.

[0127] (Note A5) The system further includes a partitioning means for dividing each candidate vector's elements and the input vector's elements into multiple groups, The single-variable term calculation means calculates the single-variable term for each group of candidate vectors and each group of input vectors, The first range calculation means calculates the first range for each group of each candidate vector based on the single variable term, The candidate selection means selects one or more candidate vectors based on the first range for each group of candidate vectors. An information processing device as described in any one of the appendices A1 to A4.

[0128] [Additional Notes B] This disclosure includes the technologies described in the following appendices. However, the present invention is not limited to the technologies described in the following appendices, and various modifications are possible within the scope of the claims.

[0129] (Note B1) At least one processor performs a single-variable term calculation process to calculate a single-variable term among a plurality of terms for calculating the similarity between each of a plurality of candidate vectors that are candidates for similar vectors to the input vector, which in turn depends on either the candidate vector or the input vector but not on the other. The at least one processor performs a first range calculation process, which calculates a first range that the similarity can take based on the single variable term for each of the plurality of candidate vectors. The at least one processor performs a candidate selection process to select one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range, The at least one processor performs a identification process to identify the similar vector from the selected one or more candidate vectors, An information processing method that includes this.

[0130] (Note B2) The aforementioned single-variable term calculation process is, The at least one processor performs a first unvariable term calculation process that pre-calculates a first unvariable term among the unvariable terms that depends on each candidate vector and does not depend on the input vector, The at least one processor includes a second single variable term calculation process that calculates a second single variable term from the single variable term that is dependent on the input vector and independent of each candidate vector, in accordance with the input of the input vector. The information processing method described in Appendix B1.

[0131] (Note B3) The at least one processor further includes a second range calculation process which calculates, for each of the plurality of candidate vectors, at least a portion of the plurality of terms that depend on both the candidate vector and the input vector, and calculates a second range that the similarity can take based on the at least portion of the plurality of multivariable terms and the first range, In the candidate selection process, the at least one processor selects one or more candidate vectors based on the second range. The information processing method described in Appendix B1 or B2.

[0132] (Note B4) In the second range calculation process, the at least one processor, For each of the plurality of candidate vectors, the second range is calculated by calculating at least a portion of the multivariable term based on the candidate vector and the input vector, respectively. The second range is updated by updating at least a portion of the multivariable term based on elements newly sampled from each of the one or more selected candidate vectors, respectively. The information processing method described in Appendix B3.

[0133] (Note B5) The at least one processor further includes a partitioning process that divides the elements of each candidate vector and the elements of the input vector into a plurality of groups, In the single-variable term calculation process, the at least one processor calculates the single-variable term for each group of candidate vectors and each group of input vectors, In the first range calculation process, the at least one processor calculates the first range for each group of candidate vectors based on the single variable term, In the candidate selection process, the at least one processor selects one or more candidate vectors based on the first range for each group of candidate vectors. The information processing method described in any one of the appendices B1 to B4.

[0134] [Additional Note C] This disclosure includes the technologies described in the following appendices. However, the present invention is not limited to the technologies described in the following appendices, and various modifications are possible within the scope of the claims.

[0135] (Note C1) A program that makes a computer function as an information processing device. The aforementioned computer, A single-variable term calculation means for calculating a single-variable term that depends on either the candidate vector or the input vector, but does not depend on the other, among a plurality of terms for calculating the similarity with the input vector for each of a plurality of candidate vectors that are candidates for similar vectors similar to the input vector, A first range calculation means calculates a first range that the similarity can take based on the single variable term for each of the plurality of candidate vectors, Candidate selection means for selecting one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range, A means for identifying the similar vector from the one or more candidate vectors selected above, An information processing program that functions as such.

[0136] (Note C2) The single-variable term calculation means is, A first unvariable term calculation means that pre-calculates a first unvariable term among the unvariable terms that depends on each candidate vector and does not depend on the input vector, A second unvariable term calculation process calculates a second unvariable term from the aforementioned unvariable term that depends on the input vector and does not depend on each candidate vector, according to the input of the input vector. including, The information processing program described in Appendix C1.

[0137] (Note C3) The aforementioned computer, For each of the plurality of candidate vectors, the second range calculation means further functions to calculate at least a portion of the multivariable terms among the plurality of terms that depend on both the candidate vector and the input vector, and calculate a second range that the similarity can take based on the at least portion of the multivariable terms and the first range. The candidate selection means selects one or more candidate vectors based on the second range. The information processing program described in Appendix C1 or C2.

[0138] (Note C4) The second range calculation means is, For each of the plurality of candidate vectors, the second range is calculated by calculating at least a portion of the multivariable term based on the candidate vector and the input vector, respectively. The second range is updated by updating at least a portion of the multivariable term based on elements newly sampled from each of the one or more selected candidate vectors, respectively. The information processing program described in Appendix C3.

[0139] (Note C5) The aforementioned computer, The elements of each candidate vector and the elements of the input vector are further configured to function as a partitioning means for dividing them into multiple groups. The single-variable term calculation means calculates the single-variable term for each group of candidate vectors and each group of input vectors, The first range calculation means calculates the first range for each group of each candidate vector based on the single variable term, The candidate selection means selects one or more candidate vectors based on the first range for each group of candidate vectors. An information processing program described in any one of the appendices C1 to C4.

[0140] [Additional Note D] This disclosure includes the technologies described in the following appendices. However, the present invention is not limited to the technologies described in the following appendices, and various modifications are possible within the scope of the claims.

[0141] (Note D1) It comprises at least one processor, and the at least one processor is A single-variable term calculation process that calculates a single-variable term among a plurality of terms for calculating the similarity between each of a plurality of candidate vectors that are candidates for similar vectors to the input vector, which in turn depends on either the candidate vector or the input vector but not on the other. A first range calculation process calculates a first range that the similarity can take based on the single variable term for each of the plurality of candidate vectors, A candidate selection process that selects one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range, A process to identify similar vectors from the one or more candidate vectors selected above, An information processing device that performs this task.

[0142] The information processing device may also include memory. Furthermore, the memory may store a program that causes at least one processor to execute each of the aforementioned processes.

[0143] (Note D2) In the single-variable term calculation process, at least one processor, A first unvariable term calculation process that pre-calculates a first unvariable term from the aforementioned unvariable terms that depends on each candidate vector and does not depend on the input vector, A second unvariable term calculation process calculates a second unvariable term from the aforementioned unvariable term that depends on the input vector and does not depend on each candidate vector, according to the input of the input vector. Execute The information processing device described in Appendix D1.

[0144] (Note D3) The aforementioned at least one processor, For each of the plurality of candidate vectors, a second range calculation process is performed to calculate at least a portion of the multivariable terms among the plurality of terms that depend on both the candidate vector and the input vector, and to calculate a second range that the similarity can take based on the at least portion of the multivariable terms and the first range. In the candidate selection process, the at least one processor selects one or more candidate vectors based on the second range. The information processing device described in Appendix D1 or D2.

[0145] (Note D4) In the second range calculation process, the at least one processor, For each of the plurality of candidate vectors, the second range is calculated by calculating at least a portion of the multivariable term based on the candidate vector and the input vector, respectively. The second range is updated by updating at least a portion of the multivariable term based on elements newly sampled from each of the one or more selected candidate vectors, respectively. The information processing device described in Appendix D3.

[0146] (Note D5) The aforementioned at least one processor, Further, a splitting process is performed to divide each candidate vector's elements and the input vector's elements into multiple groups. In the single-variable term calculation process, the at least one processor calculates the single-variable term for each group of candidate vectors and each group of input vectors, In the first range calculation process, the at least one processor calculates the first range for each group of candidate vectors based on the single variable term, In the candidate selection process, the at least one processor selects one or more candidate vectors based on the first range for each group of candidate vectors. An information processing device as described in any one of the appendices D1 to D4.

[0147] [Additional Note E] This disclosure includes the technologies described in the following appendices. However, the present invention is not limited to the technologies described in the following appendices, and various modifications are possible within the scope of the claims.

[0148] (Note E1) A program that makes a computer function as an information processing device. To the aforementioned computer, A single-variable term calculation process that calculates a single-variable term among a plurality of terms for calculating the similarity between each of a plurality of candidate vectors that are candidates for similar vectors to the input vector, which in turn depends on either the candidate vector or the input vector but not on the other. A first range calculation process calculates a first range that the similarity can take based on the single variable term for each of the plurality of candidate vectors, A candidate selection process that selects one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range, A process to identify similar vectors from the one or more candidate vectors selected above, A non-temporary recording medium that contains a program that executes something. [Explanation of Symbols]

[0149] 1. 1A Information Processing Device 11. Unit-variable term calculation unit 12 First Range Calculation Unit 13 Candidate Selection Section 14 Specific part 15. Second Range Calculation Unit 16 Division 110 Control Unit 111 First Single Variable Term Calculation Unit 112 Second Single Term Calculation Unit 120 Storage section C1 Processor C2 Memory

Claims

1. A single-variable term calculation means for calculating a single-variable term that depends on either the candidate vector or the input vector, but does not depend on the other, among a plurality of terms for calculating the similarity with the input vector for each of a plurality of candidate vectors that are candidates for similar vectors similar to the input vector, A first range calculation means calculates a first range in which the similarity can take for each of the plurality of candidate vectors based on the single variable term, Candidate selection means for selecting one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range, A means for identifying the similar vector from the one or more candidate vectors selected above, An information processing device equipped with the following features.

2. The single-variable term calculation means is, A first unvariable term calculation means that pre-calculates a first unvariable term among the unvariable terms that depends on each candidate vector and does not depend on the input vector, A second unvariable term calculation means calculates a second unvariable term from the aforementioned unvariable term that depends on the input vector and does not depend on each candidate vector, in accordance with the input of the input vector. including, The information processing apparatus according to claim 1.

3. The system further comprises a second range calculation means that calculates, for each of the plurality of candidate vectors, at least a portion of the multivariable terms among the plurality of terms that depend on both the candidate vector and the input vector, and calculates a second range that the similarity can take based on the at least portion of the multivariable terms and the first range. The candidate selection means selects one or more candidate vectors based on the second range. The information processing apparatus according to claim 1 or 2.

4. The second range calculation means is, For each of the plurality of candidate vectors, the second range is calculated by calculating at least a portion of the multivariable term based on the elements sampled from the candidate vector and the input vector, respectively. The second range is updated by updating at least a portion of the multivariable term based on elements newly sampled from each of the one or more selected candidate vectors, respectively. The information processing apparatus according to claim 3.

5. The system further includes a partitioning means for dividing each candidate vector's elements and the input vector's elements into multiple groups, The single-variable term calculation means calculates the single-variable term for each group of candidate vectors and each group of input vectors, The first range calculation means calculates the first range for each group of candidate vectors based on the single variable term, The candidate selection means selects one or more candidate vectors based on the first range for each group of candidate vectors. The information processing apparatus according to claim 1 or 2.

6. At least one processor performs a single-variable term calculation process to calculate a single-variable term among a plurality of terms for calculating the similarity between each of a plurality of candidate vectors that are candidates for similar vectors to the input vector, which in turn depends on either the candidate vector or the input vector but not on the other. The at least one processor performs a first range calculation process, which calculates a first range of possible similarity values ​​for each of the plurality of candidate vectors based on the single variable term, The at least one processor performs a candidate selection process to select one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range, The at least one processor performs a specific process to identify the similar vector from the selected one or more candidate vectors, An information processing method that includes this.

7. A program that causes a computer to function as an information processing device, wherein the computer A single-variable term calculation means for calculating a single-variable term that depends on either the candidate vector or the input vector, but does not depend on the other, among a plurality of terms for calculating the similarity with the input vector for each of a plurality of candidate vectors that are candidates for similar vectors similar to the input vector, A first range calculation means calculates a first range in which the similarity can take for each of the plurality of candidate vectors based on the single variable term, Candidate selection means for selecting one or more candidate vectors from a portion of the plurality of candidate vectors based on the first range, A means for identifying the similar vector from the one or more candidate vectors selected above, A program that makes something function as such.

Citation Information

Patent Citations

  • Document retrieval method, document retrieval device, document retrieval program

    JP2011085991A