WO2022195690A1 - ログデータ解析装置、ログデータ解析方法及びプログラム - Google Patents
ログデータ解析装置、ログデータ解析方法及びプログラム Download PDFInfo
- Publication number
- WO2022195690A1 WO2022195690A1 PCT/JP2021/010450 JP2021010450W WO2022195690A1 WO 2022195690 A1 WO2022195690 A1 WO 2022195690A1 JP 2021010450 W JP2021010450 W JP 2021010450W WO 2022195690 A1 WO2022195690 A1 WO 2022195690A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- log data
- log
- cluster
- unit
- vector
- Prior art date
Links
- 238000007405 data analysis Methods 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 title claims description 47
- 239000013598 vector Substances 0.000 claims abstract description 118
- 238000004364 calculation method Methods 0.000 claims abstract description 33
- 238000012549 training Methods 0.000 claims description 61
- 230000006870 function Effects 0.000 claims description 23
- 238000011156 evaluation Methods 0.000 claims description 16
- 238000009825 accumulation Methods 0.000 claims 2
- 238000000926 separation method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 27
- 238000012545 processing Methods 0.000 description 23
- 238000004458 analytical method Methods 0.000 description 21
- 230000015654 memory Effects 0.000 description 19
- 230000009471 action Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 14
- 238000013500 data storage Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000005401 electroluminescence Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 230000002301 combined effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Definitions
- Embodiments of the present invention relate to a log data analysis device, a log data analysis method, and a program.
- Non-Patent Document 1 proposes a method of analyzing log data in batches
- Non-Patent Documents 2 and 3 propose methods of analyzing log data online
- Non-Patent Document 4 proposes log data analysis using deep learning
- Non-Patent Document 5 proposes a tool for automatic log analysis.
- Non-Patent Document 6 and Non-Patent Document 7 propose to perform anomaly detection based on the analysis results.
- the present invention seeks to provide a technology that enables highly accurate analysis of log data with changed syntax and log data with various syntaxes.
- a log data analysis device includes a division section, a vector calculation section, and a clustering section.
- the dividing unit divides the log data into partial words, and the vector calculating unit calculates a vector representing the log data using the partial words.
- the clustering unit clusters the vectors based on the degree of similarity with each cluster with a margin for separating the clusters.
- the log data is divided into partial words, the partial words are used to represent the log data as vectors, and the vectors are clustered using the similarity with a margin to separate the clusters further.
- FIG. 1 is a block diagram showing an example of the configuration of a log data analysis device according to one embodiment of the invention.
- FIG. 2 is a diagram illustrating an example of a hardware configuration of a log data analysis device;
- FIG. 3 is a schematic diagram showing an example of dividing a character string of log data into templates and parameters.
- FIG. 4A is a schematic diagram showing an example of correspondence between log data and clusters.
- FIG. 4B is a schematic diagram showing an analysis operation for log data.
- FIG. 5 is a schematic diagram showing an example of correct answers and incorrect answers in dividing a character string of log data into templates and parameters.
- FIG. 6 is a flowchart illustrating an example of processing operations of the log data analysis device.
- FIG. 1 is a block diagram showing an example of the configuration of a log data analysis device according to one embodiment of the invention.
- FIG. 2 is a diagram illustrating an example of a hardware configuration of a log data analysis device;
- FIG. 3 is a schematic diagram showing an example
- FIG. 7 is a flow chart showing an example of details of the initial training process and the retraining process in FIG.
- FIG. 8 is a schematic diagram showing an example of dividing a character string of log data into partial words and dividing by space delimiters.
- FIG. 9 is a schematic diagram showing an example of cluster classification of log data based on distances to representative vectors.
- FIG. 10 is a schematic diagram showing an example of relationships among eight clusters.
- FIG. 11 is a schematic diagram showing an example of the angle margin.
- FIG. 12 is a schematic diagram showing an example of the relationship of eight clusters when angle margins are incorporated.
- FIG. 13 is a diagram showing an example of an algorithm for the entire log data analysis process.
- FIG. 14 is a diagram showing an example of an algorithm for classifying logs.
- FIG. 15 is a diagram showing an example of a training algorithm.
- FIG. 16 is a schematic diagram showing analysis results of a log analysis device using a conventional log data analysis method and analysis results of a log data analysis device according to one embodiment.
- FIG. 17 is a flowchart illustrating an example of processing operations of a log data analysis device according to another embodiment.
- FIG. 1 is a block diagram showing an example of the configuration of a log data analysis device 1 according to one embodiment of this invention.
- the log data analysis device 1 includes a log data storage unit DB1, a cluster label storage unit DB2, a vocabulary storage unit DB3, a log vector set storage unit DB4, a vocabulary set calculation unit 11, a log vector calculation unit 12, and a log-cluster similarity calculation unit. 13 , a clustering accuracy evaluation unit 14 and an embedding training unit 15 . Further, the log data analysis device 1 is connected to the log data holding unit DB5.
- the log data holding unit DB1 accumulates a large amount of log data. That is, the log data holding unit DB1 holds a log data set Logs.
- the cluster label holding unit DB2 accumulates a cluster label indicating a cluster into which the log data is classified for each log data accumulated in the log data holding unit DB1. That is, the cluster label holding unit DB2 holds a set Labels of cluster labels.
- the log data set Logs accumulated in the log data holding unit DB1 and the cluster label set Labels accumulated in the cluster label holding unit DB2 can be used as training data.
- the vocabulary storage unit DB3 stores the vocabulary Vocab included in the character strings of each log in the log data set Logs stored in the log data storage unit DB1.
- the vocabulary set calculation unit 11 calculates a vocabulary set from the character string of the log data Log to be processed.
- the calculated vocabulary set is additionally stored in the vocabulary storage DB3.
- the log vector set holding unit DB4 holds log vector sets used for log analysis.
- the log vector set includes a token embedding set ⁇ Embedding Token ⁇ , a cluster representative vector set ⁇ Vector Cluster ⁇ , and a threshold Threshold.
- the token embedding set ⁇ Embedding Token ⁇ , the cluster representative vector set ⁇ Vector Cluster ⁇ , and the threshold Threshold will be described in an operation example described later.
- the log vector calculation unit 12 uses the vocabulary Vocab accumulated in the vocabulary storage unit DB3 as a dictionary to divide the character string of the log data Log to be processed into tokens. Also, the log vector calculator 12 uses this token and the log vector set held in the log vector set holder DB4 to calculate a log vector representing the log as a vector. The log vector calculation unit 12 further uses the calculated log vector and the log vector set held in the log vector set holding unit DB 4 to classify the log data Log to be processed, and output indicating the classified clusters. Output the label Output.
- the log-cluster similarity calculation unit 13 calculates the similarity Accuracy between the cluster indicated by the output label Output and the character string of the log data Log to be processed.
- the clustering accuracy evaluation unit 14 evaluates the analysis result based on the similarity Accuracy calculated by the log-cluster similarity calculation unit 13 .
- the output label Output is output as the analysis result by the log data analysis device 1 .
- the clustering accuracy evaluation unit 14 additionally accumulates the log data Log to be processed in the log data holding unit DB1, and additionally accumulates the label Label of the cluster indicated by the output label Output in the cluster label holding unit DB2.
- the clustering accuracy evaluation unit 14 evaluates that the analysis result is a correct answer, it discards the output label Output and instructs the embedding training unit 15 to retrain the log vector set.
- the embedding training unit 15 performs initial training of the log vector set using the training data, and retrains the log vector set according to the instruction from the clustering accuracy evaluation unit 14 . That is, in response to an instruction from the clustering accuracy evaluation unit 14, the embedding training unit 15 supplies the log vector calculation unit 12 with training log data one by one from the log data set Logs accumulated in the log data storage unit DB1. to calculate the vector representation Embedding Log of the log. Then, the embedding training unit 15 calculates a log vector set based on this log vector representation Embedding Log and the cluster label set Labels accumulated in the cluster label holding unit DB2.
- the embedding training unit 15 updates the log vector set held in the log vector set holding unit DB4, that is, the token embedding set ⁇ Embedding Token ⁇ , the cluster representative vector set ⁇ Vector Cluster ⁇ , and the threshold Threshold with the calculated log vector set. do.
- the details of the calculation method of the log vector set in the embedding training unit 15 will be explained in the operation example described later.
- the log data holding unit DB5 accumulates log data Log, which is data to be processed to be analyzed by the log data analysis device 1. This log data Log can be acquired by a network device or network service (not shown) and accumulated in the log data holding unit DB5.
- FIG. 2 is a diagram showing an example of the hardware configuration of the log data analysis device 1. As shown in FIG.
- the log data analysis device 1 is composed of a computer such as a server computer or a personal computer, and has a hardware processor 101 such as a CPU (Central Processing Unit). By using a multi-core and multi-threaded CPU, it is possible to execute a plurality of information processes at the same time. Also, the processor 101 may include multiple CPUs.
- program memory 102, data memory 103, communication interface 104, and input/output interface (input/output IF in FIG. 2) 105 connect bus 106 to processor 101. connected through
- the communication interface 104 can include, for example, one or more wired or wireless communication modules.
- the communication interface 104 can communicate with a network device connected via a network such as a LAN (Local Area Network) or the Internet, a server that provides network services, and acquire log data from them.
- the communication interface 104 can communicate with an external data processing device or the like to receive a request from the data processing device, and can also send a data processing result corresponding to the request back to the data processing device. .
- An input unit 107 and a display unit 108 are connected to the input/output interface 105 .
- the input unit 107 and the display unit 108 are so-called tablet-type inputs, in which an input detection sheet adopting an electrostatic method or a pressure method is arranged on a display screen of a display device using liquid crystal or organic EL (Electro Luminescence), for example. - using a display device can be used; Note that the input unit 107 and the display unit 108 may be configured by independent devices.
- the input/output interface 105 inputs operation information input from the input unit 107 to the processor 101 and displays display information generated by the processor 101 on the display unit 108 .
- the input unit 107 and the display unit 108 do not have to be connected to the input/output interface 105 .
- the input unit 107 and the display unit 108 are provided with a communication unit for connecting to the communication interface 104 directly or via a network, so that information can be exchanged with the processor 101 .
- the input/output interface 105 may have a read/write function for a recording medium such as a semiconductor memory such as a flash memory, or may be connected to a reader/writer having a read/write function for such a recording medium. It may have functions. Thereby, the recording medium detachable from the log data analysis apparatus 1 can be used as the log data holding unit DB5 that holds the log data to be processed.
- the input/output interface 105 may further have a connection function with other devices.
- the program memory 102 is a non-temporary tangible computer-readable storage medium, for example, a non-volatile memory such as a HDD (Hard Disk Drive) or SSD (Solid State Drive) that can be written and read at any time, and a non-volatile memory such as a ROM. It is used in combination with a static memory.
- the program memory 102 stores programs necessary for the processor 101 to execute various control processes according to one embodiment. That is, the processing function units in each unit of the vocabulary set calculation unit 11, the log vector calculation unit 12, the log-cluster similarity calculation unit 13, the clustering accuracy evaluation unit 14, and the embedding training unit 15 are all stored in the program memory 102. It can be realized by causing the processor 101 to read and execute the stored program. Some or all of these processing functions may be implemented in various other forms, including integrated circuits such as Application Specific Integrated Circuits (ASICs) or field-programmable gate arrays (FPGAs). May be.
- ASICs Application Specific Integrated Circuits
- FPGAs field
- the data memory 103 is a tangible computer-readable storage medium, for example, a combination of the above nonvolatile memory and a volatile memory such as RAM (Random Access Memory).
- This data memory 103 is used to store various data acquired and created in the process of performing various processes. That is, in the data memory 103, an area for storing various data is appropriately secured in the process of performing various processes. As such areas, the data memory 103 can be provided with, for example, a log data storage unit 1031, a cluster label storage unit 1032, a vocabulary storage unit 1033, a log vector set storage unit 1034, and a temporary storage unit 1035.
- the log data storage unit 1031 can function as a log data storage unit DB1.
- the cluster label storage unit 1032 can function as a cluster label holding unit DB2.
- the vocabulary storage unit 1033 can function as a vocabulary storage unit DB3.
- the log vector set storage unit 1034 can function as a log vector set storage unit DB4.
- the temporary storage unit 1035 stores data during calculation when the processor 101 operates as the log vector calculation unit 12, and the like. Further, the temporary storage unit 1035 can store log data Log to be processed received by the communication interface 104 . That is, the temporary storage unit 1035 can function as the log data holding unit DB5.
- log data analysis is a process of clustering plaintext log data generated by a program such as a network device as preprocessing for anomaly detection and the like. That is, the log data analysis process divides the character string of the log data into templates, which are common elements within the cluster, and parameters, which are different elements within the cluster. classified into
- FIG. 3 is a schematic diagram showing an example of dividing the character string of log data into templates and parameters.
- the log data "onExtend:1514038530000 0 0 4" is split into the template “onExtend:***” and the parameters "[1514038530000, 0, 0, 4]”.
- the log data "onStandStepChanged 3579" is split into the template “onStandStepChanged ***" and the parameter "[3597]”.
- FIG. 4A is a schematic diagram showing an example of correspondence between log data and clusters.
- the cluster ID is a cluster label for identifying a cluster.
- the log data analysis device 1 can analyze log data to be processed.
- two pieces of log data having the same template "onStandStepChanged ***" are classified into a cluster with the same cluster label (cluster ID) "E42".
- FIG. 4B is a schematic diagram showing the analysis operation for log data.
- the log data analysis device 1 converts it to the template “onExtend:***” and the parameters "[1514038530000, 1, 0, 4]". To divide. Then, the log data analysis device 1 compares the template “onExtend:***” with the template linked to each cluster label. As a result, the log data analysis device 1 classifies the log data to be processed "onExtend:1514038530000 1 0 4" and the log data "onExtend:1514038530000 0 0 4" having the same template "onExtend:***”. classified into the cluster label "E39".
- the log data analysis device 1 When performing such log data analysis, the log data analysis device 1 needs to correctly divide log data in which the difference between the template and the parameters is ambiguous. It is easy to distinguish between numeric values (eg IP addresses) and other strings in log data. However, when the string of log data contains statements, it is not possible to distinguish between statements and templates, as exemplified in Non-Patent Document 5, ""DB connection ok” vs. "DB connection error”. difficult. The boundaries between templates and parameters differ depending on the type of cluster or log.
- FIG. 5 is a schematic diagram showing examples of correct and incorrect answers in dividing log data character strings into templates and parameters.
- Log data "onReceive Action: android.intent.action.SCREEN_ON” as shown in Example 1, for example, if the method disclosed in Non-Patent Document 3 is applied, the template is "onReceive Action: ⁇ *>" and the parameter is " android.intent.action.SCREEN_ON".
- the correct answer is that all “onReceive Action: android.intent.action.SCREEN_ON" are parameters, but this division is the wrong answer.
- This incorrect answer causes "onReceive action: android.intent.action.SCREEN_OFF", which should be classified in a different cluster, to be classified in the same cluster.
- the log data analysis device 1 analyzes the target log data without using the requirements for each log data type, the source code, etc., so that correct analysis results can be obtained.
- FIG. 6 is a flowchart showing an example of the processing operation of the log data analysis device 1.
- FIG. 7 is a flow chart showing an example of the details of the initial training process and the re-training process in FIG.
- the log data storage unit 1031 and the cluster label storage unit 1032 have already accumulated initial training data classified in advance as the log data storage unit DB1 and the cluster label storage unit DB2.
- the processor 101 of the log data analysis device 1 When instructed to perform log data analysis from the input unit 107 via the input/output interface 105 or from an external data processing device via the communication interface 104, the processor 101 of the log data analysis device 1 performs this The operation shown in the flowchart is started.
- the processor 101 operates as the embedded training unit 15 and performs training using the initial training data (step S10).
- the log vector set stored in the log vector set storage unit 1034 functioning as the log vector set holding unit DB4 is initialized. Details of the training method will be described later.
- the processor 101 inputs log data Log as a processing target (step S11). That is, the processor 101 stores, for example, the log data Log to be processed received by the communication interface 104 in the temporary storage unit 1035 functioning as the log data holding unit DB5.
- processor 101 operates as vocabulary set calculation unit 11 to calculate a vocabulary set from the log data Log to be processed, and stores it in vocabulary storage unit 1033 functioning as vocabulary storage unit DB3 (step S12). ). That is, the processor 101 divides the character string of the log data Log into vocabularies, which are sentence pieces. For example, Kudo, Taku and J. Richardson, "Sentence Piece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing.” EMNLP (2018). ) can be used.
- Reference 1 discloses a method of dividing a character string for machine translation by feature extraction that does not depend on space delimiters.
- FIG. 8 is a schematic diagram showing an example of dividing a character string of log data into partial words and dividing by space delimiters. For example, if the log data "onReceive action: android.intent.action.SCREEN_ON" is divided by a space delimiter, it will be divided into three “onReceive action: / android.intent.action.SCREEN_ON”. If this log data is divided into partial words, it will be divided into eight vocabularies such as "on / Receive / action / : / android.intent.action. / SCREEN / _ / ON".
- the processor 101 performs the operation of the log vector calculation unit 12.
- the log data Log to be processed is converted into tokens of partial words.
- TokenizedLog step S13. This splitting process, in pseudocode, is TokenizedLog ⁇ tokenize(Log, Vocab) is represented.
- the processor 101 calculates a vector representation Embedding Log of the log data based on this token TokenizedLog and the token embedding set ⁇ Embedding Token ⁇ in the log vector set held in the log vector set holding unit DB4. (Step S14). This calculation process is represented by the following pseudo code.
- the processor 101 calculates the similarity between the vector representation Embedding Log of this log data and each cluster, that is, the distance to the representative vector (step S15).
- This similarity calculation process is represented by the following pseudocode using a cluster representative vector set ⁇ Vector Cluster ⁇ in the log vector set held in the log vector set holding unit DB4.
- the processor 101 determines whether or not the maximum similarity among the similarities calculated for each cluster is equal to or less than the threshold (step S16).
- the threshold is the threshold Threshold within the log vector set held in the log vector set holding unit DB4. Therefore, this determination process is represented by the following pseudo code.
- the processor 101 classifies into the cluster with the maximum similarity and obtains an output label Output (step S17). This classification process is represented by the following pseudocode.
- the processor 101 Output ⁇ New Cluster are classified into new clusters, and an output label Output is obtained (step S18).
- FIG. 9 is a schematic diagram showing an example of cluster classification of log data based on the distance to such a representative vector.
- a circle indicates a vector representation of log data, and a cross indicates a representative vector set for each cluster. Also, dashed lines indicate the identification boundaries between clusters. Since the vector representation of the log data to be processed indicated by the circled number 1 has a similarity below the threshold with the representative vector of cluster A having the highest similarity, this log data is classified into cluster A. be. On the other hand, since the vector representation indicated by the circled number 2 exceeds the similarity threshold for both the representative vector of cluster A and the representative vector of cluster B, this log data is It is classified into a new cluster without being classified into any.
- the processor 101 operates as the log-cluster similarity calculator 13 to calculate the similarity Accuracy between the log data Log to be processed and the cluster indicated by the output label Output (step S19).
- the processor 101 performs the operation as the clustering accuracy evaluation unit 14 and evaluates the similarity Accuracy to determine whether the output label Output is correct (step S20).
- the processor 101 adds the log data Log and the cluster label Label to the training data (step S21). That is, the processor 101 adds the log data Log to be processed to the log data holding unit DB1, and adds the output label Output as the cluster label Label to the cluster label holding unit DB2.
- the processor 101 outputs an output label Output (step S22). For example, the processor 101 displays the output label Output on the display unit 108 via the input/output interface 105, and transmits the output label Output to an external data processing device via the communication interface 104.
- the processor 101 determines whether or not an instruction to end the analysis of the log data has been issued from the input unit 107 via the input/output interface 105 or from an external data processing device via the communication interface 104 (step S23). ). If the processor 101 determines that the end has not been instructed yet, the processor 101 repeats the process from step S11. Further, when determining that the end is instructed, the processor 101 ends the processing shown in this flowchart.
- step S20 If it is determined in step S20 that the output label Output is not correct, the processor 101 operates as the embedding training unit 15 to perform retraining using training data (step S24). That is, the processor 101 updates the log vector set with the training data to which the log data Log and the cluster label Label are added by analyzing the log data after the initial training in step S10.
- step S10 In the initial training in step S10 and the re-training in step S14, as shown in FIG. 7, training is performed by distance learning with a margin set.
- the processor 101 reads log data for training from the log data holding unit DB1 (step S31). The processor 101 then divides the log data into tokens as described in step S13 above (step S32), and calculates a vector representation of the log data as described in step S14 above (step S33).
- the processor 101 from the vector representation Embedding Log of this log data and the set Labels of the cluster labels held in the cluster label holding unit DB2, Logit Log, Cluster ⁇ margincos (Embedding Log , Labels) A margined logit Logit Log,Cluster is calculated (step S34).
- the processor 101 Loss ⁇ Crossentropy (Logit Log, Cluster , Labels) , the loss function Loss with the correct cluster label Labels held in the cluster label holding unit DB2 is calculated (step S35).
- the loss function Loss is a margined loss function based on the margined logit Logit.
- Margined loss functions are described, for example, in Wang, H., Wang, Y., Zhou, Z., Ji, X., Li, Z., Gong, D., Zhou, J., & Liu, W. (2018 ), "CosFace: Large Margin Cosine Loss for Deep Face Recognition," 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, 5265-5274. ArcFace: Additive Angular Margin Loss for Deep Face Recognition," 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2019): 4685-4694.
- References 2 and 3 disclose loss function design in machine learning using deep convolutional neural networks for face recognition.
- FIG. 10 is a schematic diagram showing an example of the relationship of eight clusters.
- This figure is a diagram in which two-dimensional feature quantities are mapped onto an angular space, points indicate samples, and straight lines indicate the central direction of each cluster. It should be noted that in the figure, the sample points are close together and appear to be lines of different thicknesses. Based on feature normalization, all features are extruded into arc space with a fixed radius. With a general loss function such as Softmax, the boundaries of clusters become ambiguous as shown in the figure.
- FIG. 11 is a schematic diagram showing an example of the angular margin proposed by Reference 3.
- W 1 and W 2 represent representative vectors, and circles represent vector representations of sample data.
- the vector of sample data i in cluster 1 has a higher degree of similarity with the representative vector W 1 of cluster 1 than with the representative vector W 2 of cluster 2 . i.e. cos( ⁇ 1,i ) > cos( ⁇ 2,i ) is.
- cos( ⁇ 1,i ) ⁇ m > cos( ⁇ 2,i ) impose.
- the margin between clusters is amplified.
- the loss function L lmc is calculated by adding a margin m as shown in the following equation.
- the loss function L lmc is calculated by adding a margin m as shown in the following equation.
- FIG. 12 is a schematic diagram showing an example of the relationship of eight clusters when angle margins are incorporated. As shown in the figure, the inclusion of angular margins creates gaps between the nearest clusters and increases the distance between clusters.
- the processor 101 can calculate the logit Logit in consideration of the margin m, such as Equation 5 in Reference 2, and use this to calculate the loss function Loss with margin.
- the processor 101 updates the token embedding set ⁇ Embedding Token ⁇ and the cluster representative vector set ⁇ Vector Cluster ⁇ of the log vector set holding unit DB4 from the loss function Loss (step S36).
- step S37 processor 101 checks whether the cluster with the largest logit in all log data is equal to the correct cluster label. This confirmation process is represented by the following pseudocode.
- the processor 101 repeats the processing from step S31.
- the processor 101 sets the threshold Threshold of the log vector set holding unit DB4 (step S38). That is, the processor 101 sets the minimum threshold that can correctly classify all the training data in the log vector set holding unit DB4.
- This setting process is represented by the following pseudo code.
- the processor 101 then ends this initial training or retraining.
- step S24 correct log data and cluster labels obtained after the initial training in step S10 are added, Retrain. That is, incremental training by distance learning can be performed.
- FIGS. 13 to 15 show an example of an overall algorithm
- FIG. 14 shows an example of a log classification algorithm
- FIG. 15 shows an example of a training algorithm.
- the log data analysis apparatus 1 includes a vocabulary set calculation unit 11 as a dividing unit that divides log data into partial words, and an Embedding Log and a log vector calculation unit 12 as a clustering unit that clusters the vectors based on the similarity with each cluster with a margin for separating the clusters.
- log data analysis device 1 log data with changed syntax, log data with various syntaxes, log data of character strings in which it is difficult to distinguish between templates and parameters, delimiters representing the structure of syntax It will be possible to analyze log data that does not specify character strings with high accuracy. Therefore, highly accurate log data analysis is possible even when log data generation rules and analysis items are changed, and different types of log data are mixed due to the addition of network devices or changes in network service operation scenarios. Become.
- the log vector calculation unit 12 calculates a vector in the embedding space trained by distance learning of the training data accumulated in the log data storage unit DB1 and the cluster label storage unit DB2, and performs training similar to the calculated vector.
- the degree of similarity is determined from the distance between the representative vector Vector Cluster of each cluster obtained and the similarly trained distance threshold Threshold.
- clustering can be easily performed by using representative vectors and thresholds trained by distance learning.
- the log data analysis device 1 evaluates the output label Output, which is the result of clustering, based on the similarity between the log data and the clustered cluster Log-cluster similarity calculation as an evaluation unit Clustering accuracy as an additional unit that adds the log data Log and the cluster label Label indicating the clustered cluster to the training data when the unit 13 and the clustering accuracy evaluation unit 14 evaluate that the clustering result is correct and an evaluation unit 14 .
- the retraining unit retrains the embedding space, the representative vector of each cluster, and the threshold using the training data. Further includes an embedding training unit 15 as.
- the log data analysis device 1 further includes a vocabulary storage unit DB3 as a storage unit that stores partial words divided from the log data. uses the accumulated partial words to calculate a vector representing the log data in the training data, and uses the vector to retrain the embedding space, the representative vector of each cluster, and the threshold.
- a vocabulary storage unit DB3 as a storage unit that stores partial words divided from the log data. uses the accumulated partial words to calculate a vector representing the log data in the training data, and uses the vector to retrain the embedding space, the representative vector of each cluster, and the threshold.
- FIG. 16 is a schematic diagram showing analysis results of a log analysis device using a conventional log data analysis method and analysis results of the log data analysis device 1 according to one embodiment.
- the baseline method is space-separated string splitting of log data and training with marginless loss.
- the evaluation method is the classification accuracy of 100 cases of initial training data and 1900 cases of initial training data other than the initial training data, and the classification accuracy is evaluated by similarity Accuracy.
- FIG. 17 is a flow chart showing an example of the processing operation of the log data analysis device 1 in this case. That is, when it is determined in step S20 that the output label Output is correct, the processor 101 executes the operation as the embedding training unit 15 following the processing in step S21 to perform retraining using training data. (step S25). The retraining process in step S25 is the same as that in step S24. After that, the processor 101 proceeds to the process of step S22. In this case, the order of steps S25 and S22 may be reversed.
- the log data analysis device 1 uses the training data to which the log data and the cluster label are added, and the embedding training unit 15 as a retraining unit that retrains the embedding space, the representative vector of each cluster, and the threshold. and perform incremental training by distance learning, it is possible to improve the accuracy of log data analysis.
- the log data Log to be processed is input one by one, the log data Log to be processed may be accumulated in the temporary storage unit 1035 and read out one by one for analysis. I do not care.
- the log data analysis device 1 has each holding unit, one or more of them may be constructed in a file server that can be accessed through a network.
- the log data holding unit DB5 that holds the log data Log to be processed may be a part of the log data holding unit DB1 that holds log data that is training data.
- step S21 and the processing of step S22 shown in the flowchart may be switched in order or may be executed in parallel.
- each process in the flowcharts shown in FIGS. 6 and 7 may be switched in order or processed in parallel unless the process uses the results of previous processes. I do not care.
- the method described in each embodiment can be executed by a computer (computer) as a program (software means), such as a magnetic disk (floppy (registered trademark) disk, hard disk, etc.), an optical disk (CD-ROM, DVD , MO, etc.), a semiconductor memory (ROM, RAM, flash memory, etc.), or the like, or may be transmitted and distributed via a communication medium.
- the programs stored on the medium also include a setting program for configuring software means (including not only execution programs but also tables and data structures) to be executed by the computer.
- a computer that realizes this apparatus reads a program recorded on a recording medium, and in some cases, builds software means by a setting program, and executes the above-described processes by controlling the operation by this software means.
- the term "recording medium” as used herein is not limited to those for distribution, and includes storage media such as magnetic disks, semiconductor memories, etc. provided in computers or devices connected via a network.
- the present invention is not limited to the above embodiments, and can be modified in various ways without departing from the gist of the invention at the implementation stage.
- each embodiment may be implemented in combination as much as possible, and in that case, the combined effect can be obtained.
- the above-described embodiments include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Debugging And Monitoring (AREA)
Abstract
一実施形態に係るログデータ解析装置は、分割部と、ベクトル算出部と、クラスタリング部と、を備える。分割部は、ログデータを部分単語に分割する、ベクトル算出部は、部分単語を使ってログデータを表現するベクトルを算出する。クラスタリング部は、クラスタ間により遠ざけるためのマージンを入れた各クラスタとの類似度に基づいて、ベクトルをクラスタリングする。
Description
この発明の実施形態は、ログデータ解析装置、ログデータ解析方法及びプログラムに関する。
ネットワーク装置やネットワークサービスについて、監視の自動化、分析及び対処の精度を向上させるために、適切にログデータを分類及び解析するログデータ解析手法が各種提案されている。
例えば、非特許文献1は、バッチ的にログデータを解析する手法を提案し、非特許文献2及び非特許文献3は、オンライン的にログデータを解析する手法を提案している。また、非特許文献4は、深層学習を用いたログデータ解析を提案し、非特許文献5は、自動ログ解析のためのツールを提案している。
また、ログデータの解析結果の利用法として、例えば、非特許文献6及び非特許文献7は、解析結果を基に異常検知を行うことを提案している。
R. Vaarandi and M. Pihelgas, "Logcluster-A Data Clustering and Pattern Mining Algorithm for Event Logs," in 2015 11th International Conference on Network and Service Management (CNSM), IEEE, 2015, pp. 1-7.
S. Huang et al., "Paddy: An Event Log Parsing Approach using Dynamic Dictionary," NOMS 2020 - 2020 IEEE/IFIP Network Operations and Management Symposium, Budapest, Hungary, 2020, pp. 1-8, doi: 10.1109/NOMS47738.2020.9110435.
P. He, J. Zhu, Z. Zheng, and M. R. Lyu, "Drain: An online log parsing approach with fixed depth tree," in 2017 IEEE International Conference on Web Services (ICWS). IEEE, 2017, pp. 33-40.
Thaler S., Menkovski V., Petkovic M. (2017) "Unsupervised Signature Extraction from Forensic Logs," In: Altun Y. et al. (eds) Machine Learning and Knowledge Discovery in Databases. ECML PKDD 2017. Lecture Notes in Computer Science.
J. Zhu, S. He, J. Liu, P. He, Q. Xie, Z. Zheng, and M. R. Lyu, "Tools and Benchmarks for Automated Log Parsing," in Proceedings of the 41st International Conference on Software Engineering: Software Engineering in Practice. IEEE Press, 2019, pp. 121-130.
Du, M. et al. "DeepLog: Anomaly Detection and Diagnosis from System Logs through Deep Learning," Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security (2017): n. pag.
Meng, Weibin et al. "LogAnomaly: Unsupervised Detection of Sequential and Quantitative Anomalies in Unstructured Logs," IJCAI (2019).
ネットワーク装置の追加、ネットワークサービスの運用シナリオの変化によるソフトウェアの更改、等によって、ログデータにおける分析の対象や項目が変化する。一方、従来のログデータ解析手法は、あらかじめ定められたログデータを生成する規則に大きく依存している。よって、従来のログデータ解析手法では、構文の変化したログデータや様々な構文のログデータを高精度に解析することが困難である。
この発明は、構文の変化したログデータや様々な構文のログデータを高精度に解析することが可能となる技術を提供しようとするものである。
上記課題を解決するために、この発明の一態様に係るログデータ解析装置は、分割部と、ベクトル算出部と、クラスタリング部と、を備える。分割部は、ログデータを部分単語に分割する、ベクトル算出部は、部分単語を使ってログデータを表現するベクトルを算出する。クラスタリング部は、クラスタ間により遠ざけるためのマージンを入れた各クラスタとの類似度に基づいて、ベクトルをクラスタリングする。
この発明の一態様によれば、部分単語にログデータを分割し、部分単語を使ってログデータをベクトルとして表現し、クラスタをより遠ざけるためのマージンを入れた類似度を使ってベクトルをクラスタリングし、追加されたログデータを使ってクラスタリングで用いるベクトル表現や閾値を再訓練することで、構文の変化したログデータや様々な構文のログデータを高精度に解析することが可能となる技術を提供することができる。
以下、図面を参照して、この発明に係わる実施形態を説明する。
(構成例)
図1は、この発明の一実施形態に係るログデータ解析装置1の構成の一例を示すブロック図である。ログデータ解析装置1は、ログデータ保持部DB1、クラスタラベル保持部DB2、語彙保持部DB3、ログベクトル集合保持部DB4、語彙集合算出部11、ログベクトル算出部12、ログ-クラスタ類似度算出部13、クラスタリング精度評価部14及び埋め込み訓練部15を有する。また、ログデータ解析装置1は、ログデータ保持部DB5に接続される。
図1は、この発明の一実施形態に係るログデータ解析装置1の構成の一例を示すブロック図である。ログデータ解析装置1は、ログデータ保持部DB1、クラスタラベル保持部DB2、語彙保持部DB3、ログベクトル集合保持部DB4、語彙集合算出部11、ログベクトル算出部12、ログ-クラスタ類似度算出部13、クラスタリング精度評価部14及び埋め込み訓練部15を有する。また、ログデータ解析装置1は、ログデータ保持部DB5に接続される。
ログデータ保持部DB1は、多数のログデータを蓄積している。すなわち、ログデータ保持部DB1は、ログデータの集合Logsを保持している。クラスタラベル保持部DB2は、ログデータ保持部DB1に蓄積された各ログデータについて、当該ログデータが分類されたクラスタを示すクラスタラベルを蓄積している。すなわち、クラスタラベル保持部DB2は、クラスタラベルの集合Labelsを保持している。これらログデータ保持部DB1に蓄積されたログデータの集合Logs及びクラスタラベル保持部DB2に蓄積されたクラスタラベルの集合Labelsは、訓練データとして利用されることができる。
語彙保持部DB3は、ログデータ保持部DB1に蓄積されたログデータの集合Logsにおける各ログの文字列に含まれる語彙Vocabを蓄積する。語彙集合算出部11は、処理対象のログデータLogの文字列から語彙集合を算出する。算出された語彙集合は、語彙保持部DB3に追加蓄積される。
ログベクトル集合保持部DB4は、ログの解析に使用するログベクトル集合を保持している。ログベクトル集合は、トークン埋め込み集合{EmbeddingToken}、クラスタの代表ベクトル集合{VectorCluster}及び閾値Thresholdを含む。これらトークン埋め込み集合{EmbeddingToken}、クラスタの代表ベクトル集合{VectorCluster}及び閾値Thresholdについては、後述する動作例において説明する。
ログベクトル算出部12は、語彙保持部DB3に蓄積された語彙Vocabを辞書として使用して、処理対象のログデータLogの文字列をトークンに分割する。また、ログベクトル算出部12は、このトークンとログベクトル集合保持部DB4に保持されたログベクトル集合とを使って、ログをベクトルとして表現したログベクトルを算出する。ログベクトル算出部12は、さらに、この算出したログベクトルとログベクトル集合保持部DB4に保持されたログベクトル集合とを使って、処理対象のログデータLogを分類し、分類されたクラスタを示す出力ラベルOutputを出力する。
ログ-クラスタ類似度算出部13は、出力ラベルOutputで示されるクラスタと処理対象のログデータLogの文字列との類似度Accuracyを算出する。クラスタリング精度評価部14は、ログ-クラスタ類似度算出部13が算出した類似度Accuracyにより解析結果を評価する。クラスタリング精度評価部14は、解析結果が正答であると評価した場合には、出力ラベルOutputを、本ログデータ解析装置1による解析結果として出力する。さらにこの場合、クラスタリング精度評価部14は、処理対象のログデータLogをログデータ保持部DB1に追加蓄積させると共に、出力ラベルOutputで示されるクラスタのラベルLabelをクラスタラベル保持部DB2に追加蓄積させる。これに対して、クラスタリング精度評価部14は、解析結果が正答であると評価した場合には、出力ラベルOutputを破棄し、埋め込み訓練部15に対してログベクトル集合の再訓練を指示する。
埋め込み訓練部15は、訓練データを用いたログベクトル集合の初期訓練を行うと共に、クラスタリング精度評価部14からの指示に応じて、ログベクトル集合の再訓練を行う。すなわち、埋め込み訓練部15は、クラスタリング精度評価部14からの指示に応じて、ログベクトル算出部12に、ログデータ保持部DB1に蓄積されたログデータの集合Logsから一つずつ訓練用のログデータを読み出させて、ログのベクトル表現EmbeddingLogを算出させる。そして、埋め込み訓練部15は、このログのベクトル表現EmbeddingLogとクラスタラベル保持部DB2に蓄積されたクラスタラベルの集合Labelsとに基づいて、ログベクトル集合を計算する。埋め込み訓練部15は、計算したログベクトル集合で、ログベクトル集合保持部DB4に保持されたログベクトル集合、つまりトークン埋め込み集合{EmbeddingToken}、クラスタの代表ベクトル集合{VectorCluster}及び閾値Thresholdを更新する。なお、この埋め込み訓練部15でのログベクトル集合の計算手法の詳細は、後述する動作例において説明する。
ログデータ保持部DB5は、ログデータ解析装置1で解析させる処理対象データであるログデータLogを蓄積している。このログデータLogは、図示しないネットワーク装置やネットワークサービスによって取得されて、ログデータ保持部DB5に蓄積されることができる。
図2は、ログデータ解析装置1のハードウェア構成の一例を示す図である。
ログデータ解析装置1は、図2に示すように、例えばサーバコンピュータ(Server computer)やパーソナルコンピュータ(Personal computer)などのコンピュータにより構成され、CPU(Central Processing Unit)等のハードウェアプロセッサ101を有する。なお、CPUは、マルチコア及びマルチスレッドのものを用いることで、同時に複数の情報処理を実行することができる。また、プロセッサ101は、複数のCPUを備えていても良い。そして、ログデータ解析装置1では、このプロセッサ101に対し、プログラムメモリ102と、データメモリ103と、通信インタフェース104と、入出力インタフェース(図2では入出力IFと記す)105とが、バス106を介して接続される。
通信インタフェース104は、例えば一つ以上の有線または無線の通信モジュールを含むことができる。通信インタフェース104は、LAN(Local Area Network)やインターネットなどのネットワークを介して接続されるネットワーク装置やネットワークサービスを提供するサーバなどとの間で通信を行い、それらからログデータを取得することができる。また、通信インタフェース104は、外部のデータ処理装置などと通信して、そのデータ処理装置からの要求を受信したり、その要求に応じたデータ処理結果をデータ処理装置に返信したりすることもできる。
入出力インタフェース105には、入力部107及び表示部108が接続されている。入力部107及び表示部108は、例えば液晶または有機EL(Electro Luminescence)を使用した表示デバイスの表示画面上に、静電方式または圧力方式を採用した入力検知シートを配置した、いわゆるタブレット型の入力・表示デバイスを用いたものが用いられることができる。なお、入力部107及び表示部108は独立するデバイスにより構成されても良い。入出力インタフェース105は、上記入力部107において入力された操作情報をプロセッサ101に入力すると共に、プロセッサ101で生成された表示情報を表示部108に表示させる。
なお、入力部107及び表示部108は、入出力インタフェース105に接続されていなくても良い。入力部107及び表示部108は、通信インタフェース104と直接またはネットワークを介して接続するための通信ユニットを備えることで、プロセッサ101との間で情報の授受を行い得る。
また、入出力インタフェース105は、フラッシュメモリなどの半導体メモリといった記録媒体のリード/ライト機能を有しても良いし、あるいは、そのような記録媒体のリード/ライト機能を持ったリーダライタとの接続機能を有しても良い。これにより、ログデータ解析装置1に対して着脱自在な記録媒体を、処理対象のログデータを保持するログデータ保持部DB5とすることができる。入出力インタフェース105は、さらに、他の機器との接続機能を有して良い。
プログラムメモリ102は、非一時的な有形のコンピュータ可読記憶媒体として、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)等の随時書込み及び読出しが可能な不揮発性メモリと、ROM等の不揮発性メモリとが組合せて使用されたものである。このプログラムメモリ102には、プロセッサ101が一実施形態に係る各種制御処理を実行するために必要なプログラムが格納されている。すなわち、上記の語彙集合算出部11、ログベクトル算出部12、ログ-クラスタ類似度算出部13、クラスタリング精度評価部14及び埋め込み訓練部15の各部における処理機能部は、何れも、プログラムメモリ102に格納されたプログラムを上記プロセッサ101により読み出させて実行させることにより実現され得る。なお、これらの処理機能部の一部または全部は、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)またはFPGA(field-programmable gate array)などの集積回路を含む、他の多様な形式によって実現されても良い。
データメモリ103は、有形のコンピュータ可読記憶媒体として、例えば、上記の不揮発性メモリと、RAM(Random Access Memory)等の揮発性メモリとが組合せて使用されたものである。このデータメモリ103は、各種処理が行われる過程で取得及び作成された各種データが記憶されるために用いられる。すなわち、データメモリ103には、各種処理が行われる過程で、適宜、各種データを記憶するための領域が確保される。そのような領域として、データメモリ103には、例えば、ログデータ記憶部1031、クラスタラベル記憶部1032、語彙記憶部1033、ログベクトル集合記憶部1034及び一時記憶部1035を設けることができる。
ログデータ記憶部1031は、ログデータ保持部DB1として機能することができる。クラスタラベル記憶部1032は、クラスタラベル保持部DB2として機能することができる。語彙記憶部1033は、語彙保持部DB3として機能することができる。ログベクトル集合記憶部1034は、ログベクトル集合保持部DB4として機能することができる。一時記憶部1035は、プロセッサ101が、上記ログベクトル算出部12としての動作を実施した際の計算途中のデータ等などを記憶する。また、一時記憶部1035は、通信インタフェース104が受信した処理対象のログデータLogを記憶することができる。すなわち、一時記憶部1035は、ログデータ保持部DB5として機能することができる。
(動作)
次に、ログデータ解析装置1の動作を説明する。
次に、ログデータ解析装置1の動作を説明する。
本実施形態において、ログデータの解析とは、異常検知等の前処理として、ネットワーク装置等のプログラムが生成した平文のログデータをクラスタリングする処理である。すなわち、ログデータ解析処理は、ログデータの文字列を、クラスタ内で共通する要素であるテンプレートと、クラスタ内で異なる要素であるパラメータとに分割し、このテンプレートに基づいてログデータを対応するクラスタに分類する。
図3は、ログデータの文字列からテンプレートとパラメータへの分割例を示す模式図である。例えば、「onExtend:1514038530000 0 0 4」というログデータは、テンプレート「onExtend:***」とパラメータ「[1514038530000, 0, 0, 4]」に分割される。また、「onStandStepChanged 3579」というログデータは、テンプレート「onStandStepChanged ***」とパラメータ「[3597]」に分割される。
図4Aは、ログデータとクラスタの対応例を示す模式図である。同図において、クラスタIDはクラスタを識別するクラスタラベルである。例えば、事前に人手によってテンプレートとクラスタラベルとの紐付けを行っておくことで、ログデータ解析装置1は、処理対象のログデータの解析を行うことができる。図4Aの例では、同じテンプレート「onStandStepChanged ***」を持つ2つのログデータが同じクラスタラベル(クラスタID)「E42」のクラスタに分類されている。
図4Bは、ログデータについての解析動作を示す模式図である。処理対象のログデータ「onExtend:1514038530000 1 0 4」が与えられたとき、ログデータ解析装置1は、それをテンプレート「onExtend:***」とパラメータ「[1514038530000, 1, 0, 4]」に分割する。そして、ログデータ解析装置1は、テンプレート「onExtend:***」を、各クラスタラベルに紐付けられたテンプレートと比較する。その結果、ログデータ解析装置1は、処理対象のログデータ「onExtend:1514038530000 1 0 4」を、同じテンプレート「onExtend:***」を持つログデータ「onExtend:1514038530000 0 0 4」が分類済みである、クラスタラベル「E39」に分類する。
このようなログデータ解析を行う場合、ログデータ解析装置1は、テンプレートとパラメータの差が曖昧なログデータを正しく分割することが必要である。ログデータの文字列から数値(例えばIPアドレス)とその他の文字列とを区別することは簡単である。しかしながら、ログデータの文字列がステートメントを含む場合、例えば非特許文献5に「"DB connection ok" vs. "DB connection error"」と例示されているように、ステートメントとテンプレートとを区別することは難しい。テンプレートとパラメータとの境界は、クラスタやログの種別によって異なる。
図5は、ログデータの文字列からテンプレートとパラメータへの分割における正答及び誤答の例を示す模式図である。例1に示すようなログデータ「onReceive action: android.intent.action.SCREEN_ON」は、例えば非特許文献3に開示された手法を適用すると、テンプレートを「onReceive action: <*>」、パラメータを「android.intent.action.SCREEN_ON」と分割してしまう。このログデータにおいては、「onReceive action: android.intent.action.SCREEN_ON」全てがパラメータとされるのが正答であり、この分割は誤答である。この誤答により、別のクラスタに分類されなければならない「onReceive action: android.intent.action.SCREEN_OFF」が同じクラスタに分類されてしまうことが起こる。
また、ログデータのテンプレートとパラメータへの分割は、ログデータの構文に強く依存する。テンプレートとパラメータへの分割は、一般に、スペース区切りを前提としている。そのため、パラメータを含む文字列の全てをテンプレートと見做して、分割してしまう。
例えば、図5の例2に示すようなログデータ「setTodayTotalDetailSteps=1514038440000##7007##548365##8661##12361##27173954」では、スペースを含まないため、その全てがテンプレートとされてしまう。このログデータにおいては、「setTodayTotalDetailSteps=<*>」がパラメータ、「1514038440000##7007##548365##8661##12361##27173954」がテンプレートとされるのが正答であり、この分割は誤答である。この誤答により、同じクラスタに分類されなければならない「setTodayTotalDetailSteps=325#…#284」が別クラスタに分類されてしまうことが起こる。
本実施形態係るログデータ解析装置1は、ログデータ種毎の要件、ソースコード等を手掛かりにせずに対象ログデータを解析することで、正しい解析結果が得られるようにしている。
図6は、ログデータ解析装置1の処理動作の一例を示すフローチャートである。また、図7は、図6中の初期訓練処理及び再訓練処理の詳細の一例を示すフローチャートである。ここでは、既に、ログデータ記憶部1031及びクラスタラベル記憶部1032には、ログデータ保持部DB1及びクラスタラベル保持部DB2として、事前に分類された初期訓練データが蓄積されているものとする。
入出力インタフェース105を介して入力部107から、あるいは、通信インタフェース104を介して外部のデータ処理装置から、ログデータの解析の実施を指示されると、ログデータ解析装置1のプロセッサ101は、このフローチャートに示す動作を開始する。
まず、プロセッサ101は、埋め込み訓練部15としての動作を実行して、初期訓練データによる訓練を行う(ステップS10)。これにより、ログベクトル集合保持部DB4として機能するログベクトル集合記憶部1034に記憶されるログベクトル集合が初期化される。訓練手法の詳細については後述する。
そして、プロセッサ101は、ログデータLogを処理対象として入力する(ステップS11)。すなわち、プロセッサ101は、例えば通信インタフェース104が受信した処理対象のログデータLogを、ログデータ保持部DB5として機能する一時記憶部1035に記憶する。
次に、プロセッサ101は、語彙集合算出部11としての動作を実行して、処理対象のログデータLogから語彙集合を計算し、語彙保持部DB3として機能する語彙記憶部1033に記憶する(ステップS12)。すなわち、プロセッサ101は、ログデータLogの文字列を部分単語(Senencepiece)である語彙に分割する。この部分単語への分割は、例えば、Kudo, Taku and J. Richardson, "SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing." EMNLP (2018).(以下、参考文献1と記す。)で提案された手法を利用することができる。参考文献1は、機械翻訳用に文字列を分割する際に、スペース区切りに依存しない特徴抽出により分割する手法を開示している。
図8は、ログデータの文字列の部分単語への分割とスペース区切りによる分割の例を示す模式図である。例えば、ログデータ「onReceive action: android.intent.action.SCREEN_ON」をスペース区切りで分割すると、「onReceive / action: / android.intent.action.SCREEN_ON」と3つに分割される。このログデータを部分単語に分割すると、「on / Receive / action / : / android.intent.action. / SCREEN / _ / ON」と8つの語彙に分割される。
次に、プロセッサ101は、ログベクトル算出部12としての動作を実行して、まず、語彙保持部DB3に保持された語彙Vocabを辞書として使用して、処理対象のログデータLogを部分単語のトークンTokenizedLogに分割する(ステップS13)。この分割処理は、擬似コードでは、
TokenizedLog ← tokenize(Log,Vocab)
と表される。
TokenizedLog ← tokenize(Log,Vocab)
と表される。
その後、プロセッサ101は、このトークンTokenizedLogと、ログベクトル集合保持部DB4に保持されたログベクトル集合の内のトークン埋め込み集合{EmbeddingToken}とに基づいて、ログデータのベクトル表現EmbeddingLogを、計算する(ステップS14)。この計算処理は、以下の擬似コードで表される。
そして、プロセッサ101は、このログデータのベクトル表現EmbeddingLogと各クラスタの類似度、つまり代表ベクトルへの距離を計算する(ステップS15)。この類似度の計算処理は、ログベクトル集合保持部DB4に保持されたログベクトル集合の内のクラスタの代表ベクトル集合{VectorCluster}を用いて、以下の擬似コードで表される。
ここで、プロセッサ101は、各クラスタについて計算した類似度の内で最大の類似度が閾値以下であるかどうか判定する(ステップS16)。閾値は、ログベクトル集合保持部DB4に保持されたログベクトル集合の内の閾値Thresholdである。よって、この判定処理は、以下の擬似コードで表される。
最大類似度が閾値以下であると判定した場合、プロセッサ101は、その最大の類似度となるクラスタへ分類し、出力ラベルOutputを得る(ステップS17)。この分類処理は、以下の擬似コードで表される。
これに対して、最大類似度が閾値以下ではないと判定した場合、プロセッサ101は、
Output ← New Cluster
の擬似コードで表すように、新規クラスタへ分類し、出力ラベルOutputを得る(ステップS18)。
Output ← New Cluster
の擬似コードで表すように、新規クラスタへ分類し、出力ラベルOutputを得る(ステップS18)。
図9は、このような代表ベクトルまでの距離によるログデータのクラスタ分類例を示す模式図である。丸印はログデータのベクトル表現を示し、バツ印はクラスタ毎に設定した代表ベクトルを示している。また、破線は、クラスタ間の識別境界を示している。丸数字の1で示される処理対象のログデータのベクトル表現は、類似度が最大であるクラスタAの代表ベクトルとの間の類似度が閾値以下であるので、このログデータはクラスタAへ分類される。一方、丸数字の2で示されるベクトル表現は、クラスタAの代表ベクトル及びクラスタBの代表ベクトルの何れとの間の類似度とも閾値を超えているので、このログデータは、クラスタA及びBの何れへも分類されず、新クラスタへ分類される。
次に、プロセッサ101は、ログ-クラスタ類似度算出部13としての動作を実行して、処理対象のログデータLogと出力ラベルOutputで示されるクラスタとの類似度Accuracyを計算する(ステップS19)。
そして、プロセッサ101は、クラスタリング精度評価部14としての動作を実行して、類似度Accuracyを評価することで、出力ラベルOutputが正解であるか否か判定する(ステップS20)。
ここで、出力ラベルOutputが正解であると判定したならば、プロセッサ101は、ログデータLogとクラスタラベルLabelを訓練データに追加する(ステップS21)。すなわち、プロセッサ101は、処理対象のログデータLogをログデータ保持部DB1に追加すると共に、出力ラベルOutputをクラスタラベルLabelとしてクラスタラベル保持部DB2に追加する。
また、プロセッサ101は、出力ラベルOutputを出力する(ステップS22)。例えば、プロセッサ101は、入出力インタフェース105を介して表示部108に出力ラベルOutputを表示したり、通信インタフェース104を介して外部のデータ処理装置へ出力ラベルOutputを送信したりする。
その後、プロセッサ101は、入出力インタフェース105を介して入力部107から、あるいは、通信インタフェース104を介して外部のデータ処理装置から、ログデータの解析の終了が指示されたか否か判定する(ステップS23)。未だ終了が指示されていないと判定した場合には、プロセッサ101は、上記ステップS11の処理から繰り返す。また、終了が指示されていると判定した場合には、プロセッサ101は、このフローチャートに示す処理を終了する。
また、上記ステップS20において、出力ラベルOutputが正解ではないと判定したならば、プロセッサ101は、埋め込み訓練部15としての動作を実行して、訓練データによる再訓練を行う(ステップS24)。すなわち、プロセッサ101は、上記ステップS10での初期訓練後のログデータの解析により、ログデータLogとクラスタラベルLabelが追加された訓練データにより、ログベクトル集合を更新する。
ステップS10での初期訓練及びステップS14での再訓練においては、図7に示すように、マージンを設定した距離学習による訓練を行う。
すなわち、プロセッサ101は、ログデータ保持部DB1から訓練用のログデータを読み出す(ステップS31)。そして、プロセッサ101は、上記ステップS13で説明したようにログデータをトークンに分割し(ステップS32)、上記ステップS14で説明したようにログデータのベクトル表現を計算する(ステップS33)。
プロセッサ101は、このログデータのベクトル表現EmbeddingLogと、クラスタラベル保持部DB2に保持されているクラスタラベルの集合Labelsとから、
LogitLog,Cluster ← margincos(EmbeddingLog,Labels)
の擬似コードで表されるように、マージン付きロジットLogitLog,Clusterを計算する(ステップS34)。
LogitLog,Cluster ← margincos(EmbeddingLog,Labels)
の擬似コードで表されるように、マージン付きロジットLogitLog,Clusterを計算する(ステップS34)。
そして、プロセッサ101は、
Loss ← Crossentropy(LogitLog,Cluster,Labels)
の擬似コードで表されるように、クラスタラベル保持部DB2に保持されている正解クラスタラベルLabelsとの損失関数Lossを計算する(ステップS35)。このように、損失関数Lossは、マージン付きロジットLogitに基づくマージン付き損失関数である。
Loss ← Crossentropy(LogitLog,Cluster,Labels)
の擬似コードで表されるように、クラスタラベル保持部DB2に保持されている正解クラスタラベルLabelsとの損失関数Lossを計算する(ステップS35)。このように、損失関数Lossは、マージン付きロジットLogitに基づくマージン付き損失関数である。
ここで、マージン付き損失関数について説明する。
マージン付き損失関数は、例えば、Wang, H., Wang, Y., Zhou, Z., Ji, X., Li, Z., Gong, D., Zhou, J., & Liu, W. (2018), "CosFace: Large Margin Cosine Loss for Deep Face Recognition," 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, 5265-5274.(以下、参考文献2と記す。)、Deng, Jiankang et al., "ArcFace: Additive Angular Margin Loss for Deep Face Recognition," 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2019): 4685-4694.(以下、参考文献3と記す。)、等に提案されている。参考文献2及び3は、顔認識のための深層畳み込みニューラルネットワークを用いた機械学習における損失関数の設計を開示している。
マージン付き損失関数は、例えば、Wang, H., Wang, Y., Zhou, Z., Ji, X., Li, Z., Gong, D., Zhou, J., & Liu, W. (2018), "CosFace: Large Margin Cosine Loss for Deep Face Recognition," 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, 5265-5274.(以下、参考文献2と記す。)、Deng, Jiankang et al., "ArcFace: Additive Angular Margin Loss for Deep Face Recognition," 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2019): 4685-4694.(以下、参考文献3と記す。)、等に提案されている。参考文献2及び3は、顔認識のための深層畳み込みニューラルネットワークを用いた機械学習における損失関数の設計を開示している。
図10は、8つのクラスタの関係の一例を示す模式図である。この図は、2次元特徴量を角度空間に写像した図であり、点はサンプルを示し、直線は各クラスタの中心方向を示す。なお、図では、サンプルの点が密接し、異なる太さの線となっているように見えている。特徴の正規化に基づいて、全ての特徴量は固定の半径で円弧空間に押し出されている。Softmax等の一般的な損失関数は、同図に示すように、クラスタの境界が曖昧となってしまう。
参考文献2及び3は、マージンを設定し、クラスタ間をより遠ざけることを提案している。図11は、参考文献3によって提案される、角度マージンの一例を示す模式図である。同図において、W1,W2は代表ベクトルを示し、丸印はサンプルデータのベクトル表現を示している。クラスタ1内のサンプルデータiのベクトルは、クラスタ2の代表ベクトルW2よりもクラスタ1の代表ベクトルW1との類似度が高い。すなわち、
cos(θ1,i) > cos(θ2,i)
である。この制約をより強くするために、以下の条件
cos(θ1,i)-m > cos(θ2,i)
を課す。mが増加するにつれて、クラスタ間のマージンが増幅される。
cos(θ1,i) > cos(θ2,i)
である。この制約をより強くするために、以下の条件
cos(θ1,i)-m > cos(θ2,i)
を課す。mが増加するにつれて、クラスタ間のマージンが増幅される。
具体的には、参考文献2では、次式に示すように、マージンmを追加して損失関数Llmcを計算している。
また、参考文献3では、次式に示すように、マージンmを追加して損失関数Llmcを計算している。
図12は、角度マージンを組み込んだ場合の8つのクラスタの関係の一例を示す模式図である。同図に示すように、角度マージンが組み込まれることで、最も近いクラスタ間にギャップが生じ、クラスタ間の距離が広がる。
プロセッサ101は、例えば参考文献2の数5のようなマージンmを考慮したロジットLogitを算出し、これを用いることでマージン付き損失関数Lossを計算することができる。
次に、プロセッサ101は、損失関数Lossから、ログベクトル集合保持部DB4のトークン埋め込み集合{EmbeddingToken}及びクラスタの代表ベクトル集合{VectorCluster}を更新する(ステップS36)。
その後、ロジットLogitLog,Clusterが最大のクラスタが、その正解クラスタラベルLabelと等しいか否か判定する(ステップS37)。すなわち、プロセッサ101は、全ログデータでロジットが最大であるクラスタが正解クラスタラベルと等しいか確認する。この確認処理は、以下の擬似コードで表される。
ここで、ロジットLogitLog,Clusterが最大のクラスタが正解クラスタラベルLabelと等しくないと判定した場合、プロセッサ101は、上記ステップS31の処理から繰り返す。
これに対して、ロジットLogitLog,Clusterが最大のクラスタが正解クラスタラベルLabelと等しと判定した場合には、プロセッサ101は、ログベクトル集合保持部DB4の閾値Thresholdを設定する(ステップS38)。すなわち、プロセッサ101は、全訓練データを正しく分類できる最小の閾値をログベクトル集合保持部DB4に設定する。この設定処理は、以下の擬似コードで表される。
そして、プロセッサ101は、この初期訓練または再訓練を終了する。
このように、上記ステップS20において出力ラベルOutputが正解ではないと判定した場合には、上記ステップS24において、上記ステップS10での初期訓練後に得られた正解のログデータ及びクラスタラベルを追加して、再訓練を行う。すなわち、距離学習による増分的な訓練を行うことができる。
なお、以上のログデータ解析処理は、図13乃至図15のアルゴリズムのように表すことができる。ここで、図13は全体のアルゴリズムの一例、図14はログを分類のアルゴリズムの一例、図15は訓練のアルゴリズムの一例、をそれぞれ示している。
以上に説明した一実施形態に係るログデータ解析装置1は、ログデータを部分単語に分割する分割部としての語彙集合算出部11と、部分単語を使ってログデータを表現するベクトルであるEmbeddingLogを算出するベクトル算出部及びクラスタ間により遠ざけるためのマージンを入れた各クラスタとの類似度に基づいて、ベクトルをクラスタリングするクラスタリング部としてのログベクトル算出部12と、を備える。
このように、ログデータをログデータ内の文字列を利用して部分単語に分割することで、スペース区切りに依存しない、すなわち、ログデータの構文に依存しない特徴抽出が可能となる。また、この部分単語を使ってログデータをベクトルとして表現し、クラスタをより遠ざけるためのマージンを入れた類似度を使ってベクトルをクラスタリングすることで、クラスタ間の距離をより遠ざけることができるので、ログデータ中の文字列がテンプレートを表すものか、パラメータ(値)を表すものかの区別が難しいログデータであっても、クラスタリングすることが可能となる。すなわち、一実施形態に係るログデータ解析装置1によれば、構文の変化したログデータ、様々な構文を持つログデータ、テンプレートとパラメータの区別が難しい文字列のログデータ、構文の構造を表す区切り文字列を特定の文字列としないログデータ、を高精度に解析できるようになる。よって、ネットワーク装置の追加やネットワークサービスの運用シナリオの変化によって、ログデータの生成規則や分析項目の変更、異なる種別のログデータが混在している場合にも、高精度なログデータ解析が可能となる。
また、ログベクトル算出部12は、ログデータ保持部DB1及びクラスタラベル保持部DB2に蓄積された訓練データの距離学習によって訓練された埋め込み空間でのベクトルを算出し、この算出したベクトルと同じく訓練された各クラスタの代表ベクトルVectorClusterとの間の距離と、同じく訓練された距離の閾値Thresholdとにより、類似度を判定する。
このように、距離学習によって訓練した代表ベクトルと閾値とを使用することで、クラスタリングを容易に行うことができる。
また、一実施形態に係るログデータ解析装置1は、クラスタリングの結果である出力ラベルOutputを、ログデータとクラスタリングされたクラスタとの類似度に基づいて評価する評価部としてのログ-クラスタ類似度算出部13及びクラスタリング精度評価部14と、クラスタリングの結果が正解であると評価した場合に、ログデータLogとクラスタリングされたクラスタを示すクラスタラベルLabelとを、訓練データに追加する追加部としてのクラスタリング精度評価部14と、をさらに備える。
よって、訓練データを追加することができるので、距離学習による増分的な訓練を行えるようになる。
すなわち、一実施形態に係るログデータ解析装置1は、クラスタリングの結果が正解ではないと評価した場合に、訓練データを使って、埋め込み空間、各クラスタの代表ベクトル及び閾値を再訓練する再訓練部としての埋め込み訓練部15をさらに備える。
よって、再訓練を行った結果を用いて、再度、ベクトルの算出から繰り返してログデータのクラスタリングを行うことで、正しいクラスタリング結果が得られるようになる。
また、一実施形態に係るログデータ解析装置1は、ログデータから分割された部分単語を蓄積する蓄積部としての語彙保持部DB3をさらに備え、再訓練を行う際には、ログベクトル算出部12により、この蓄積された部分単語を使って訓練データ中のログデータを表現するベクトルを算出し、そのベクトルを用いて埋め込み空間、各クラスタの代表ベクトル及び閾値を再訓練する。
よって、既に部分単語を分割したログデータについて再度部分単語に分割する処理を行う必要が無いので、処理の高速化が図れる。
[評価例]
図16は、従来のログデータ解析手法を用いたログ解析装置の解析結果と一実施形態に係るログデータ解析装置1の解析結果とを示す模式図である。
図16は、従来のログデータ解析手法を用いたログ解析装置の解析結果と一実施形態に係るログデータ解析装置1の解析結果とを示す模式図である。
ここでは、2000件のLoghubのHealthAppログデータ(アノテーション付き)により評価した。ベースライン手法は、ログデータの文字列のスペース区切りによる分割と、マージン無し損失による訓練である。また、評価方法は、100件の初期訓練データ、1900件の初期訓練データ以外の分類精度であり、分類精度は類似度Accuracyで評価した。
図16に示すように、語彙数100及び10000で、本実施形態に係るログデータ解析装置1の分類精度が向上することが検証できた。
[他の実施形態]
前記一実施形態では、出力ラベルOutputが正解ではない場合にのみ再訓練を行うものとしているが、正解の場合にも再訓練を行っても良いことは勿論である。図17は、この場合のログデータ解析装置1の処理動作の一例を示すフローチャートである。すなわち、上記ステップS20において出力ラベルOutputが正解であると判定した場合には、プロセッサ101は、上記ステップS21の処理に続けて、埋め込み訓練部15としての動作を実行して、訓練データによる再訓練を行う(ステップS25)。このステップS25の再訓練処理は、上記ステップS24のそれと同じである。そしてその後、プロセッサ101は、上記ステップS22の処理へと進む。なお、この場合、ステップS25とステップS22の順序は逆であっても良い。
前記一実施形態では、出力ラベルOutputが正解ではない場合にのみ再訓練を行うものとしているが、正解の場合にも再訓練を行っても良いことは勿論である。図17は、この場合のログデータ解析装置1の処理動作の一例を示すフローチャートである。すなわち、上記ステップS20において出力ラベルOutputが正解であると判定した場合には、プロセッサ101は、上記ステップS21の処理に続けて、埋め込み訓練部15としての動作を実行して、訓練データによる再訓練を行う(ステップS25)。このステップS25の再訓練処理は、上記ステップS24のそれと同じである。そしてその後、プロセッサ101は、上記ステップS22の処理へと進む。なお、この場合、ステップS25とステップS22の順序は逆であっても良い。
このように、ログデータ解析装置1は、ログデータとクラスタラベルとが追加された訓練データを使って、埋め込み空間、各クラスタの代表ベクトル及び閾値を再訓練する再訓練部としての埋め込み訓練部15をさらに備え、距離学習による増分的な訓練を行うことで、ログデータ解析の精度を向上させることが可能になる。
また、処理対象のログデータLogを一つずつ入力するものとしたが、処理対象のログデータLogを一時記憶部1035に蓄積していき、それらを一つずつ読み出して解析を行うようにしても構わない。
また、ログデータ解析装置1が各保持部を備えるものとしたが、その内の1つ以上をネットワークを通じてアクセス可能なフィルサーバに構築しても構わない。
また、処理対象のログデータLogを保持するログデータ保持部DB5は、訓練データであるログデータを保持するログデータ保持部DB1の一部であっても良い。
また、フローチャートに示したステップS21の処理とステップS22の処理とは、処理の順番を入れ替えても良いし、並行して実行しても良い。これに限らず、図6及び図7に示したフローチャートの各処理は、当該処理がそれ以前の処理の結果を利用しない限りは、順番を入れ替えたり、並行して処理したりするようにしても構わない。
また、各実施形態に記載した手法は、計算機(コンピュータ)に実行させることができるプログラム(ソフトウェア手段)として、例えば磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD、MO等)、半導体メモリ(ROM、RAM、フラッシュメモリ等)等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納されるプログラムには、計算機に実行させるソフトウェア手段(実行プログラムのみならずテーブル、データ構造も含む)を計算機内に構成させる設定プログラムをも含む。本装置を実現する計算機は、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウェア手段を構築し、このソフトウェア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書でいう記録媒体は、頒布用に限らず、計算機内部あるいはネットワークを介して接続される機器に設けられた磁気ディスク、半導体メモリ等の記憶媒体を含むものである。
要するに、この発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組合せて実施しても良く、その場合組合せた効果が得られる。さらに、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。
1…ログデータ解析装置
11…語彙集合算出部
12…ログベクトル算出部
13…クラスタ類似度算出部
14…クラスタリング精度評価部
15…埋め込み訓練部
101…プロセッサ
102…プログラムメモリ
103…データメモリ
1031…ログデータ記憶部
1032…クラスタラベル記憶部
1033…語彙記憶部
1034…ログベクトル集合記憶部
1035…一時記憶部
104…通信インタフェース
105…入出力インタフェース
106…バス
107…入力部
108…表示部
DB1,DB5…ログデータ保持部
DB2…クラスタラベル保持部
DB3…語彙保持部
DB4…ログベクトル集合保持部
11…語彙集合算出部
12…ログベクトル算出部
13…クラスタ類似度算出部
14…クラスタリング精度評価部
15…埋め込み訓練部
101…プロセッサ
102…プログラムメモリ
103…データメモリ
1031…ログデータ記憶部
1032…クラスタラベル記憶部
1033…語彙記憶部
1034…ログベクトル集合記憶部
1035…一時記憶部
104…通信インタフェース
105…入出力インタフェース
106…バス
107…入力部
108…表示部
DB1,DB5…ログデータ保持部
DB2…クラスタラベル保持部
DB3…語彙保持部
DB4…ログベクトル集合保持部
Claims (8)
- ログデータを部分単語に分割する分割部と、
前記部分単語を使って前記ログデータを表現するベクトルを算出するベクトル算出部と、
クラスタ間により遠ざけるためのマージンを入れた各クラスタとの類似度に基づいて、前記ベクトルをクラスタリングするクラスタリング部と、
を具備する、ログデータ解析装置。 - 前記ベクトル算出部は、訓練データの距離学習によって訓練された埋め込み空間でのベクトルを算出し、
前記クラスタリング部は、前記訓練データの前記距離学習によって訓練された前記各クラスタの代表ベクトルと前記ベクトルとの間の距離と、前記訓練データの前記距離学習によって訓練された前記距離の閾値とにより、前記類似度を判定する、請求項1に記載のログデータ解析装置。 - 前記クラスタリングの結果を、前記ログデータとクラスタリングされた前記クラスタとの類似度に基づいて評価する評価部と、
前記クラスタリングの結果が正解であると評価した場合、前記ログデータと前記クラスタリングされた前記クラスタを示すクラスタラベルとを、前記訓練データに追加する追加部と、
をさらに具備する、請求項2に記載のログデータ解析装置。 - 前記ログデータと前記クラスタラベルとが追加された前記訓練データを使って、前記埋め込み空間、前記各クラスタの前記代表ベクトル及び前記閾値を再訓練する再訓練部をさらに具備する、請求項3に記載のログデータ解析装置。
- 前記クラスタリングの結果が正解ではないと評価した場合、前記訓練データを使って、前記埋め込み空間、前記各クラスタの前記代表ベクトル及び前記閾値を再訓練する再訓練部をさらに具備する、請求項3に記載のログデータ解析装置。
- 前記ログデータから分割された部分単語を蓄積する蓄積部をさらに具備し、
前記再訓練は、前記ベクトル算出部により、前記蓄積部に蓄積された前記部分単語を使って前記訓練データ中のログデータを表現するベクトルを算出する処理を含む、請求項4または5に記載のログデータ解析装置。 - プロセッサを有するログデータ解析装置におけるログデータ解析方法であって、
前記プロセッサにより、ログデータを部分単語に分割し、
前記プロセッサにより、前記部分単語を使って前記ログデータを表現するベクトルを算出し、
前記プロセッサにより、クラスタ間により遠ざけるためのマージンを入れた各クラスタとの類似度に基づいて、前記ベクトルをクラスタリングする、
ログデータ解析方法。 - 請求項1乃至6の何れかに記載のログデータ解析装置の前記各部としてプロセッサを機能させるログデータ解析処理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023506414A JPWO2022195690A1 (ja) | 2021-03-15 | 2021-03-15 | |
PCT/JP2021/010450 WO2022195690A1 (ja) | 2021-03-15 | 2021-03-15 | ログデータ解析装置、ログデータ解析方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/010450 WO2022195690A1 (ja) | 2021-03-15 | 2021-03-15 | ログデータ解析装置、ログデータ解析方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022195690A1 true WO2022195690A1 (ja) | 2022-09-22 |
Family
ID=83320046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/010450 WO2022195690A1 (ja) | 2021-03-15 | 2021-03-15 | ログデータ解析装置、ログデータ解析方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2022195690A1 (ja) |
WO (1) | WO2022195690A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110313954A1 (en) * | 2010-06-18 | 2011-12-22 | Microsoft Corporation | Community model based point of interest local search |
JP2014228995A (ja) * | 2013-05-21 | 2014-12-08 | パイオニア株式会社 | 画像特徴学習装置、画像特徴学習方法及びプログラム |
WO2015072085A1 (ja) * | 2013-11-12 | 2015-05-21 | 日本電気株式会社 | ログ分析システム、ログ分析方法、および、記憶媒体 |
JP2020042330A (ja) * | 2018-09-06 | 2020-03-19 | 株式会社リコー | 情報処理装置、データ分類方法およびプログラム |
-
2021
- 2021-03-15 JP JP2023506414A patent/JPWO2022195690A1/ja active Pending
- 2021-03-15 WO PCT/JP2021/010450 patent/WO2022195690A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110313954A1 (en) * | 2010-06-18 | 2011-12-22 | Microsoft Corporation | Community model based point of interest local search |
JP2014228995A (ja) * | 2013-05-21 | 2014-12-08 | パイオニア株式会社 | 画像特徴学習装置、画像特徴学習方法及びプログラム |
WO2015072085A1 (ja) * | 2013-11-12 | 2015-05-21 | 日本電気株式会社 | ログ分析システム、ログ分析方法、および、記憶媒体 |
JP2020042330A (ja) * | 2018-09-06 | 2020-03-19 | 株式会社リコー | 情報処理装置、データ分類方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2022195690A1 (ja) | 2022-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200143289A1 (en) | Systems and method for performing contextual classification using supervised and unsupervised training | |
Sariyar et al. | The RecordLinkage package: detecting errors in data. | |
US20200285984A1 (en) | System and method for generating a predictive model | |
US20140348420A1 (en) | Method and system for automatic selection of one or more image processing algorithm | |
Pentina et al. | Multi-task learning with labeled and unlabeled tasks | |
US11037073B1 (en) | Data analysis system using artificial intelligence | |
Refianti et al. | Performance evaluation of affinity propagation approaches on data clustering | |
US10504002B2 (en) | Systems and methods for clustering of near-duplicate images in very large image collections | |
Thaler et al. | Unsupervised signature extraction from forensic logs | |
US20240281431A1 (en) | Using multiple trained models to reduce data labeling efforts | |
Ognev et al. | Clustering of malicious executable files based on the sequence analysis of system calls | |
WO2016093839A1 (en) | Structuring of semi-structured log messages | |
CN112685374A (zh) | 日志分类方法、装置及电子设备 | |
CN116721713B (zh) | 一种面向化学结构式识别的数据集构建方法和装置 | |
US20180150382A1 (en) | Determining similarities in computer software codes for performance analysis | |
CN111222032B (zh) | 舆情分析方法及相关设备 | |
WO2022195690A1 (ja) | ログデータ解析装置、ログデータ解析方法及びプログラム | |
CN104331507B (zh) | 机器数据类别自动发现和分类的方法及装置 | |
US20220383137A1 (en) | Enterprise Market Volatility Predictions through Synthetic DNA and Mutant Nucleotides | |
Beavers et al. | Data Nuggets: A Method for Reducing Big Data While Preserving Data Structure | |
KR20230141147A (ko) | 특허의 기술분야별 분류 방법 및 비일시성의 컴퓨터 판독 가능 기록 매체 | |
CN110059180B (zh) | 文章作者身份识别及评估模型训练方法、装置及存储介质 | |
WO2022008263A1 (en) | Method and apparatus for detecting noise in unstructured data | |
JP5075566B2 (ja) | 文書分類装置およびプログラム | |
US20240231771A9 (en) | Method and apparatus for information processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21931444 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2023506414 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21931444 Country of ref document: EP Kind code of ref document: A1 |