WO2021107360A2 - 유사도를 판단하는 전자 장치 및 그 제어 방법 - Google Patents

유사도를 판단하는 전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
WO2021107360A2
WO2021107360A2 PCT/KR2020/012648 KR2020012648W WO2021107360A2 WO 2021107360 A2 WO2021107360 A2 WO 2021107360A2 KR 2020012648 W KR2020012648 W KR 2020012648W WO 2021107360 A2 WO2021107360 A2 WO 2021107360A2
Authority
WO
WIPO (PCT)
Prior art keywords
weight
node
graph
similarity
sequences
Prior art date
Application number
PCT/KR2020/012648
Other languages
English (en)
French (fr)
Other versions
WO2021107360A3 (ko
Inventor
이기용
양유정
서민지
Original Assignee
숙명여자대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020190157364A external-priority patent/KR102279210B1/ko
Priority claimed from KR1020190157373A external-priority patent/KR102337678B1/ko
Application filed by 숙명여자대학교산학협력단 filed Critical 숙명여자대학교산학협력단
Publication of WO2021107360A2 publication Critical patent/WO2021107360A2/ko
Publication of WO2021107360A3 publication Critical patent/WO2021107360A3/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures

Definitions

  • the present invention relates to an electronic device for determining a degree of similarity and a control method therefor, and more specifically, to an electronic device and control method using machine learning to analyze whether a graph having weight information is similar, and a method between items in an item classification system.
  • the present invention relates to an electronic device and a control method for determining similarity between sequences including items by using a distance of a shortest path.
  • An artificial intelligence (AI) system is a computer system that implements human-level intelligence, and unlike the existing rule-based smart system, the machine learns, judges, and becomes smarter by itself. The more the AI system is used, the better the recognition rate and the more accurate understanding of user preferences, and the existing rule-based smart systems are gradually being replaced by machine learning-based AI systems.
  • Machine learning is an algorithm technology that categorizes/learns the characteristics of input data by itself, and element technology uses machine learning algorithms such as deep learning to simulate functions such as cognition and judgment of the human brain. It consists of technical fields such as understanding, reasoning/prediction, knowledge expression, and motion control.
  • Linguistic understanding is a technology for recognizing and applying/processing human language/text, and includes natural language processing, machine translation, dialogue system, question and answer, and speech recognition/synthesis.
  • Visual understanding is a technology for recognizing and processing objects like human vision, and includes object recognition, object tracking, image search, human recognition, scene understanding, spatial understanding, image improvement, and the like.
  • Inferential prediction is a technique for logically reasoning and predicting by judging information, and includes knowledge/probability-based reasoning, optimization prediction, preference-based planning, recommendation, and the like.
  • Knowledge expression is a technology that automatically processes human experience information into knowledge data, and includes knowledge construction (data generation/classification) and knowledge management (data utilization).
  • Motion control is a technology for controlling autonomous driving of a vehicle and movement of a robot, and includes motion control (navigation, collision, driving), manipulation control (action control), and the like.
  • the data stream refers to data that is sequentially and infinitely generated according to the passage of time.
  • Similar sequence matching is a problem of searching for a data sequence similar to a query sequence given by a user from among numerous data sequences.
  • similar sequence matching is performed using numerical data having continuity as data constituting a sequence, a similar data sequence having a similar shape can be found.
  • purchase history data is one of representative data generated by a customer.
  • the purchase history data contains the characteristics of the person purchasing the product, the products consumed, and consumption patterns. By comparing the purchase history data of other customers and determining whether they are similar, a service such as a new product recommendation can be provided.
  • An electronic device using machine learning and a control method thereof for analyzing graph similarity according to an embodiment of the present invention have the following purposes.
  • the present invention proposes an electronic device using a new embedding technique for a weight graph and a method for controlling the same.
  • the present invention extracts node-weight sequences from each weight graph when weight graphs are given, and uses the extracted node-weight sequences as training data to train an LSTM autoencoder.
  • a device and a control method thereof are proposed.
  • the present invention proposes an electronic device for embedding each node-weighted sequence using a learned LSTM autoencoder, collecting features to obtain a final embedding result of each weight graph, and a method for controlling the same.
  • An electronic device for determining a degree of similarity between sequences in consideration of an item classification system and a control method thereof according to an embodiment of the present invention provide a degree of similarity between sequences composed of items having an order.
  • An electronic device for determining a degree of similarity between sequences in consideration of an item classification system and a control method therefor aims to provide a degree of similarity between purchase histories of products.
  • An electronic device for determining a degree of similarity between sequences in consideration of an item classification system and a control method therefor aims to use a product classification tree to provide a similarity of purchase histories of products.
  • An electronic device for determining the degree of similarity between sequences in consideration of an item classification system and a control method therefor aims to shorten the time for determining the degree of similarity between purchase histories of products.]]]
  • An embodiment of the present invention provides a process of obtaining node-weight sequences for each node of each weight graph from weight graphs; obtaining embedding vectors for each node by using node-weight sequences for each node as an input of a learned autoencoder model; obtaining final embedding vectors of each weight graph by using the embedding vectors for each node; and determining whether the weighted graphs are similar by classifying each of the weighted graphs. It is possible to provide a control method using machine learning to analyze whether the graphs are similar.
  • An embodiment of the present invention provides a process of obtaining node-weight sequences for each node of each weight graph from weight graphs; And it is possible to provide a control method using machine learning to analyze whether a graph is similar, including the process of training an autoencoder model using the node-weight sequences for each node.
  • each weight graph includes weight information assigned to a plurality of nodes and an edge connecting the nodes, and the node-weight sequence includes information on two nodes connected by an edge and It is possible to provide a control method using machine learning to analyze whether graphs are similar, including components made up of information on weights assigned to edges.
  • An embodiment of the present invention may provide a control method using machine learning to analyze whether the graph is similar, characterized in that the autoencoder model is an LSTM autoencoder.
  • An embodiment of the present invention a memory for storing information about the weight graphs and the learned autoencoder model information; a control unit for controlling the memory, wherein the control unit obtains node-weight sequences for each node of each weight graph from the weight graphs, and learns the node-weight sequences for each node.
  • the embedding vectors for each node are obtained as an input of the autoencoder model, and the final embedding vectors of each weight graph are obtained using the embedding vectors for each node, and the respective weight graphs are obtained.
  • An electronic device using machine learning to control whether the weighted graphs are similar by classifying and to analyze whether the graphs are similar may be provided.
  • An embodiment of the present invention provides a memory for storing information on weight graphs; a control unit for controlling the memory, wherein the control unit obtains node-weight sequences for each node of each weight graph from the weight graphs, and uses the node-weight sequences for each node
  • An electronic device using machine learning may be provided in order to control the autoencoder model to be trained and to analyze whether the graph is similar.
  • each weight graph includes weight information assigned to a plurality of nodes and an edge connecting the nodes
  • the node-weight sequence includes information on two nodes connected by an edge
  • An electronic device using machine learning may be provided to analyze whether graphs are similar, including components including information on weights assigned to edges.
  • An embodiment of the present invention may provide an electronic device using machine learning to analyze graph similarity, characterized in that the autoencoder model is an LSTM autoencoder.
  • [[An embodiment of the present invention includes: obtaining a first sequence consisting of first items having an order; obtaining a second sequence consisting of second items having an order; and determining whether the first and second sequences are similar based on the first information and the second information, wherein the first information converts one of the first items into one of the second items.
  • the second information comprises information about a length of a shortest path in the item classification tree between one of the first items and one of the second items;
  • a control method for determining the similarity between sequences in consideration of the item classification system may be provided.
  • An embodiment of the present invention may provide a control method for determining the degree of similarity between sequences in consideration of an item classification system, characterized in that the first and second items correspond to terminal nodes of the same item classification tree.
  • the second information further includes information on the length of the longest path of the items in the item classification tree.
  • a control method for determining the similarity between sequences in consideration of the item classification system. can provide
  • the length of the shortest path in the item classification tree between one of the first items and one of the second items is based on pre-stored depth information for each node of the item classification tree. It is possible to provide a control method for determining the degree of similarity between sequences in consideration of the item classification system, characterized in that it is determined by
  • An embodiment of the present invention a memory for storing information about the item classification tree; and a processor for controlling the memory, wherein the processor obtains a first sequence consisting of first items having an order, obtains a second sequence consisting of second items having an order, and the first information and controlling to determine whether the first and second sequences are similar based on second information, wherein the first information is based on the number of operations for converting one of the first items into one of the second items. wherein the second information comprises information about a length of a shortest path in the itemized tree between one of the first items and one of the second items.
  • An electronic device for determining the degree of similarity between each other may be provided.
  • An embodiment of the present invention may provide an electronic device for determining the degree of similarity between sequences in consideration of an item classification system, wherein the first and second items correspond to terminal nodes of the same item classification tree.
  • the second information further includes information on the length of the longest path of the items in the item classification tree.
  • the length of the shortest path in the item classification tree between one of the first items and one of the second items is a depth for each node of the item classification tree pre-stored in the memory. It is possible to provide an electronic device for determining the degree of similarity between sequences in consideration of an item classification system, characterized in that the determination is made based on the information.]]]
  • the present invention has the effect of providing an electronic device for measuring similarity between weight graphs or searching for similar weight graphs by using the embedding result of each weight graph, and a method for controlling the same.
  • the present invention has the effect of providing an electronic device and a method for controlling the same, which are very effective in searching for graphs with similar weights through experiments on graph data having different structures and weights.
  • the present invention has the effect of providing an electronic device capable of implementing graph classification, graph search, graph similarity determination, a recommendation system (finding people with similar tendencies, recommending similar songs, etc.), compound comparison, and a control method thereof.
  • the present invention has the effect of providing an electronic device capable of predicting the properties or properties of a new compound by using the similarity of a graph compared to an existing compound when discovering or creating a new compound, and a method for controlling the same.
  • An embodiment of the present invention has an effect of comparing whether sequences having the same item classification system are similar.
  • An embodiment of the present invention provides a control method for determining the degree of similarity between sequences in consideration of an item classification system based on the previously stored depth information on each node of the item classification tree, thereby reducing the similarity determination time of sequences. have an effect
  • An embodiment of the present invention provides a control method for determining a degree of similarity between sequences in consideration of an item classification system, thereby providing a degree of similarity between product purchase histories.]]]]
  • 1 is a diagram illustrating a generalized weight graph.
  • Figure 2 (a) is a diagram showing a weight graph of the compound.
  • 2( b ) is a diagram illustrating a weight graph of a social relationship.
  • 3(a) and 3(b) are diagrams showing an example of determining whether or not the compounds are similar in weight graphs.
  • FIG. 4( a ) shows an example in which a graph is expressed as an n-dimensional embedding vector.
  • 5 is a diagram illustrating an architecture of an autoencoder.
  • FIG. 6 shows the architecture of a Long Short-Term Memory (LSTM) autoencoder.
  • LSTM Long Short-Term Memory
  • FIG. 7 is a diagram illustrating three graphs having different graph structures.
  • Fig. 9(a) shows the average, truncation to determine the final embedding vector when character encoding is applied and one of the combinations of MSE, MSE and KLD, and MSE and CCE is used to generate training data from a node-weighted sequence.
  • a graph for precision at k using mean and mode is shown.
  • Fig. 9(b) shows the mean, truncated mean, and mode to determine the final embedding vector when one-hot encoding is applied and one of the MSE, MSE and KLD combinations is used to generate training data from a node-weighted sequence.
  • the graph for the used precision at k is shown.
  • 10( a ) shows a graph for precision at k according to combinations of 'character encoding and one-hot encoding' and 'average and truncated average' in the case of MSE and KLD combinations.
  • Figure 10(b) shows a case in which a node-weight sequence of a graph is determined by one-hot encoding and training data is determined from a node-weight sequence using a combination of MSE and KLD according to one of the mean, truncated mean, and mode. It shows a graph for precision at k and precision at k through graph2vec, which has been studied previously.
  • 11 (a) and 11 (b) are graphs of visualization of embedding vectors generated by the embedding method proposed in the present invention.
  • FIG. 12 is a flowchart illustrating a method for controlling an electronic device using machine learning to analyze whether graphs are similar to each other according to an embodiment of the present invention.
  • 13(a) and 13(b) are flowcharts of a method for training a machine learning model according to an embodiment.
  • 14 (a) and 14 (b) are diagrams illustrating a method of using a trained machine learning model according to an embodiment.
  • 15A is a block diagram of a data learning unit 1310 according to some exemplary embodiments.
  • 15B is a block diagram of the data recognition unit 1320 according to some exemplary embodiments.
  • 16 is a diagram illustrating an example of learning and recognizing an electronic device according to some embodiments.
  • 17 is a diagram illustrating an example of learning and recognizing two electronic devices according to some embodiments.
  • FIGS. 18 and 19 are block diagrams of an electronic device 1000 according to an exemplary embodiment.
  • FIG. 20 shows a comparison of the Euclidean distance and the DTW distance.
  • Figure 21 (a) shows a part of the product classification tree used in the present invention.
  • 21 (b) shows an example of longestPath and itemPath of the product classification tree used in the present invention.
  • 23 is a graph comparing the performance of a simple technique and a proposed technique to which a segment tree is applied according to a purchase history length.
  • 24 is a graph comparing the performance of the simple technique and the proposed technique according to the number of products in the product classification system tree.
  • 25 is a flowchart illustrating a control method for determining a degree of similarity between sequences in consideration of an item classification system according to an embodiment of the present invention.]]]]
  • first or second may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another, for example, without departing from the scope of the inventive concept, a first component may be termed a second component and similarly a second component A component may also be referred to as a first component.
  • a graph is data composed of several nodes and edges between nodes. Recently, graph data has been actively used in various fields such as chemistry, biology, and SNS. Among the graphs composed of several nodes and edges between nodes, a graph in which weights are given to edges between nodes is called a weighted graph.
  • 1 is a diagram illustrating a generalized weight graph.
  • the nodes of the weight graph may be expressed as A, B, C, D, E, F, G, and H, the weight of the edge between A and B is 3.12, and the edge between A and C The weight of can be expressed as 4.96.
  • Figure 2 (a) is a diagram showing a weight graph of the compound.
  • 2( b ) is a diagram illustrating a weight graph of a social relationship.
  • the weight graph of the compound may represent elements or molecular structures constituting the compound as nodes, and the bonding force between elements or molecular structures as weights.
  • the weight graph of the social relationship may express members or objects of interest as nodes and degree of interest between members or objects of interest as weights.
  • 3(a) and 3(b) are diagrams showing an example of determining whether or not the compounds are similar in weight graphs.
  • the two compounds may be determined to be similar to each other based on the similarity between the A part and the B part of each weight graph. As shown in FIG. 3(b) , the two compounds can be determined to be not similar to each other because there is no similar part such as a part A and a part C on each weight graph.
  • Graph embedding refers to expressing a given graph as a vector in a low-dimensional space. That is, graph embedding refers to a method of expressing the characteristics of a graph as a vector in a low-dimensional space. The better the vector represents the characteristics of the pie graph, the better it is called embedding. After the graphs are embedded as vectors, similar graphs can be searched for by calculating the distance between these vectors, etc.
  • the graph embedding technique proposed in the present invention generates a weighted embedding vector including weight information information existing in the trunk line between nodes.
  • the weight graph is used to express a compound in which the distance or bonding between elements is given, or a social network in which intimacy between people is given.
  • the present invention proposes a new technique for embedding a weight graph using a deep learning technique.
  • the embedding technique proposed in the present invention extracts node-weight sequences existing therein from each weight graph when weight graphs are given. Then, the LSTM autoencoder is trained by collecting all the node-weighted sequences extracted from the weight graphs and using them as training data.
  • the LSTM autoencoder is responsible for extracting features of each node-weighted sequence. After training, each of the extracted node-weighted sequences is embedded as a fixed-dimensional vector using an LSTM autoencoder.
  • the embedding vector generated by the proposed method includes information on weights, and can be used to measure the similarity between weight graphs or search for similar weight graphs.
  • Chapter 2 examines existing graph embedding studies, and Chapter 3 describes an embedding technique for a weighted graph proposed by the present invention.
  • Chapter 4 shows the experimental results of evaluating the proposed embedding technique, and Chapter 5 draws a conclusion.
  • Graph kernel-based research is a study that finds a measurement method that can directly measure the similarity between two given graphs. is a study on However, in recent years, with the rapid development of deep learning technology, deep learning-based research is on the rise.
  • Graph embedding research using deep learning technology is largely divided into node embedding and whole-graph embedding.
  • Node embedding is to embed each node in a given graph, and whole graph embedding is to embed the whole given graph.
  • the former is used to explore similar nodes within a graph, and the latter is used to explore similar graphs.
  • the present invention deals with embedding the entire graph among them.
  • 4( a ) shows an example in which a graph is expressed as an n-dimensional embedding vector.
  • 4(b) shows an example in which each node of the graph is expressed as an embedding vector.
  • 4( c ) shows an example in which the entire graph is expressed as an embedding vector.
  • the graph may be expressed as an n-dimensional embedding vector.
  • An n-dimensional embedding vector may be expressed as a one-dimensional matrix having elements made of numbers.
  • node embedding is learning the expression of nodes in a graph, and it is possible to extract the characteristics of each node and express it as an n-dimensional vector for each node. This may be utilized for link prediction, similar node determination, and the like.
  • techniques such as node2vec and struc2vex can be used.
  • the embedding of the entire graph can be expressed as a single n-dimensional vector by extracting the characteristics of the entire graph. This can be used for graph (compound) search, graph classification, and the like. Techniques such as graph2vec, Taheri, A. (KDD, 2019) can be used when representing the entire graph as an embedding vector.
  • doc2vec which is a representative word embedding model, applied to document embedding, is applied to the graph.
  • a graph can be viewed as composed of several subgraphs.
  • [1] first divides the graphs into several subgraphs. Then, each subgraph is expressed as a one-hot vector, and a model with a skip-gram architecture is trained using this as training data.
  • the model is trained with the goal of maximizing the probability of occurrence of subgraphs appearing in the same graph as the input subgraph.
  • the final embedding vector of each graph uses the value of the hidden layer of the trained model.
  • [2] extracts the node sequences existing therein from the graph and uses them to train a recurrent neural network (RNN)-based autoencoder.
  • RNN recurrent neural network
  • each node sequence is embedded with the value of the hidden layer of the learned RNN-based autoencoder model.
  • Each graph is finally embedded as an average vector of embedding vectors for the node sequences included therein.
  • [2] considers only the sequence of nodes present in the graph, and therefore weight information present in the edges is not embedded.
  • the graph embedding technique proposed in the present invention generates weight information and an embedding vector representing the weight graph that exist in the trunk line between nodes from the weight graph.
  • the embedding technique proposed by the present invention includes extracting a node-weight sequence from graph data, learning a model, determining an embedding vector using the node-weight sequence, and generating a final embedding vector.
  • the method proposed in the present invention extracts node-weight sequences existing therein for each weight graph Gi.
  • sequences including weights present in each edge are extracted.
  • the extracted node-weight sequence may include node information and weight information about the internal structure of the graph.
  • a node-weighted sequence is extracted using a breadth-first search (BFS) algorithm.
  • BFS breadth-first search
  • the proposed method extracts the node-weighted sequence searched by the BFS algorithm starting from n(1) for all n(1) ⁇ Ni.
  • n(1), n(2), ..., n(k) indicate nodes searched through the BFS algorithm in order starting from n(1), and w(i) is n(i) and n It represents the weight of the edge existing between (i+1).
  • a node-weighted sequence based on node A is [[A, B, 3.12], [A, C, 4.96], [A, D, 2.78], ... , [D, H, 0.92]].
  • a node-weighted sequence based on node B is [[B, A, 3.12], [B, C, 1.76], [B, D, 2.15], ... , [D, H, 0.92]].
  • LSTM training data Several methods can be used to transform the extracted node-weighted sequence into LSTM training data. For example, a method such as character encoding or one-hot encoding may be used.
  • the character encoding is, in the node-weight sequence, node 'A' to 1, 'B' to 2, ... , is a way to encode 'Z' as 26.
  • ['A', 'E', 3.14] may be expressed as [1, 5, 3.14].
  • One-hot encoding is a vector of node 'A' in a node-weight sequence with only the 0th element being 1 and the rest being 0's, 'B' being a vector consisting of only the 1st element being 1 and the rest being 0's, ... , is a method of encoding 'Z' as a vector in which only the 25th element is 1 and the rest is 0.
  • ['A', 'C', 3.14] is [[1, 0, 0, ... , 0], [0, 0, 1, ... , 0], [3.14]].
  • 5 is a diagram illustrating an architecture of an autoencoder.
  • an autoencoder is an unsupervised learning model that learns a hidden structure of data, and the number of nodes in the output layer (y1, y2, and) and the input layer (x1, x2, and) are the same.
  • the autoencoder includes both an encoder and a decoder, and is learned so that the value input to the encoder's input layer is the same as the value output to the decoder's output layer.
  • the encoder's output value which is the decoder's input value, is called a latent variable or feature value.
  • a latent variable or feature value has the characteristics of the value input to the encoder.
  • FIG. 6 shows the architecture of a Long Short-Term Memory (LSTM) autoencoder.
  • LSTM Long Short-Term Memory
  • each of the extracted node-weighted sequences is embedded with an LSTM autoencoder.
  • the architecture of the LSTM autoencoder of the present invention is not limited to the architecture of FIG. 6 , and autoencoders of other architectures may be used.
  • the LSTM autoencoder is a model with a structure that compresses and then restores the original sequence when a sequence is input as an input. It is a model suitable for extracting the features of a sequence with an arbitrary length.
  • the LSTM autoencoder used in the present invention receives a sequence of arbitrary length in which each element is a three-dimensional form of [n(i), n(i+1), w(i)] as input. It receives (topmost layer, input_1) and converts it into 128-dimensional data (lstm_1) and then compresses it into 64-dimensional data (lstm_2). After that, it has a structure in which it is made into 128-dimensional data again (lstm_4) and restored to the original sequence (lowest layer, time_distributed_1).
  • each node-weight sequence After training the LSTM autoencoder using all node-weight sequences as training data, insert each node-weight sequence into the learned LSTM autoencoder and embed the corresponding node-weight sequence as a 64-dimensional vector generated in the middle hidden layer. .
  • the embedding vector of each node-weight sequence expressed as a 64-dimensional vector generated in the intermediate hidden layer of the LSTM autoencoder is determined.
  • the loss function used for training of the LSTM autoencoder is the mean squared error (MSE), the combination of the mean squared error and KL Divergence (KLD), the mean squared error and the categorical cross entropy (CCE). It can be one of the combinations. KLD and CCE are methods of adjusting the weight of a model by considering the distribution of true and predicted values.
  • MSE can be expressed as Equation 1 below as the square of the error of the node-weight sequence and the node-weight sequence predicted through the model.
  • KLD In the combination of MSE and KLD, KLD can be expressed as Equation 2 below.
  • CCE may be expressed as in Equation 3 below.
  • node-weight sequences After all the node-weight sequences are embedded into a fixed-size vector through the LSTM autoencoder, they are used to generate the final embedding vector for each graph.
  • the last step is to get the final embedding vector of Gi using v1, v2, ..., vk.
  • v1, v2, ..., vk can be viewed as feature values representing the features of Gi, and there may be several methods of combining them to obtain the final embedding vector of Gi.
  • the method of generating the final embedding vector includes a method of generating a final embedding vector using an average, a method of generating a final embedding vector using a mode, and a final embedding using a trimmed mean.
  • a method for generating a vector may be included.
  • node-weighted sequence embedding vectors for a graph are [1.64, 4.12, 3.1], [1.74, 4.12, 3.45], [1.84, 4.4, 3.65], [1.84, 4.31, 8.42] for each method.
  • a specific example of generating the final embedding vector according to the following will be described.
  • the average vector of v1, v2, ..., vk is the final embedding vector of Gi in a method that best represents all of the values of v1, v2, ..., vk and best represents them. taken as That is, the embedding vector Vi of Gi is is defined as Through this expression, if all the final embedding vectors V1, V2, ..., Vn for each of G1, G2, ..., Gn are obtained, the whole process is finished.
  • FIG. 7 is a diagram illustrating three graphs having different graph structures.
  • Each group consists of 100 similar graphs, and each graph in the group was created by randomly adding node insertion, node deletion, node modification, and weight modification to representative graphs A, B, and C.
  • 10 graphs are randomly extracted from each of 6 groups, and the k graphs with the closest distance between the corresponding graph and the embedding vector are selected from among the remaining total graphs, and the percentage of graphs belonging to the same group is determined. Precision at k was used to indicate whether Here, the distance between embedding vectors is used as a cosine distance.
  • Table 2 shows the experimental results while increasing k from 10 to 50. For each group, the mean value of precision at k of 10 graphs was taken.
  • a total of 600 graphs in 6 groups are embedded in 64-dimensional vectors through the proposed method, and then they are dimensionally reduced to two dimensions through t-SNE and visualized in a two-dimensional space. Looking at the visualization result, it can be seen that the embedding vector clearly forms six groups as in the pie graph data consisting of six groups.
  • Table 3 differs from Table 1 in that, unlike Table 1, the weight range of graphs with very different weight ranges is 50-150.
  • Fig. 9(a) shows the average, truncation to determine the final embedding vector when character encoding is applied and one of the combinations of MSE, MSE and KLD, and MSE and CCE is used to generate training data from a node-weighted sequence.
  • a graph for precision at k using mean and mode is shown.
  • Fig. 9(b) shows the mean, truncated mean, and mode to determine the final embedding vector when one-hot encoding is applied and one of the MSE, MSE and KLD combinations is used to generate training data from a node-weighted sequence.
  • the graph for the used precision at k is shown.
  • Fig. 9(a) shows a precision at value of 96% or more for all cases using MSE, MSE+KLD, and MSE+CCE while using character encoding, and in particular, 98% or more for average and truncated average Displays the precision at value.
  • 10( a ) shows a graph for precision at k according to combinations of 'character encoding and one-hot encoding' and 'average and truncated average' in the case of MSE and KLD combinations.
  • 10( b ) shows a case in which a node-weight sequence of a graph is determined by one-hot encoding and training data is determined from a node-weight sequence using a combination of MSE and KLD according to one of the mean, truncated mean, and mode It shows a graph for precision at k and precision at k through graph2vec, which has been studied previously.
  • 11 (a) and 11 (b) are graphs of visualization of embedding vectors generated by the embedding method proposed in the present invention.
  • 11(a) is a model trained using a node-weighted sequence generated using character encoding as data in the process of generating the extracted sequence as training data, and a loss function based on a combination of KLD and MSE. It is a graph that visualizes the embedding vector.
  • 11(b) shows that in the process of generating the extracted sequence as training data, a node-weighted sequence generated using one-hot encoding is used as data, and a loss function based on a combination of KLD and MSE is used for learning. It is a graph that visualizes the embedding vector as a model.
  • FIGS. 11(a) and 11(b) it is visually shown that six groups are classified by dimensionality reduction (t-SNE) of the 64-dimensional embedding vector generated for each graph to a 2-dimensional vector, , it can be seen that the graphs of each group are grouped into 6 points in the graph of t-SNE in the same way that the pie graph data is divided into 6 groups.
  • t-SNE dimensionality reduction
  • the proposed method embeds the entire graph considering not only the structure of the graph but also the weights. To this end, the proposed method extracts node-weighted sequences existing in each graph, embeds them using an LSTM autoencoder, and combines them to generate the final embedding vector of each graph. Through the experimental results, it was confirmed that the proposed method actually generates more similar embedding vectors for similar weight graphs.
  • 12 is a flowchart illustrating a method for controlling an electronic device using machine learning to analyze whether graphs are similar to each other according to an embodiment of the present invention.
  • 13(a) and 13(b) are flowcharts of a method for training a machine learning model according to an embodiment.
  • 14 (a) and 14 (b) are diagrams illustrating a method of using a trained machine learning model according to an embodiment.
  • a 'control method of an electronic device using machine learning to analyze graph similarity according to an embodiment' is abbreviated as 'control method according to an embodiment'.
  • the control method includes at least one of a process of training a machine learning model (S200) and a process of recognizing a graph using the learned machine learning model (S400). may include.
  • training the machine learning model is also referred to as training the machine learning model, and the terms training and learning may be used interchangeably below.
  • the process S200 includes a process of acquiring data (S210), a process of preprocessing data (S230), a process of selecting training data (S250), and a process of learning a model (S270). , it may include at least one of the process of evaluating the model (S290).
  • Process S210 is a process of acquiring data for learning a model.
  • the data may include graph data, and the graph data may be a weighted graph including a plurality of nodes, an edge connecting the plurality of nodes to each other, and a weight assigned to the edge.
  • An example of a weight graph is shown in FIGS. 1 to 2( b ).
  • Process S230 is a pre-processing process of processing data into a form that can be trained on the model.
  • the weight graph may include a weight assigned to a plurality of nodes and an edge between the nodes.
  • the weight graph data may include values of a plurality of nodes and a weight value assigned to an edge between the nodes.
  • a node-weight sequence including a node and a weight between nodes may be extracted from one weight graph data.
  • the node-weighted sequence may include node-sequence information based on one specific node.
  • node-sequence information can be extracted based on node A from one weight graph
  • node-weight sequence information can be extracted based on node B, and from node C to node H
  • the node-weight sequence based on node A is [[A, B, 3.12], [A, C, 4.96], [A, D, 2.78], ... , [D, H, 0.92]].
  • the node-weighted sequence can convert the character information of the node into information that can be understood by a computer by applying an encoding method such as character encoding or one-hot encoding.
  • a plurality of node-weight sequences extracted based on each node are generated from one weight graph, and node-weight sequences are generated from the plurality of weight graphs.
  • node-weight sequences for each node constituting the first weight graph are obtained from the first weight graph ( S310 ), and the second weight is obtained from the second weight graph ( S310 ).
  • Node-weight sequences for each node constituting the graph may be obtained (S330). Thereafter, it is possible to obtain a node-weight sequence for each node of the different weight graphs.
  • Step S250 is a process of selecting training data to be trained on the model. All of the plurality of weight graphs are not used as training data, and only about 70% of the plurality of weight graphs are used as training data.
  • Step S270 is a process of training the model. 5 and 6 , an autoencoder is trained using node-weight sequences for each node of the weight graph. A plurality of weighted graphs selected as training data are all trained on the autoencoder.
  • Autoencoder is an unsupervised learning model that trains to output the same value as the input value of the encoder through the decoder.
  • the latent variable output through the encoder is the input node-weighted value. It becomes a value that reflects the characteristics of the sequence.
  • the latent variable output through the encoder is defined as an embedding vector of each node-weighted sequence.
  • the loss function used to train the autoencoder model may be one or a combination of at least two of MSE, KLD, and CCE.
  • the autoencoder of the present invention may have an architecture of an LSTM autoencoder, but the autoencoder of the present invention may have other architectures.
  • the autoencoder model learns the node-weighted sequences for each node constituting the first weight graph, and a node for each node constituting the second weight graph.
  • - Weight sequences can be trained on the autoencoder model (S350).
  • the autoencoder model can be trained with node-weight sequences of each node for different weight graphs. The larger the number of node-weighted sequences trained in the ocoincoder model, the better the model can judge whether the weight graphs are similar.
  • Step S290 is a process for evaluating the model. This is a process to verify that the trained LSTM autoencoder model works well.
  • evaluation data divided into a group having a small weight range and a group having a large weight range can be generated.
  • the trained LSTM autoencoder model works well when the shape of the graph is different.
  • the trained LSTM autoencoder model works well when the range of weights is different.
  • the distance between the final embedding vectors of the weight graph belonging to the same group will be shorter than the distance between the final embedding vectors of the weight graph belonging to that group and another group. As shown in Figs. 8 to 11 (b), it can be seen that the LSTM autoencoder model works well.
  • the method of using a machine learning model means that the data input to the model is analyzed and classified using the learned model, and the similarity between the input data is recognized and provided to the user.
  • the process S400 includes a process of acquiring data ( 410 ), a process of pre-processing the data ( S430 ), a process of selecting recognition data ( S450 ), and a process of providing a recognition result ( S470 ). ), a process of updating the model ( S490 ).
  • Steps S410 and S430 are the same as steps S210 and S430, respectively, and thus a detailed description thereof will be omitted.
  • node-weight sequences for each node constituting the first weight graph are obtained from the first weight graph (S510), and the second weight graph is constructed from the second weight graph.
  • Node-weight sequences for each node may be obtained ( S530 ). Thereafter, it is possible to obtain a node-weight sequence for each node of the different weight graphs.
  • Step S450 is a process of selecting recognition data. All of the plurality of weight graphs may be used as recognition data, or only a plurality of weight graphs not used for learning data may be used as recognition data.
  • Step S470 is a process of providing a recognition result.
  • a recognition result for whether at least two weighted graphs are similar may be provided using the trained model.
  • each weight graph is input to the trained LSTM autoencoder model in order to classify the weight graphs or to determine whether the weight graphs are similar.
  • the embedding vector for each node is extracted by inputting the node-weight sequence of each node for one weight graph into the trained LSTM autoencoder model. Through this, an embedding vector for each node for one weight graph is extracted.
  • a method of determining the final embedding vector for one weight graph may use one of an average, a mode, and a cutting average for embedding vectors for each node.
  • an embedding vector for each node and a final embedding vector of the first weighted graph are obtained from the first weighted graph (S550), and from the second weighted graph, each node is An embedding vector and a final embedding vector of the second weight graph are obtained (S570).
  • the embedding vector and final embedding vector for each node can be obtained for other weight graphs as well.
  • the similarity between weight graphs is determined by using the distance between the final embedding vectors for the weight graph. For example, if the distance between the final embedding vectors of the first and second weighted graphs is closer than the distance between the final embedding vectors of the first and third weighted graphs, the second weighted graph is the first weighted graph rather than the third weighted graph. It can be judged that it is more similar to the weighted graph.
  • the first and second weight graphs are similar by using final embedding vectors of the first and second weight graphs. Since the final embedding vector includes not only node information but also weight information between nodes, it is possible to determine whether the weight graphs are similar.
  • Step S490 is a process of updating the model.
  • the LSTM autoencoder can be updated by re-learning the learned LSTM autoencoder using weight graphs used as recognition data.
  • 15A is a block diagram of a data learning unit 1310 according to some exemplary embodiments.
  • 15B is a block diagram of the data recognition unit 1320 according to some exemplary embodiments.
  • the data learning unit 1310 includes a data acquiring unit 1310-1, a preprocessing unit 1310-2, a training data selection unit 1310-3, and model learning. It may include at least one of the unit 1310 - 4 and the model evaluation unit 1310 - 5 .
  • the data acquisition unit 1310-1, the preprocessor 1310-2, the training data selection unit 1310-3, the model learning unit 1310-4, and the model evaluation unit 1310-5 are shown in FIG. 13(a) . Processes S210, S230, S250, S270, and S290 may be performed, respectively.
  • the data recognition unit 1320 includes a data acquisition unit 1320-1, a preprocessor 1320-2, a recognition data selection unit 1320-3, and a recognition result. It may include at least one of the providing unit 1320-4 and the model updating unit 1320-5.
  • the data acquiring unit 1320-1, the preprocessing unit 1320-2, the recognition data selection unit 1320-3, the recognition result providing unit 1320-4, and the model updating unit 1320-5 are performed in the process of FIG. 14 .
  • S410, S430, S450, S470, and S490 may be performed, respectively.
  • At least one of the data learning unit 1310 and the data recognition unit 1320 may be manufactured in the form of at least one hardware chip and mounted in an electronic device.
  • at least one of the data learning unit 1310 and the data recognition unit 1320 may be manufactured in the form of a dedicated hardware chip for artificial intelligence (AI), or a conventional general-purpose processor (eg, CPU) Alternatively, it may be manufactured as a part of an application processor) or a graphics-only processor (eg, GPU) and mounted on the various electronic devices described above.
  • AI artificial intelligence
  • a conventional general-purpose processor eg, CPU
  • it may be manufactured as a part of an application processor
  • a graphics-only processor eg, GPU
  • At least one of the data learning unit 1310 and the data recognition unit 1320 may be implemented as a software module.
  • the software module is a computer-readable, non-transitory, non-transitory It may be stored in a readable recording medium (non-transitory computer readable media).
  • at least one software module may be provided by an operating system (OS) or may be provided by a predetermined application.
  • OS operating system
  • a part of the at least one software module may be provided by an operating system (OS), and the other part may be provided by a predetermined application.
  • 16 is a diagram illustrating an example of learning and recognizing an electronic device according to some embodiments.
  • the data learning unit 1310 and the data recognition unit 1320 may be mounted in one electronic device.
  • the processor 1300 may include a data learning unit 1310 and a data recognition unit 1320 .
  • 17 is a diagram illustrating an example of learning and recognizing two electronic devices according to some embodiments.
  • the data learning unit 1310 and the data recognition unit 1320 may be respectively mounted in separate electronic devices.
  • one of the data learning unit 1310 and the data recognition unit 1320 may be performed by the processor of the device 2000 , and the other may be performed by the processor of the server 3000 .
  • the data learning unit 1310 and the data recognition unit 1320 may provide the model information built by the data learning unit 1310 to the data recognition unit 1320 through wired or wireless communication, and the data recognition unit ( Data input to 1320 may be provided to the data learning unit 1310 as additional learning data.
  • the data learning unit 3310 of the server 3000 may perform the function of the data learning unit 1310 described above.
  • Each of the components of the data learning unit 3310 of the server 3000 may perform a function of each of the above-described components of the data learning unit 1310 .
  • the data recognition unit 2320 of the device 2000 may perform the function of the data recognition unit 1320 described above.
  • Each component of the data recognition unit 2320 of the device 2000 may perform the function of each component of the data recognition unit 1320 described above.
  • FIGS. 18 and 19 are block diagrams of an electronic device 1000 according to an exemplary embodiment.
  • the above-described device 2000 and server 3000 may include at least some of the components of the electronic apparatus 1000 as an example of the electronic apparatus 1000 to be described later.
  • the electronic apparatus 1000 includes a terminal, a device, an electronic device, a server, a smart phone, a tablet PC, a PC, a smart TV, a mobile phone, a personal digital assistant (PDA), a laptop, a media player, a micro server, a GPS It may be one of a global positioning system device, an e-book terminal, a digital broadcast terminal, a navigation device, a kiosk, an MP3 player, a digital camera, a home appliance, and other computing devices. Also, the electronic device may be a wearable device such as a watch, glasses, a hair band, and a ring having a display function and a data processing function. However, the present invention is not limited thereto, and the electronic device 1000 may include all kinds of devices capable of processing data and providing the processed data.
  • the electronic device 1000 may include a memory 1100 , an output unit 1200 , a communication unit 1500 , and a processor 1300 .
  • the electronic device 1000 may be implemented by more components, and the electronic device 1000 may be configured by using fewer components. may be implemented.
  • the electronic device 1000 includes a memory 1100 , an output unit 1200 , a processor 1300 , a sensing unit 1400 , and a communication unit 1500 .
  • a memory 1100 the electronic device 1000 includes a memory 1100 , an output unit 1200 , a processor 1300 , a sensing unit 1400 , and a communication unit 1500 .
  • an A/V input unit 1600 and a user input unit 1700 may be included.
  • the memory 1100 may store a program for processing and controlling the processor 1300 , and may store information input to the electronic device 1000 or information output from the electronic device 1000 .
  • the memory 1100 may include a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg, SD or XD memory, etc.), a RAM (RAM, Random Access Memory) SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic memory, magnetic disk , may include at least one type of storage medium among optical disks.
  • Programs stored in the memory 1100 may be classified into a plurality of modules according to their functions, for example, may be classified into a UI module 1110 , a touch screen module 1120 , a notification module 1130 , and the like. .
  • the UI module 1110 may provide a specialized UI, GUI, or the like that interworks with the electronic device 1000 for each application.
  • the touch screen module 1120 may detect a touch gesture on the user's touch screen and transmit information about the touch gesture to the processor 1300 .
  • the touch screen module 1120 may recognize and analyze a touch code.
  • the touch screen module 1120 may be configured as separate hardware including a controller.
  • the notification module 1130 may generate a signal for notifying the occurrence of an event in the electronic device 1000 .
  • Examples of events generated in the electronic device 1000 include call signal reception, message reception, key signal input, schedule notification, and the like.
  • the notification module 1130 may output a notification signal in the form of a video signal through the display unit 1210 , may output a notification signal in the form of an audio signal through the sound output unit 1220 , and the vibration motor 1230 . It is also possible to output a notification signal in the form of a vibration signal through For example, the notification module 1130 may generate a signal for outputting guide information based on the estimated lane information.
  • the output unit 1200 may output an audio signal, a video signal, or a vibration signal, and the output unit 1200 may include a display unit 1210 , a sound output unit 1220 , and a vibration motor 1230 . have.
  • the display unit 1210 displays and outputs information processed by the electronic device 1000 . Specifically, the display unit 1210 may output an image captured by the camera 1610 . The display 1210 may display a user interface for executing an operation related to a response in response to a user's input.
  • the sound output unit 1220 outputs audio data received from the communication unit 1500 or stored in the memory 1100 . Also, the sound output unit 1220 outputs a sound signal related to a function (eg, a call signal reception sound, a message reception sound, and a notification sound) performed by the electronic device 1000 .
  • a function eg, a call signal reception sound, a message reception sound, and a notification sound
  • the processor 1300 generally controls the overall operation of the electronic device 1000 .
  • the processor 1300 executes programs stored in the memory 1100 , and thus the user input unit 1700 , the output unit 1200 , the sensing unit 1400 , the communication unit 1500 , and the A/V input unit 1700 . ) can be controlled in general.
  • the sensing unit 1400 may detect a state of the electronic device 1000 or a state around the electronic device 1000 , and transmit the sensed information to the processor 1300 .
  • the sensing unit 1400 includes a magnetic sensor 1410 , an acceleration sensor 1420 , a temperature/humidity sensor 1430 , an infrared sensor 1440 , a gyroscope sensor 1450 , and a position sensor. (eg, GPS) 1460 , a barometric pressure sensor 1470 , a proximity sensor 1480 , and at least one of an RGB sensor 1490 , but is not limited thereto. Since a function of each sensor can be intuitively inferred from the name of a person skilled in the art, a detailed description thereof will be omitted.
  • the communication unit 1500 may include one or more components that allow the electronic device 1000 to communicate with another device (not shown) and a server (not shown).
  • the other device (not shown) may be a computing device such as the electronic device 1000 or a sensing device, but is not limited thereto.
  • the communication unit 1500 may include a short-range communication unit 1510 , a mobile communication unit 1520 , and a broadcast receiving unit 1530 .
  • Short-range wireless communication unit 1510 Bluetooth communication unit, BLE (Bluetooth Low Energy) communication unit, short-range wireless communication unit (Near Field Communication unit), WLAN (Wi-Fi) communication unit, Zigbee (Zigbee) communication unit, infrared ( It may include an IrDA, infrared Data Association) communication unit, a Wi-Fi Direct (WFD) communication unit, an ultra wideband (UWB) communication unit, an Ant+ communication unit, and the like, but is not limited thereto.
  • the mobile communication unit 1520 transmits/receives a radio signal to and from at least one of a base station, an external terminal, and a server on a mobile communication network.
  • the wireless signal may include various types of data according to transmission/reception of a voice call signal, a video call signal, or a text/multimedia message.
  • the broadcast receiver 1530 receives a broadcast signal and/or broadcast-related information from the outside through a broadcast channel.
  • the broadcast channel may include a satellite channel and a terrestrial channel.
  • the electronic device 1000 may not include the broadcast receiver 1530 .
  • the A/V (Audio/Video) input unit 1600 is for inputting an audio signal or a video signal, and may include a camera 1610 , a microphone 1620 , and the like.
  • the camera 1610 may obtain an image frame such as a still image or a moving image through an image sensor in a video call mode or a photographing mode.
  • the image captured through the image sensor may be processed through the processor 1300 or a separate image processing unit (not shown).
  • the microphone 1620 receives an external sound signal and processes it as electrical voice data.
  • the microphone 1620 may receive an acoustic signal from an external device or a user.
  • the microphone 1620 may receive a user's voice input.
  • the microphone 1620 may use various noise removal algorithms for removing noise generated in the process of receiving an external sound signal.
  • the user input unit 1700 means a means for a user to input data for controlling the electronic device 1000 .
  • the user input unit 1700 includes a key pad, a dome switch, and a touch pad (contact capacitive method, pressure resistance film method, infrared sensing method, surface ultrasonic conduction method, integral type).
  • a tension measurement method a piezo effect method, etc.
  • a jog wheel a jog switch, and the like, but is not limited thereto.
  • Sequence data of items for items having a tree-type item classification system means a set of items having an order.
  • the product purchase history is sequence data in which products according to the purchase order are listed. The following description of the purchase history of the product may be directly applied to sequence data for items having an order.
  • the generated data becomes the characteristics of the customer itself, and furthermore, the customer can be expressed as data.
  • the purchase history data is one of the representative data generated by the customer.
  • the purchase history data contains the characteristics of the person purchasing the product, the products consumed, and consumption patterns. Therefore, a company needs the ability to analyze given customer data, and it can be reflected in decision making based on the analyzed results.
  • the present invention proposes a new similarity method for calculating how similar the purchase histories of any two customers are in the purchase history data composed of purchase items of customers over time.
  • the similarity measurement method proposed in the present invention is extended to reflect the hierarchical relationship between items as well as the existing similarity method for measuring the similarity between data in which the order of items exists, such as purchase history data.
  • the purchase history data is one of the representative sequence data as data containing the order between purchase items.
  • a sequence means data in which an order exists between items of data, and even if two sequences have the same configuration, if the order is different, the two sequences are different sequences. Examples of the sequence may include not only purchase history data, but also web logs, protein sequences, and the like.
  • the similarity measurement method proposed in the present invention not only calculates the similarity in consideration of the order between items in a sequence, unlike existing purchase history data analysis methods, but also considers different similarities between purchased products using a product classification system.
  • Sequence 1 is an example of a purchase history sequence.
  • the existing similarity measurement method calculates the similarity of the sequences S 1 and S 2 and the similarity of the sequences S 1 and S 3 equally. Since all the sequences of Sequence 1 have the same second purchase product, only the first purchased product in each sequence affects the degree of similarity between the sequences.
  • 'Sprite' belongs to the same category of 'Coke' and beverages relative to 'Jeans'. Considering this, it is necessary to give a higher similarity than 'Jeans' when comparing 'Coke' and 'Sprite'. Therefore, in the present invention, the similarity between two purchase histories is more accurately calculated by extending the existing sequence similarity measurement method to consider the product classification system when calculating the similarity between purchase history sequences.
  • the Levenshtein distance dynamic time warping (DTW), which is a representative sequence similarity measurement method, is used to select a similarity measurement method between sequences that affects the similarity calculation performance.
  • DTW dynamic time warping
  • Dynamic Time Warping distance and the performance of Needleman-Wunsch similarity were compared.
  • Chapter 2 examines the sequence similarity measurement methods used in the present invention.
  • Chapter 3 the similarity measurement method proposed in the present invention will be described in detail.
  • Chapter 4 shows the performance evaluation results of the proposed method and the existing method, and Chapter 5 concludes.
  • the large-scale purchase history data containing the consumer's consumption activity contains the customer's consumption pattern.
  • the process of finding a purchase pattern that occurs frequently in the customer's purchase history is called correlation analysis.
  • Association analysis creates rules by judging each product as an independent entity, where shopping cart analysis considers even the hierarchical relationship between items. Contrary to this, sequential pattern analysis creates rules in consideration of the precedence and precedence of purchase details. All three analyzes generate rules between items using evaluation criteria of support, confidence, and lift.
  • a typical example of using customer purchase history data is Wal-Mart in the United States.
  • Wal-Mart was the first company to pay attention to customer shopping carts, which directly affect sales, and analyzed vast amounts of data to uncover the relationship between beer and diapers. Companies that engage in various marketing activities to increase sales can use this data to identify the actual relationship between products and use it as a marketing strategy.
  • a sequence is data made up of two or more items, and it is data that contains an order between these items.
  • Representative sequence data includes web log data and protein sequence data. You can find protein sequences with similar functions by grouping similar users in web log files by analyzing sequence data or by grouping protein sequences with similar structures. It is important to define the degree of similarity by considering the order in sequence data in which there is a precedence relationship between items, and it can be divided as follows according to the method of calculating the degree of similarity.
  • the correction operation refers to add, substitute, and delete operations, and the most representative algorithm is the Levenshtein distance algorithm.
  • the number of correction operations is used as a measure of similarity, and the smaller the value, the more similar the two strings are judged.
  • Jaccard similarity indicates the ratio between union and intersection between elements constituting a set, and has a value between 0 and 1.
  • the Levenstein distance also known as the edit distance algorithm, refers to the minimum number of operations required to convert one string to another. Modification operations between two strings are insert, substitute, and delete operations. The characters of the two strings to be compared are compared one character at a time. When adding or deleting, the operation cost is given as 1, and for the replacement operation, 0 or 1 is assigned depending on whether the characters match, and the similarity is calculated.
  • a gap is used to align two sequences so that the two sequences have the highest similarity.
  • the gap penalty, match, and mismatch values are user-specified values, and the alignment results between sequences vary depending on the values.
  • the similarity between two sequences is calculated using the cost of insertion, deletion, and matching operations for two sequences, such as the Levenstein distance.
  • the similarity was measured using the three similarity measurement methods. All of them can compare items between two sequences one by one and do not require separate operations such as dividing the sequence into set elements.
  • the present invention extends this to consider the hierarchical relationship between products.
  • the proposed method of the present invention uses a product classification tree to assign a similarity between products as a value between 0 and 1 to further subdivide the degree of association between each product when calculating the similarity. Therefore, in the present invention, a part of the process was modified to reflect the product classification system when calculating the similarity between purchase history sequences, and Section 4.2 shows the performance evaluation results for them.
  • the similarity measurement method between sequences proposed in the present invention measures the similarity between two sequences by using a product classification system given in purchase history data.
  • the purchase history data one purchase history is sequence data in which items sequentially purchased by one customer are listed.
  • the similarity measuring method proposed in the present invention measures the similarity in consideration of the order between the items. Also, it is different from the existing sequence similarity measurement method in that the similarity is calculated by considering the classification system between products using a given product classification system.
  • the similarity measurement method between purchase history sequences proposed in the present invention calculates the similarity between items in a sequence using the Levenstein distance, the dynamic time warping distance, and the Needleman-Bnish similarity, which are representative sequence similarity measurement methods.
  • Levenstein distance the Levenstein distance
  • dynamic time warping distance the dynamic time warping distance
  • Needleman-Bnish similarity the similarity measurement method
  • Figure 21 (a) shows a part of the product classification tree used in the present invention.
  • 21 (b) shows an example of longestPath and itemPath of the product classification tree used in the present invention.
  • distribution companies such as department stores and marts have a product classification system in which layers are divided such as large/medium/small categories for all products.
  • the product 'pants' first belongs to the sub-category 'bottoms', and the bottoms again belong to the middle category, 'clothes'. In this way, all products occupy the lowest part of the product classification system.
  • such a product classification system is expressed as a tree data structure.
  • the system of the product classification tree used in the present invention was constructed with reference to the classification system of Amazon, an American electronic commerce company. In each node of the tree, the name of the actual product or the upper category of the product is stored.
  • the leaf node of the tree corresponds to the product (eg, a, b, c, d, e, f, g, h, i, j, k), and the inside
  • the internal node is the parent category for each product (eg C1, C2, C3, C4, C5, C6, C7, C8).
  • the top node in the product classification tree is expressed as a root.
  • This product classification tree is used to compare similarities between purchase history sequences. Using the product classification tree, the items in the sequence are quantified according to different degrees of association in the product classification tree during the algorithm execution process and reflected in the calculation.
  • all items in the sequence correspond to leaf nodes of the product classification tree, and the terminal nodes correspond to products.
  • the similarity measurement method between purchase history sequences proposed in the present invention calculates the similarity between items using the product classification system shown in FIG. 2 . Therefore, even if the two products do not match, the degree of similarity between products can be subdivided and calculated because the calculation reflects the degree of closeness between the two products within the product classification tree.
  • the purchase history data calculated in the present invention is sequence data in which items purchased by each customer are listed in order.
  • x i represents the i-th purchase item of the sequence S, and this sequence represents purchase history data from products x 1 to x n in order.
  • indicates the size of the sequence or the number of purchased items in the sequence.
  • Sequence 2 is an example of a similar purchase history defined in the present invention.
  • two sequences S 1 and S 2 are purchase history data for two customers, and both S 1 and S 2 consist of different purchase items.
  • the details of the two sequences are highly related and show a similar purchase order. If you change each item in the sequence to a higher category, you can see that both sequences are purchase histories consisting of products belonging to the beverage, snack, and clothing categories in order. Even if two products are not completely identical, if they belong to the same upper category, it is necessary to give a higher degree of similarity than if they were not. Therefore, in the present invention, by using the product classification tree, even if two items are different, if they have the same upper category, a higher degree of similarity is given and calculated.
  • All three algorithms generate two-dimensional arrays M for purchase history sequences S 1 and S 2 for similarity calculation.
  • the value of the array M[i][j] in each algorithm is the previous element (M[i-1][j], M[i-1][j-1], M[i-1][j]). Save it by using , ).
  • the last element of the array M becomes the similarity value for each algorithm, and each algorithm has a different similarity value range. The following describes in detail the similarity measurement method for each algorithm.
  • Levenstein distance compares two strings one character at a time, and after calculation, the value of the last element of the array becomes the minimum editing distance of the two strings.
  • Levenshtein Dist(S 1 , S 2 ) is from 0 to has a value between
  • the number of rows in the two-dimensional array M is and the number of columns is sign ( )X( ) to size.
  • the first row and column of the array are initialized by increasing the length from 0 to the length of the two strings. From the second row and column of the array, the array values calculated previously are used to fill in.
  • Code 1 relates to the pseudo-code of Levenshtein distance algorithm.
  • M S 1 corresponding to the row means the original string
  • S 2 corresponding to the column means the target string to be replaced.
  • M[i][j] adds (M[i][j-1]+1), replaces (M[i-1][j-1] + cost), deletes (M[i-1][j) ]+1) is filled with the smallest value among costs.
  • Delete and append operations add 1 delete and add cost to the previous array value.
  • the replacement operation adds 0 if the currently calculated S 1 [i-1] th character and S 2 [j-1] th character match, and adds 1 if they are different.
  • Code 1 is a pseudo-code indicating a method for calculating the similarity of a purchase history sequence proposed in the present invention by using the Levenstein distance algorithm.
  • the square box is a function that calculates the newly proposed replacement operation cost, and the pseudocode of code 2 is executed. If the corresponding part has a value of 0 or 1 depending on whether characters match or not, the existing Levenstein distance algorithm is performed.
  • the edit distance of each character string of the sequences S1 and S2 is shown in Table 4 below.
  • the algorithm proposed in the present invention calculates the similarity between products more accurately by subdividing the value of the added cost during the replacement operation of the existing Levenstein distance algorithm from 0 to 1 using a product classification tree. Therefore, the substitution calculation cost proposed in the present invention is determined to be completely unrelated only in the case of the two most distant items in the product classification tree, and a maximum value of 1 is given, otherwise, the shortest value between two different products in the product classification tree. Subdivide the value of the replacement computation cost to have the length of the path.
  • Code 2 is a pseudo-code for a proposed method of calculating the degree of association between two products by subdividing the degree of association between two products using a product classification tree, unlike the existing alternative computation cost calculation method.
  • Code 2 relates to the pseudo-code of the proposed method.
  • Equation 1 is an equation for calculating the correlation between two product categories by using the product classification tree proposed in the present invention.
  • the cost is the closeness between the S 1 [i] th item and the S 2 [j] th item in the product classification tree.
  • the cost value represents the ratio of the length of the shortest path of the two items to be found in the product classification tree to the length of the two items that are farthest.
  • longestPath is the length of the path of the two most distant nodes in the product classification tree, that is, the number of edges of the two most unrelated items in the product classification tree.
  • itemPath is the length of the shortest path between the S 1 [i]-th item and the S 2 [j]-th item in the product classification tree.
  • the shortest path between two items is the number of edges from the two items to the nearest category. Therefore, the smaller the itemPath, the higher the correlation between the two items and the product is classified into a close category.
  • the newly calculated cost is a cost added during the replacement operation and is used to select the minimum value among the addition, replacement, and deletion costs.
  • the dynamic time warping algorithm calculates the distance using the accumulated distance by matching while moving in a direction that minimizes the distance between the two time series.
  • About sequence S 1 , S 2 Create an array M of two-dimensional infinity of size.
  • M[i][j] calculates the cost of the two items to be compared first, then deletes (M[i][j-1]) and matches (M[i-) 1][j-1]) and insertion (M[i-1][j]) are added to the minimum of the costs.
  • the squares are pseudocodes for the dynamic time warping similarity to which the proposed method of Code 2 is applied. If the corresponding part is the difference between the two values (
  • Code 3 relates to the pseudo-code of DTW algorithm.
  • the Needleman-Bnish algorithm aligns the two sequences with the highest degree of similarity using spaces while minimizing mutations between the two sequences.
  • About sequence S 1 , S 2 Create a two-dimensional array M of size M and initialize it to 0.
  • the range of the calculated similarity value varies according to the user-defined value, and in the present invention, the calculation cost using the product classification tree has a value between 0 and 1, so the match reward is 1, the mismatch penalty is 0, and the blank penalty is - given as 1.
  • Needleman-Varnish Similarity NW Sim(S 1 , S 2 ) is has a value between
  • Code 4 relates to the Pseudo-code of Needleman-Wunsch algorithm.
  • Code 4 is the pseudo code for the Needleman-Bnish algorithm to which the proposed method is applied, and the square box is the pseudo code of code 2 for the proposed method for calculating the association between two products in the product classification tree. If a match award or a mismatch penalty is given depending on whether the corresponding part matches the two items to be compared (S 1 [i-1], S 2 [j-1]), the existing needle The Bay-Bnish distance is calculated.
  • This chapter shows the performance measurement results for the similarity measurement method between purchase history sequences using the product classification system proposed in the present invention.
  • the comparison results of similarity measurements between the existing method and the proposed method with respect to the Levenstein distance, dynamic time warping distance, and Needlemann-Bnish similarity, which are representative similarity measurement methods described in Section 2.3, and the execution time comparison results for the three algorithms are shown.
  • the similarity measurement method between purchase history data sequences proposed in the present invention was implemented by dynamic programming using Python 3.7, and the product classification tree was implemented using the anytree library.
  • the experiment was performed on a PC running Windows 10 operating system equipped with Intel i7-5820 3.3 GHz CPU and 8GB memory.
  • the product classification tree used in the experiment has a height of 5 and has a total of 37 nodes.
  • the tree consists of 26 leaf nodes representing products and 11 nodes corresponding to product categories.
  • virtual sequence data in which the number of items in the sequence ranges from 3 to 10 was generated and used.
  • Table 5 relates to Evaluation results for different similarity measures.
  • Example 1 Example 2
  • Example 3 Similarity Measure S 1 - S 2 S 1 - S 3 S 4 - S 5 S 4 - S 6 S 7 - S 8
  • Levenshtein 3 3 3 3 New Levenshtein 2.5 0.75 2.625 0.65 3
  • DTW 9 3 9 3 New DTW 2.5 0.75 2.625 0.65 0.75 NW 0 0 0 0 0 New NW 0.5 2.25 0.55 2.75 0
  • This section shows the performance measurement results according to the similarity measurement method between various sequences.
  • Sequence 3 is virtual sequence data used in the accuracy measurement experiment.
  • Example 1 and Example 2 are experimental data to measure whether the proposed method calculates the similarity between purchase history sequences more accurately than the existing similarity method.
  • Example 1 is hypothetical sequence data
  • Example 2 is the Amazon of real consumers. This is experimental data on purchase history.
  • Example 3 is similarity measurement virtual sequence data for sequences having different sizes.
  • Sequence 3 relates to Examples of sequence data.
  • S 1 , S 2 in Example 1 and S 4 , S 5 in Example 2 are dissimilar purchase history sequences
  • S 1 , S 3 in Example 1 and S 4 , S 6 in Example 2 are purchases that are very similar to each other. It is a sequence of products.
  • S 8 has a different sequence size from S 7 , but has the same purchase order (snacks, electronic products, drinks) in the broadest sense. Through this, it was measured whether similarity was accurately calculated even for sequences having different lengths.
  • ⁇ Table 5> is a result table of the similarity measurement results in the three existing algorithms using the virtual sequence data of Sequence 3 and the similarity measurement results applying the proposed method.
  • the two-dimensional array is initialized using the difference between the two values (
  • the three algorithms to which the proposed method is applied it can be seen that all three algorithms calculate more accurately S 1 , S 3 with relatively high correlation between products in the sequence compared to S 1 , S 2 with low similarity between products.
  • Example 2 using real data, it was confirmed through experiment that two sequences with higher correlation between products as in Example 1 showed a higher similarity than the case where they were not.
  • the existing methods calculate by simply assigning 1 to different products.
  • the similarity is calculated more accurately even in a sequence composed of different products because the calculation is performed in consideration of the product classification tree.
  • the execution time of the proposed sequence similarity measurement technique was measured to evaluate whether it was an acceptable level.
  • Experiments were performed on the Levenstein distance, the dynamic time warping distance, and the Needlemann-Bnish similarity to which the existing method and the proposed method were applied.
  • the execution time was measured by increasing the number of similarity measurements between the sequences from 2000 to 10000 times.
  • sequence similarity virtual sequence data was generated to have a different random product composition and length each time.
  • ⁇ Table 6> is a table showing the execution time of the existing method when the number of sequence similarity measurements is 10000 times. Referring to FIG. 22 , as a result of the experiment, the calculation speed of all three similarity comparison methods showed a tendency to depend on the number of products in the sequence and the composition of products in the sequence. took Table 6 relates to Evaluation results for conventional methods.
  • the execution time increases linearly as the number of comparisons increases, and all three algorithms show similar execution times. It is judged that all three algorithms show similar execution times because the algorithm's execution process is calculated using the two-dimensional array for the two sequences.
  • the execution time of the proposed method is longer due to the product classification tree search process.
  • the execution time of all three algorithms to which the proposed method is applied does not exceed a maximum of 2 minutes, indicating that the execution time of the proposed method is at a practically usable level.
  • the existing sequence similarity measurement method calculates the similarity by considering only the order of purchased products constituting the sequence. In this case, if the two sequences are purchase histories, the correlation between the two products to be compared is ignored. Therefore, in the present invention, not only the order of the constituent products in the sequence is considered, but also the similarity is more accurately calculated for the sequence composed of different products by using the product classification system.
  • the method proposed in the present invention uses a product classification tree to set the calculation cost to have a value between 0 and 1. segmented.
  • the newly calculated computational cost means the path from the product classification tree of the two products to be compared to the closest common category, and 1 is assigned only when the closest common category is the root node.
  • a process of searching a given product classification tree is performed in order to calculate the degree of association between two products even for different products during the sequence similarity measurement process.
  • Products purchased by each customer form a purchase history of that customer over time.
  • data in which an order exists between items is called a sequence.
  • a company can analyze the purchase history or purchase sequence containing the characteristics and consumption patterns of customers and use it as a marketing strategy to increase sales.
  • most products traded in the distribution industry have a classification system such as small classification, medium classification, and large classification. In this case, it can be said that the similarity between the two products is higher as the detailed classification is the same, even if they are different products. For example, if two products belong to the same sub-category, the similarity is higher than if the two products belong to the same sub-category although they are different from each other. So far, many studies have been conducted on methods for measuring the similarity between sequences. However, all of these studies only consider whether each item constituting the sequence is the same or different, and there have been few studies considering the classification system in the items.
  • the present invention proposes a method for measuring similarity between purchase histories that considers not only the order of purchase of products but also the classification system existing in products.
  • the method for measuring the similarity between purchase histories proposed in the present invention determines that the two purchase histories are similar even if the products of the two purchase histories are different, if the classifications of the products are similar.
  • the similarity measurement method proposed in the present invention extends the dynamic time warping (DTW) distance, which is a representative sequence similarity measurement method, and reflects the similarity between products according to the product classification system in the distance calculation.
  • DTW dynamic time warping
  • the present invention proposes an efficient calculation technique for the proposed similarity measurement method.
  • the proposed method calculates the similarity between two products very quickly within the product classification system using a segment tree. Through this, the proposed method can be used very efficiently when it is necessary to compare multiple purchase histories.
  • the dynamic time warping similarity is a method proposed to measure the similarity between two time series patterns with different speeds.
  • the similarity is calculated using the accumulated distance while moving items in a direction that minimizes the distance between the two time series. It is known to calculate similarity very efficiently for sequences of different lengths.
  • a segment tree is used to quickly calculate the similarity between the proposed purchase histories.
  • a segment tree is a tree in which each node has information (eg, sum, minimum, maximum) about the sections represented by its child nodes.
  • the segment tree is known to be effective in the problem of finding the minimum value within a specific range because information on each section is obtained and stored in advance.
  • the dynamic time warping similarity which is an existing representative method for measuring sequence similarity, is extended to reflect the product classification system.
  • x i and y i represent the i-th purchased item in each purchase history.
  • the proposed method creates an nxm two-dimensional array M and initializes all elements to ⁇ when two purchase histories s 1 and s 2 are given. Then, each element M [i][j] of M is updated using Equation 2 below.
  • M [i][j] dist(x i , y j )+min(M [i - 1][j], M [i][j - 1], M [i - 1][j - 1] )
  • dist (x i, y j ) is the distance in consideration of the i-th entry in x i and s 2 of the j-th entry of y j of the product classification of s 1.
  • the minimum value added to dist(x i , y j ) among M[i - 1][j], M[i][j - 1], and M[i - 1][j - 1] is s 1, respectively.
  • dist(x i , y j ) can have a value between 0 and 1 by reflecting the product classification system. dist(x i , y j ) is defined as in Equation 3 below.
  • T is the given product classification system tree
  • shortestPathLen(x i , y j , T) is the length of the shortest path between terminal nodes representing products x i and y j in T
  • longestPathLen(T) is T It represents the length of the path between the two terminal nodes that are the farthest in dist(x i , y j ) has a value between 0 and 1, and has a smaller value as the two products are closer in the product classification tree, that is, as the subcategories are the same, and the further the two products are in the product classification tree, the smaller the value. , that is, it has a larger value as it belongs to different classifications.
  • a simple way to find the shortestPathLen(x i , y j , T) for a given x i and y j is to find the path from the root node of T to x i and y j , respectively, and then to the node included in the two paths. It can be calculated very simply by comparing them one by one and finding the number of different nodes.
  • this method has a disadvantage that the computational cost increases as the size of T increases. In particular, as the lengths of s 1 and s 2 become longer, this operation has to be repeated, so there is a problem in that the cost of calculating the overall similarity greatly increases.
  • the present invention proposes a technique for very efficiently calculating the shortestPathLen(x i , y j , T) using a segment tree.
  • the proposed method first traverses the product classification system tree once to create two one-dimensional arrays.
  • the two arrays store the order of the nodes visited and the depth of each node, respectively.
  • the newly proposed Equation 4 for calculating the shortestPathLen(x i , y j , T) using the segment tree generated through the array in which the visited node order is stored is as follows.
  • shortestPathLen(x i , y j , T) depth[x i ]+depth[y j ]-2 x depth[LCA(x i , y j , T)]
  • LCA(x i , y j , T) is the closest common classification of the two products calculated by the segment tree
  • depth[] is an array in which the depth of each node stored as a result of the translocation traversal is stored.
  • the length of the path from x i to LCA(x i , y j , T) is depth[x i ]-depth[LCA(x i , y j , T)], from LCA(x i , y j , T) Since the length of the path up to y j is depth[y j ]-depth[LCA(x i , y j , T)], the length of the shortest path of two x i , y j becomes Equation 4 above.
  • this segment tree is used to find the closest common classification of the two products and the depth information of the two products, and using this, shortestPathLen(x i , y j , T) calculate directly Therefore, when calculating shortestPathLen(x i , y j , T), the process of finding the path from the root node of T to x i and y j , respectively, and comparing the two paths is eliminated, so the total computational cost is greatly reduced.
  • the proposed method was implemented using Python, and the experiment was performed on a PC in Windows 10 operating system environment equipped with Intel i7-5820 3.3GHz CPU and 8GB memory.
  • the product classification system was used after collecting the actual classification system of Amazon, a representative online shopping mall, and building it in the form of a tree.
  • Table 7 shows the results of applying the proposed method to simple virtual purchase history data (similarity comparison experiment results).
  • the given three purchase histories s 1 , s 2 , and s 3 have different products, but s 1 and s 2 have similar product categories compared to s 1 and s 3 (eg, Coke and Sprite both belong to beverages) )
  • the existing dynamic time warping similarity calculates the distance between s 1 and s 2 and the distance between s 1 and s 3 as 6, but the proposed method calculates the distance between s 1 and s 2 and the distance between s 1 and s 3 . is calculated as 1.5 and 5.375, respectively. Therefore, the proposed method calculates a more accurate distance compared to the existing method by giving a closer distance to products with similar product classifications, even when the two purchase histories are composed of different products. In addition, it was confirmed that there is no problem in application even if the purchase history lengths are different due to the characteristics of the dynamic time warping similarity.
  • FIG. 23 is a graph comparing the performance of a simple technique and a proposed technique to which a segment tree is applied according to a purchase history length.
  • 24 is a graph comparing the performance of the simple technique and the proposed technique according to the number of products in the product classification system tree.
  • the performance of the technique proposed in the present invention will be described with reference to FIGS. 23 and 24 .
  • 25 is a flowchart illustrating a control method for determining a degree of similarity between sequences in consideration of an item classification system according to an embodiment of the present invention.
  • the control method includes a process of acquiring a first sequence (S2510), a process of acquiring a second sequence (S2530), and similarities between the first and second sequences It may include a process of determining whether or not (S2550).
  • the first sequence may include first items having an order
  • the second sequence may include second items having an order.
  • the first sequence may include item 1-1, item 1-2, and item 1-3 in order
  • the second sequence may include item 2-1 and item 2-2 in order.
  • items 2-3 may be included.
  • the number of items in the sequence may have a value of two or more.
  • the first and second sequences may be product purchase history
  • the first purchase history may have the order of Sprite, candy, and Jeans
  • the second purchase history may have the order of Coke, Chocolate, and Skirt.
  • step S2550 it may be determined whether the first and second sequences are similar based on the first information and the second information.
  • the first and second items may correspond to a terminal node of the same item classification tree.
  • the item classification tree is an item classification system having a tree structure, and branches from the root, which is the top node, to a lower hierarchy, and includes items (a to k) in a plurality of internal nodes (C1 to C8) and a terminal node that is an end of the plurality of internal nodes. ) (see FIG. 21(a)).
  • the first information may include information about the number of operations for converting one of the items in the first sequence into one of the items in the second sequence.
  • the first information includes the number of operations for converting item 1-1 into item 2-1, item 2-2, item 2-3, and item 1-2 into item 2-1 and item 2-1.
  • 2-2 items, the number of operations for converting items 2-3 into items, and the number of operations for converting items 1-3 into items 2-1, 2-2, and 2-3 can be included. have.
  • the second information may include information about a length of a shortest path in the item classification tree between one of the first items and one of the second items.
  • associativity information between two items (Coke, Sprite) belonging to the same node and not identical and two items (Candy, Polos) of a different node are identically non-identical items. It has the information (0) meaning. However, it did not indicate that the items of (Coke, Sprite) were more related to each other than the items of (Candy, Polos) (see Fig. 21(a)).
  • the method proposed in the present invention uses the length of the shortest path between items in order to more precisely determine the similarity between sequences. It may be determined that the shorter the length of the shortest path between items, the higher the correlation information between items. For example, the path of items of (Candy, Polos) is 7, and the path of items of (Coke, Sprite) is 2 (see FIG. 21(b) ). Therefore, it means that the items of (Coke, Sprite) are highly correlated compared to the items of (Candy, Polos).
  • the second information may further include information about a length of a longest path of items in the item classification tree.
  • the method proposed in the present invention can measure the similarity between sequences using a relative value of correlation information between the items using the length of the main path of the items. For example, the relative association information of items of (Coke, Sprite) has a value of 2/7 as the longest path length (7) of items in the item classification tree compared to the path length (2) of items of (Coke, Sprite).
  • depth information for each node of the item classification tree may be calculated and stored in advance in order to quickly calculate correlation information between items. Afterwards, when two items are selected, in order to calculate the length of the shortest path between the items, the shortest path between items based on the depth information, rather than calculating the path by comparing all nodes (root, internal node, terminal node) respectively. can calculate the length of Therefore, it is possible to prevent redundant operations and quickly provide the length of the shortest path between items.
  • the length of the path from the root to each node may be defined as the node depth by assigning a sequence number to each node.
  • the node depth of the root is 0, the node depths of C1, C2, C3 are 1, the node depths of C4, C5, e, f, C6, C7 are 2, and a, b, c, d, g , h, I, and C8 may have a node depth of 3, and j and k may have a node depth of 4.
  • the information of the node depth for each node may be calculated in the future and stored in the memory 1100 .
  • the length of the shortest path between items (Sandals, Jeans) can be determined through the sum of the path length between the item and the Fashion (C3) inner node and the path length between the Jeans(i) item and the Fashion (C3) inner node. .
  • the electronic device 1000 includes a memory 1100 , an output unit 1200 , a processor 1300 , a sensing unit 1400 , a communication unit 1500 , It may include an A/V input unit 1600 and a user input unit 1700 .
  • the processor 1300 performs each of the processes described above with reference to FIGS. 20 to 25 by the processor itself or controls the components of the electronic device 1000 in order to perform a control method for determining the degree of similarity between sequences in consideration of the item classification system. can be done by

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

