Information processing device, information processing method, and recording medium
By dividing input data based on condition decision nodes and performing parallel processing for data rows using the same feature values, the method enhances the efficiency of decision tree inference processing.
Patent Information
- Application Number
- JP2024092715
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-06-07
- Publication Date
- 2025-09-25
- Estimated Expiration
- 2040-01-22
AI Technical Summary
Existing methods for parallel processing of decision trees result in poor processing efficiency due to the execution of all data for all condition decision nodes.
An information processing device and method that divides input data based on condition decision nodes, performing parallel processing for data rows using the same feature values and rearranging predicted values to match the original data order, utilizing a decision tree with condition and leaf nodes.
This approach speeds up inference processing by enabling parallel processing of decision trees, improving efficiency and reducing the number of nodes considered in each process.
Smart Images

Figure 0007743894000001 
Figure 0007743894000002 
Figure 0007743894000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to inference processing using a decision tree. [Background technology]
[0002] In recent years, there has been a demand for high-speed processing of large amounts of data. One method for speeding up data processing is parallel processing. For example, repetitive processing that can operate on multiple pieces of data independently can be expanded and processed in parallel. SIMD (Single Instruction Multiple Data) is a well-known parallel processing method. SIMD is a parallel processing method that speeds up processing by simultaneously executing a single instruction on multiple pieces of data. Examples of SIMD processors include vector processors and GPUs (Graphics Processing Units).
[0003] Patent Document 1 describes a method of applying parallel processing to inference using a decision tree. In Patent Document 1, the identification information and condition decision results of each node in the decision tree are expressed in binary numbers, allowing the condition decisions of each layer to be processed collectively. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2013-117862 Summary of the Invention [Problem to be solved by the invention]
[0005] However, the method of Patent Document 1 uses all data to execute the processing of all condition decision nodes, which results in poor processing efficiency.
[0006] One object of the present invention is to speed up inference processing using a decision tree by parallel processing. [Means for solving the problem]
[0007] One aspect of the present invention is an information processing device that uses a decision tree having condition judgment nodes and leaf nodes, acquiring means for acquiring an input data matrix including a plurality of data rows each having a plurality of feature quantities; a dividing means for dividing at least a row number portion of the input data matrix in association with a child node selected in accordance with a result of the condition decision, in the condition decision node, to generate grouping information and pass the grouping information to the child node; a parallel processing means for performing, in the condition determination node, a condition determination process for a plurality of data rows indicated by the received grouping information in parallel; and an output means for performing parallel processing at the leaf node to rearrange predicted values corresponding to the plurality of data rows indicated by the received grouping information into the same order as the row numbers in the input data matrix, and outputting the predicted values rearranged by the parallel processing.
[0008] Another aspect of the present invention is The computer A decision tree with conditional decision nodes and leaf nodes is used. Do it An information processing method, comprising: obtaining an input data matrix including a plurality of data rows each having a plurality of features; in the condition determination node, dividing at least a portion of row numbers of the input data matrix to generate grouping information in association with a child node selected according to a result of the condition determination, and passing the grouping information to the child node; In the condition determination node, a condition determination process is performed in parallel for the plurality of data rows indicated by the received grouping information; At the leaf node, parallel processing is performed to rearrange predicted values corresponding to the multiple data rows indicated by the received grouping information into the same order as the row numbers in the input data matrix, and the predicted values rearranged by the parallel processing are output.
[0009] Another aspect of the present invention is a recording medium having recorded thereon a program for causing a computer to execute information processing using a decision tree having condition judgment nodes and leaf nodes, the program comprising: The information processing obtaining an input data matrix including a plurality of data rows each having a plurality of features; in the condition determination node, dividing at least a portion of row numbers of the input data matrix to generate grouping information in association with a child node selected according to a result of the condition determination, and passing the grouping information to the child node; In the condition determination node, a condition determination process is performed in parallel for the plurality of data rows indicated by the received grouping information; At the leaf node, a parallel process is performed to rearrange predicted values corresponding to the plurality of data rows indicated by the received grouping information into the same order as the row numbers in the input data matrix, and the rearranged predicted values are output. [Effects of the Invention]
[0010] According to the present invention, it is possible to speed up inference processing using a decision tree by parallel processing. [Brief explanation of the drawings]
[0011] [Figure 1] 1 is a block diagram showing a configuration of an information processing device according to a first embodiment. [Figure 2] An example of decision tree inference is shown below. [Figure 3] 3A and 3B schematically illustrate a process of dividing input data according to the first embodiment. [Figure 4] An example of data division is shown below. [Figure 5] FIG. 2 is a block diagram showing a hardware configuration of the information processing device. [Figure 6] FIG. 2 is a block diagram showing a functional configuration of the information processing device. [Figure 7] 10 is a flowchart of a condition determination process. [Figure 8] 10 is a flowchart of a sorting process. [Figure 9] 10A and 10B schematically illustrate a process of dividing a group of row numbers of input data according to the second embodiment. [Figure 10] An example of dividing a group of line numbers is shown below. [Figure 11] FIG. 10 is a block diagram showing the functional configuration of an information processing device according to a second embodiment. [Figure 12] FIG. 10 is a block diagram showing the functional configuration of an information processing device according to a third embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0012] Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.
[0013] [First embodiment] (Basic configuration) FIG. 1 shows the configuration of an information processing device according to a first embodiment of the present invention. The information processing device 100 performs inference using a decision tree model (hereinafter referred to as "decision tree inference"). Specifically, the information processing device 100 performs decision tree inference using input data, and outputs a predicted value for the input data as an inference result. Here, the information processing device 100 executes part of the decision tree inference process by parallel processing to speed up the process. Note that parallel processing is also called "vectorization."
[0014] (Explanation of the principle) Figure 2 shows an example of decision tree inference. This example is a problem of predicting debt collection, where attribute information of many creditors is used as input data and a decision tree model is used to infer whether or not debt collection is possible. As shown in the figure, the input data includes "annual income (feature 1)," "age (feature 2)," and "regular occupation (feature 3)" as features of each creditor. The decision tree model uses this input data to predict whether or not debt collection is possible for each creditor.
[0015] 2 is made up of nodes N1 to N7. Node N1 is the root node, and nodes N2, N4, N6, and N7 are leaf nodes. Nodes N1, N3, and N5 are condition decision nodes.
[0016] First, at root node N1, it is determined whether the creditor has a permanent job. If the creditor does not have a permanent job, processing proceeds to leaf node N2, where a NO (No) is predicted for debt collection. On the other hand, if the creditor has a permanent job, processing proceeds to decision node N3, where a determination is made as to whether the creditor's annual income is 4.8 million yen or more. If the creditor's annual income is 4.8 million yen or more, processing proceeds to leaf node N4, where a YES (Yes) is predicted for debt collection. If the creditor's annual income is less than 4.8 million yen, processing proceeds to decision node N5, where a determination is made as to whether the creditor is 51 years old or older. If the creditor is 51 years old or older, processing proceeds to leaf node N6, where a YES (Yes) is predicted for debt collection. On the other hand, if the creditor is younger than 51 years old, processing proceeds to leaf node N7, where a NO (No) is predicted for debt collection. In this way, the predicted value for debt collection for each creditor is output.
[0017] When applying parallel processing to decision tree inference, the question arises as to which parts of the data should be processed in parallel. While processing rows of input data in parallel is considered, this is not appropriate because decision tree models do not use all of the features in a row at once. Alternatively, processing columns of input data in parallel is also considered. However, decision tree models do not necessarily execute the same command comparison process for all rows of input data using the same feature values of the same data column. Therefore, in this embodiment, for each condition decision node, only the data rows that execute the same command comparison process using the same feature values of the same data column are collected as split data, and multiple data rows included in the split data are processed in parallel. This reduces the number of nodes to be considered in a single process. Furthermore, the type of comparison process to be performed and the feature values used for the comparison process are also determined. As a result, vectorization is possible, enabling faster processing. The split data is an example of grouping information in the present invention.
[0018] FIG. 3 schematically illustrates input data splitting processing according to the first embodiment. The decision tree model has the same configuration as in FIG. 2, and each data row in the input data 50 is assigned a row number. Because the root node N1 is a condition determination node, the information processing device 100 splits the input data 50 into split data 50a to be sent to the child node N3 and split data 50b to be sent to the child node N2 based on the result of the condition determination for the root node N1. Specifically, if the condition determination for the root node N1 uses feature 3 in the input data 50, the information processing device 100 generates split data 50a corresponding to the child node N3 selected by the condition determination and split data 50b corresponding to the child node N2 based on the condition determination command and condition determination threshold for the root node N1, and feature 3. In this case, the information processing device 100 performs condition determination for all row data included in the input data 50 using the same column data (feature 3), which can be executed in parallel.
[0019] FIG. 4 shows an example of data division. Assume that input data 50 shown in FIG. 4 is input to root node N1. The condition determination of root node N1 is "Feature 3 = YES." Information processing device 100 divides input data 50 based on the condition determination result of root node N1. Specifically, information processing device 100 defines a set of data rows (#0, #2, #5, #7, ..) of input data 50 for which Feature 3 is "YES" as divided data 50a, and defines a set of data rows (#1, #3, #4, #6, ..) for which Feature 3 is "NO" as divided data 50b. Then, information processing device 100 passes divided data 50a to child node N3 and passes divided data 50b to child node N2.
[0020] As a result of this data division, only row data for which a condition determination should be performed based on the same feature is provided to child node N3, which is a condition determination node. Therefore, child node N3 can perform condition determination for the received divided data 50a by parallel processing. That is, the information processing device 100 can perform condition determination using feature 1 in parallel for all row data included in divided data 50a. Specifically, condition determination node N3 is a condition determination node that determines whether feature 1 (annual income) is 4.8 million yen or more. Therefore, the information processing device 100 performs determination in parallel for all row data included in divided data 50a as to whether feature 1 is 4.8 million yen or more. Note that, since child node N2 is a leaf node, the information processing device 100 outputs predicted values corresponding to leaf node N2 for all row data included in divided data 50b.
[0021] In the example of FIG. 3 , at condition determination node N3, the information processing device 100 further divides split data 50a into split data 50c and 50d, and passes these to leaf node N4 and condition determination node N5, respectively. At leaf node N4, the information processing device 100 outputs predicted values corresponding to leaf node N4 for all line data included in split data 50c. At condition determination node N5, based on the condition determination result, the information processing device 100 further divides split data 50d into split data 50e and 50f, and passes these to leaf nodes N6 and N7, respectively. At leaf node N6, the information processing device 100 outputs predicted values corresponding to leaf node N6 for all line data included in split data 50e. Similarly, at leaf node N7, the information processing device 100 outputs predicted values corresponding to leaf node N7 for all line data included in split data 50f. Once predicted values have been output from all leaf nodes in this way, the information processing device 100 outputs them as inference results.
[0022] As described above, the information processing device 100 divides data received at a condition judgment node in association with child nodes selected according to the result of the condition judgment, and passes the divided data to each child node. Therefore, the information processing device 100 can perform parallel processing on the divided data received from the parent node at the child node that is the condition judgment node, thereby speeding up the overall processing.
[0023] (Hardware configuration) 5 is a block diagram showing the hardware configuration of the information processing device 100. As shown in the figure, the information processing device 100 includes an input IF (Interface) 11, a processor 12, a memory 13, a recording medium 14, and a database (DB) 15.
[0024] The input IF 11 inputs and outputs data. Specifically, the input IF 11 acquires input data from the outside and outputs an inference result generated by the information processing device 100 based on the input data.
[0025] The processor 12 is a computer such as a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit), and controls the entire information processing device 100 by executing a program prepared in advance. In particular, the processor 12 performs parallel processing of data. One method for realizing parallel processing is to use a SIMD processor such as a GPU. When the information processing device 100 performs parallel processing using a SIMD processor, the processor 12 may be a SIMD processor, or a SIMD processor may be provided as a processor separate from the processor 12. In the latter case, the information processing device 100 causes the SIMD processor to execute operations that can be processed in parallel, and causes the processor 12 to execute other operations.
[0026] The memory 13 is composed of a ROM (Read Only Memory), a RAM (Random Access Memory), etc. The memory 13 stores various programs executed by the processor 12. The memory 13 is also used as a working memory while the processor 12 is executing various processes.
[0027] The recording medium 14 is a non-volatile, non-transitory recording medium such as a disk-shaped recording medium or a semiconductor memory, and is configured to be detachable from the information processing device 100. The recording medium 14 records various programs executed by the processor 12.
[0028] The DB25 stores data input from the input IF11. Specifically, the DB25 stores input data acquired by the input IF11. The DB25 also stores information on the decision tree model used for inference. Specifically, the DB25 stores information indicating the tree structure of the trained decision tree model and node settings for each node (condition determination node settings and leaf node settings). The DB25 is an example of a storage unit of the present invention.
[0029] (Functional configuration) 6 is a block diagram showing the functional configuration of the information processing device 100. The information processing device 100 includes a data reading unit 21, a condition judgment node setting reading unit 22, a condition judgment processing unit 23, a data dividing unit 24, a leaf node setting reading unit 25, and an inference result output unit 26.
[0030] The data reading unit 21 reads input data and stores it in a predetermined storage unit such as the DB 25. The input data is a data matrix as shown in the example of Fig. 4, and includes a plurality of feature quantities associated with a plurality of row numbers. The data reading unit 21 is an example of an acquisition unit of the present invention.
[0031] The condition judgment node setting reader 22 reads the condition judgment node settings for the condition judgment nodes of the decision tree model used for inference and outputs them to the condition judgment processor 23. The condition judgment node setting reader 22 initially reads the condition judgment node settings for the root node. Here, the "condition judgment node setting" refers to setting information for the condition judgment executed in the condition judgment node, specifically including a "feature," a "condition judgment threshold," and a "condition judgment command." The "feature" refers to a feature used for the condition judgment, such as "feature 1" and "feature 2" of the input data shown in FIG. 4. The "condition judgment threshold" refers to the threshold used for the condition judgment. The "condition judgment command" refers to the type of condition judgment, such as a match judgment or a comparison judgment (size judgment). The match judgment refers to a judgment of whether or not the feature (regular job) matches the condition judgment threshold (YES), such as "Regular Job = YES" in FIG. 2. Furthermore, the comparison judgment refers to the judgment of the magnitude relationship between the feature amount (annual income) and the condition judgment threshold (480), such as "annual income≧480" in FIG.
[0032] The condition determination processing unit 23 acquires the feature included in the condition determination node setting acquired from the condition determination node setting reading unit 22 from the input data stored in the storage unit. For example, in the case of the decision tree model shown in FIG. 2, the feature used for the condition determination of the root node N1 is "Regular Job (Feature 3)," so the condition determination processing unit 23 acquires the feature "Regular Job" for each data row from the input data in the storage unit. Then, the condition determination processing unit 23 performs condition determination using the feature, a condition determination command, and a condition determination threshold. In the example of the decision tree model shown in FIG. 2, the condition determination processing unit 23 determines whether "Regular Job (Feature 3) = YES" for each data row of the input data and sends the determination result to the data dividing unit 24. The condition determination processing unit 23 is an example of a parallel processing unit of the present invention.
[0033] The data division unit 24 divides the input data based on the judgment result. Specifically, the data division unit 24 divides the input data in association with a child node selected according to the judgment result. Furthermore, if the child node of the condition judgment node being processed includes a condition judgment node, the data division unit 24 sends the divided data to the data reading unit 21. The data division unit 24 also sends an instruction to the condition judgment node setting reading unit 22, which reads the condition judgment node setting of the child node. The condition judgment processing unit 23 then performs a condition judgment on the child node based on the divided data and the condition judgment node setting of the child node, and sends the judgment result to the data division unit 24. In this way, if the child node of the condition judgment node being processed includes a condition judgment node, the condition judgment processing unit 23 and the data division unit 24 repeat the condition judgment on the condition judgment node as well. The data division unit 24 is an example of a division unit of the present invention.
[0034] Furthermore, if the child node of the condition decision node being processed includes a leaf node, the data division unit 24 sends the divided data to the inference result output unit 26. The data division unit 24 also sends an instruction to the leaf node setting reading unit 25, which then reads the leaf node setting of the child node. The leaf node setting includes a predicted value held by the leaf node. Note that if the decision tree is a classification tree, the predicted value is a classification result, and if the decision tree is a regression tree, the predicted value is a numerical value. The leaf node setting reading unit 25 then sends the read predicted value to the inference result output unit 26.
[0035] The inference result output unit 26 associates the divided data received from the data division unit 24 with the predicted values received from the leaf node setting reading unit 25, and outputs them as inference results. When processing for all input data is completed, predicted values for all row data of the input data are obtained. Note that the inference result output unit 26 may output all obtained row data and their predicted values by rearranging them in the order of the row numbers of the input data. The inference result output unit 26 is an example of an output unit of the present invention.
[0036] Now, assume that the decision tree model shown in FIG. 2 is used to perform inference on input data 50 shown in FIG. 4. First, the input data 50 is read into the data reading unit 21, and the condition judgment node setting of the root node N1 is read into the condition judgment node setting reading unit 22. The condition judgment processing unit 23 makes a judgment of "Regular job (feature amount 3) = YES" based on the condition judgment node setting, and sends the judgment result to the data dividing unit 24. Based on the judgment result, the data dividing unit 24 divides the input data 50 into divided data 50a and 50b, as shown in FIG. 4.
[0037] Based on the judgment result at the root node N1, the data division unit 24 sends divided data 50a for condition judgment node N3, which is a child node of the root node N1, to the data reading unit 21, and instructs the condition judgment node setting reading unit 22 to read the condition judgment node setting of the condition judgment node N3. Then, the condition judgment processing unit 23 performs condition judgment based on the divided data 50a and the condition judgment node setting of the condition judgment node N3, and outputs the judgment result to the data division unit 24.
[0038] Furthermore, based on the determination result for the root node N1, the data dividing unit 24 sends divided data 50b for the leaf node N2, which is a child node of the root node N1, to the inference result output unit 26, and instructs the leaf node setting reading unit 25 to read the leaf node setting for the leaf node N2. The leaf node setting reading unit 25 reads the leaf node setting for the leaf node N2 and sends a predicted value to the inference result output unit 26.
[0039] In this way, if the child node is a condition decision node, the condition decision is repeated using the condition decision node setting and the split data. On the other hand, if the child node is a leaf node, the predicted value of the leaf node is sent to the inference result output unit 26. Then, when the predicted values for all leaf nodes of the decision tree model have been sent to the inference result output unit 26, the inference result output unit 26 outputs the inference result including the predicted values corresponding to all data rows included in the input data as output data.
[0040] (flowchart) Next, a flowchart of processing by the information processing device 100 will be described. Fig. 7 is a flowchart of condition determination processing. The condition determination processing is processing in which input data is input to a decision tree model and an inference result is output. This processing can be realized by the processor 12 shown in Fig. 5 executing a program prepared in advance.
[0041] First, in step S11, the data reading unit 21 reads the input data Data, and the condition judgment node setting reading unit 22 reads the node setting Node of the target node (initially the root node). If the target node is a condition judgment node, in step S12 the condition judgment processing unit 23 sets the feature number (column number) included in the condition judgment node setting to the variable j, sets the condition judgment threshold to the variable value, and sets the condition judgment command to the function compare. Next, the condition judgment processing unit 23 executes the loop processing of step S13 for all rows of the input data Data.
[0042] In the loop processing, in step S13-1, the condition determination processing unit 23 compares the feature value j with the condition determination threshold value for each data row of the input data Data using the function compare (step S13-1). In step S13-2, the data division unit 24 saves the data row resulting from the comparison corresponding to the left branch of the target node in the divided data LeftData, and in step S13-3, saves the data row resulting from the comparison corresponding to the right branch of the target node in the divided data RightData. The condition determination processing unit 23 performs this processing for all data rows of the input data Data and then terminates the loop processing. This loop processing is performed in parallel.
[0043] Next, in step S14, the divided data LeftData is sent to the data reading unit 21, which reads the node setting of the corresponding child node. If the child node is a condition judgment node, in step S11 the condition judgment node setting reading unit 22 reads the condition judgment node setting, and steps S12 and S13 are executed for that condition judgment node. On the other hand, if the child node is a leaf node, in step S16 the leaf node setting reading unit 25 reads the leaf node setting and sends the predicted value of that leaf node to the inference result output unit 26.
[0044] Similarly, in step S15, the divided data RightData is sent to the data reading unit 21, and the node setting of the corresponding child node is read. If the child node is a condition judgment node, in step S11 the condition judgment node setting reading unit 22 reads the condition judgment node setting, and steps S12 and S13 are executed for that condition judgment node. On the other hand, if the child node is a leaf node, in step S16 the leaf node setting reading unit 25 reads the leaf node setting and sends the predicted value of that leaf node to the inference result output unit 26.
[0045] In this way, the information processing device 100 proceeds from the root node of the decision tree model to the child nodes in order, and when all leaf nodes are reached, the condition determination process ends. Here, the loop process of step S13 can be executed by the processor 12 using parallel processing, so high-speed processing is possible even when the input data includes a large number of data rows.
[0046] At the end of the condition determination process, predicted values for all data rows of the input data are obtained as inference results. The inference results are temporarily stored in a storage unit within the information processing device 100, such as the memory 13 or DB 25 shown in FIG. 5. However, the predicted values are basically stored in the storage unit in the order in which they were obtained, and are not necessarily sorted in the order of row numbers in the input data. The inference result output unit 26 outputs the obtained inference results. In this case, the inference result output unit 26 may output predicted values for all data rows, or may output only specific predicted values. Furthermore, the predicted values may be output in the same order as they are stored in the storage unit, or may be output after undergoing a process of sorting them in the order of row numbers in the input data (hereinafter referred to as a "sorting process").
[0047] FIG. 8 is a flowchart of the sorting process. This process can be realized by the processor 12 shown in FIG. 5 executing a program prepared in advance. First, in step S21, the inference result output unit 26 acquires all row numbers included in the input data as RowIndices, and acquires predicted values as Predictions. Next, the inference result output unit 26 executes the loop process of step S22. Specifically, in step S22-1, the inference result output unit 26 stores the predicted values Predictions[i] in the matrix Results in the order of the row numbers RowIndices in the input data. As a result, the matrix Results has the predicted values sorted in the order of the row numbers of the input data. The processor 12 can perform this loop process in parallel. Then, the inference result output unit 26 outputs the obtained matrix Results. As a result, the predicted values are output in the order of the row numbers in the input data.
[0048] As described above, according to the first embodiment, the information processing device 100 divides input data into groups that perform the same condition judgment using the same feature based on the result of the condition judgment, and performs parallel processing for each divided data, thereby speeding up the overall processing.
[0049] [Second embodiment] In the first embodiment, input data is divided into groups that use the same feature value to perform the same conditional judgment based on the result of the conditional judgment. However, the method of the first embodiment imposes a heavy processing load, such as copying data, when the input data is large. Therefore, in the second embodiment, the input data itself is not divided and is stored in a memory unit, while only the line numbers of the input data are collected to form line number groups, which are then divided and passed to child nodes. In other words, the line numbers of the input data are used as pointers to the input data stored in the memory unit, and these pointers are grouped for parallel processing. The line number groups are an example of grouping information in the present invention.
[0050] FIG. 9 schematically illustrates the process of dividing line numbers of input data according to the second embodiment. The configuration of the decision tree model is the same as that shown in FIG. 2. First, the information processing device 100x extracts only a line number group 60 from the input data. The actual input data is stored in a predetermined storage unit within the information processing device 100x. Because the root node N1 is a condition judgment node, the information processing device 100x divides the line number group 60 into a line number group 60a to be passed to the child node N3 and a line number group 60b to be passed to the child node N2 based on the result of the condition judgment of the condition judgment node N1. At this time, the information processing device 100x performs processing by referring to the input data stored in the storage unit based on the line number group 60. Specifically, the condition judgment of the root node N1 uses feature 3 in the input data. Therefore, the information processing device 100x generates line number groups 60a and 60b based on the condition judgment command and condition judgment threshold of the condition judgment node N1, and feature 3. In this case, the information processing device 100x performs condition determination using the same column data (feature amount 3) for all row data included in the input data, and therefore can execute this by parallel processing.
[0051] FIG. 10 shows an example of dividing a line number group. Assume that the input data shown in FIG. 10 is input to the root node N1. Because the condition determination of the root node N1 is "Feature 3 = YES," the information processing device 100x divides only the line numbers of the input data based on the result of the condition determination of the root node N1. Specifically, the information processing device 100x sets a set of line numbers of data lines (#0, #2, #5, #7, ..) for which Feature 3 is "YES" as line number group 60a and passes it to the child node N3. In addition, the information processing device 100x sets a set of line numbers of data lines (#1, #3, #4, #6, ..) for which Feature 3 is "NO" as line number group 60b and passes it to the child node N2.
[0052] As a result, only the row numbers of row data for which a condition determination should be performed based on the same feature are provided to child node N3. Therefore, child node N3, which is a condition determination node, only needs to perform condition determination on data rows corresponding to the received row number group 60a, and can perform this processing in parallel. That is, the information processing device 100x can perform condition determination using feature 1 in parallel for all row data corresponding to row number group 60a. Note that, since child node N2 is a leaf node, the information processing device 100x outputs predicted values corresponding to leaf node N2 for all row data corresponding to row number group 60b.
[0053] Returning to FIG. 9 , at condition determination node N3, the information processing device 100x references the input data based on row number group 60a, further divides row number group 60a into row number groups 60c and 60d, and passes these groups to leaf node N4 and condition determination node N5, respectively. At leaf node N4, the information processing device 100x outputs predicted values corresponding to leaf node N4 for all row data included in row number group 60c. At condition determination node N5, the information processing device 100x further divides row number group 60d into row number groups 60e and 60f based on the condition determination result, and passes these values to leaf nodes N6 and N7, respectively. At leaf node N6, the information processing device 100x outputs predicted values corresponding to leaf node N6 for all row data included in row number group 60e. Similarly, at leaf node N7, the information processing device 100x outputs predicted values corresponding to leaf node N7 for all row data included in row number group 60f. In this way, when predicted values are output from all leaf nodes, the information processing device 100x outputs them as inference results.
[0054] As described above, in the second embodiment, the information processing device 100x divides a group of line numbers based on the judgment result of the condition judgment node and passes the divided line numbers to the child node. Therefore, the information processing device 100x can perform parallel processing on the input data corresponding to the group of line numbers received from the parent node at the child node, which is the condition judgment node, thereby speeding up the entire processing.
[0055] The hardware configuration of the information processing device 100x according to the second embodiment is the same as that shown in Fig. 5. Fig. 11 is a block diagram showing the functional configuration of the information processing device 100x according to the second embodiment. The functional configuration of the information processing device 100x is basically the same as that of the information processing device 100 according to the first embodiment shown in Fig. 6. However, in the information processing device 100x, the line number group dividing unit 27 divides the line number groups of the input data and sends them to the data reading unit 21 and the inference result output unit 26.
[0056] The condition determination process of the information processing device 100x according to the second embodiment is basically the same as the flowchart shown in Fig. 7. However, in steps S13-2 and S13-3, the information processing device 100x stores only the line numbers in LeftData and RightData. Then, in steps S14 and S15, the information processing device 100x performs processing by referring to the input data stored in the storage unit based on the line numbers stored in LeftData and RightData.
[0057] [Third embodiment] FIG. 12 is a block diagram showing the functional configuration of an information processing device 70 according to the third embodiment. The information processing device 70 uses a decision tree having a condition judgment node and leaf nodes. The information processing device 70 includes an acquisition unit 71, a division unit 72, a parallel processing unit 73, and an output unit 74. The acquisition unit 71 acquires an input data matrix including multiple data rows, each having multiple features. The division unit 72 generates grouping information by dividing at least a portion of the row numbers of the input data matrix in association with a child node selected in accordance with the result of the condition judgment at the condition judgment node, and passes the grouping information to the child node. The parallel processing unit 73 performs condition judgment processing on the multiple data rows indicated by the received grouping information in parallel at the condition judgment node. The output unit 74 outputs predicted values corresponding to the multiple data rows indicated by the received grouping information at the leaf node.
[0058] A part or all of the above-described embodiments can be described as, but not limited to, the following supplementary notes.
[0059] (Appendix 1) An information processing device using a decision tree having a condition judgment node and a leaf node, an acquisition unit that acquires an input data matrix including a plurality of data rows each having a plurality of feature quantities; a dividing unit that divides at least a portion of row numbers of the input data matrix in association with a child node selected in accordance with a result of the condition determination in the condition determination node, generates grouping information, and passes the grouping information to the child node; a parallel processing unit that performs, in the condition determination node, a condition determination process for a plurality of data rows indicated by the received grouping information in parallel; an output unit that outputs predicted values corresponding to a plurality of data rows indicated by the received grouping information at the leaf node; An information processing device comprising:
[0060] (Appendix 2) 2. The information processing device according to claim 1, wherein the division unit divides the input data matrix to generate a divided data matrix as the grouping information.
[0061] (Appendix 3) 3. The information processing device according to claim 2, wherein the dividing unit divides only the row number portion of the input data matrix to generate a row number group as the grouping information.
[0062] (Appendix 4) a storage unit that stores the input data matrix; The information processing device according to claim 3, wherein the parallel processing unit performs a condition determination process by referring to the input data matrix stored in the storage unit based on the row number included in the row number group.
[0063] (Appendix 5) 5. The information processing device according to claim 1, wherein the output unit outputs the predicted values by rearranging them in the same order as the order of row numbers in the input data matrix.
[0064] (Appendix 6) 6. The information processing device according to claim 5, wherein the output unit executes, by parallel processing, a process of rearranging the predicted values in the same order as the order of row numbers in the input data matrix.
[0065] (Appendix 7) 7. The information processing device according to claim 1, wherein the parallel processing unit performs parallel processing using a SIMD method.
[0066] (Appendix 8) the condition determination node selects one of a plurality of child nodes according to a result of a condition determination performed by a comparison operation of a value of a predetermined feature amount included in the input data matrix with a predetermined threshold value using a predetermined command; 7. The information processing device according to claim 1, wherein the leaf node does not have a child node and outputs a predicted value corresponding to the leaf node.
[0067] (Appendix 9) An information processing method using a decision tree having condition decision nodes and leaf nodes, obtaining an input data matrix including a plurality of data rows each having a plurality of features; in the condition determination node, dividing at least a portion of row numbers of the input data matrix to generate grouping information in association with a child node selected according to a result of the condition determination, and passing the grouping information to the child node; In the condition determination node, a condition determination process is performed in parallel for the plurality of data rows indicated by the received grouping information; An information processing method that outputs, at the leaf node, predicted values corresponding to a plurality of data rows indicated by the received grouping information.
[0068] (Appendix 10) A recording medium storing a program for causing a computer to execute information processing using a decision tree having condition judgment nodes and leaf nodes, The information processing obtaining an input data matrix including a plurality of data rows each having a plurality of features; in the condition determination node, dividing at least a portion of row numbers of the input data matrix to generate grouping information in association with a child node selected according to a result of the condition determination, and passing the grouping information to the child node; In the condition determination node, a condition determination process is performed in parallel for the plurality of data rows indicated by the received grouping information; A recording medium for processing the leaf node to output predicted values corresponding to a plurality of data rows indicated by the received grouping information.
[0069] Although the present invention has been described above with reference to the embodiments and examples, the present invention is not limited to the above-described embodiments and examples. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention. [Explanation of symbols]
[0070] 21 Data reading section 22 Condition decision node setting read section 23 Condition decision processing section 24 Data division section 25 Leaf node setting reader 26 Inference result output section 27 Line number group division part 70, 100, 100x information processing equipment
Claims
1. An information processing device using a decision tree having a condition judgment node and a leaf node, acquiring means for acquiring an input data matrix including a plurality of data rows each having a plurality of feature quantities; a dividing means for dividing at least a row number portion of the input data matrix in association with a child node selected in accordance with a result of the condition decision, in the condition decision node, to generate grouping information and pass the grouping information to the child node; a parallel processing means for performing, in the condition determination node, a condition determination process for a plurality of data rows indicated by the received grouping information in parallel; an output means for performing parallel processing at the leaf nodes to rearrange predicted values corresponding to a plurality of data rows indicated by the received grouping information into the same order as the row numbers in the input data matrix, and outputting the predicted values rearranged by the parallel processing; An information processing device comprising:
2. The information processing apparatus according to claim 1 , wherein the dividing means divides the input data matrix to generate divided data matrices as the grouping information.
3. 3. The information processing apparatus according to claim 2, wherein the dividing means divides only the row number portion of the input data matrix to generate a group of row numbers as the grouping information.
4. a storage means for storing the input data matrix; 4. The information processing apparatus according to claim 3, wherein the parallel processing means performs a condition determination process by referring to the input data matrix stored in the storage means based on the row numbers included in the group of row numbers.
5. The information processing apparatus according to claim 1 , wherein the parallel processing means performs parallel processing using an SIMD method.
6. the condition determination node selects one of a plurality of child nodes according to a result of a condition determination performed by a comparison operation of a value of a predetermined feature amount included in the input data matrix with a predetermined threshold value using a predetermined command; The information processing apparatus according to claim 1 , wherein the leaf node does not have a child node, and outputs a predicted value corresponding to the leaf node.
7. An information processing method performed by a computer using a decision tree having condition judgment nodes and leaf nodes, comprising: obtaining an input data matrix including a plurality of data rows each having a plurality of features; in the condition determination node, dividing at least a portion of row numbers of the input data matrix to generate grouping information in association with a child node selected according to a result of the condition determination, and passing the grouping information to the child node; In the condition determination node, a condition determination process is performed in parallel for the plurality of data rows indicated by the received grouping information; an information processing method in which, at the leaf node, parallel processing is performed to rearrange predicted values corresponding to a plurality of data rows indicated by the received grouping information into the same order as the order of row numbers in the input data matrix, and the predicted values rearranged by the parallel processing are output.
8. A recording medium storing a program for causing a computer to execute information processing using a decision tree having condition judgment nodes and leaf nodes, The information processing obtaining an input data matrix including a plurality of data rows each having a plurality of features; in the condition determination node, dividing at least a portion of row numbers of the input data matrix to generate grouping information in association with a child node selected according to a result of the condition determination, and passing the grouping information to the child node; In the condition determination node, a condition determination process is performed in parallel for the plurality of data rows indicated by the received grouping information; a parallel processing for sorting predicted values corresponding to a plurality of data rows indicated by the received grouping information in the leaf node into the same order as the row numbers in the input data matrix, and outputting the predicted values sorted by the parallel processing.
Citation Information
Patent Citations
Order preservation in data parallelism
JP2010532528A
Information processor, information processing method and program
JP2013117862A
Program generation device and program generation method
JP2017224070A
Method of letting rejector learn by constituting classification tree utilizing training image and detecting object on test image utilizing rejector
JP2017224278A
Data analysis server, data analysis system, and data analysis method
JP2019184852A