본 발명에 따른 일 실시예는, 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하는 과정; 상기 각각의 노드에 대한 노드-가중치 시퀀스들을 학습된 오토인코더 모델의 입력으로 하여 상기 각각의 노드에 대한 임베딩 벡터들을 획득하는 과정; 상기 각각의 노드에 대한 임베딩 벡터들을 이용하여 상기 각각의 가중치 그래프의 최종 임베딩 벡터들을 획득하는 과정; 및 상기 각각의 가중치 그래프를 분류함으로서 상기 가중치 그래프들의 유사 여부를 판단하는 과정을 포함하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법을 제공할 수 있다.

Description

유사도를 판단하는 전자 장치 및 그 제어 방법
본 발명은 유사도를 판단하는 전자 장치 및 그 제어 방법에 관한 것으로, 구체적으로 가중치 정보를 가지고 있는 그래프의 유사 여부를 분석하기 위하여 기계학습을 이용하는 전자 장치 및 제어 방법과, 항목 분류 체계 내의 항목들 간 최단 경로의 거리를 이용하여 항목들을 포함하는 시퀀스들 간 유사도를 판단하는 전자 장치 및 제어 방법에 관한 것이다.
인공지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 Rule 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 Rule 기반 스마트 시스템은 점차 기계학습 기반 인공지능 시스템으로 대체되고 있다.
인공지능 기술은 기계학습(딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다. 기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
최근들어 딥러닝 기술을 사용하여 그래프를 임베딩하는 연구가 진행되고 있다. 이들 연구는 다양한 딥러닝모델을 사용하여 그래프들의 특징을 추출하고, 이 추출된 특징을 사용하여 각 그래프를 임베딩한다.
그러나 종래의 딥러닝에 기반한 그래프 임베딩 기법들은 그래프의 구조만을 고려하였으며, 구조를 이루는 노드들 사이의 간선에 부여된 가중치를 고려한 그래프 임베딩 기법은 아직까지 연구가 이뤄지지 않았다. 그로 인해 간선의 가중치가 다른 그래프들 사이의 유사성을 판별하는데 문제가 있었다.
[[[최근 스마트폰의 보급과 소셜 네트워크 서비스의 발전으로 인해 다양한 데이터가 스마트폰 사용자들로부터 데이터스트림의 형태로 끊임없이 실시간으로 생성되는 빅데이터 환경이 도래하였다. 데이터스트림이란 시간의 흐름에 따라 순차적으로 무한하게 생성되는 데이터를 말한다.
유사 시퀀스 매칭이란 수많은 데이터 시퀀스(data sequence)들 중에서 사용자에 의해 주어지는 질의 시퀀스 (query sequence)와 유사한 데이터 시퀀스를 검색하는 문제이다. 시퀀스를 구성하는 데이터로 연속성을 가지는 수치 데이터를 사용하여 유사 시퀀스 매칭을 수행할 경우, 비슷한 형태를 가지는 유사한 데이터 시퀀스를 찾을 수 있다.
데이터 시퀀스의 일 예로, 구매 이력 데이터는 고객이 생성하는 대표적인 데이터 중 하나이다. 구매 이력 데이터에는 물건을 구매하는 사람의 특성과 이에 따라 소비되는 제품, 소비 패턴 등이 담겨있다. 다른 고객들의 구매 이력 데이터를 비교하여 유사 여부를 판단함으로써, 새로운 상품 추천 등의 서비스를 할 수 있다.
그러나, 종래의 구매이력 데이터 간 유사 판단 방법은 시퀀스 내의 상품들 간 연관성에 대한 정보를 반영하지 못하여 구매이력 데이터의 유사 판단에 대한 정확성이 떨어지는 문제가 있었다.]]]
본 발명의 일 실시 예에 따른 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법은 아래와 같은 목적을 가진다.
본 발명은 가중치 그래프를 위한 새로운 임베딩 기법을 이용하는 전자 장치 및 그 제어 방법을 제안한다.
본 발명은 가중치 그래프들이 주어졌을 때, 각 가중치 그래프로부터 노드-가중치 시퀀스(node-weight sequence)들을 추출하고, 추출된 노드-가중치 시퀀스들을 훈련 데이터로 사용하여 LSTM 오토인코더(autoencoder)를 학습시키는 전자 장치 및 그 제어 방법을 제안한다.
본 발명은 학습된 LSTM 오토인코더를 사용하여 각 노드-가중치 시퀀스들을 임베딩하고, 특징들을 모아 각 가중치 그래프의 최종 임베딩 결과를 얻는 전자 장치 및 그 제어 방법을 제안한다.
[[[본 발명의 일 실시예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법은 순서를 가지는 항목들로 구성된 시퀀스들의 유사도를 제공하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법은 상품의 구매이력들의 유사도를 제공하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법은 상품의 구매이력들의 유사도를 제공하기 위하여 상품 분류 트리를 이용하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법은 상품의 구매이력들의 유사도를 판단하기 위한 시간을 단축하는 것을 목적으로 한다.]]]
본 발명의 일 실시 예는, 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하는 과정; 상기 각각의 노드에 대한 노드-가중치 시퀀스들을 학습된 오토인코더 모델의 입력으로 하여 상기 각각의 노드에 대한 임베딩 벡터들을 획득하는 과정; 상기 각각의 노드에 대한 임베딩 벡터들을 이용하여 상기 각각의 가중치 그래프의 최종 임베딩 벡터들을 획득하는 과정; 및 상기 각각의 가중치 그래프를 분류함으로서 상기 가중치 그래프들의 유사 여부를 판단하는 과정을 포함하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하는 과정; 및 상기 각각의 노드에 대한 노드-가중치 시퀀스들을 이용하여 오토인코더 모델을 학습시키는 과정을 포함하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 상기 각각의 가중치 그래프는 복수개의 노드들과 노드들 사이를 연결하는 간선에 부여된 가중치 정보를 포함하며, 상기 노드-가중치 시퀀스는 간선으로 연결된 2개의 노드들의 정보 및 간선에 부여된 가중치에 대한 정보로 이뤄진 구성요소들을 포함하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 상기 오토인코더 모델은 LSTM 오토인코더인 것을 특징으로 하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 가중치 그래프들에 대한 정보 및 학습된 오토인코더 모델에 대한 정보를 저장한 메모리; 상기 메모리를 제어하는 제어부를 포함하며, 상기 제어부는, 상기 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하고, 상기 각각의 노드에 대한 노드-가중치 시퀀스들을 상기 학습된 오토인코더 모델의 입력으로 하여 상기 각각의 노드에 대한 임베딩 벡터들을 획득하고, 상기 각각의 노드에 대한 임베딩 벡터들을 이용하여 상기 각각의 가중치 그래프의 최종 임베딩 벡터들을 획득하고, 상기 각각의 가중치 그래프를 분류함으로서 상기 가중치 그래프들의 유사 여부를 판단하도록 제어하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 가중치 그래프들에 대한 정보를 저장한 메모리; 상기 메모리를 제어하는 제어부를 포함하며, 상기 제어부는, 상기 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하고, 상기 각각의 노드에 대한 노드-가중치 시퀀스들을 이용하여 오토인코더 모델을 학습시키도록 제어하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 상기 각각의 가중치 그래프는 복수개의 노드들과 노드들 사이를 연결하는 간선에 부여된 가중치 정보를 포함하며, 상기 노드-가중치 시퀀스는 간선으로 연결된 2개의 노드들의 정보 및 간선에 부여된 가중치에 대한 정보로 이뤄진 구성요소들을 포함하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 상기 오토인코더 모델은 LSTM 오토인코더인 것을 특징으로 하는, 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치를 제공할 수 있다.
[[[본 발명의 일 실시 예는, 순서를 가지는 제1 항목들로 구성된 제1 시퀀스를 획득하는 과정; 순서를 가지는 제2 항목들로 구성된 제2 시퀀스를 획득하는 과정; 및 제1 정보 및 제2 정보에 기초하여 상기 제1 및 제2 시퀀스의 유사 여부를 판단하는 과정을 포함하며, 상기 제1 정보는 상기 제1 항목들 중 하나를 상기 제2 항목들 중 하나로 변환하기 위한 연산의 횟수에 관한 정보를 포함하며, 상기 제2 정보는 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이에 관한 정보를 포함하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 상기 제1 및 제2 항목들은 동일한 항목 분류 트리의 단말 노드에 해당하는 것을 특징으로 하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 상기 제2 정보는 상기 항목 분류 트리 내의 항목들의 최장 경로의 길이에 관한 정보를 더 포함하는 것을 특징으로 하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이는 기 저장된 상기 항목 분류 트리의 각 노드에 대한 깊이 정보에 기초하여 결정되는 것을 특징으로 하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공할 수 있다.
본 발명의 일 실시 예는, 항목 분류 트리에 대한 정보를 저장하는 메모리; 및 상기 메모리를 제어하는 프로세서를 포함하며, 상기 프로세서는, 순서를 가지는 제1 항목들로 구성된 제1 시퀀스를 획득하고, 순서를 가지는 제2 항목들로 구성된 제2 시퀀스를 획득하고, 제1 정보 및 제2 정보에 기초하여 상기 제1 및 제2 시퀀스의 유사 여부를 판단하도록 제어하며, 상기 제1 정보는 상기 제1 항목들 중 하나를 상기 제2 항목들 중 하나로 변환하기 위한 연산의 횟수에 관한 정보를 포함하며, 상기 제2 정보는 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이에 관한 정보를 포함하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 상기 제1 및 제2 항목들은 동일한 항목 분류 트리의 단말 노드에 해당하는 것을 특징으로 하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 상기 제2 정보는 상기 항목 분류 트리 내의 항목들의 최장 경로의 길이에 관한 정보를 더 포함하는 것을 특징으로 하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치를 제공할 수 있다.
본 발명의 일 실시 예는, 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이는 상기 메모리에 기 저장된 상기 항목 분류 트리의 각 노드에 대한 깊이 정보에 기초하여 결정되는 것을 특징으로 하는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치를 제공할 수 있다.]]]
본 발명은 각 가중치 그래프의 임베딩 결과를 이용하여 가중치 그래프 간 유사도를 측정하거나 유사 가중치 그래프를 탐색하는 전자 장치 및 그 제어 방법을 제공하는 효과를 가진다.
본 발명은 실제 서로 다른 구조와 가중치를 가진 그래프 데이터에 대한 실험을 통해, 유사한 가중치 그래프를 탐색하는데 매우 효과적인 전자 장치 및 그 제어 방법을 제공하는 효과를 가진다.
본 발명은 그래프 분류, 그래프 탐색, 그래프 유사도 판별, 추천 시스템(유사 성향의 사람 찾기, 유사한 곡 추천 등), 화합물 비교를 구현할 수 있는 전자 장치 및 그 제어 방법을 제공하는 효과를 가진다.
본 발명은 새로운 화합물을 발견하거나 만들어 낼 경우 기존 화합물과 대비하여 그래프의 유사성을 이용하여 새로운 화합물의 특성 내지 성질을 예측할 수 있는 전자 장치 및 그 제어 방법을 제공하는 효과를 가진다.
[[[본 발명의 일 실시 예는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공함으로써, 시퀀스들 간 유사여부를 유사 및 비유사와 같이 불연속적인 결과를 제공하는 것이 아니라 정량적인 수치를 제공함으로서 유사도를 제공하는 효과를 가진다.
본 발명의 일 실시 예는, 동일한 항목 분류 체계를 가지는 시퀀스들의 유사 여부를 비교할 수 있는 효과를 가진다.
본 발명의 일 실시 예는, 기 저장된 상기 항목 분류 트리의 각 노드에 대한 깊이 정보에 기초하여 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공함으로써, 시퀀스들의 유사 판단 시간을 단축할 수 있는 효과를 가진다.
본 발명의 일 실시 예는, 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 제공함으로써, 상품 구매이력들의 유사도를 제공하는 효과를 가진다.]]]
도 1은 일반화 시킨 가중치 그래프를 도시한 도면이다.
도 2(a)는 화합물의 가중치 그래프를 도시한 도면이다. 도 2(b)는 소셜 관계의 가중치 그래프를 도시한 도면이다.
도 3(a) 및 도 3(b)는 화합물들의 가중치 그래프로 나타내고, 화합물들의 유사 여부를 판단하는 실 예를 도시한 도면이다.
도 4(a)는 그래프를 n차원 임베딩 벡터로 표현한 예를 도시한 것이다.
도 4(b)는 그래프의 각 노드를 임베딩 벡터로 표현한 예를 도시한 것이다.
도 4(c)는 전체 그래프를 임베딩 벡터로 표현한 예를 도시한 것이다.
도 5는 오토인코더의 아키텍처를 도시한 도면이다.
도 6은 LSTM(Long Short-Term Memory) 오토인코더의 아키텍처를 도시한 것이다.
도 7은 그래프의 구조가 다른 3개의 그래프를 도시한 도면이다.
도 8은 t-SNE를 이용한 제안 임베딩 벡터를 시각화한 그래프이다.
도 9(a)는 문자 인코딩을 적용하고, 노드-가중치 시퀀스로부터 훈련데이터를 생성하기 위하여 MSE, MSE 및 KLD 조합, MSE 및 CCE의 조합 중 하나를 사용한 경우 최종 임베딩 벡터를 결정하기 위해 평균, 절삭 평균, 최빈값을 사용한 precision at k에 대한 그래프를 도시한 것이다.
도 9(b)는 원-핫 인코딩을 적용하고, 노드-가중치 시퀀스로부터 훈련데이터를 생성하기 위하여 MSE, MSE 및 KLD 조합 중 하나를 사용한 경우 최종 임베딩 벡터를 결정하기 위해 평균, 절삭 평균, 최빈값을 사용한 precision at k에 대한 그래프를 도시한 것이다.
도 10(a)는 MSE 및 KLD 조합의 경우 '문자 인코딩과 원-핫 인코딩', '평균 및 절삭 평균'의 조합에 따른 precision at k에 대한 그래프를 도시한 것이다.
도 10(b)는 원-핫 인코딩으로 그래프의 노드-가중치 시퀀스를 결정하고, MSE 및 KLD 의 조합을 사용하여 노드-가중치 시퀀스로부터 훈련데이터를 결정한 경우에 평균, 절삭 평균, 최빈값 중 하나에 따른 precision at k과 기존에 연구된 graph2vec을 통한 precision at k에 대한 그래프를 도시한 것이다.
도 11(a) 및 도 11(b)는 본 발명에서 제안된 임베딩 방법으로 생성한 임베딩 벡터들을 시각화한 그래프이다.
도 12는 본 발명의 일 실시 예에 따른 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치의 제어 방법의 흐름도를 도시한 것이다.
도 13(a) 및 도 13(b)는 일 실시 예에 따른 기계학습 모델을 훈련하는 방법의 흐름도를 도시한 것이다.
도 14(a) 및 도 14(b)는 일 실시 예에 따른 훈련된 기계학습 모델을 이용하는 방법의 흐름도를 도시한 것이다.
도 15(a)는 일부 실시예에 따른 데이터 학습부(1310)의 블록도이다.
도 15(b)는 일부 실시예에 따른 데이터 인식부(1320)의 블록도이다.
도 16는 일부 실시예에 따른 하나의 전자 장치에서 학습 및 인식하는 예를 나타낸 도면이다.
도 17은 일부 실시예에 따른 2개의 전자 장치에서 학습 및 인식하는 예를 나타낸 도면이다.
도 18 및 도 19는 일 실시예에 따른 전자장치(1000)의 블록도를 도시한 것이다.
[[[도 20은 유클리디안 거리와 DTW 거리의 비교를 도시한 것 이다.
도 21(a)는 본 발명에서 사용한 상품 분류 트리 중 일부를 도시한 것이다.
도 21(b)는 본 발명에서 사용한 상품 분류 트리의 longestPath 및 itemPath의 일 예를 도시한 것이다.
도 22은 제안 방법을 적용한 수행 시간 측정 결과 (Experimental results for proposed methods)이다
도 23는 구매 이력 길이에 따른 단순 기법과 세그먼트 트리를 적용한 제안 기법의 성능을 비교 그래프이다.
도 24는 상품 분류 체계 트리의 상품 개수에 따른 단순 기법과 제안 기법의 성능을 비교한 그래프 이다.
도 25은 본 발명의 일 실시 예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법의 흐름도를 도시한 것이다.]]]
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
본 명세서에서 사용한 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
이하에서 첨부된 도면을 참고하여, 본 발명은 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법의 기계학습 모델(방법)에 대해서 설명한다.
1. 서 론
그래프는 여러 노드(node)들과 노드들 간의 간선으로 구성된 데이터이다. 최근 들어 그래프 데이터는 화학, 생물학, SNS 등 다양한 분야에서 활발히 사용되고 있다. 여러 노드들과 노드들 사이의 간선으로 구성된 그래프 중에서 노드들 사이의 간선에 가중치가 주어진 그래프를 가중치 그래프라 한다.
도 1은 일반화 시킨 가중치 그래프를 도시한 도면이다.
도 1를 참조하면, 가중치 그래프의 노드들은 A, B, C, D, E, F, G, H와 같이 표현될 수 있으며, A와 B 사이의 간선의 가중치는 3.12, A와 C 사이의 간선의 가중치는 4.96 등과 같이 표현될 수 있다.
도 2(a)는 화합물의 가중치 그래프를 도시한 도면이다. 도 2(b)는 소셜 관계의 가중치 그래프를 도시한 도면이다.
도 2(a)를 참조하면, 화합물의 가중치 그래프는 화합물을 구성하고 있는 원소 또는 분자 구조를 노드로 표현하고, 원소 또는 분자 구조 간 결합력을 가중치로 표현할 수 있다. 도 2(b)를 참조하면, 소셜 관계의 가중치 그래프는 구성원 또는 관심 대상을 노드로 표현하고 구성원 또는 관심 대상 간 관심도를 가중치로 표현할 수 있다.
특히, 화학정보학에서 유사한 화합물을 찾는 것은 매우 중요한 것으로 가중치 그래프를 이용하여 화합물의 유사성을 찾고자 하는 연구가 활발하게 진행 중에 있다.
도 3(a) 및 도 3(b)는 화합물들의 가중치 그래프로 나타내고, 화합물들의 유사 여부를 판단하는 실 예를 도시한 도면이다.
도 3(a)에 도시된 바와 같이, 2개의 화합물은 각각의 가중치 그래프의 A 부분과 B 부분의 유사성을 기반으로 2개의 화합물이 서로 유사한 것으로 판단할 수 있다. 도 3(b)에 도시된 바와 같이, 2개의 화합물은 각각의 가중치 그래프 상에서 A 부분과 C 부분과 같이 유사한 부분이 없기 때문에 2개의 화합물은 서로 유사하지 않은 것으로 판단할 수 있다.
그래프 임베딩(graph embedding)이란 주어진 그래프를 저차원 공간상의 벡터로 표현하는 것을 말한다. 즉, 그래프 임베딩이란 그래프가 가진 특징을 저차원 공간의 벡터로 표현하는 방법을 의미한다. 해당 벡터가 원 그래프의 특징을 잘 나타낼수록 좋은 임베딩이라 부른다. 그래프들이 벡터로 임베딩되고 나면 이들 벡터 간의 거리 등을 계산함으로써 유사한 그래프들을 탐색할 수 있다.
최근 들어 딥러닝 기술을 사용하여 그래프를 임베딩하는 연구가 진행되고 있다. 이들 연구는 다양한 딥러닝 모델을 사용하여 그래프들의 특징을 추출하고, 이 추출된 특징을 사용하여 각 그래프를 임베딩한다. 하지만 지금까지 딥러닝에 기반한 대부분의 그래프 임베딩 기법들은 그래프의 구조만을 고려하였으며, 각 간선에 가중치가 부여된 가중치 그래프(weighted graph)에 대한 임베딩 기법은 아직 많은 연구가 이루어지지 않았다. 즉, 기존 그래프 임베딩 기법은 노드와 노드 사이의 간선에 존재하는 가중치 정보를 고려하지 않는다.
본 발명에서 제안하는 그래프 임베딩 기법은 노드 간 간선에 존재하는 가중치 정보 정보를 포함하여 가중 임베딩 벡터를 생성한다.
가중치 그래프는 원소 간의 거리 또는 결합력이 주어진 화합물을 표현하거나, 사람 간의 친밀도가 주어진 소셜 네트워크 등을 표현할 때 사용된다. 하지만 지금까지 제안된 대부분의 그래프 임베딩 기법들은 간선에 주어진 가중치를 고려하지 않기 때문에 이들을 사용할 경우 가중치에 대한 정보가 모두 사라진다는 문제가 있다. 따라서 본 발명은 딥러닝 기술을 사용하여 가중치 그래프를 임베딩하는 새로운 기법을 제안한다.
본 발명에서 제안하는 임베딩 기법은 가중치 그래프들이 주어졌을 때, 각 가중치 그래프로부터 그 내부에 존재하는 노드-가중치 시퀀스(node-weight sequence)들을 추출한다. 이후 가중치 그래프들로부터 추출된 노드-가중치 시퀀스들을 모두 모아 이들을 훈련 데이터로 사용하여 LSTM 오토인코더(autoencoder)를 학습시킨다.
LSTM 오토인코더는 각 노드-가중치 시퀀스의 특징을 추출하는 역할을 한다. 학습이 끝나면 추출된 노드-가중치 시퀀스들 각각을 LSTM 오토인코더를 사용하여 고정된 차원의 벡터로 임베딩한다.
마지막으로 각 가중치 그래프에 대해 그로부터 추출된 노드-가중치 시퀀스들에 대한 임베딩 벡터들을 모두 모아 해당 가중치 그래프에 대한 최종 임베딩 벡터를 생성한다.
따라서 제안 기법으로 생성된 임베딩 벡터는 가중치에 대한 정보를 포함하고 있으며, 가중치 그래프 간 유사도 측정이나 유사 가중치 그래프 탐색 등에 활용될 수 있다.
실제 서로 다른 구조와 가중치를 가지는 그래프 데이터에 대한 실험을 통해, 제안 임베딩 기법이 실제 유사한 가중치 그래프를 탐색하는데 매우 효과적임을 확인하였다.
이하에서 2장에서는 기존 그래프 임베딩 연구들을 살펴보고, 3장에서는 본 발명에서 제안하는 가중치 그래프에 대한 임베딩 기법을 설명한다. 4장에서는 제안 임베딩 기법을 평가한 실험 결과를 보이며, 5장에서는 결론을 맺는다.
2. 관련 연구
그래프 임베딩에 대한 연구는 크게 그래프 커널(graph kernel) 기반 연구, 랜덤-워크(random-walk) 기반 연구, 딥러닝 기반 연구로 나눌 수 있다.
그래프 커널 기반 연구는 주어진 두 그래프 간의 유사도를 직접적으로 측정할 수 있는 측정 방법을 찾는 연구이며, 랜덤 워크 기반 연구는 그래프를 무작위로 돌아다니며 같은 노드에 도착할 확률을 기반으로 그래프 간의 유사도를 측정하는 방법에 대한 연구이다. 하지만 최근 들어 딥러닝 기술이 비약적으로 발전하면서 딥러닝 기반 연구가 크게 늘고 있다.
딥러닝 기술을 사용한 그래프 임베딩 연구는 크게 노드 임베딩(node embedding)과 전체 그래프 임베딩 (whole-graph embedding)으로 나뉜다.
노드 임베딩은 주어진 그래프 내의 각 노드를 임베딩하는 것이며, 전체 그래프 임베딩은 주어진 그래프 전체를 임베딩하는 것이다. 전자는 그래프 내에서 유사한 노드를 탐색하는 데 사용되며, 후자는 유사한 그래프를 탐색하는 데 사용된다. 본 발명에서는 이 중 전체 그래프 임베딩을 다룬다.
도 4(a)는 그래프를 n차원 임베딩 벡터로 표현한 예를 도시한 것이다. 도 4(b)는 그래프의 각 노드를 임베딩 벡터로 표현한 예를 도시한 것이다. 도 4(c)는 전체 그래프를 임베딩 벡터로 표현한 예를 도시한 것이다.
도 4(a)에 도시된 바와 같이, 그래프는 n차원의 임베딩 벡터로 표현될 수 있다. n차원의 임베딩 벡터는 숫자로 이뤄진 원소를 가지는 1차원의 행렬로 표현될 수 있다.
도 4(b)에 도시된 바와 같이, 노드 임베딩은 그래프의 노드들의 표현을 학습하는 것으로, 각 노드들의 특성을 추출하여 노드 별 n차원의 벡터로 표현할 수 있다. 이는 링크 예측(link prediction), 유사 노드 판별 등에 활용될 수 있다. 노드 별 임베딩 벡터로 나타낼 때 node2vec, struc2vex 등의 기법이 사용될 수 있다.
도 4(c)에 도시된 바와 같이, 전체 그래프 임베딩은 전체 그래프의 특성을 추출하여 하나의 n차원의 벡터로 표현할 수 있다. 이는 그래프(화합물) 탐색, 그래프 분류 등에 활용될 수 있다. 전체 그래프 임베딩 벡터로 나타낼 때 graph2vec, Taheri, A. (KDD, 2019) 등의 기법이 사용될 수 있다.
현재까지 딥러닝 기술을 사용하여 전체 그래프를 임베딩하는 연구에는 대표적으로 [1] graph2vec과 [2] Taheri가 있다.
[1]은 대표적 단어 임베딩 모델인 word2vec을 문서 임베딩에 적용한 doc2vec을 그래프에 적용한 것이다. 문서에서 여러 단어가 모여 구성되듯이, 그래프는 여러 서브 그래프를 모아 구성되는 것으로 볼 수 있다.
따라서 [1]은 우선 그래프들을 여러 서브 그래프들로 분리한다. 그 후 각 서브 그래프를 원-핫(one-hot) 벡터로 표현하고, 이를 훈련 데이터로 사용하여 스킵-그램(skip-gram) 아키텍처를 가진 모델을 훈련시킨다.
이 때 모델은 입력된 서브 그래프와 동일한 그래프에서 같이 나타나는 서브 그래프들의 발생 확률을 최대화하는 것을 목표로 훈련된다. 학습이 완료되면 각 그래프의 최종 임베딩 벡터는 훈련된 모델의 은닉층(hidden layer)의 값을 사용한다.
[2]는 그래프로부터 그 내부에 존재하는 노드 시퀀스들을 추출하고, 이들을 사용하여 순환신경망(recurrent neural network, RNN) 기반 오토인코더를 훈련시킨다. 각 그래프로부터 노드 시퀀스들을 추출할 때는 랜덤-워크, 모든 노드 간 최단 경로 알고리즘 등 여러 알고리즘을 사용할 수 있다.
오토인코더의 훈련이 끝나면 각 노드 시퀀스는 학습된 RNN 기반 오토인코더 모델의 은닉층의 값으로 임베딩된다. 각 그래프는 최종적으로 그에 포함된 노드 시퀀스들에 대한 임베딩 벡터들의 평균 벡터로 임베딩된다. 하지만 [2]는 그래프 내부에 존재하는 노드들의 시퀀스만을 고려하며, 따라서 간선에 존재하는 가중치 정보는 임베딩되지 않는다.
정리하면, 딥러닝 기반한 기존의 그래프 임베딩 연구는 대부분 그래프의 노드들 간의 연결 관계만을 추출하거나, 그래프에 존재하는 경로를 이용해 임베딩 벡터를 추출하는 등 그래프의 구조적 유사성을 연구하는데 그칠 뿐 가중치 그래프의 가중치 정보를 추출하여 연구하지 못하고 있다.
또한, 딥러닝을 사용하지 않는 연구는 추출할 대상에 대한 모든 것을 정의해 주어야 하며, 아직까지 가중치 그래프의 가중치 정보를 추출하여 연구를 진행하고 있지 못하다.
3. 제안하는 가중치 그래프 임베딩 기법
본 발명에서 제안하는 그래프 임베딩 기법은 가중치 그래프로부터 노드 간 간선에 존재하는 가중치 정보 및 가중치 그래프를 표현하는 임베딩 벡터를 생성한다.
대략적으로 본 발명에서 제안하는 임베딩 기법은 그래프 데이터로부터 노드-가중치 시퀀스를 추출하고, 모델을 학습하고 노드-가중치 시퀀스를 이용하여 임베딩 벡터를 결정하고, 최종 임베딩 벡터를 생성하는 과정을 포함한다.
이하에서 본 발명에서 제안하는 가중치 그래프에 대한 임베딩 기법을 단계적으로 설명한다.
3.1 노드-가중치 시퀀스 추출
주어진 가중치 그래프들을 G1, G2, ..., Gn이라 하자. 본 발명에서는 각 가중치 그래프 Gi에 대해 그의 임베딩 벡터 Vi를 출력하는 것을 목표로 한다. (i = 1, 2, ..., n)
먼저 본 발명에서 제안하는 방법은 각 가중치 그래프 Gi에 대해 그 내부에 존재하는 노드-가중치 시퀀스들을 추출한다. 특히 기존 연구와 달리 각 간선에 존재하는 가중치를 포함하는 시퀀스를 추출한다. 추출된 노드-가중치 시퀀스는 그래프의 내부 구조에 대한 노드 정보 및 가중치 정보를 포함할 수 있다.
이를 위해 본 발명에서는 너비 우선 탐색(breadth-first search, BFS) 알고리즘을 사용하여 노드-가중치 시퀀스를 추출한다.
Gi에 속한 노드들의 집합을 Ni 라 하자. 제안 방법은 모든 n(1) ∈ Ni에 대해 n(1)에서 시작하여 BFS 알고리즘으로 탐색된 노드-가중치 시퀀스를 추출한다.
다음은 이렇게 얻어진 한 노드-가중치 시퀀스의 형태이다.
<[n(1), n(2), w(1)], [n(2), n(3), w(2)], ..., [n(k-1), n(k), w(k-1)]>
여기서 n(1), n(2), ..., n(k)는 n(1)에서 시작하여 BFS 알고리즘을 통해 탐색된 노드들을 순서대로 나타내며, w(i)는 n(i) 과 n(i+1) 사이에 존재하는 간선의 가중치를 나타낸다.
도 1을 참조하여 노드-가중치 시퀀스 추출의 예를 설명한다.
A 노드를 기준으로 하는 노드-가중치 시퀀스는 [[A, B, 3.12], [A, C, 4.96], [A, D, 2.78], …, [D, H, 0.92]]으로 표현할 수 있다. B 노드를 기준으로 하는 노드-가중치 시퀀스는 [[B, A, 3.12], [B, C, 1.76], [B, D, 2.15], …, [D, H, 0.92]]으로 표현할 수 있다.
추출된 노드-가중치 시퀀스는 LSTM 학습 데이터로 변환하기 위하여 여러 방법을 사용할 수 있다. 예를 들어, 문자 인코딩(Character encoding), 원-핫 인코딩(One-hot encoding) 등의 방법이 사용될 수 있다.
문자 인코딩은 노드-가중치 시퀀스 내의 노드 'A'를 1로, 'B'를 2로, …, 'Z'를 26으로 인코딩 하는 방법이다. 예를 들어, ['A', 'E', 3.14]는 [1, 5, 3.14]로 표현될 수 있다.
원-핫 인코딩은 노드-가중치 시퀀스 내의 노드 'A'를 0번째 원소만 1이고 나머지는 0으로 이뤄지는 벡터이며, 'B'를 1번째 원소만 1이고 나머지는 0으로 이뤄지는 벡터이며, …, 'Z'를 25번째 원소만 1이고 나머지는 0으로 이뤄지는 벡터로 인코딩하는 방법이다. 예를 들어, ['A', 'C', 3.14]는 [[1, 0, 0, …, 0], [0, 0, 1, …, 0], [3.14]]으로 표현될 수 있다.
3.2 오토인코더 훈련 및 노드-가중치 시퀀스 임베딩
도 5는 오토인코더의 아키텍처를 도시한 도면이다.
도 5에 도시된 바와 같이, 오토인코더(Autoencoder)란 데이터의 숨겨진 구조를 학습하는 비지도 학습 모델로, 출력층(y1, y2, 쪋)과 입력층(x1, x2, 쪋)의 노드 개수가 동일하다. 오토인코더는 인코더와 디코더를 모두 포함하고 있으며 인코더의 입력층으로 입력된 값이 디코더의 출력층으로 출력된 값과 동일하도록 학습되며, 디코더의 입력 값인 인코더의 출력 값을 잠재변수 혹은 특징 값이라고 하며, 잠재변수 혹은 특징 값은 인코더에 입력된 값의 특질을 가지고 있다.
도 6은 LSTM(Long Short-Term Memory) 오토인코더의 아키텍처를 도시한 것이다.
도 6에 도시된 바와 같이, 추출된 노드-가중치 시퀀스 각각을 LSTM 오토인코더로 임베딩한다. 앞 단계에서 각 G1, G2, ..., Gn로부터 노드-가중치 시퀀스들이 얻어지면 이들 모두를 사용하여 도 6과 같은 아키텍처를 가진 LSTM 오토인코더를 훈련시킨다. 다만, 본 발명의 LSTM 오토인코더의 아키텍처는 도 6의 아키텍처에 한정될 것은 아니며, 다른 아키텍처의 오토인코더를 사용할 수 있다.
LSTM 오토인코더는 입력으로 하나의 시퀀스가 들어오면 이를 압축한 뒤 다시 원 시퀀스로 복원하는 구조를 가진 모델로서, 임의의 길이를 가진 시퀀스의 특징을 추출하는데 적합한 모델이다.
도 6에 도시된 바와 같이, 본 발명에서 사용한 LSTM 오토인코더는 각 원소가 [n(i), n(i+1), w(i)]의 3차원 형태인 임의의 길이의 시퀀스를 입력으로 받아 (최상단층, input_1) 이를 128차원 데이터로 만든 뒤(lstm_1) 다시 64차원 데이터로 압축한다(lstm_2). 이후 이를 다시 128차원 데이터로 만든 뒤(lstm_4) 원 시퀀스로 복원(최하단층, time_distributed_1)하는 구조를 가진다.
모든 노드-가중치 시퀀스들을 훈련 데이터로 사용하여 LSTM 오토인코더를 학습시키고 나면, 각 노드-가중치 시퀀스를 학습된 LSTM 오토인코더에 넣어 중간 은닉층에서 생성되는 64차원의 벡터로 해당 노드-가중치 시퀀스를 임베딩한다.
학습된 LSTM 오토인코더에 각 노드-가중치 시퀀스를 입력하여 LSTM 오코인코더의 중간 은닉층에서 생성되는 64차원 벡터로 표현되는 각 노드-가중치 시퀀스의 임베딩 벡터를 결정한다.
LSTM 오토인코더의 학습에 사용된 손실 함수는 평균 제곱 오차(mean squared error, MSE), 평균 제곱 오차와 KL Divergence (KLD)의 조합, 평균 제곱 오차와 범주형 교차 엔트로피(categorical cross entropy, CCE)의 조합 중 하나일 수 있다. KLD와 CCE는 참값과 예측값의 분포까지 고려하여 모델의 웨이트를 조절하는 방법이다.
MSE는 노드-가중치 시퀀스와 모델을 통해 예측한 노드-가중치 시퀀스의 오차의 제곱으로 아래의 수식 1과 같이 표현될 수 있다.
[수식 1]
Figure PCTKR2020012648-appb-img-000001
MSE와 KLD의 조합에서 KLD는 아래와의 수식 2와 같이 표현될 수 있다.
[수식 2]
Figure PCTKR2020012648-appb-img-000002
MSE와 CCE의 조합에서 CCE는 아래와의 수식 3와 같이 표현될 수 있다.
[수식 3]
Figure PCTKR2020012648-appb-img-000003
3.3 최종 임베딩 벡터 생성
LSTM 오토인코더를 통해 모든 노드-가중치 시퀀스들이 고정된 크기의 벡터로 임베딩되고 나면, 이들을 사용하여 각 그래프의 최종 임베딩 벡터를 생성한다.
어떤 가중치 그래프 Gi로부터 추출된 노드-가중치 시퀀스들을 s1, s2, ..., sk라 하고, 이들을 LSTM 오토인코더에 넣어 얻은 임베딩 벡터를 각각 v1, v2, ..., vk라 하자.
마지막 단계는 v1, v2, ..., vk를 사용하여 Gi의 최종 임베딩 벡터를 얻는 단계이다. v1, v2, ..., vk는 Gi의 특징을 나타내는 특징 값들로 볼 수 있으며, 이들을 결합하여 Gi의 최종 임베딩 벡터를 얻는 방법에는 여러 가지가 있을 수 있다.
예를 들어, 최종 임베딩 벡터를 생성하는 방법은 평균(average)을 이용한 최종 임베딩 벡터를 생성하는 방법, 최빈값(mode)을 이용한 최종 임베딩 벡터를 생성하는 방법, 절삭 평균(trimmed mean)을 이용한 최종 임베딩 벡터를 생성하는 방법을 포함할 수 있다.
이하에서 한 그래프에 대한 노드-가중치 시퀀스 임베딩 벡터들이 [1.64, 4.12, 3.1], [1.74, 4.12, 3.45], [1.84, 4.4, 3.65], [1.84, 4.31, 8.42]인 경우 각각의 방법에 따른 최종 임베딩 벡터를 생성하는 구체적인 예를 설명한다.
평균을 이용하는 경우 최종 임베딩 벡터는 1 st = (1.64+1.74+1.84+1.84) / 4 = 1.765, 2 nd = (4.12+4.12+4.4+4.31) / 4 = 4.2375, 3 rd = (3.1+3.45+3.65+8.42) / 4 = 4.655와 같이 계산됨으로써 [1.765, 4.2375, 4.655] 일 수 있다.
최빈값을 이용하는 경우 최종 임베딩 벡터는 1 st = 1.84, 2 nd = 4.12, 3 rd = 4.655와 같이 계산됨으로써 [1.84, 4.12, 4.655] 일 수 있다. 다만, 임베딩 벡터들의 최빈값이 없는 경우에는 임베딩 벡터들의 평균값을 최종 임베딩 벡터로 사용할 수 있다(예. 3 rd = 4.655).
절삭 평균을 이용한 경우 최종 임베딩 벡터는 1 st = (1.74+1.84) / 2 = 1.79, 2 nd = (4.12+4.31) / 2 = 4.215, 3 rd = (3.45+3.65) / 2 = 3.55와 같이 계산됨으로써 [1.79, 4.215, 3.55]일 수 있다.
바람직하게는 본 발명에서는 v1, v2, ..., vk의 값을 모두 가장 잘 표현하면서 이들을 가장 잘 대표할 수 있는 방법으로 v1, v2, ..., vk의 평균 벡터를 Gi의 최종임베딩벡터로 취한다. 즉, Gi의 임베딩 벡터 Vi는
Figure PCTKR2020012648-appb-img-000004
로 정의된다. 이 식을 통해 G1, G2, ..., Gn 각각에 대한 최종 임베딩 벡터 V1, V2, ..., Vn을 모두 구하면 모든 과정이 종료된다.
제안 그래프 임베딩 기법 과정을 정리하면, 1) 모든 그래프로부터 노드-가중치 시퀀스를 추출하고, 2) 추출된 노드-가중치 시퀀스를 훈련 데이터로 사용하여 LSTM 오토인코더를 학습하고, 3) 학습된 LSTM 오토인코더로 각 노드-가중치 시퀀스를 임베딩하고, 4) 각 그래프에 대해 각 그래프에서 추출된 노드-가중치 시퀀스의 임베딩 벡터를 사용하여 최종 임베딩 벡터를 생성한다.
4. 실험 결과
실험예 1
도 7은 그래프의 구조가 다른 3개의 그래프를 도시한 도면이다.
도 7을 참조하여 본 발명에서 제안하는 임베딩 기법의 성능을 실험을 통해 알아본다.
표 1와 같이, 제안 기법이 가중치 그래프가 유사할수록 더 유사한 임베딩 벡터를 생성하는지 알아보기 위해 서로 다른 3개의 대표 그래프 A, B, C를 정의하고 다음 6개의 유사 그래프 그룹을 직접 생성하였다.
그룹번호 설명
1 그래프 A와 모양과 가중치가 모두 유사한 그래프들 (가중치 범위: 0~30)
2 그래프 A와 모양은 유사하지만 가중치가 매우 다른 그래프들 (가중치 범위: 100~150)
3 그래프 B와 모양과 가중치가 모두 유사한 그래프들 (가중치 범위: 0~30)
4 그래프 B와 모양은 유사하지만 가중치가 매우 다른 그래프들 (가중치 범위: 100~150)
5 그래프 C와 모양과 가중치가 모두 유사한 그래프들 (가중치 범위: 0~30)
6 그래프 C와 모양은 유사하지만 가중치가 매우 다른 그래프들 (가중치 범위: 100~150)
각 그룹은 100개의 서로 유사한 그래프로 이루어져 있으며, 그룹 내 각 그래프는 대표 그래프 A, B, C에 노드 삽입, 노드 삭제, 노드 수정, 가중치 수정을 임의로 가하여 생성되었다.
임베딩 기법의 성능은 6개의 그룹으로부터 각각 10개의 그래프를 임의로 추출하고, 나머지 전체 그래프들 중 해당 그래프와 임베딩 벡터 간 거리가 가장 가까운 k개의 그래프를 뽑아 그 중 실제 같은 그룹에 속한 그래프가 몇 %나 되는지를 나타내는 precision at k를 사용하였다. 여기서 임베딩 벡터 간 거리는 코사인(cosine) 거리를 사용하였다.
Precision at k k = 10 k = 20 k = 30 k = 50
Group 1 1.0 1.0 1.0 1.0
Group 2 1.0 1.0 1.0 1.0
Group 3 1.0 1.0 1.0 1.0
Group 4 0.95 0.965 1.0 0.978
Group 5 1.0 1.0 1.0 1.0
Group 6 0.99 0.975 0.91333 0.96
표 2는 k를 10에서 50까지 증가시켜가며 실험한 결과를 나타낸다. 각 그룹에 대해서는 10개 그래프의 precision at k의 평균값을 취하였다.
도 8은 t-SNE를 이용한 제안 임베딩 벡터를 시각화한 그래프이다.
도 8을 참조하면, 6개 그룹 총 600개의 그래프를 제안 방법을 통해 모두 64차원의 벡터로 임베딩한 뒤, 이들을 t-SNE를 통해 2차원으로 차원 축소하여 2차원 공간에서 시각화한 결과이다. 시각화 결과를 살펴보면 6개 그룹으로 이루어진 원 그래프 데이터와 동일하게 임베딩 벡터 역시 6개의 그룹을 명확히 형성하고 있는 것을 확인할 수 있다.
실험예 2
도 7을 참조하여, 본 발명에서 제안하는 임베딩 기법의 성능을 실험을 통해 알아본다.
표 3과 같이, 본 발명의 제안 기법이 가중치 그래프가 유사할수록 더 유사한 임베딩 벡터를 생성하는지 알아보기 위해 서로 다른 3개의 대표 그래프 A, B, C를 정의하고 다음 6개의 유사 그래프 그룹을 직접 생성하였다. 표 3은 표1과 달리 가중치 범위가 매우 다른 그래프들의 가중치 범위가 50-150으로 표 1과 차이점을 가진다.
그룹번호 설명
1 그래프 A와 모양과 가중치가 모두 유사한 그래프들 (가중치 범위: 0~30)
2 그래프 A와 모양은 유사하지만 가중치가 매우 다른 그래프들 (가중치 범위 : 50~150)
3 그래프 B와 모양과 가중치가 모두 유사한 그래프들 (가중치 범위: 0~30)
4 그래프 B와 모양은 유사하지만 가중치가 매우 다른 그래프들 (가중치 범위 : 50~150)
5 그래프 C와 모양과 가중치가 모두 유사한 그래프들 (가중치 범위: 0~30)
6 그래프 C와 모양은 유사하지만 가중치가 매우 다른 그래프들 (가중치 범위 : 50~150)
* 각 그룹 별 100개의 그래프 데이터로 구성
6개의 그룹으로부터 각각 10개의 그래프를 임의로 추출하고, 나머지 전체 그래프들 중 해당 그래프와 임베딩 벡터 간 코사인 거리를 측정하였다. 그리고, precision at k를 이용하여 상위 k개의 그래프에 대해 해당 그래프와 같은 그룹에 속한 그래프가 몇개인지 확인한다. Precision이 높다는 것은 모델이 예측 성능이 좋음을 의미한다. Precision = TP / (TP + FP)으로 표현될 수 있다.
도 9(a)는 문자 인코딩을 적용하고, 노드-가중치 시퀀스로부터 훈련데이터를 생성하기 위하여 MSE, MSE 및 KLD 조합, MSE 및 CCE의 조합 중 하나를 사용한 경우 최종 임베딩 벡터를 결정하기 위해 평균, 절삭 평균, 최빈값을 사용한 precision at k에 대한 그래프를 도시한 것이다. 도 9(b)는 원-핫 인코딩을 적용하고, 노드-가중치 시퀀스로부터 훈련데이터를 생성하기 위하여 MSE, MSE 및 KLD 조합 중 하나를 사용한 경우 최종 임베딩 벡터를 결정하기 위해 평균, 절삭 평균, 최빈값을 사용한 precision at k에 대한 그래프를 도시한 것이다.
도 9(a)에 도시된 바와 같이, 문자 인코딩을 이용하면서 MSE, MSE+KLD, MSE+CCE를 이용하는 모든 경우에 대해 96% 이상의 precision at 값을 보이며, 특히 평균 및 절삭 평균의 경우 98% 이상의 precision at 값을 보인다.
도 9(b)에 도시된 바와 같이, 원-핫 인코딩을 이용하면서 MSE, MSE+KLD를 이용하는 모든 경우에 95% 이상의 precision at 값을 보이며, 특히 평균 및 절삭 평균의 경우 98% 이상의 precision at 값을 보인다.
도 10(a)는 MSE 및 KLD 조합의 경우 '문자 인코딩과 원-핫 인코딩', '평균 및 절삭 평균'의 조합에 따른 precision at k에 대한 그래프를 도시한 것이다. 도 10(b)는 원-핫 인코딩으로 그래프의 노드-가중치 시퀀스를 결정하고, MSE 및 KLD의 조합을 사용하여 노드-가중치 시퀀스로부터 훈련데이터를 결정한 경우에 평균, 절삭 평균, 최빈값 중 하나에 따른 precision at k과 기존에 연구된 graph2vec을 통한 precision at k에 대한 그래프를 도시한 것이다.
도 10(a)에 도시된 바와 같이, MSE 및 KLD를 이용한 손실 함수를 사용하는 경우 인코딩 방법 및 최종 임베딩의 방법에 따른 비교 그래프를 볼 수 있다.
도 10(b)에 도시된 바와 같이, 원-핫 인코딩, MSE 및 KLD의 손실함수에 따른 그래프 임베딩 방식과 graph2vec를 이용한 그래프 임베딩 방식의 precision at k 값을 비교한 그래프를 볼 수 있다.
도 11(a) 및 도 11(b)는 본 발명에서 제안된 임베딩 방법으로 생성한 임베딩 벡터들을 시각화한 그래프이다.
도 11(a)는 추출된 시퀀스를 학습데이터로 생성하는 과정에서 문자 인코딩을 이용하여 생성한 노드-가중치 시퀀스를 데이터로 이용하고, KLD 및 MSE의 조합에 기초한 손실 함수를 이용하여 학습한 모델로 임베딩 벡터를 시각화한 그래프이다.
도 11(b)는 추출된 시퀀스를 학습데이터로 생성하는 과정에서 원-핫 인코딩을 이용하여 생성한 노드-가중치 시퀀스를 데이터로 이용하고, KLD 및 MSE의 조합에 기초한 손실 함수를 이용하여 학습한 모델로 임베딩 벡터를 시각화한 그래프이다.
도 11(a) 및 도 11(b)에 도시된 바와 같이, 각 그래프에 대해 생성된 64차원 임베딩 벡터를 2차원 벡터로 차원 축소(t-SNE)함으로써 6개의 그룹이 분류된 것이 시각적으로 나타나며, 원 그래프 데이터가 6개의 그룹으로 나눠져 있는 것과 동일하게 t-SNE의 그래프에서도 각 그룹의 그래프들이 6개의 지점으로 그룹핑되어 나타나는 것을 볼 수 있다.
5. 결론
본 발명에서는 가중치 그래프를 LSTM 오토인코더를 사용하여 임베딩하는 새로운 기법을 제안하였다. 간선에 존재하는 가중치를 고려하지 않는 기존 연구와 달리 제안 방법은 그래프의 구조뿐만 아니라 가중치까지 고려하여 전체 그래프를 임베딩한다. 이를 위해 제안 방법은 각 그래프 내부에 존재하는 노드-가중치 시퀀스들을 추출하고, 이들을 LSTM 오토인코더를 사용하여 임베딩한 뒤, 이들을 결합하여 각 그래프의 최종 임베딩 벡터를 생성한다. 실험 결과를 통해 제안 방법이 실제로 유사한 가중치 그래프에 대해 더 유사한 임베딩 벡터를 생성함을 확인하였다.
도 12는 본 발명의 일 실시 예에 따른 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치의 제어 방법의 흐름도를 도시한 것이다. 도 13(a) 및 도 13(b)는 일 실시 예에 따른 기계학습 모델을 훈련하는 방법의 흐름도를 도시한 것이다. 도 14(a) 및 도 14(b)는 일 실시 예에 따른 훈련된 기계학습 모델을 이용하는 방법의 흐름도를 도시한 것이다.
이하 설명의 편의를 위하여 '일 실시 예에 따른 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치의 제어 방법'을 '일 실시 예에 따른 제어 방법'이라 줄여 지칭한다.
도 12에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 제어 방법은, 기계학습 모델을 훈련하는 과정(S200), 학습된 기계학습 모델을 이용하여 그래프를 인식하는 과정(S400) 중 적어도 하나를 포함할 수 있다.
기계학습 모델을 훈련시키는 행위는 기계학습 모델을 학습시킨다고도 하며, 이하에서 훈련과 학습의 용어는 서로 병용하여 사용될 수 있다.
이하에서 도 13(a)을 참조하여, 본 발명의 일 실시 예에 따른 기계학습 모델을 훈련하는 방법을 설명한다.
도 13(a)에 도시된 바와 같이, 과정 S200은 데이터를 획득하는 과정(S210), 데이터를 전처리하는 과정(S230), 학습데이터를 선택하는 과정(S250), 모델을 학습하는 과정(S270), 모델을 평가하는 과정(S290) 중 적어도 하나를 포함할 수 있다.
과정 S210은 모델을 학습하기 위한 데이터를 획득하는 과정이다. 데이터는 그래프 데이터를 포함할 수 있으며, 그래프 데이터는 복수의 노드와 복수의 노드들을 서로 연결하는 간선과 간선에 부여된 가중치를 포함하는 가중치 그래프일 수 있다. 가중치 그래프의 예는 도 1 내지 도 2(b)에 도시되어 있다.
과정 S230은 데이터를 모델에 학습시킬 수 있는 형태로 가공하는 전처리 과정이다. 가중치 그래프는 복수의 노드들과 노드들 사이의 간선에 부여된 가중치를 포함할 수 있다. 가중치 그래프 데이터는 복수의 노드들의 값과 노드들 사이의 간선에 부여된 가중치 값을 포함할 수 있다.
하나의 가중치 그래프 데이터로부터 노드 및 노드들 사이의 가중치를 포함하는 노드-가중치 시퀀스를 추출할 수 있다. 노드-가중치 시퀀스는 특정한 하나의 노드를 기준으로 노드-시퀀스 정보를 포함할 수 있다.
도 1를 참조하면, 하나의 가중치 그래프에서 A 노드를 기준으로 노드-시퀀스 정보를 추출할 수 있으며, B 노드를 기준으로 노드-가중치 시퀀스 정보를 추출할 수 있으며, C 노드부터 H 노드까지 반복하여 각 노드의 노드-가중치 시퀀스 정보를 추출할 수 있다. 일 예로, A 노드를 기준으로 하는 노드-가중치 시퀀스는 [[A, B, 3.12], [A, C, 4.96], [A, D, 2.78], …, [D, H, 0.92]]으로 표현될 수 있다.
노드-가중치 시퀀스는 문자 인코딩 혹은 원-핫 인코딩 등의 인코딩 방식을 적용하여 노드의 문자 정보를 컴퓨터가 이해할 수 있는 정보로 변환할 수 있다.
위의 과정을 통해서 하나의 가중치 그래프로부터 각 노드를 기준으로 추출된 복수개의 노드-가중치 시퀀스들이 생성되며, 복수개의 가중치 그래프들로부터 노드-가중치 시퀀스들이 생성된다.
예를 들어, 도 13(b)에 도시된 바와 같이, 제1 가중치 그래프로부터 제1 가중치 그래프를 구성하는 각 노드에 대한 노드-가중치 시퀀스들을 획득하고(S310), 제2 가중치 그래프로부터 제2 가중치 그래프를 구성하는 각 노드에 대한 노드-가중치 시퀀스들을 획득할 수 있다(S330). 이후 다른 가중치 그래프들의 각 노드에 대한 노드-가중치 시퀀스를 획득할 수 있다.
과정 S250은 모델에 학습시킬 학습 데이터를 선택하는 과정이다. 복수개의 가중치 그래프들은 모두 학습 데이터로 사용되지 않고, 대략 70% 정도의 복수개의 가중치 그래프들만이 학습 데이터로 사용된다.
과정 S270은 모델을 학습시키는 과정이다. 도 5 및 도 6을 참조하면, 가중치 그래프의 각 노드에 대한 노드-가중치 시퀀스들을 사용하여 오토인코더를 훈련시킨다. 학습 데이터로 선정된 복수의 가중치 그래프들을 모두 오토인코더에 훈련시킨다.
오토인코더란 인코더의 입력 값과 동일한 값이 디코더를 통해서 출력되도록 학습시키는 비지도 학습 모델의 하나로, 학습된 오토인코더에 노드-가중치 시퀀스를 입력하면 인코더를 통해서 출력된 잠재 변수는 입력된 노드-가중치 시퀀스의 특징을 반영한 값이 된다. 인코더를 통해서 출력된 잠재 변수는 각 노드-가중치 시퀀스의 임베딩 벡터라고 정의한다.
오토인코더 모델을 학습시키기 위하여 사용되는 손실함수는 MSE, KLD, CCE 중 하나 또는 적어도 2개의 조합일 수 있다. 본 발명의 오토인코더는 LSTM 오토인코더의 아키텍처를 가질 수 있으나, 본 발명의 오토인코더는 다른 아키텍처를 가질 수도 있다.
예를 들면, 도 13(b)에 도시된 바와 같이, 제1 가중치 그래프를 구성하는 각 노드에 대한 노드-가중치 시퀀스들을 오토인코더 모델에 학습시키고, 제2 가중치 그래프를 구성하는 각 노드에 대한 노드-가중치 시퀀스들을 오토인코더 모델에 학습시킬 수 있다(S350). 이후 다른 가중치 그래프에 대한 각 노드의 노드-가중치 시퀀스들을 오토인코더 모델에 학습시킬 수 있다. 오코인코더 모델에 학습시키는 노드-가중치 시퀀스들의 수가 크면 클수록 모델은 가중치 그래프들의 유사 여부를 잘 판단할 수 있다.
과정 S290은 모델을 평가하는 과정이다. 훈련된 LSTM 오토인코더 모델이 잘 작동하는지 확인하기 위한 과정이다.
표 1과 같이 유사한 모양의 그래프를 가지고, 가중치 범위가 작은 그룹과 가중치 범위가 큰 그룹으로 나뉜 평가 데이터를 생성할 수 있다. 위와 같은 그룹들을 통하여 그래프의 모양이 다른 경우 훈련된 LSTM 오토인코더 모델이 잘 작동하는지 확인할 수 있다. 나아가, 그래프의 모양이 같더라도 가중치의 범위가 다른 경우 훈련된 LSTM 오토인코더 모델이 잘 작동하는지 확인할 수 있다.
LSTM 오토인코더 모델이 잘 작동한다면, 동일 그룹에 속하는 가중치 그래프의 최종 임베딩 벡터들 간의 거리는 해당 그룹 및 다른 그룹에 속하는 가중치 그래프의 최종 임베딩 벡터들 간이 거리 보다 짧게 나올 것이다. 도 8 내지 도 11(b)에 도시된 바와 같이, LSTM 오토인코더 모델이 잘 작동함을 확인할 수 있다.
이하에서 도 14(a)를 참조하여, 본 발명의 일 실시 예에 따른 기계학습 모델을 사용하는 방법을 설명한다.
기계학습 모델을 사용하는 방법이란 학습된 모델을 사용하여 모델에 입력된 데이터를 분석, 분류 등을 수행하여, 입력된 데이터들 사이의 유사 여부 등을 인식하여 사용자에게 제공하는 것을 의미한다.
도 14(a)에 도시된 바와 같이, 과정 S400은 데이터를 획득하는 과정(410), 데이터를 전처리하는 과정(S430), 인식 데이터를 선택하는 과정(S450), 인식 결과를 제공하는 과정(S470), 모델을 갱신하는 과정(S490) 중 적어도 하나를 포함할 수 있다.
과정 S410 및 과정 S430은 각각 과정 S210 및 S430과 동일하므로 자세한 설명은 생략한다. 도 14(b)에 도시된 바와 같이, 제1 가중치 그래프로부터 제1 가중치 그래프를 구성하는 각 노드에 대한 노드-가중치 시퀀스들을 획득하고(S510), 제2 가중치 그래프로부터 제2 가중치 그래프를 구성하는 각 노드에 대한 노드-가중치 시퀀스들을 획득할 수 있다(S530). 이후 다른 가중치 그래프들의 각 노드에 대한 노드-가중치 시퀀스를 획득할 수 있다.
과정 S450은 인식 데이터를 선택하는 과정이다. 복수개의 가중치 그래프들은 모두 인식 데이터로 사용될 수 있으며, 또는 학습 데이터에 사용되지 않은 복수개의 가중치 그래프들만이 인식 데이터로 사용될 수 있다.
과정 S470은 인식 결과를 제공하는 과정이다. 훈련된 모델을 이용하여 적어도 2개의 가중치 그래프들의 유사 여부에 대한 인식 결과를 제공할 수 있다.
훈련된 모델에 인식 데이터를 입력하여 인식 데이터의 특징을 추출할 수 있다. 구체적으로 가중치 그래프들을 분류하거나 가중치 그래프들의 유사 여부를 판단하기 위하여 각각의 가중치 그래프들 훈련된 LSTM 오토인코더 모델에 입력한다.
하나의 가중치 그래프에 대한 각각의 노드의 노드-가중치 시퀀스를 훈련된 LSTM 오토인코더 모델에 입력하여 각각의 노드에 대한 임베딩 벡터를 추출한다. 이를 통해서, 하나의 가중치 그래프에 대한 각각의 노드에 대한 임베딩 벡터를 추출한다.
이후 하나의 가중치 그래프에 대한 각각의 노드에 대한 임베딩 벡터들에 기초하여 최종 임베딩 벡터를 결정한다. 하나의 가중치 그래프에 대한 최종 임베딩 벡터를 결정하는 방법은 각 노들에 대한 임베딩 벡터들에 대해 평균, 최빈값, 절삭 평균 중 하나를 이용할 수 있다.
이후 동일한 과정을 반복하여 다른 가중치 그래프들에 대한 각각의 최종 임베딩 벡터를 결정한다.
예를 들어, 도 14(b)에 도시된 바와 같이, 제1 가중치 그래프로부터 각 노드에 대한 임베딩 벡터 및 제1 가중치 그래프의 최종 임베딩 벡터를 획득하고(S550), 제2 가중치 그래프로부터 각 노드에 대한 임베딩 벡터 및 제2 가중치 그래프의 최종 임베딩 벡터를 획득한다(S570). 다른 가중치 그래프에 대해서도 각 노드에 대한 임베딩 벡터 및 최종 임베딩 벡터를 획득할 수 있다.
가중치 그래프에 대한 최종 임베딩 벡터들 사이 거리를 이용하여 가중치 그래프들 간 유사 여부를 결정한다. 예를 들어 제1 및 제2 가중치 그래프의 최종 임베딩 벡터들 사이의 거리가 제1 및 제3 가중치 그래프의 최종 임베딩 벡터들 사이의 거리보다 가깝다면, 제3 가중치 그래프 보다 제2 가중치 그래프가 제1 가중치 그래프에 더 유사한 것으로 판단할 수 있다.
예를 들어, 도 14(b)에 도시된 바와 같이, 제1 및 제2 가중치 그래프의 최종 임베딩 벡터들을 이용하여 제1 및 제2 가중치 그래프들의 유사 여부를 판단할 수 있다. 최종 임베딩 벡터는 노드들의 정보 뿐만 아니라 노드 사이의 가중치 정보를 포함하고 있으므로, 가중치 그래프들의 유사 여부에 대한 판단을 할 수 있다.
과정 S490은 모델을 갱신하는 과정이다. 인식 데이터로 사용된 가중치 그래프들을 이용하여 학습된 LSTM 오토인코더를 재 학습시켜서 LSTM 오토인코더를 갱신할 수 있다.
도 15(a)는 일부 실시예에 따른 데이터 학습부(1310)의 블록도이다. 도 15(b)는 일부 실시예에 따른 데이터 인식부(1320)의 블록도이다.
도 15(a)를 참조하면, 일부 실시예에 따른 데이터 학습부(1310)는 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나를 포함할 수 있다. 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5)은 도 13(a)의 과정 S210, S230, S250, S270, S290을 각각 수행할 수 있다.
도 15(b)를 참조하면, 일부 실시예에 따른 데이터 인식부(1320)는 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나를 포함할 수 있다. 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5)는 도 14의 과정 S410, S430, S450, S470, S490을 각각 수행할 수 있다.
데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
한편, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 16는 일부 실시예에 따른 하나의 전자 장치에서 학습 및 인식하는 예를 나타낸 도면이다.
도 16을 참조하면, 데이터 학습부(1310) 및 데이터 인식부(1320)는 하나의 전자 장치에 탑재될 수도 있다. 일부 실시예에 따른 프로세서(1300)는 데이터 학습부(1310) 및 데이터 인식부(1320)를 포함할 수 있다.
도 17은 일부 실시예에 따른 2개의 전자 장치에서 학습 및 인식하는 예를 나타낸 도면이다.
데이터 학습부(1310) 및 데이터 인식부(1320)는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 하나는 디바이스(2000)의 프로세서에 의해서 수행되고, 나머지 하나는 서버(3000)의 프로세서에 의해서 수행될 수 있다.
또한, 데이터 학습부(1310) 및 데이터 인식부(1320)는 유선 또는 무선으로 통하여, 데이터 학습부(1310)가 구축한 모델 정보를 데이터 인식부(1320)로 제공할 수도 있고, 데이터 인식부(1320)로 입력된 데이터가 추가 학습 데이터로서 데이터 학습부(1310)로 제공될 수도 있다.
이 경우, 서버(3000)의 데이터 학습부(3310)는 전술한 데이터 학습부(1310)의 기능을 수행할 수 있다. 서버(3000)의 데이터 학습부(3310)의 각 구성요소들은 전술한 데이터 학습부(1310)의 각 구성요소들의 기능을 수행할 수 있다. 또한, 디바이스(2000)의 데이터 인식부(2320)는 전술한 데이터 인식부(1320)의 기능을 수행할 수 있다. 디바이스(2000)의 데이터 인식부(2320)의 각 구성요소들은 전술한 데이터 인식부(1320)의 각 구성요소들의 기능을 수행할 수 있다.
도 18 및 도 19는 일 실시예에 따른 전자장치(1000)의 블록도를 도시한 것이다.
상술한 디바이스(2000) 및 서버(3000)는 후술할 전자장치(1000)의 일 예로서 전자장치(1000)의 구성요소 중 적어도 일부를 포함할 수 있다.
일 실시예에 따른 전자 장치(1000)는, 단말기, 디바이스, 전자기기, 서버, 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 컴퓨팅 장치 중 하나일 수 있다. 또한, 전자 장치는 디스플레이 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다. 그러나, 이에 한정되지 않으며, 전자 장치(1000)는 데이터를 처리하고, 처리된 데이터를 제공할 수 있는 모든 종류의 기기를 포함할 수 있다.
도 18에 도시된 바와 같이, 일 실시 예에 따른 전자 장치(1000)는 메모리(1100), 출력부(1200), 통신부(1500) 및 프로세서(1300)를 포함할 수 있다. 그러나, 도시된 구성 요소 모두가 전자 장치(1000)의 필수 구성 요소인 것은 아니며, 보다 많은 구성 요소에 의해 전자 장치(1000)가 구현될 수도 있고, 보다 적은 구성 요소에 의해 전자 장치(1000)가 구현될 수도 있다.
예를 들어, 도 19에 도시된 바와 같이, 일 실시 예에 따른 전자 장치(1000)는, 메모리(1100), 출력부(1200), 프로세서(1300), 센싱부(1400), 통신부(1500), A/V 입력부(1600) 및 사용자 입력부(1700)를 포함할 수도 있다.
*메모리(1100)
메모리(1100)는, 프로세서(1300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 전자 장치(1000)로 입력되는 정보 또는 전자 장치(1000)로부터 출력되는 정보를 저장할 수도 있다.
메모리(1100)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(1100)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(1110), 터치 스크린 모듈(1120), 알림 모듈(1130) 등으로 분류될 수 있다.
UI 모듈(1110)은, 애플리케이션 별로 전자 장치(1000)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다.
터치 스크린 모듈(1120)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 프로세서(1300)로 전달할 수 있다. 일 실시예에 따른 터치 스크린 모듈(1120)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(1120)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.
알림 모듈(1130)은 전자 장치(1000)의 이벤트 발생을 알리기 위한 신호를 발생할 수 있다. 전자 장치(1000)에서 발생되는 이벤트의 예로는 호 신호 수신, 메시지 수신, 키 신호 입력, 일정 알림 등이 있다. 알림 모듈(1130)은 디스플레이부(1210)를 통해 비디오 신호 형태로 알림 신호를 출력할 수도 있고, 음향 출력부(1220)를 통해 오디오 신호 형태로 알림 신호를 출력할 수도 있고, 진동 모터(1230)를 통해 진동 신호 형태로 알림 신호를 출력할 수도 있다. 예를 들어, 알림 모듈(1130)은 추정된 차선 정보에 기초하여 가이드 정보를 출력하기 위한 신호를 발생할 수 있다.
*출력부(1200)
출력부(1200)는, 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(1200)는 디스플레이부(1210), 음향 출력부(1220), 및 진동 모터(1230)를 포함할 수 있다.
디스플레이부(1210)는 전자 장치(1000)에서 처리되는 정보를 표시 출력한다. 구체적으로, 디스플레이부(1210)는 카메라(1610)에서 촬영된 이미지를 출력할 수 있다. 디스플레이부(1210)는, 사용자의 입력에 대한 응답으로, 응답에 관련된 동작을 실행하기 위한 사용자 인터페이스를 디스플레이할 수 있다.
음향 출력부(1220)는 통신부(1500)로부터 수신되거나 메모리(1100)에 저장된 오디오 데이터를 출력한다. 또한, 음향 출력부(1220)는 전자 장치(1000)에서 수행되는 기능(예를 들어, 호신호 수신음, 메시지 수신음, 알림음)과 관련된 음향 신호를 출력한다.
*프로세서(1300)
프로세서(1300)는, 통상적으로 전자 장치(1000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(1300)는, 메모리(1100)에 저장된 프로그램들을 실행함으로써, 사용자 입력부(1700), 출력부(1200), 센싱부(1400), 통신부(1500), A/V 입력부(1700) 등을 전반적으로 제어할 수 있다.
*센싱부(1400)
센싱부(1400)는, 전자 장치(1000)의 상태 또는 전자 장치(1000) 주변의 상태를 감지하고, 감지된 정보를 프로세서(1300)로 전달할 수 있다.
센싱부(1400)는, 지자기 센서(Magnetic sensor)(1410), 가속도 센서(Acceleration sensor)(1420), 온/습도 센서(1430), 적외선 센서(1440), 자이로스코프 센서(1450), 위치 센서(예컨대, GPS)(1460), 기압 센서(1470), 근접 센서(1480), 및 RGB 센서(RGB sensor)(1490) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
*통신부(1500)
통신부(1500)는, 전자 장치(1000)가 다른 장치(미도시) 및 서버(미도시)와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 다른 장치(미도시)는 전자 장치(1000)와 같은 컴퓨팅 장치이거나, 센싱 장치일 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 통신부(1500)는, 근거리 통신부(1510), 이동 통신부(1520), 방송 수신부(1530)를 포함할 수 있다.
근거리 통신부(short-range wireless communication unit)(1510)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
이동 통신부(1520)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
방송 수신부(1530)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 전자 장치(1000)가 방송 수신부(1530)를 포함하지 않을 수도 있다.
*A/V(Audio/Video) 입력부(1600)*
A/V(Audio/Video) 입력부(1600)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(1610)와 마이크로폰(1620) 등이 포함될 수 있다.
카메라(1610)는 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡처된 이미지는 프로세서(1300) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다.
마이크로폰(1620)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 마이크로폰(1620)은 외부 디바이스 또는 사용자로부터 음향 신호를 수신할 수 있다. 마이크로폰(1620)은 사용자의 음성 입력을 수신할 수 있다. 마이크로폰(1620)은 외부의 음향 신호를 입력 받는 과정에서 발생되는 잡음(noise)을 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다.
*사용자 입력부(1700)
사용자 입력부(1700)는, 사용자가 전자 장치(1000)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(1700)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
[[[
이하에서 첨부된 도면을 참고하여, 본 발명의 일 실시예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법의 기계학습 모델(방법)에 대해서 설명한다.
트리 타입의 항목 분류 체계를 가지는 항목들에 대한 항목들의 시퀀스 데이터는 순서를 가지는 항목들의 집합을 의미한다. 이에 대한 구체적인 예로, 트리 타입의 상품 분류 체계를 가지는 상품들에 대하여 상품 구매 이력은 구매한 순서에 따른 상품들이 나열된 시퀀스 데이터이다. 이하의 상품의 구매이력에 대한 설명은 순서를 가지는 항목들에 대한 시퀀스 데이터에도 그대로 적용될 수 있다.
1. 서 론
빅데이터 시대에 도래함에 따라 고객들은 자체적으로 엄청난 양의 새로운 디지털 데이터를 생성한다. 이렇게 생성된 데이터는 고객의 특성 자체가 되며 더 나아가 고객을 데이터로 표현할 수 있다. 구매 이력 데이터는 고객이 생성하는 대표적인 데이터 중 하나이다. 구매 이력 데이터에는 물건을 구매하는 사람의 특성과 이에 따라 소비되는 제품, 소비 패턴 등이 담겨있다. 따라서 기업은 주어진 고객의 데이터를 분석하는 능력이 필요하며, 분석된 결과를 바탕으로 의사 결정시 반영할 수 있다.
본 발명에서는 시간에 따른 고객들의 구매 항목들로 구성된 구매이력 데이터에서 임의의 두 고객의 구매이력이 얼마나 유사한지 계산하는 새로운 유사도 방법을 제안한다. 본 발명에서 제안한 유사도 측정방법은 구매이력 데이터와 같이 항목간의 순서가 존재하는 데이터 간의 유사도를 측정하는 기존의 유사도 방식을 항목 간의 계층관계까지 반영하도록 확장하였다.
구매이력 데이터는 구매 항목들 간의 순서가 담긴 데이터로 대표적인 시퀀스(sequence) 데이터 중 하나이다. 시퀀스란 데이터들의 항목들 간에 순서가 존재하는 데이터를 의미하며, 2개의 시퀀스들이 동일한 구성들로 이뤄졌다고 해도 순서가 다르다면 2개의 시퀀스들은 서로 다른 시퀀스이다. 시퀀스의 예는 구매이력 데이터 뿐만 아니라 웹 로그, 단백질 시퀀스 등이 있을 수 있다.
본 발명에서 제안하는 유사도 측정 방법은 기존의 구매이력 데이터 분석 방법들과 달리 시퀀스 내 항목간의 순서를 고려하여 유사도를 계산할 뿐만 아니라, 상품 분류 체계를 활용하여 구매한 상품 간의 서로 다른 유사도를 고려한다.
현재 기존 방법들만을 활용하여 구매이력 시퀀스 간의 유사도 측정하는 경우 시퀀스를 구성하는 상품의 일치 유무만이 유사도 판단 기준이 된다. 시퀀스 1은 구매이력 시퀀스의 예이다.
[시퀀스 1]
Figure PCTKR2020012648-appb-img-000005
이는 가령 구매이력 시퀀스가 시퀀스 1과 같은 경우, 기존의 유사도 측정 방법은 시퀀스 S 1 , S 2 의 유사도와 S 1 , S 3 의 유사도를 동일하게 계산한다. 시퀀스 1의 시퀀스들은 모두 두 번째 구매 상품이 동일하기 때문에 각 시퀀스의 첫 번째 구매 상품만이 시퀀스 간 유사도에 영향을 미친다.
기존 방법들은 오직 상품의 일치 유무만을 판단하기 때문에 S 1 의 'Coke'와 S 2 의 'Sprite'를 비교하는 경우와 S 1 의 'Coke'와 S 3 의 'Jeans'를 비교하는 경우 같은 유사도 부여한다.
하지만 실제로 'Sprite'는 'Jeans' 보다 상대적으로 'Coke'와 음료라는 동일 범주에 속하며, 이를 고려하여 'Coke'와 'Sprite' 비교 시 'Jeans' 보다 더 높은 유사도를 부여할 필요가 있다. 따라서 본 발명에서는 구매이력 시퀀스 간의 유사도 계산 시 상품 분류 체계를 고려하도록 기존의 시퀀스 유사도 측정 방법을 확장하여 더 정확히 두 구매이력 간의 유사도를 계산한다.
또한 본 발명에서는 항목들의 순서를 고려하여 유사도를 계산하기 때문에 유사도 계산 성능에 영향을 미치는 시퀀스 간 유사도 측정 방법을 선택하기 위하여 대표적인 시퀀스 유사도 측정 방법인 레벤슈타인(Levenshtein) 거리, 동적 타임 워핑(DTW: Dynamic Time Warping) 거리, 니들만-브니쉬(Needleman-Wunsch) 유사도의 성능을 비교하였다.
가상의 시퀀스 데이터를 사용한 실험을 통해, 본 발명에서는 상품 분류 체계를 고려할 뿐만 아니라 서로 다른 길이를 가지는 두 시퀀스에 대해서도 정확히 유사도를 측정하는 동적 타임 워핑 거리가 가장 적합한 유사도 측정 방법임을 확인하였다.
본 발명의 명세서의 구성은 다음과 같다. 제2장에서는 본 발명에서 사용한 시퀀스 유사도 측정 방법들에 대하여 살펴본다. 제3장에서는 본 발명에서 제안한 유사도 측정 방법에 대하여 자세히 설명한다. 제4장에서는 제안 방법과 기존 방법과의 성능 평가 결과를 보이며, 제5장에서는 결론을 맺는다.
2. 관련 연구
2.1 구매이력 데이터 분석
고객의 소비활동이 담긴 대규모의 구매이력 데이터에는 고객의 소비패턴이 담겨 있다. 이렇게 고객의 구매내역에서 빈번하게 발생한 구매 패턴을 찾아 나가는 과정을 연관성 분석이라고 한다. 연관성 분석은 각 상품을 독립적인 개체로 판단하여 규칙을 생성하며, 여기서 장바구니 분석은 항목간의 계층 관계까지 고려하는 분석이다. 이와 다르게 순차 패턴 분석은 구매 내역의 선후관계까지 고려하여 규칙을 생성한다. 세 가지 분석 모두 지지도(support), 신뢰도(confidence), 향상도(lift)라는 평가 기준을 활용하여 항목 간의 규칙을 생성한다.
고객들의 구매이력 데이터를 활용한 대표적인 사례로는 미국의 월마트(Wal-Mart)가 있다. 월마트는 매출에 직접적인 영향을 미치는 고객의 장바구니에 관심을 가진 최초의 업체로 방대한 양의 데이터를 분석하여 맥주와 기저귀의 관계를 밝혀냈다. 매출을 늘리기 위해 다양한 마케팅 활동을 전개하는 기업의 입장에서는 이러한 데이터를 활용하여 실질적인 제품 간의 관계를 파악하여 마케팅 전략으로 활용할 수 있다.
2.2 시퀀스 유사도 측정 방법
시퀀스(sequence)란 두 개 이상의 항목들로 구성된 데이터로 이 항목들 간에 순서가 담긴 데이터를 말한다. 대표적인 시퀀스 데이터로는 웹 로그 데이터, 단백질 시퀀스 데이터가 있다. 시퀀스 데이터를 분석하여 웹 로그 파일에서 비슷한 사용자들을 그룹화하거나 비슷한 구조를 가지는 단백질 시퀀스들을 그룹화 하여 비슷한 기능을 갖는 단백질 시퀀스를 발견할 수 있다. 항목간의 선후 관계가 존재하는 시퀀스 데이터에서 순서를 고려하여 유사도를 정의하는 것이 중요하며, 유사도를 계산하는 방법에 따라 다음과 같이 나눌 수 있다.
1) 편집 기반(edit-based) 유사도 측정 방법
두 개의 문자열이 같아지기 위한 최소 수정 연산 횟수를 구하는 알고리즘이다. 수정 연산은 추가(add), 대체(substitute), 삭제(delete) 연산을 말하며 가장 대표적인 알고리즘은 레벤슈타인(Levenshtein) 거리 알고리즘이 있다. 수정 연산 횟수가 유사도 판단 척도로 사용되며 그 값이 작을수록 두 문자열이 유사하다고 판단한다.
2) 정렬(alignment) 유사도 측정 방법
주로 단백질 서열이나 핵산 서열 사이의 상관관계 분석 시 두 서열 간의 유사한 구역을 찾아낼 때 사용한다. 정렬 범위에 따라 국소(local) 정렬 방법과 전역(global) 정렬 방법이 있으며, 대표적인 국소 정렬 알고리즘으로는 스미스-워터맨(Smith-Waterman) 알고리즘이 있고 전역 정렬 알고리즘으로 니들만-브니쉬(Needleman-Wunsch) 알고리즘이 있다. 두 알고리즘은 정렬 범위에 따라 두 시퀀스가 가장 유사하도록 공백(gap)을 사용하여 정렬한다.
3) 집합 기반(set-based) 유사도 측정 방법
문자열을 문자의 집합 혹은 토큰(token)의 집합 형태로 바꾸어 계산한다. 집합 관계를 이용하여 연산하며 문자열을 토큰으로 나누는 경우에는 N-gram 개념을 사용하여 문자열을 길이가 N개의 기준 단위로 절단하여 사용한다. 대표적인 알고리즘으로는 자카드(Jaccard) 유사도가 있다. 자카드 유사도는 집합을 구성하는 원소들 간의 합집합과 교집합 간의 비율을 나타내며 0에서 1 사이의 값을 가진다.
2.3 구매이력 시퀀스 유사도 측정 방법
본 절에서는 본 발명에서 제안하는 시퀀스 유사도 측정 시 성능 비교를 위해 사용하는 레벤슈타인 거리, 동적 타임 워핑 유사도, 니들만-브니쉬 유사도에 대하여 상세히 설명한다.
1) 레벤슈타인(Levenshtein) 거리
편집 거리 알고리즘으로도 알려져 있는 레벤슈타인 거리는 하나의 문자열을 다른 문자열로 변환하기 위해 필요한 연산의 최소 횟수를 의미한다. 두 문자열 간의 수정 연산은 추가(insert), 대체(substitute), 삭제(delete) 연산을 말한다. 비교하고자 하는 두 문자열의 문자를 한자씩 비교하며 추가와 삭제 시 연산 비용은 1을 부여하고 대체 연산은 문자의 일치 유무에 따라 0 또는 1을 부여하여 유사도를 계산한다.
2) 동적 타임 워핑(DTW) 거리
속도가 다른 두 개의 시계열 패턴의 유사성을 측정하는 알고리즘으로 음성인식, 필기체 문자인식 등에 사용된다. 두 시계열 간의 거리를 최소화하는 방향으로 움직이면서 거리를 계산하기 때문에 유클리디안(Euclidean) 거리로 계산할 때와 달리 부분적으로 왜곡되거나 변형된 파형에 대해서도 계산할 수 있다.
도 20은 유클리디안 거리와 DTW 거리의 비교를 도시한 것 이다.
예를 들어, 두 개의 시계열 그래프 A와 B가 각각 A=a 1, a 2, a 3,..., a i, B=b 1, b 2, b 3,..., b j, 벡터로 표현된다고 하자. 도 20은 두 시계열 그래프 A, B에 대하여 유클리디안(Euclidean) 유사도로 계산한 경우와 동적 타임 워핑 유사도로 계산한 경우이다. 동적 타임 워핑 유사도로 계산한 경우는 유클리디안 유사도와 다르게 시계열 그래프의 한 점에서 다른 시계열 그래프의 하나 혹은 그 이상의 점에 대응하여 계산 할 수 있다. 이러한 특성으로 인해 서로 다른 길이의 시퀀스에 대해서도 효과적으로 유사도를 계산할 수 있다.
3) 니들만-브니쉬(Needleman-Wunsch) 유사도
생물정보학(bioinformatics) 분야에서 단백질이나 뉴클레오타이드 (nucleotide)의 시퀀스 간의 서열 비교를 위한 알고리즘으로, 두 시퀀스가 가장 유사도가 높도록 공백(gap)을 사용하여 두 시퀀스를 정렬한다. 공백 패널티(gap penalty), 일치(match), 불일치(mismatch) 값은 사용자 지정 값으로 값에 따라 시퀀스 간의 정렬 결과가 달라진다. 레벤슈타인 거리와 같이 두 시퀀스에 대한 삽입, 삭제, 일치 연산 비용을 활용하여 두 시퀀스 간의 유사도를 계산한다.
본 발명에서는 상기 3개의 유사도 측정 방법을 사용하여 유사도를 측정하였다. 이들은 모두 두 시퀀스 간의 항목을 하나씩 비교 가능하며 시퀀스를 집합 원소로 나누는 등의 별도 연산은 필요하지 않다. 하지만 기존 방법만을 사용하여 구매이력 시퀀스를 비교하는 경우, 상품 일치 유무만을 판단하여 0 또는 1의 값만을 부여하여 유사도를 계산하기 때문에 본 발명에서는 상품간의 계층관계를 고려하도록 이를 확장하였다.
본 발명의 제안 방법은 상품 분류 트리를 활용하여 상품 간의 유사도를 0에서 1사이의 값으로 부여하여 유사도 계산 시 각 상품 간의 연관 정도를 보다 세분화한다. 따라서 본 발명에서는 구매이력 시퀀스 간의 유사도 계산 시 상품 분류 체계를 반영하기 위하여 이들의 수행 과정 중 일부분을 변형하여 사용하였으며, 제4.2절에서는 이들에 대한 성능 평가 결과를 보인다.
3. 상품 분류 체계를 고려한 시퀀스 유사도 측정
본 장에서는 본 발명에서 제안하는 상품 분류 체계를 활용하여 구매이력 데이터에서 두 시퀀스 간의 유사도를 계산하는 제안 방법에 대해 자세히 설명한다.
3.1 개요
본 발명에서 제안하는 시퀀스 간의 유사도 측정 방법은 구매이력 데이터에서 주어진 상품 분류 체계를 활용하여 두 시퀀스 간의 유사도를 측정한다. 구매이력 데이터에서 하나의 구매이력은 고객 한 명이 순차적으로 구매한 항목들이 나열된 시퀀스 데이터이다. 이러한 임의의 두 시퀀스 데이터가 주어졌을 때, 본 발명에서 제안한 유사도 측정방법은 항목간의 순서를 고려하여 유사도를 측정한다. 또한 주어진 상품 분류 체계를 활용하여 상품 간의 분류 체계도 고려하여 유사도를 계산한다는 점에서 기존의 시퀀스 유사도 측정 방법과는 차이가 있다.
본 발명에서 제안하는 구매이력 시퀀스 간의 유사도 측정 방법은 대표적인 시퀀스 유사도 측정 방법인 레벤슈타인 거리, 동적 타임 워핑 거리, 니들만-브니쉬 유사도를 사용하여 시퀀스 내 항목 간의 유사도를 계산한다. 유사도 계산 시 상품 분류 체계를 반영하기 위해 비교하고자 하는 두 항목의 간의 연관성을 세분화하도록 수행 과정 중 일부분을 변용하였다.
3.2 문제 정의
본 절에서는 본 발명에서 시퀀스 유사도 계산 시 사용하는 상품 분류 트리의 개념과 본 발명에서 정의한 유사한 구매이력에 대하여 설명한다.
1) 상품 분류 트리
도 21(a)는 본 발명에서 사용한 상품 분류 트리 중 일부를 도시한 것이다. 도 21(b)는 본 발명에서 사용한 상품 분류 트리의 longestPath 및 itemPath의 일 예를 도시한 것이다.
도 21(a)를 참조하면, 일반적으로 백화점, 마트와 같은 유통 업체는 모든 상품에 대하여 대분류/ 중분류/ 소분류와 같이 계층이 나누어진 상품 분류 체계를 가진다. 예를 들어 '바지'라는 상품은 먼저 소분류인 '하의'에 속하며, 여기서 하의는 다시 중분류인 '의류'에 속하게 된다. 이렇게 모든 상품은 상품 분류 체계의 가장 하위 부분을 차지한다. 본 발명에서는 이러한 상품 분류 체계를 트리(tree) 자료구조로 표현하였다.
본 발명에서 사용한 상품 분류 트리의 체계는 미국 전자 상업 회사인 아마존(Amazon)의 분류 체계를 참고하여 구성하였다. 트리의 각 노드(node)에는 실제 상품이나 상품의 상위 범주명이 저장된다.
도 21(a)의 상품 분류 트리에서 트리의 단말 노드(leaf node)는 상품에 해당하며(예. a, b, c, d, e, f, g, h, i, j, k), 내부 노드(internal node)는 각 상품에 대한 상위 범주이다(예. C1, C2, C3, C4, C5, C6, C7, C8). 또한, 상품 분류 트리에서 최상단 노드는 Root로 표현된다.
이 상품 분류 트리는 구매이력 시퀀스 간의 유사도 비교 시 사용된다. 상품 분류 트리를 사용하여 시퀀스 내 항목들은 알고리즘 수행 과정 중 상품 분류 트리 내에서 서로 다른 연관정도에 따라 수치화되어 계산 시 반영된다.
구매이력 데이터에서 시퀀스 내 모든 항목은 상품 분류 트리의 단말 노드(leaf node)에 해당하며, 단말 노드는 상품에 해당한다.
본 발명에서 제안한 구매이력 시퀀스 간의 유사도 측정 방법은 도2 와 같은 상품 분류 체계를 사용하여 항목 간의 유사한 정도를 계산한다. 따라서 두 상품이 일치하지 않더라도 상품 분류 트리 내에서 두 상품 간의 가까운 정도를 반영하여 계산하기 때문에 상품간의 유사한 정도를 세분화 하여 계산 할 수 있다.
2) 유사 구매이력 정의
본 발명에서 계산하는 구매이력 데이터는 각 고객들이 구매한 항목들이 순서대로 나열된 시퀀스 데이터이다. 구매이력 데이터에서 각 시퀀스는 고객 한명에 대한 구매이력을 나타내며, n개의 구매 항목으로 이루어진 시퀀스 S를 S = <x 1 x 2 ...x n-1 x n> 라 하자. x i는 시퀀스 S 의 i번째 구매 항목을 나타내며, 이 시퀀스는 상품 x 1부터 x n까지 순서대로 구매한 이력 데이터를 나타낸다. |S|는 시퀀스의 크기 또는 시퀀스 내 구매된 항목의 개수를 나타낸다.
본 발명에서 제안하는 시퀀스 간의 유사도 측정방법은 두 시퀀스의 세부 항목들이 다르더라도 항목들의 상위 범주가 같은 경우 유사하다고 판단한다.
시퀀스 2는 본 발명에서 정의한 유사한 구매이력 대한 예이다.
[시퀀스 2]
Figure PCTKR2020012648-appb-img-000006
시퀀스 2에서 두 시퀀스 S 1, S 2는 두 고객에 대한 구매이력 데이터로, S 1과 S 2 는 모두 서로 다른 구매항목으로 구성되어 있다. 하지만 두 시퀀스의 세부 항목들은 매우 연관성이 높으며, 유사한 구매 순서를 보인다. 시퀀스 내 각 항목을 상위 범주로 바꿀 경우, 두 시퀀스 모두 음료, 간식, 의류 범주에 속한 상품 순으로 구성된 구매 이력인 것을 볼 수 있다. 이처럼 두 상품이 완전히 동일하지 않더라도 동일한 상위 범주에 속한다면 그렇지 않은 경우보다 더 높은 유사도를 부여할 필요가 있다. 따라서 본 발명에서는 상품 분류 트리를 활용하여 두 항목들이 다르더라도 서로 동일한 상위 범주를 가진다면 더 높은 유사도를 부여하여 계산한다.
3.3 시퀀스 유사도 측정
본 절에서는 제2.3절에서 설명한 대표적인 시퀀스 간의 유사도 측정 방법인 레벤슈타인 거리, 동적 타임 워핑 거리, 니들만-브니쉬 유사도를 사용하여 상품 분류 체계를 활용한 구매이력 시퀀스 유사도 측정 방법에 대해 상세히 설명한다.
상품 분류 트리를 적용하기 위하여 알고리즘의 수행 과정 중 일부분을 변용하였으며, 아래 코드 1, 2, 3의 의사코드 중 네모 칸 부분은 제안 방법을 적용하기 위하여 새롭게 변형한 부분이다.
세 알고리즘 모두 유사도 계산을 위해 구매이력 시퀀스 S 1과 S 2에 대한 2차원 배열 M 을 생성한다. 각 알고리즘의 배열 M[i][j]의 값은 이전 원소(M[i-1][j], M[i-1][j-1], M[i-1][j])를 활용하여 구한다(
Figure PCTKR2020012648-appb-img-000007
,
Figure PCTKR2020012648-appb-img-000008
). 배열 M의 마지막 원소가 각 알고리즘 별 유사도 값이 되며, 알고리즘 별로 다른 유사도 값의 범위를 가진다. 다음은 각 알고리즘 별 유사도 측정 방법에 대하여 상세히 설명한다.
1) 레벤슈타인(Levenshtein) 거리
레벤슈타인 거리는 두 문자열을 한자 씩 비교해 나가며, 계산 후 배열의 가장 마지막 원소의 값이 두 문자열의 최소 편집 거리가 된다. 레벤슈타인 거리 Levenshtein Dist(S 1, S 2)는 0에서
Figure PCTKR2020012648-appb-img-000009
사이 값을 가진다.
두 시퀀스 S 1, S 2에 대하여 문자열이 없는 경우도 포함하여 2차원 배열 M을 행의 개수가
Figure PCTKR2020012648-appb-img-000010
이고 열의 개수가
Figure PCTKR2020012648-appb-img-000011
인 (
Figure PCTKR2020012648-appb-img-000012
)X(
Figure PCTKR2020012648-appb-img-000013
) 크기로 생성한다. 배열의 첫 번째 행과 열은 0에서부터 두 문자열의 길이만큼 증가시켜가며 초기화한다. 배열의 두 번째 행과 열부터는 이전까지 계산된 배열 값을 사용하여 채워나간다.
코드 1은 Pseudo-code of Levenshtein distance algorithm에 관한 것이다.
<코드 1>
Figure PCTKR2020012648-appb-img-000014
M에서 행에 해당하는 S 1은 원본 문자열을 의미하며 열에 해당하는 S 2는 바꾸고자 하는 목적 문자열을 의미한다. M[i][j]는 추가(M[i][j-1]+1), 대체(M[i-1][j-1] + cost), 삭제(M[i-1][j]+1) 비용 중 가장 작은 값으로 채워진다. 삭제와 추가 연산은 이전 배열 값에 삭제, 추가 비용 1을 더한다. 대체 연산은 만일 현재 계산하는 S 1[i-1]번째 문자와 S 2[j-1]번째 문자가 일치한다면 대체 비용(cost)은 0을 더해주고, 다르다면 1을 더해준다. 코드 1은 레벤슈타인 거리 알고리즘을 활용하여 본 발명에서 제안하는 구매이력 시퀀스 유사도 계산 방법을 나타내는 의사코드이다. 코드 1의 의사코드 중 네모 칸은 새롭게 제안한 대체 연산 비용을 계산하는 함수로 코드 2의 의사코드가 수행된다. 만일 해당 부분이 문자 일치 유무에 따라 0 또는 1의 값을 가진다면 기존 레벤슈타인 거리 알고리즘이 수행된다.
예를 들면, 다른 문자열을 가지는 2개의 시퀀스 S1 = [a, e, m], S2 = [a, d, c]가 있다가 가정할 경우 S1의 문자열을 S2의 문자열로 변환하기 위해 필요한 연산의 최소 횟수를 구해 본다. dist(i, j)는 S1의 i번째까지의 문자열과 S2의 j번째까지의 문자열의 편집거리를 나타낸다.
dist(i, j) = min [dist(i-1, j-1)+c(i, j), dist(i-1, j)+1, dist(i, j-1)+1] 및 c(i, j) = 0 (if xi=yj) or 1 (otherwise)로 정의된다. 시퀀스 S1 및 S2의 각 문자열의 편집거리는 아래의 표 4와 같다.
{} a d c
{} 0 1 2 3
a 1 0 1 2
e 2 1 1 2
m 3 2 2 2
본 발명에서 제안하는 알고리즘은 기존의 레벤슈타인 거리 알고리즘의 대체 연산 중 더해지는 비용의 값을 상품 분류 트리를 이용하여 0에서 1사이로 세분화하여 보다 정확히 상품 간의 유사도를 계산한다. 따라서 본 발명에서 제안한 대체 연산 비용은 상품 분류 트리 내에서 가장 먼 두 항목인 경우에만 전혀 관련 없는 두 항목이라고 판단하여 최댓값 1을 부여하고, 그렇지 않은 경우에는 상품 분류 트리 내에서 서로 다른 두 상품 간의 최단 경로의 길이를 가지도록 대체 연산 비용의 값을 세분화 한다. 코드 2는 기존의 대체 연산 비용 계산 방법과 달리 상품 분류 트리를 활용하여 두 상품간의 연관정도를 세분화하여 계산하는 제안 방법에 대한 의사코드이다.
코드 2는 Pseudo-code of the proposed method에 관한 것이다.
<코드 2>
Figure PCTKR2020012648-appb-img-000015
비교하고자 하는 시퀀스 내 두 상품이 다른 경우 상품 분류 트리를 탐색하여 두 상품간의 연관정도를 계산한다. 수학식 1은 본 발명에서 제안하는 상품 분류 트리를 활용하여 두 상품관의 연관성을 계산하는 식이다.
[수학식 1]
Figure PCTKR2020012648-appb-img-000016
cost는 상품 분류 트리에서 S 1[i]번째 항목과 S 2[j]번째 항목과의 가까운 정도이다. cost 값은 상품 분류 트리 내에서 찾고자 하는 두 항목의 최단 경로의 길이가 가장 먼 두 항목의 길이에서 차지하는 비율을 나타낸다.
longestPath는 상품 분류 트리 내에서 가장 먼 두 노드의 경로의 길이이며, 다시 말해 상품 분류 트리 내에서 가장 연관성이 없는 두 항목의 엣지의 수를 의미한다.
itemPath는 상품 분류 트리 내에서 S 1[i]번째 항목과 S 2[j]번째 항목과의 최단 경로의 길이이다. 두 항목 사이의 최단 경로는 두 항목에서 가장 가까운 범주까지의 엣지(edge)의 수이다. 따라서 itemPath가 작을수록 두 항목은 높은 연관성을 가지며 가까운 범주에 분류되어 있는 상품임을 의미한다.
itemPath가 0인 경우 두 상품은 같은 노드이며 cost는 0이 된다. itemPath가 1인 경우 longestPath와 같은 값을 가지게 되며 트리 내 항목 중 가장 연관성이 낮은 두 항목을 의미하며, cost는 1이 된다.
레벤슈타인 거리 알고리즘의 경우 새롭게 계산된 비용은 대체 연산 시 더해지는 비용으로 추가, 대체, 삭제 비용 중 최솟값 선택 시 사용된다.
예를 들면, 앞서 설명한 c(i, j) = 0 (if xi=yj) or 1 (otherwise)를 대신하여 New c(i, j)으로 대체하며, New c(i, j)는 수학식 1의 cost로 표현될 수 있다.
도 21(b)를 참조하면, Candy 와 Polos는 서로 가장 연관성이 낮은 두 항목으로 lognestPath = 7인 경우이며, 동일한 노드(C5)인 Beverage 내의 Coke와 Sprite의 최단 경로는 itemPath = 2인 것을 알 수 있다.
2) 동적 타임 워핑(DTW) 거리
동적 타임 워핑 알고리즘은 두 시계열 간의 거리를 최소화하는 방향으로 움직이면서 매칭시켜 누적 거리를 활용하여 거리를 계산한다. 시퀀스 S 1, S 2에 대하여
Figure PCTKR2020012648-appb-img-000017
크기의 2차원 무한대 값을 가지는 배열 M을 생성한다. M[i][j]는 레벤슈타인 거리 알고리즘과 달리 비교하고자 하는 두 항목에 대한 비용(cost)을 먼저 계산한 후, 삭제(M[i][j-1]), 일치(M[i-1][j-1]), 삽입(M[i-1][j]) 비용 중 최솟값에 더한다.
코드 3의 의사코드 중 네모 칸은 코드 2의 제안 방법을 적용한 동적 타임 워핑 유사도에 대한 의사 코드이며, 해당 부분이 두 값의 차이(|i-j|)인 경우 기존의 동적 타임 워핑 알고리즘이 수행된다. 본 발명에서는 S 1의 한 지점에서 S 2의 다른 지점으로 할당되는 매핑(mapping) 비용을 두 값의 차이가 아닌 제안 방법을 통하여 0에서 1 사이의 값을 가지도록 하였다.
코드 3은 Pseudo-code of DTW algorithm에 관한 것이다.
<코드 3>
Figure PCTKR2020012648-appb-img-000018
3) 니들만-브니쉬(NW: Needleman-Wunsch) 유사도
니들만-브니쉬 알고리즘은 두 시퀀스 간의 변화(mutation)를 최소화 하면서 공백을 사용하여 두 시퀀스의 유사도가 가장 높도록 정렬한다. 시퀀스 S 1, S 2에 대하여
Figure PCTKR2020012648-appb-img-000019
크기의 2차원 배열 M을 생성하여 0으로 초기화한다. 알고리즘 수행을 위해 공백 페널티(gap penalty), 일치 보상(match award), 불일치 페널티(mismatch penalty) 세 변수에 대한 사용자 정의 값을 지정한다. 사용자 정의 값에 따라서 계산된 유사도 값의 범위가 달라지며, 본 발명에서는 상품 분류 트리를 활용한 연산 비용은 0에서 1 사이의 값을 가지므로 일치 보상은 1, 불일치 페널티는 0, 공백 페널티는 -1로 주었다. 사용자 정의 값이 다음과 같은 경우 니들만-브니쉬 유사도 NW Sim(S 1, S 2)는
Figure PCTKR2020012648-appb-img-000020
사이 값을 가진다.
코드 4는 Pseudo-code of Needleman-Wunsch algorithm에 관한 것이다.
<코드 4>
Figure PCTKR2020012648-appb-img-000021
코드 4는 제안 방법을 적용한 니들만-브니쉬 알고리즘에 대한 의사 코드이며, 네모 칸은 상품 분류 트리 내에서 두 상품 간의 연관성을 계산하는 제안 방법에 대한 코드 2의 의사 코드이다. 만일 해당 부분이 비교 하고자 하는 두 항목(S 1[i-1], S 2[j-1])의 일치 유무에 따라서 일치 보상(match award) 혹은 불일치 페널티(mismatch penalty)가 부여된다면 기존의 니들만-브니쉬 거리가 계산된다.
4. 실험 결과
본 장에서는 본 발명에서 제안한 상품 분류 체계를 활용한 구매이력 시퀀스 간 유사도 측정 방법에 대한 성능 측정 결과를 보인다. 제2.3절에서 설명한 대표적인 유사도 측정 방법인 레벤슈타인 거리, 동적 타임 워핑 거리, 니들만-브니쉬 유사도에 대하여 기존 방법과 제안 방법과의 유사도 측정 비교 결과와 세 알고리즘에 대한 수행 시간 비교 결과를 보인다.
4.1 실험 환경 및 방법
본 발명에서 제안한 구매이력 데이터 시퀀스간의 유사도 측정 방법은 Python 3.7을 사용하여 동적 프로그래밍으로 구현하였으며, 상품 분류 트리는 anytree 라이브러리를 사용하여 구현하였다. 실험은 Intel i7-5820 3.3 GHz CPU, 8GB 메모리가 장착된 Windows 10 운영체제 환경의 PC에서 수행하였다.
실험에서 사용한 상품 분류 트리의 높이는 5이며, 총 37개의 노드를 가진다. 트리는 상품을 의미하는 26개의 단말 노드(leaf node)와 상품의 범주에 해당하는 11개의 노드로 구성된다. 실험에서는 시퀀스 내 항목의 개수가 3에서 10 사이를 가지는 가상의 시퀀스 데이터를 생성하여 사용하였다.
표 5은 Evaluation results for different similarity measures에 관한 것이다.
Example 1 Example 2 Example 3
Similarity Measure S 1 - S 2 S 1 - S 3 S 4 - S 5 S 4 - S 6 S 7 - S 8
Levenshtein 3 3 3 3 3
New Levenshtein 2.5 0.75 2.625 0.65 3
DTW 9 3 9 3 3
New DTW 2.5 0.75 2.625 0.65 0.75
NW 0 0 0 0 0
New NW 0.5 2.25 0.55 2.75 0
4.2 실험 결과
본 절에서는 다양한 시퀀스 간의 유사도 측정 방법에 따른 성능 측정 결과를 보인다.
1) 정확성 비교 실험
먼저 제안 방법이 기존의 시퀀스 유사도 측정 방법에 비하여 구매이력 데이터에서 시퀀스 간의 유사도를 더 정확히 계산할 수 있는지 평가하였다.
시퀀스 3는 정확성 측정 실험에 사용한 가상의 시퀀스 데이터이다. 시퀀스 3에서 예제 1과 예제 2는 제안 방법이 기존의 유사도 방법에 비하여 구매 이력 시퀀스 간의 유사도를 더 정확히 계산하는지 측정하기 위한 실험 데이터로 예제 1은 가상의 시퀀스 데이터이며, 예제 2는 실제 소비자의 아마존 구매이력에 대한 실험 데이터이다. 마지막으로 예제 3은 서로 다른 크기를 가지는 시퀀스에 대한 유사도 측정 가상의 시퀀스 데이터이다.
시퀀스 3은 Examples of sequence data 에 관한 것이다.
[시퀀스 3]
Figure PCTKR2020012648-appb-img-000022
예제 1의 S 1, S 2과 예제 2의 S 4, S 5는 서로 유사하지 않은 구매이력 시퀀스이며 예제 1의 S 1, S 3과 예제 2의 S 4, S 6는 서로 매우 유사도가 높은 구매 상품으로 구성된 시퀀스이다. 이를 통하여 제안 방법과 기존 방법과의 정확도를 비교하였다. 예제 3의 경우 S 8은 S 7과 시퀀스의 크기가 다르지만 크게 보면 동일한 범주의 구매순서(간식, 전자 제품, 음료 순)를 가진다. 이를 통해 서로 다른 길이를 가지는 시퀀스에 대해서도 정확히 유사도를 계산하는지 측정하였다.
<표 5>은 시퀀스 3의 가상의 시퀀스 데이터를 사용하여 기존의 세 알고리즘에서의 유사도 측정 결과와 제안 방법을 적용한 유사도 측정 결과에 대한 결과표이다. 예제 1에 대한 실험 결과, 기존의 레벤슈타인 거리와 니들만-브니쉬 유사도의 경우 세 시퀀스를 구성한 구매 상품이 모두 다르기 때문에 동일한 수치를 계산한다. 하지만 동적 타임 워핑 거리의 경우 2차원 배열을 다른 두 유사도 측정 방법과 달리 두 값의 차이(|i - j|)를 사용하여 초기화하기 때문에 S 1, S 2의 거리와 S 1, S 3의 거리가 다르게 계산되지만 상품 간의 연관 정도는 고려하지 않고 계산한다. 반면 제안 방법을 적용한 세 알고리즘의 경우 모두 상품 간의 유사도가 낮은 S 1, S 2에 비하여 상대적으로 시퀀스 내 상품 간의 연관성이 높은 S 1, S 3에 대하여 더 정확히 계산하는 것을 볼 수 있다.
또한 실제 데이터를 사용한 예제 2의 경우에도 예제 1과 같이 상품간의 연관성이 더 높은 두 시퀀스가 그렇지 않은 경우보다 더 높은 유사도를 보임을 실험을 통해 확인하였다. 이를 통해 기존의 방법들은 서로 다른 상품에 대해서 단순히 1을 부여 하여 계산하지만 제안 방법을 적용한 경우 상품 분류 트리를 고려하여 계산하기 때문에 서로 다른 상품으로 구성된 시퀀스라도 더 정확하게 유사도를 계산하게 된다.
예제 3의 실험 결과, 레벤슈타인 거리와 니들만-브니쉬 유사도의 경우 두 시퀀스의 상품 하나하나에 대해서만 비교하기 때문에 비슷한 구매 순서를 보이더라도 제안 방법과 기존 방법 모두 동일한 유사도 값을 보인다. 하지만 제안 방법을 적용한 동적 타임 워핑 거리의 경우 길이가 다르더라도 기존 방법으로 측정한 거리(3)와 달리 더 낮은 수치(0.75)를 계산한다. 이는 동적 타임 워핑 거리의 경우 누적 거리를 활용하여 시퀀스 내 하나의 항목이 다른 시퀀스의 여러 항목과 대응되어 계산하기 때문에 있기 때문에 S 7과 S 8의 길이가 다르더라도 더 정확하게 유사도가 계산된 것이라고 판단된다.
구매이력 시퀀스에 대한 실험 결과 제안 방법을 적용한 세 알고리즘 모두 기존의 알고리즘에 비해 상품간의 관련성을 고려하여 계산하기 때문에 더 정확하게 유사도를 측정함을 확인하였다. 또한 동적 타임 워핑 알고리즘의 경우 서로 다른 길이의 시퀀스에 대한 유사도 측정에 대해서도 다른 두 유사도 측정 방법과 달리 정확히 측정함을 실험을 통해 확인하였다.
2) 수행 속도 비교 실험
다음으로는 제안하는 시퀀스 유사도 측정 기법의 수행 시간을 측정하여 수용가능한 수준인지 평가하였다. 실험은 기존 방법과 제안 방법을 적용한 레벤슈타인 거리, 동적 타임 워핑 거리, 니들만-브니쉬 유사도에 대해서 측정하였다. 두 시퀀스가 주어졌을 때, 시퀀스 간의 유사도 측정 횟수를 2000번에서 10000번까지 증가시켜가며 수행 시간을 측정하였다. 시퀀스 유사도 측정 시 매번 다른 임의의 상품 구성과 길이를 가지도록 가상의 시퀀스 데이터를 생성하였다.
도 22은 제안 방법을 적용한 수행 시간 측정 결과 (Experimental results for proposed methods)이다
<표 6>는 시퀀스 유사도 측정횟수가 10000번인 경우에 대한 기존 방법의 수행 시간을 나타낸 표이다. 도 22을 참조하면, 실험 결과 연산 속도는 세 유사도 비교 방법 모두 시퀀스 내 상품의 개수와 시퀀스 내 상품 구성에 따라 의존하는 경향을 보였으며, 기존 방법과 제안 방법의 수행 시간은 10번 측정 후 중앙값을 취하였다. 표 6는 Evaluation results for conventional methods에 관한 것이다.
[표 6]
Figure PCTKR2020012648-appb-img-000023
측정 결과 비교 횟수가 증가할수록 수행 시간이 선형적으로 증가하는 모습을 보이며, 세 알고리즘은 모두 비슷한 수행 시간을 보인다. 이는 세 알고리즘 모두 알고리즘의 수행 과정이 두 시퀀스에 대한 2차원 배열을 활용하여 계산하기 때문에 비슷한 수행 시간을 보인 것으로 판단된다. 또한 <표 6>의 기존 방법의 수행 시간에 비하여 제안 방법의 수행 시간은 상품 분류 트리를 탐색 과정으로 인해 더 긴 수행시간을 보인다. 하지만 제안 방법을 적용한 세 가지 알고리즘 모두 수행시간은 최대 2분을 넘지 않으며, 이는 제안 방법의 수행 시간이 실제 사용 가능한 수준임을 나타낸다.
5. 결 론
본 발명에서는 기존의 시퀀스 유사도 측정방법을 확장하여 구매이력 데이터에서 상품 분류 체계를 고려하여 두 시퀀스 간의 유사도를 계산하는 새로운 방법을 제안하였다. 본 발명에서 계산하고자 하는 구매이력 시퀀스란 고객 한명이 구매한 항목들이 순서대로 나열된 데이터이다. 이러한 두 구매이력 시퀀스와 상품 분류 체계가 주어졌을 때, 기존의 유사도 측정 방법은 시퀀스를 구성한 구매 상품의 순서만을 고려하여 유사도를 계산한다. 이는 두 시퀀스가 구매 이력인 경우 비교하고자 하는 두 상품간의 연관성은 무시되게 된다. 따라서 본 발명에서는 시퀀스 내 구성 상품의 순서를 고려할 뿐만 상품 분류 체계를 활용하여 서로 다른 상품으로 구성된 시퀀스에 대해서도 보다 정확히 유사도를 계산한다.
본 발명에서는 구매이력 시퀀스에 적합한 유사도 측정 방법을 찾기 위해 다양한 시퀀스 유사도 측정방법들을 고려하였다. 이를 위해 현재 대표적인 시퀀스 유사도 측정 방법인 레벤슈타인 거리, 동적 타임 워핑 거리, 니들만-브니쉬 유사도를 사용했으며, 제안 방법을 적용하기 위해 이들의 수행 과정 중 일부분을 변형하였다. 기존의 세 알고리즘은 시퀀스 내 항목 간의 연산 비용 계산 시 상품 일치 유무에 따라 단순히 0 또는 1을 부여하였다면, 본 발명에서 제안한 방법은 상품 분류 트리를 사용하여 연산 비용을 0에서 1 사이의 값을 가지도록 세분화하였다. 새롭게 계산한 연산 비용은 비교하고자 하는 두 상품이 상품 분류 트리에서 가장 가까운 공통 범주까지의 경로를 의미하며, 가장 가까운 공통 범주가 루트 노드(root node)인 경우에만 1을 부여한다. 이를 통해 상품간의 서로 다른 중요도를 고려할 수 있으며 독립적인 개체로 계산 할 때 보다 의미 있는 결과가 도출됨을 실험을 통해 확인하였다. 세 알고리즘에 대한 정확성 측정 비교 실험 결과 동적 타임 워핑 유사도가 다른 두 유사도 측정 방법에 비하여 시퀀스 내 상품의 연관 정도를 고려할 뿐만 아니라 두 시퀀스의 길이가 다른 경우에도 좋은 성능을 보였기 때문에 구매이력 데이터에서 시퀀스 간의 유사도 비교 시 가장 적합한 측정 방법임을 확인하였다.
본 발명에서는 시퀀스 유사도 측정 과정 중 서로 다른 상품이더라도 두 상품 간의 연관 정도를 계산하기 위하여 주어진 상품 분류 트리를 탐색하는 과정을 거친다. 추후 연구에는 시퀀스 내 상품 구성 복잡도를 높여가며 다양한 시퀀스 길이를 가지는 두 시퀀스에 대한 상품 분류 트리 고속화 탐색 방법과 유사도 측정 성능 향상 방법에 대하여 연구할 계획이다.
이하에서 상술한 본 발명의 일 실시예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법의 기계학습 모델(방법)에서 개량된 부분에 대해 설명한다. 상술한 본 발명의 내용과 후술할 본 발명의 내용은 서로 하나의 기술적 사상을 가지고 있으며, 각 부분의 조합으로 본 발명을 구성할 수 있다.
1. 서 론
각 고객이 구매한 상품들은 시간의 흐름에 따라 해당 고객의 구매 이력을 형성한다. 여기서 항목들 간의 순서가 존재하는 데이터를 시퀀스(sequence)라 부른다. 기업은 고객들의 특성과 소비 패턴이 담긴 구매 이력 혹은 구매 시퀀스를 분석하여 매출 증대를 위한 마케팅 전략으로 활용할 수 있다. 한편 유통업에서 거래되는 대부분의 상품들은 소분류, 중분류, 대분류 등과 같은 분류 체계를 가진다. 이 경우 서로 다른 상품이더라도 세부 분류가 동일할수록 두 상품은 그렇지 않은 경우보다 유사성이 더 높다고 할 수 있다. 예를 들어, 만약 두 상품이 같은 소분류에 속한다면, 두 상품이 소분류는 다르지만 같은 중분류에 속하는 경우보다 유사성이 더 높다고 할 수 있다. 지금까지 시퀀스 간의 유사도 측정 방법에 대해서는 많은 연구가 이루어져왔다. 하지만 이들 연구는 모두 시퀀스를 구성하는 각 항목들이 단순히 같은지 다른지 만을 고려하며, 항목들에 분류 체계가 존재하는 경우 이를 고려하는 연구는 거의 없었다.
따라서 본 발명에서는 상품 구매 순서뿐만 아니라 상품들에 존재하는 분류 체계까지 고려하는 구매 이력 간 유사도 측정 방법을 제안한다. 본 발명에서 제안하는 구매 이력 간 유사도 측정 방법은 두 구매 이력의 상품이 다르더라도 상품들의 분류가 유사하면 두 구매 이력을 유사하다고 판단한다. 본 발명에서 제안하는 유사도 측정 방법은 기존의 대표적인 시퀀스 유사도 측정 방법인 동적 타임 워핑(dynamic time warping, DTW) 거리를 확장하여, 상품 분류 체계에 따른 상품들 간의 유사성을 거리 계산에 반영한다. 이와 함께 본 발명은 제안하는 유사도 측정 방법에 대한 효율적인 계산 기법을 제안한다. 제안 기법은 세그먼트 트리(segment tree)를 사용하여 상품 분류 체계 내에서 두 상품 간의 유사도를 매우 빠르게 계산한다. 이를 통해 제안 방법은 다수의 구매 이력들을 비교해야 할 때도 매우 효율적으로 사용될 수 있다.
본 발명의 명세서의 구성은 다음과 같다. 2장에서는 관련 연구를 간략히 살펴보고, 3장에서는 제안 방법에 대하여 상세히 설명한다. 4장에서는 제안 방법의 성능 평가 결과를 보이며, 5장에서는 결론을 맺는다.
2. 관련 연구
시퀀스 간의 유사도 측정 방법에 대해서는 이미 많은 연구가 이루어졌다. 그 중 동적 타임 워핑 유사도는 서로 속도가 다른 두 개의 시계열 패턴 간의 유사도를 측정하기 위해 제안된 방법으로서, 두 시계열 간의 거리를 최소화하는 방향으로 항목들을 이동시키면서 누적 거리를 활용하여 유사도를 계산하기 때문에 서로 다른 길이의 시퀀스에 대해서 매우 효율적으로 유사도를 계산하는 것으로 알려져있다.
본 발명은 상품 분류 체계를 고려하여 구매 이력 간의 유사도를 계산하기 위한 여러 선행 실험을 수행하였다. 본 발명은 시퀀스 간의 유사도를 측정하는 여러 방법들 중 동적 타임 워핑 유사도가 구매 이력 간 유사도 측정에 가장 효과적임을 보였으며, 따라서 이하에서 동적 타임 워핑 유사도를 기반으로 두 구매 이력 간의 유사도를 정확하고 빠르게 측정하는 방법을 제안한다.
한편 본 발명에서는 제안하는 구매 이력 간 유사도를 빠르게 계산하기 위해 세그먼트 트리를 사용한다. 세그먼트 트리는 각 노드가 그의 자식 노드들이 나타내는 구간들에 대한 정보(예: 합, 최솟값, 최댓값)를 가지고 있는 트리이다. 세그먼트 트리는 각 구간에 대한 정보들을 미리 구해 저장해 두기 때문에 특정 범위 내 최솟값을 찾는 문제 등에 효과적인 것으로 알려져 있다.
3. 제안 방법
본 장에서는 상품 분류 체계를 고려한 구매 이력 간 유사도 측정 방법 및 그에 대한 효율적인 계산 방법을 제안한다.
3.1 상품 분류 체계를 고려한 구매 이력 간 유사도 측정
본 발명에서는 기존의 대표적인 시퀀스 유사도 측정 방법인 동적 타임 워핑 유사도를 상품 분류 체계를 반영하도록 확장한다. 두 구매 이력 s 1 = <x 1, x 2, ..., x n >과 s 2 = <y 1, y 2, ..., y m >이 주어졌다고 하자. 여기서 x i 와 y i 는 각 구매 이력에서 i번째로 구매된 항목을 나타낸다. 제안 방법은 두 구매 이력 s 1과 s 2이 주어졌을 때 n x m 크기의 2차원 배열 M 을 생성하고 모든 원소를 ∞로 초기화한다. 이후 M 의 각 원소 M [i][j]를 다음 수학식 2를 사용하여 업데이트한다.
[수학식 2]
M [i][j]=dist(x i, y j)+min(M [i - 1][j], M [i][j - 1], M [i - 1][j - 1])
위 수학식 2에서 dist(x i, y j)는 s 1의 i번째 항목인 x i와 s 2의 j번째 항목인 y j의 상품 분류 체계를 고려한 거리를 나타낸다. 상품 분류 체계를 고려하지 않는 기존의 동적 타임 워핑 유사도는 x i = y j인 경우 dist(x i, y j) = 0이고 x i ≠ y j인 경우 dist(x i, y j) = 1로 하는 경우에 해당한다. 위 식에서 dist(x i, y j)에 M[i - 1][j], M[i][j - 1], M[i - 1][j - 1] 중 최솟값이 더해지는 것은 각각 s 1의 항목만 하나 전진하여 비교를 계속하는 경우, s 2의 항목만 하나 전진하여 비교를 계속하는 경우, s 1과 s 2의 항목 모두 하나씩 전진하여 비교를 계속하는 경우를 각각 나타낸다. 본 발명에서는 상품 분류 체계를 반영하여 dist(x i, y j)의 값이 0에서 1 사이의 값을 가질 수 있도록 하였다. dist(x i, y j)는 다음 수학식 3와 같이 정의된다.
[수학식 3]
Figure PCTKR2020012648-appb-img-000024
위 수학식 3에서 T는 주어진 상품 분류 체계 트리를, shortestPathLen(x i, y j, T)는 T에서 상품 x i와 y j를 나타내는 단말 노드 간 최단 경로의 길이를, longestPathLen(T)는 T 내에서 가장 거리가 먼 두 단말 노드 간의 경로의 길이를 나타낸다. dist(x i, y j)은 0과 1 사이의 값을 가지며, 두 상품이 상품 분류 트리 내에서 가까울수록, 즉 세부 분류가 동일할수록 작은 값을 가지고, 두 상품이 상품 분류 트리 내에서 멀수록, 즉, 서로 다른 분류에 속할수록 큰 값을 가진다. 위 식을 통해 모든 M[i][j]의 값을 구하고 나면 최종적으로 M[n][m]의 값이 S 1과 S 2 간의 거리가 된다.
3.2 효율적인 유사도 계산 기법
앞서 제안한 구매 이력 간 유사도 측정을 위해서는 s 1의 원소 x i와 s 2의 원소 y j 간의 거리를 나타내는 dist(x i, y j)를 모든 x i와 y j에 대해 반복적으로 계산해야 한다. 따라서 s 1과 s 2의 길이가 길어질수록 계산 비용이 증가한다. dist(x i, y j)에서 longestPathLen(T)는 고정된 값이므로, shortestPathLen(x i, y j, T)를 효율적으로 구하는 것이 효율적인 유사도 계산에 매우 중요하다. 주어진 x i와 y j에 대해 shortestPathLen(x i, y j, T)를 구하는 간단한 방법은 T의 루트 노드에서 x i까지의 경로와 y j 까지의 경로를 각각 구한 후, 두 경로에 포함된 노드들을 하나씩 비교하여 서로 다른 노드들의 개수를 구하면 매우 간단히 계산할 수 있다. 하지만 이 방법은 T의 크기가 커질수록 계산 비용이 증가한다는 단점이 있다. 특히 s 1과 s 2의 길이가 길어질수록 이 연산을 반복해야 하므로 전체 유사도를 계산하는 비용이 크게 증가한다는 문제가 있다.
따라서 본 발명에서는 세그먼트 트리를 사용하여 shortestPathLen(x i, y j, T)를 매우 효율적으로 계산하는 기법을 제안한다. 제안하는 기법은 먼저 상품 분류 체계 트리를 한번 전위 순회하여 2개의 1차원 배열을 생성한다. 두 배열에는 순회하며 방문한 노드의 순서와 각 노드의 깊이가 각각 저장된다. 방문 노드 순서가 저장된 배열을 통해 생성된 세그먼트 트리를 활용하여 shortestPathLen(x i, y j, T)을 계산하기 위하는 새롭게 제안한 수학식 4는 다음과 같다.
[수학식 4]
shortestPathLen(x i, y j, T) = depth[x i]+depth[y j]-2 xdepth[LCA(x i, y j, T)]
위 식에서 LCA(x i, y j, T)는 세그먼트 트리로 계산된 두 상품의 가장 가까운 공통 분류이며, depth[]는 전위 순회 결과 저장된 각 노드의 깊이가 저장된 배열이다. x i에서 LCA(x i, y j, T)까지 경로의 길이는 depth[x i]-depth[LCA(x i, y j, T)]이며, LCA(x i, y j, T)에서 y j까지 경로의 길이는 depth[y j]-depth[LCA(x i, y j, T)]이므로 두 x i, y j의 최단 경로의 길이는 위의 수학식 4가 된다.
이후 상품 분류 체계 트리 내에서 두 상품 간의 거리를 계산할 때는 이 세그먼트 트리를 사용하여 두 상품의 가장 가까운 공통 분류와 두 상품의 깊이 정보를 알아내고, 이를 활용하여 shortestPathLen(x i, y j, T)를 바로 계산한다. 따라서 shortestPathLen(x i, y j, T) 계산 시 T의 루트 노드에서 x i까지의 경로와 y j까지의 경로를 각각 구하고 두 경로를 비교하는 과정이 모두 제거되므로 총 계산 비용이 크게 감소된다.
4. 성능 평가
본 장에서는 제안하는 구매 이력 간 유사도 계산 방법에 대한 실험 결과를 보인다. 제안 방법은 Python을 사용하여 구현하였으며, 실험은 Intel i7-5820 3.3GHz CPU, 8GB 메모리가 장착된 Windows 10 운영체제 환경의 PC에서 수행하였다. 상품 분류 체계는 대표적 온라인 쇼핑몰인 미국의 아마존(Amazon)의 실제 분류 체계를 수집한 뒤 이를 트리 형태로 구축하여 사용하였다.
4.1 유사도 측정 방법 효과 평가
먼저 상품 분류 체계를 고려한 제안 유사도 측정 방법이 기존의 시퀀스 유사도 측정 방법에 비하여 구매 이력 간의 유사도를 더 효과적으로 계산하는지 평가하였다. 표 7은 간단한 가상 구매 이력 데이터에 대해 제안 방법을 적용한 결과(유사도 비교 실험 결과)이다.
주어진 세 개의 구매 이력 s 1, s 2, s 3은 그에 속한 상품들이 모두 다르지만 s 1과 s 2는 s 1과 s 3에 비해 상품들의 분류가 비슷하다 (예: Coke와 Sprite는 모두 음료에 속함) 이 경우 기존의 동적 타임 워핑 유사도는 s 1과 s 2간의 거리와 s 1과 s 3간의 거리를 모두 6으로 계산하지만, 제안 방법은 s 1과 s 2간의 거리와 s 1과 s 3간의 거리를 각각 1.5와 5.375로 계산한다. 따라서 제안 방법은 두 구매 이력이 서로 다른 상품들로 구성된 경우에도 상품 분류가 비슷한 상품들에는 더 가까운 거리를 부여함으로써 기존 방법과 비교하여 더 정확한 거리를 계산한다. 또한 동적 타임 워핑 유사도의 특성상 구매 이력의 길이가 서로 다르더라도 적용에 문제가 없음을 확인하였다.
[표 7]
Figure PCTKR2020012648-appb-img-000025
4.2 유사도 계산 기법 성능 평가
다음으로는 세그먼트 트리를 사용하는 유사도 계산 기법이 세그먼트 트리를 사용하지 않는 단순 기법에 비해 계산 속도를 얼마나 더 향상시키는지 평가하였다. 이를 위해 유사도를 100번 계산하고, 이에 걸린 평균 시간을 측정하였다. 유사도 계산을 위해서 랜덤하게 생성된 가상의 구매 이력 데이터를 사용하였으며, 구매 이력의 길이와 상품 분류 트리의 크기를 변화시켜가며 실험을 수행하였다.
도 23는 구매 이력 길이에 따른 단순 기법과 세그먼트 트리를 적용한 제안 기법의 성능을 비교 그래프이다. 도 24는 상품 분류 체계 트리의 상품 개수에 따른 단순 기법과 제안 기법의 성능을 비교한 그래프 이다. 이하에서 도 23 및 도 24를 참조하여 본 발명에서 제안된 기법의 성능을 설명한다.
도 23는 상품 분류 체계 트리가 고정된 상태에서 구매 이력의 길이를 증가시켜가며 두 방법의 성능을 비교한 결과이다. 두 방법 모두 구매 이력의 길이가 증가할수록 계산 시간이 선형적으로 증가하지만, 제안 기법의 경우 사전에 구축된 세그먼트 트리를 사용하여 상품 분류 체계 트리에서 두 상품 간의 최단 거리를 빠르게 계산할 수 있으므로 전체 계산 성능이 크게 향상되었음을 알 수 있다.
도 24는 상품 분류 체계 트리의 상품 개수를 7,000 개에서 25,000 개까지 증가시켜가며 두 방법의 성능을 비교한 결과이다. 단순 방법의 경우 상품 분류 체계 트리가 커질수록 두 상품 간의 최단 거리를 탐색하는 시간이 증가하지만, 제안 방법은 사전에 구축된 세그먼트 트리를 사용하기 때문에 시간이 증가하지 않는 것을 볼 수 있다.
5. 결 론
본 발명에서는 상품 분류 체계를 고려하여 두 구매 이력 간의 유사도를 측정하는 효과적인 방법 및 그의 효율적인 계산 기법을 제안하였다. 이를 위해 기존의 대표적인 시퀀스 유사도 측정 방법인 동적 타임 워핑 유사도를 확장하여 상품 분류 체계 내에서 상품들의 거리를 반영하도록 하였다.
또한 제안하는 유사도 측정 방법을 효율적으로 계산할 수 있도록 세그먼트 트리를 사용하여 상품 분류 체계 내에서 상품들 간의 거리를 빠르게 계산하는 기법을 제안하였다. 실험 결과 제안 방법은 상품 분류 체계가 존재하는 경우 기존 방법에 비해 더 효과적으로 구매 이력 간의 유사도를 측정함을 보였으며, 세그먼트 트리를 사용하여 매우 빠르게 계산될 수 있음을 확인하였다.
도 25은 본 발명의 일 실시 예에 따른 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법의 흐름도를 도시한 것이다.
도 25에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 제어 방법은, 제1 시퀀스를 획득하는 과정(S2510), 제2 시퀀스를 획득하는 과정(S2530), 제1 및 제2 시퀀스들의 유사 여부를 판단하는 과정(S2550)을 포함할 수 있다.
과정 S2510 및 과정 S2530에서, 제1 시퀀스는 순서를 가지는 제1 항목들로 구성되며, 제2 시퀀스는 순서를 가지는 제2 항목들로 구성될 수 있다. 예를 들어, 제1 시퀀스는 순서대로 제1-1 항목, 제1-2 항목, 제1-3 항목을 포함할 수 있으며, 제2 시퀀스는 순서대로 제2-1 항목, 제2-2 항목, 제2-3 항목을 포함할 수 있다. 시퀀스 내 항목들의 수는 2 이상의 값을 가질 수 있다.
일 예로, 제1 및 제2 시퀀스는 상품의 구매이력일 수 있으며, 제 1 구매이력은 Sprite, Candy, Jeans 순서를 가지고, 제2 구매이력은 Coke, Chocolate, Skirt 순서를 가질 수 있다.
과정 S2550에서, 제1 정보 및 제2 정보에 기초하여 상기 제1 및 제2 시퀀스의 유사 여부를 판단할 수 있다.
상기 제1 및 제2 항목들은 동일한 항목 분류 트리의 단말 노드에 해당할 수 있다. 항목 분류 트리란 트리 구조를 가지는 항목 분류 체계로서, 최상단의 노드인 Root로부터 하위 계층으로 분지하여 복수개의 내부 노드(C1 내지 C8) 및 복수개의 내부 노드들 말단인 단말 노드에 항목들(a 내지 k)로 이뤄진다 (도 21(a) 참조).
시퀀스들의 유사여부를 판단하기 위하여 제1 시퀀스의 <제1-1 항목, 제1-2 항목, 제1-3 항목> 중 하나의 항목와 제2 시퀀스의 <제2-1 항목, 제2-2 항목, 제2-3 항목> 중 하나의 항목 간에 대비하여 시퀀스의 유사 여부를 판단할 수 있다.
구체적인 방법 중 하나로, 상기 제1 정보는 제1 시퀀스의 각 항목들 중 하나를 제2 시퀀스의 각 항목들 중 하나로 변환하기 위한 연산의 횟수에 관한 정보를 포함할 수 있다. 환언하면 상기 제1 정보는 제1-1 항목을 제2-1 항목, 제2-2 항목, 제2-3 항목으로 변환하기 위한 연산 횟수, 제1-2 항목을 제2-1 항목, 제2-2 항목, 제2-3 항목으로 변환하기 위한 연산 횟수, 제1-3 항목을 제2-1 항목, 제2-2 항목, 제2-3 항목으로 변환하기 위한 연산 횟수를 포함할 수 있다.
또한, 상기 제2 정보는 상기 제1 항목들 중 하나와 상기 제2 항목들 중 하나 사이의 상기 항목 분류 트리 내의 최단 경로의 길이에 관한 정보를 포함할 수 있다.
종래에는 시퀀스 간 유사 판단을 하기 위하여 항목과 항목 사이의 동일 여부에 대한 정보(0 또는 1)를 사용하였으나, 이는 항목들 간 동일성만 볼 뿐 노드의 연관성에 대한 정보를 포함하지 못하였다.
예를 들어, 종래의 방법에 따르면, 동일 노드 내에 속하고 동일하지 않은 2개의 항목들(Coke, Sprite)과 다른 노드의 2개 항목들(Candy, Polos)의 연관성 정보는 동일하게 비동일 항목을 의미하는 정보(0)를 갖는다. 그러나 (Candy, Polos)의 항목들 보다 (Coke, Sprite)의 항목들이 서로 더 연관된 항목임을 나타내지 못하였다(도 21(a) 참조).
본 발명에서 제안하는 방법은 시퀀스 간 유사 판단을 더 정밀하게 하기 위하여 항목들간 최단 경로의 길이를 이용한다. 항목들간 최단 경로의 길이가 짧을수록 항목들 간 연관성 정보는 더 높다고 판단할 수 있다. 예를 들어, (Candy, Polos)의 항목들의 경로는 7이고, (Coke, Sprite)의 항목들의 경로는 2를 갖는다(도 21(b) 참조). 그러므로 (Candy, Polos)의 항목들에 비하여 (Coke, Sprite)의 항목들의 연관성이 높은 것을 의미한다.
나아가, 상기 제2 정보는 상기 항목 분류 트리 내의 항목들의 최장 경로의 길이에 관한 정보를 더 포함할 수 있다. 본 발명에서 제안하는 방법은 항목들의 촤장 경로의 길이를 이용하여 항목들간 연관성 정보의 상대적인 수치를 이용하여 시퀀스들 간 유사도를 측정할 수 있다. 예를 들어, (Coke, Sprite)의 항목들의 상대적인 연관성 정보는 (Coke, Sprite)의 항목들의 경로 길이(2) 대비 항목 분류 트리 내의 항목들의 최장 경로 길이(7)으로 2/7의 값을 가질 수 있다.
또한, 본 발명에서 제안하는 방법은 항목들 간 연관성 정보를 빠르게 계산하기 위하여 항목 분류 트리의 각 노드에 대한 깊이 정보를 계산하여 미리 저장하고 있을 수 있다. 이후 2개의 항목들이 선택된 경우 항목들 간 최단 경로의 길이를 계산하기 위하여 모든 노드들(root, 내부노드, 단말노드)을 각각 대비하여 경로를 계산하는 것이 아니라 깊이 정보에 기초하여 항목들 간 최단 경로의 길이를 계산할 수 있다. 따라서 중복된 연산을 방지하고 빠르게 항목들 간 최단 경로의 길이를 제공할 수 있다.
도 21(a)와 같이 항목 분류 트리가 있는 경우 각 노드별로 순번을 매겨서 Root로부터 각 노드까지의 경로의 길이를 노드 깊이(node depth)로 정의할 수 있다. Root의 노드 깊이는 0를 가지며, C1, C2, C3의 노드 깊이는 1을 가지며, C4, C5, e, f, C6, C7의 노드 깊이는 2를 가지며, a, b, c, d, g, h, I, C8의 노드 깊이는 3을 가지며, j, k의 노드 깊이는 4를 가질 수 있다. 각 노드별 노드 깊이의 정보를 미래 계산하여 메모리(1100)에 저장해 둘 수 있다.
예를 들어, (Sandals, Jeans) 항목들 간 최단 경로의 길이를 구하고자 하는 경우 Sandals(g) 및 Jeans(i) 항목들의 마지막으로 공유하는 최하단 노드(Fashion, C3)를 결정하고, Sandals(g) 항목과 Fashion(C3) 내부노드 사이의 경로 길이와 Jeans(i) 항목과 Fashion(C3) 내부노드 사이의 경로 길이의 합을 통하여 (Sandals, Jeans) 항목들 간 최단 경로의 길이를 결정할 수 있다. 이 경우 미리 저장된 각 노드별 노드 깊이의 정보를 이용하여 [Sandals(g)의 깊이(3)+ Jeans(i)의 깊이(3) - 2*Fashion(C3)의 깊이(1) = 3 + 3 - 2*1 = 4]와 같이 (Sandals, Jeans) 항목들 간 최단 경로의 길이(4)를 결정할 수 있다.
도 18 및 도 19에 도시된 바와 같이, 일 실시 예에 따른 전자 장치(1000)는, 메모리(1100), 출력부(1200), 프로세서(1300), 센싱부(1400), 통신부(1500), A/V 입력부(1600) 및 사용자 입력부(1700)를 포함할 수도 있다
프로세서(1300)은 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 제어 방법을 수행하기 위하여 도 20 내지 도 25을 통해서 상술한 각 과정들을 프로세서 자체적으로 수행하거나 또는 전자 장치(1000)의 구성요소들을 제어하여 수행할 수 있다.
]]]
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (8)

  1. 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하는 과정;
    상기 각각의 노드에 대한 노드-가중치 시퀀스들을 학습된 오토인코더 모델의 입력으로 하여 상기 각각의 노드에 대한 임베딩 벡터들을 획득하는 과정;
    상기 각각의 노드에 대한 임베딩 벡터들을 이용하여 상기 각각의 가중치 그래프의 최종 임베딩 벡터들을 획득하는 과정; 및
    상기 각각의 가중치 그래프를 분류함으로서 상기 가중치 그래프들의 유사 여부를 판단하는 과정을 포함하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법.
  2. 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하는 과정; 및
    상기 각각의 노드에 대한 노드-가중치 시퀀스들을 이용하여 오토인코더 모델을 학습시키는 과정을 포함하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 각각의 가중치 그래프는 복수개의 노드들과 노드들 사이를 연결하는 간선에 부여된 가중치 정보를 포함하며,
    상기 노드-가중치 시퀀스는 간선으로 연결된 2개의 노드들의 정보 및 간선에 부여된 가중치에 대한 정보로 이뤄진 구성요소들을 포함하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 오토인코더 모델은 LSTM 오토인코더인 것을 특징으로 하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 제어 방법.
  5. 가중치 그래프들에 대한 정보 및 학습된 오토인코더 모델에 대한 정보를 저장한 메모리;
    상기 메모리를 제어하는 제어부를 포함하며, 상기 제어부는,
    상기 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하고,
    상기 각각의 노드에 대한 노드-가중치 시퀀스들을 상기 학습된 오토인코더 모델의 입력으로 하여 상기 각각의 노드에 대한 임베딩 벡터들을 획득하고,
    상기 각각의 노드에 대한 임베딩 벡터들을 이용하여 상기 각각의 가중치 그래프의 최종 임베딩 벡터들을 획득하고,
    상기 각각의 가중치 그래프를 분류함으로서 상기 가중치 그래프들의 유사 여부를 판단하도록 제어하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치.
  6. 가중치 그래프들에 대한 정보를 저장한 메모리;
    상기 메모리를 제어하는 제어부를 포함하며, 상기 제어부는,
    상기 가중치 그래프들로부터 각각의 가중치 그래프의 각각의 노드에 대한 노드-가중치 시퀀스들을 획득하고,
    상기 각각의 노드에 대한 노드-가중치 시퀀스들을 이용하여 오토인코더 모델을 학습시키도록 제어하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치.
  7. 제5항 또는 제6항에 있어서,
    상기 각각의 가중치 그래프는 복수개의 노드들과 노드들 사이를 연결하는 간선에 부여된 가중치 정보를 포함하며,
    상기 노드-가중치 시퀀스는 간선으로 연결된 2개의 노드들의 정보 및 간선에 부여된 가중치에 대한 정보로 이뤄진 구성요소들을 포함하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치.
  8. 제5항 또는 제6항에 있어서,
    상기 오토인코더 모델은 LSTM 오토인코더인 것을 특징으로 하는,
    그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치.
PCT/KR2020/012648 2019-11-29 2020-09-18 유사도를 판단하는 전자 장치 및 그 제어 방법 WO2021107360A2 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020190157364A KR102279210B1 (ko) 2019-11-29 2019-11-29 항목 분류 체계를 고려한 시퀀스 간 유사도를 판단하는 전자 장치 및 그 제어 방법
KR10-2019-0157373 2019-11-29
KR10-2019-0157364 2019-11-29
KR1020190157373A KR102337678B1 (ko) 2019-11-29 2019-11-29 그래프 유사 여부를 분석하기 위하여 기계학습을 이용한 전자 장치 및 그 제어 방법

Publications (2)

Publication Number Publication Date
WO2021107360A2 true WO2021107360A2 (ko) 2021-06-03
WO2021107360A3 WO2021107360A3 (ko) 2021-07-22

Family

ID=76129736

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/012648 WO2021107360A2 (ko) 2019-11-29 2020-09-18 유사도를 판단하는 전자 장치 및 그 제어 방법

Country Status (1)

Country Link
WO (1) WO2021107360A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113949646A (zh) * 2021-10-15 2022-01-18 安徽大学 一种基于深度学习的Web服务QoS预测方法
US11611451B1 (en) * 2020-06-05 2023-03-21 Google Llc Movement path detection for anomalies and patterns from sensors in a home or other environment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544539B2 (en) * 2016-09-29 2023-01-03 Tsinghua University Hardware neural network conversion method, computing device, compiling method and neural network software and hardware collaboration system
KR102198265B1 (ko) * 2018-03-09 2021-01-04 강원대학교 산학협력단 신경망을 이용한 사용자 의도분석 시스템 및 방법
EP3564889A1 (en) * 2018-05-04 2019-11-06 The Boston Consulting Group, Inc. Systems and methods for learning and predicting events

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11611451B1 (en) * 2020-06-05 2023-03-21 Google Llc Movement path detection for anomalies and patterns from sensors in a home or other environment
CN113949646A (zh) * 2021-10-15 2022-01-18 安徽大学 一种基于深度学习的Web服务QoS预测方法
CN113949646B (zh) * 2021-10-15 2023-06-13 安徽大学 一种基于深度学习的Web服务QoS预测方法

Also Published As

Publication number Publication date
WO2021107360A3 (ko) 2021-07-22

Similar Documents

Publication Publication Date Title
WO2020159232A1 (en) Method, apparatus, electronic device and computer readable storage medium for image searching
WO2018088794A2 (ko) 디바이스가 이미지를 보정하는 방법 및 그 디바이스
WO2020190112A1 (en) Method, apparatus, device and medium for generating captioning information of multimedia data
WO2019027240A1 (en) ELECTRONIC DEVICE AND METHOD FOR PROVIDING A RESEARCH RESULT THEREOF
WO2020091210A1 (en) System and method of integrating databases based on knowledge graph
WO2018143630A1 (ko) 상품을 추천하는 디바이스 및 방법
WO2018093182A1 (en) Image management method and apparatus thereof
WO2018174603A1 (ko) 인공 지능 기술 기반의 머신 러닝을 사용하는 특허 도면 이미지에 도면 부호의 설명이 표시되도록 처리하는 방법 및 장치
WO2020235696A1 (ko) 스타일을 고려하여 텍스트와 음성을 상호 변환하는 인공 지능 장치 및 그 방법
WO2021107360A2 (ko) 유사도를 판단하는 전자 장치 및 그 제어 방법
WO2020138928A1 (en) Information processing method, apparatus, electrical device and readable storage medium
WO2019182265A1 (ko) 인공 지능 기기 및 그의 동작 방법
WO2019225961A1 (en) Electronic device for outputting response to speech input by using application and operation method thereof
WO2017209564A1 (ko) 앱 리스트 제공 방법 및 그 장치
WO2020138564A1 (ko) 전자 장치
WO2022005188A1 (en) Entity recognition method, apparatus, electronic device and computer readable storage medium
WO2016017992A1 (en) Method and device for classifying content
EP3545436A1 (en) Electronic apparatus and method of operating the same
WO2018117685A1 (en) System and method of providing to-do list of user
WO2019135621A1 (ko) 영상 재생 장치 및 그의 제어 방법
WO2020230933A1 (ko) 사용자의 음성을 인식하는 인공 지능 장치 및 그 방법
AU2018310111B2 (en) Electronic device and method for providing search result thereof
WO2020184748A1 (ko) 교통 정보에 기반한 오토 스탑 시스템을 제어하는 인공 지능 장치 및 그 방법
EP3552163A1 (en) System and method of providing to-do list of user
WO2022039334A1 (ko) 신경망 프로세싱 유닛

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: 20892152

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20892152

Country of ref document: EP

Kind code of ref document: A2