KR102136222B1 - System and method for clustering graph data and computer program for the same - Google Patents

System and method for clustering graph data and computer program for the same Download PDF

Info

Publication number
KR102136222B1
KR102136222B1 KR1020190119286A KR20190119286A KR102136222B1 KR 102136222 B1 KR102136222 B1 KR 102136222B1 KR 1020190119286 A KR1020190119286 A KR 1020190119286A KR 20190119286 A KR20190119286 A KR 20190119286A KR 102136222 B1 KR102136222 B1 KR 102136222B1
Authority
KR
South Korea
Prior art keywords
clustering
graph data
cluster
community detection
result
Prior art date
Application number
KR1020190119286A
Other languages
Korean (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
Application filed by 주식회사 비트나인 filed Critical 주식회사 비트나인
Priority to KR1020190119286A priority Critical patent/KR102136222B1/en
Application granted granted Critical
Publication of KR102136222B1 publication Critical patent/KR102136222B1/en

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
    • G06F16/9024Graphs; Linked lists
    • 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/906Clustering; Classification

Landscapes

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

Abstract

A system for clustering graph data includes: a graph database storage unit configured to store graph data including one or more nodes and one or more edges between the nodes; an event processing unit configured to receive a user request, an event occurrence, or a clustering request according to a preset calling period, and to provide a clustering result for the graph data; and a clustering processing unit configured to generate the clustering result from the graph data by using one selected from a plurality of preset community detection algorithms when called by the event processing unit. The clustering processing unit may determine one community detection algorithm by comparing the clustering result of each of the plurality of community detection algorithms with a preset correct answer. Accordingly, by automating the selection of the community detection algorithm, it is possible to overcome limitations on input and time that can be input, and continuously search for graph data without the intervention of an analyst.

Description

그래프 데이터 클러스터링 시스템 및 방법과, 이를 위한 컴퓨터 프로그램 { SYSTEM AND METHOD FOR CLUSTERING GRAPH DATA AND COMPUTER PROGRAM FOR THE SAME }Graph data clustering system and method and computer program therefor {SYSTEM AND METHOD FOR CLUSTERING GRAPH DATA AND COMPUTER PROGRAM FOR THE SAME}

실시예들은 그래프 데이터 클러스터링(clustering) 시스템 및 방법과 이를 위한 컴퓨터 프로그램에 관한 것으로, 보다 상세하게는 저장 관리되고 있는 그래프 데이터에 대해 지속적으로 연관 관계를 통한 기본적인 정답지를 찾아내고, 다양한 커뮤니티 검출(community detection) 알고리즘의 군집 결과를 정답지와 비교하여 검증하고 이를 통해 자동으로 커뮤니티 검출 알고리즘을 선정하는 기술에 대한 것이다. Embodiments relate to a graph data clustering system and method and a computer program for the same, and more specifically, to find a basic answer sheet through a continuous association of graph data that is stored and managed, and to detect various communities (community) detection) It is about the technique of comparing the cluster result of the algorithm with the correct answer sheet and automatically selecting the community detection algorithm through this.

최근 측정기술의 발달과 저장기술의 발달로 기존에는 관심을 갖지 못하였던 다양한 종류의 데이터들을 고해상도로 저장할 수 있게 되었으며, 이러한 부가 데이터로부터 새로운 통찰을 얻는 분석 기술이 중요한 기술 요소로 부상되었다. With the recent development of measurement technology and the development of storage technology, various types of data that were not previously interested can be stored in high resolution, and an analysis technology that obtains new insights from these additional data has emerged as an important technology element.

이러한 정보통신 기술의 패러다임 변화는 다양한 형태의 실세계를 표현하기 위한 다양한 데이터 모델 및 데이터 저장 관리의 기술의 발전을 야기하였으며, 이를 시각화하기 위한 기술 또한 고도화되고 있다. 대표적인 예시로 데이터 객체간 관계가 복잡한 경우에 이를 다루기 위한 그래프 데이터 형태와 그래프 데이터베이스 기술이 있다. This paradigm shift in information and communication technology has led to the development of various data models and data storage management technologies to represent various forms of the real world, and technologies to visualize them are also being advanced. Typical examples are graph data types and graph database technologies for dealing with complex data objects.

테이블을 사전에 정의한 스키마(schema) 구조 형태에 맞추어 각 객체들을 저장하는 관계형 데이터베이스에 비하여, 그래프 데이터베이스는 각 데이터들을 하나의 객체로서 저장하고 각 객체의 특성을 해치치 않으면서 객체 간의 연관 관계를 지속적으로 확장할 수 있어 정형 및 비정형 데이터의 통합적인 저장 관리에 유리하다. Compared to a relational database that stores each object according to a schema structure type that defines a table in advance, the graph database stores each data as one object and continuously maintains the relationship between objects without compromising the characteristics of each object. It is advantageous for the integrated storage management of structured and unstructured data.

예컨대, 도 1은 그래프 데이터베이스에 저장되는 그래프 데이터의 예시적인 형태를 나타내는 것으로서, [R1: A → B], [R2: A+B → C+D], [R3: D → E]의 관계를 가지는 화학반응을 그래프 데이터로 나타낸 것이다. A 내지 E는 화학반응에 참여하는 반응 물질을 나타내고, 이는 그래프 데이터의 각 노드(node)에 해당한다. R1 내지 R3는 화학 반응을 나타내고, 이는 그래프 데이터의 각 에지(edge)에 해당한다.For example, FIG. 1 shows an exemplary form of graph data stored in a graph database, and shows the relationship between [R1: A → B], [R2: A+B → C+D], and [R3: D → E]. Eggplant is a graph showing the chemical reaction. A to E represent reaction substances participating in the chemical reaction, which correspond to each node of the graph data. R1 to R3 represent chemical reactions, which correspond to each edge of the graph data.

그래프 데이터의 저장 구조 특성은, 다양한 형태를 지닌 노드(또는, 정점(vertex))와 에지 데이터 객체를 저장하고 서로 상이한 데이터 간의 연관관계를 관리하는 데에 적합한 환경을 제공한다. 이러한 수 많은 노드 들은 연관관계에 따라 다양한 서로 관계가 있거나 관계가 있는 특성을 가지는 데이터 객체들의 군집인 커뮤니티(community)를 형성할 수 있으며, 이를 통해 직접적인 연관성이 없는 노드들이라 하여도 같은 커뮤니티로 분류가 된다면 간접적으로 연관성을 찾아낼 수 있다. The storage structure characteristics of graph data provide an environment suitable for storing nodes (or vertices) having various forms and edge data objects and managing relationships between different data. Such a large number of nodes can form a community, which is a cluster of data objects that have various interrelated or related characteristics according to the association, and through this, the nodes are classified into the same community even if they are not directly related. If you can, you can indirectly find a connection.

예를 들어, 사이버 보안 및 위협정보 데이터를 그래프 데이터로 표현할 경우, 특정 해커 집단 A가 침해활동을 하면서 사용한 파일, 유포 경로, 공격IP가 있고, 특정 해커 집단 B가 침해활동에서 사용한 파일, 유포경로, 공격IP가 있다고 가정한다. 이때 해커 집단 A 및 B가 어떤 특정한 자원을 공유하거나, 같은 유포경로를 사용했다면 이를 그래프 패턴탐색을 통해 발견할 수도 있겠지만, 그렇지 않은 경우에도, 커뮤니티 검출 알고리즘을 적용하여 분류된 수 많은 커뮤니티 중 해커 집단 A 및 B가 같은 커뮤니티에 속한다면 이 두 집단이 실제로는 다른 집단으로 알려진다 하더라도 클러스터링(clustering)의 결과를 통해 양 집단이 동일한 집단일 가능성을 유추할 수 있다.For example, when cyber security and threat information data is expressed as graph data, there are files, distribution paths, and attack IPs used by a specific hacker group A while invading, and files and distribution paths used by a specific hacker group B in the intrusion activity. It is assumed that there is an attack IP. In this case, if the hacker groups A and B share a specific resource or use the same diffusion path, it may be found through graph pattern search, but even if not, the hacker group among the numerous communities classified by applying the community detection algorithm If A and B belong to the same community, it is possible to infer the possibility that both groups are the same group through the results of clustering even though these two groups are actually known as different groups.

이러한 커뮤니티 검출 알고리즘은 여러 가지가 존재하는데, 대표적인 알고리즘은 루뱅(Louvain) 방법, 거반-뉴먼(Girvan-Newman) 방법, 인포맵(Infomap) 알고리즘, 뉴먼 스펙트럼(Newman-spectral) 알고리즘 등이 있다. 각각의 알고리즘들은 서로 활용하는 방식이 상이하고 그래프 데이터의 모양에 따라 도출되는 결과가 상이하다. 그러므로 서로 상이한 그래프 모델들을 가지고 있는 저장소에 활용하는 데에 있어서, 전문가의 도움이 없이는 적합한 커뮤니티 검출 알고리즘을 선정하고 적용하는 것이 쉽지 않으며, 설령 적용한 경우에도 이의 적합성을 검증하는 것이 쉽지 않은 문제가 있다. There are a number of such community detection algorithms, and the representative algorithms include the Louvain method, the Givan-Newman method, the Infomap algorithm, and the Newman-spectral algorithm. Each algorithm has a different method of utilizing each other, and the results derived according to the shape of the graph data are different. Therefore, it is not easy to select and apply a suitable community detection algorithm without the help of an expert in using it in a repository having different graph models, and it is not easy to verify its suitability even when applied.

등록특허공보 제10-1697875호Registered Patent Publication No. 10-1697875

본 발명의 일 측면에 따르면, 저장 관리되고 있는 그래프 데이터에 대해 지속적으로 연관 관계를 통한 기본적인 정답지를 찾아내고, 다양한 커뮤니티 검출(community detection) 알고리즘의 군집 결과를 정답지와 비교하여 검증하고 이를 통해 자동으로 커뮤니티 검출 알고리즘을 선정하여 최적화된 클러스터링(clustering)이 가능한 그래프 데이터 클러스터링 시스템 및 방법과, 이를 위한 컴퓨터 프로그램을 제공할 수 있다. According to an aspect of the present invention, a basic correct answer sheet is continuously found through a correlation with respect to graph data that is stored and managed, and a cluster result of various community detection algorithms is compared with the correct answer sheet and verified automatically. By selecting a community detection algorithm, it is possible to provide a graph data clustering system and method capable of optimized clustering, and a computer program therefor.

일 실시예에 따른 그래프 데이터 클러스터링(clustering) 시스템은, 하나 이상의 노드 및 상기 노드 사이의 하나 이상의 에지를 포함하는 그래프 데이터를 저장하도록 구성된 그래프 데이터베이스 저장부; 사용자의 요청, 이벤트 발생 또는 미리 설정된 호출 주기에 의한 클러스터링 요청을 수신하고, 상기 그래프 데이터에 대한 클러스터링 결과를 제공하도록 구성된 이벤트 처리부; 및 상기 이벤트 처리부에 의해 호출되어, 미리 설정된 복수 개의 커뮤니티 검출(community detection) 알고리즘 중 선택된 어느 하나의 커뮤니티 검출 알고리즘을 이용하여 상기 그래프 데이터로부터 상기 클러스터링 결과를 생성하도록 구성된 클러스터링 처리부를 포함한다.A graph data clustering system according to an embodiment includes: a graph database storage unit configured to store graph data including one or more nodes and one or more edges between the nodes; An event processing unit configured to receive a user request, an event occurrence, or a clustering request according to a preset call cycle, and provide clustering results for the graph data; And a clustering processing unit that is called by the event processing unit and configured to generate the clustering result from the graph data by using any one community detection algorithm selected from a plurality of preset community detection algorithms.

상기 클러스터링 처리부는, 상기 복수 개의 커뮤니티 검출 알고리즘 각각에 의한 군집 결과를 미리 설정된 정답지와 비교하여 상기 어느 하나의 커뮤니티 검출 알고리즘을 결정하도록 더 구성된다.The clustering processing unit is further configured to determine a community detection algorithm by comparing a cluster result by each of the plurality of community detection algorithms with a preset correct answer sheet.

일 실시예에서, 상기 클러스터링 처리부는, 상기 복수 개의 커뮤니티 검출 알고리즘 각각에 의한 군집 결과와 상기 정답지의 정규화된 상호 정보 값에 기초하여 상기 어느 하나의 커뮤니티 검출 알고리즘을 결정하도록 더 구성된다.In one embodiment, the clustering processing unit is further configured to determine any one community detection algorithm based on the clustering result of each of the plurality of community detection algorithms and the normalized mutual information value of the correct answer sheet.

일 실시예에서, 상기 클러스터링 처리부는, 상기 정답지를 입력받아 저장하도록 구성된 클러스터링 정답지 처리기; 상기 복수 개의 커뮤니티 검출 알고리즘 각각에 의한 군집 결과를 생성하도록 구성된 커뮤니티 검출 알고리즘 수행기; 상기 정규화된 상호 정보 값을 생성하도록 구성된 검증 계산기; 및 상기 복수 개의 커뮤니티 검출 알고리즘 중 상기 정규화된 상호 정보 값이 가장 큰 커뮤니티 검출 알고리즘을 이용한 군집 결과를 상기 클러스터링 결과로 결정하도록 구성된 알고리즘 선별기를 포함한다.In one embodiment, the clustering processing unit, a clustering correct answer processor configured to receive and store the correct answer sheet; A community detection algorithm performer configured to generate a cluster result by each of the plurality of community detection algorithms; A verification calculator configured to generate the normalized cross information value; And an algorithm selector configured to determine a cluster result using the community detection algorithm having the largest normalized mutual information value among the plurality of community detection algorithms as the clustering result.

일 실시예에서, 상기 검증 계산기는, 상기 정답지에 상응하는 제1 군집 결과를 A, 상기 커뮤니티 검출 알고리즘에 의한 제2 군집 결과를 B, 상기 제1 군집 결과의 군집 개수를 cA, 상기 제2 군집 결과의 군집 개수를 cB, 상기 그래프 데이터의 노드의 수를 N, 상기 제1 군집 결과에서 임의의 자연수인 i번째 군집에 소속된 노드의 개수를 Ni, 상기 제2 군집 결과에서 임의의 자연수인 j번째 군집에 소속된 노드의 개수를 Nj, 상기 제1 군집 결과의 i번째 군집에 속한 노드 중 상기 제2 군집 결과의 j번째 군집에 속한 노드의 수를 Nij라 할 경우,

Figure 112019098909212-pat00001
의 수학식에 의하여 I(A, B)를 상기 정규화된 상호 정보 값으로 결정하도록 더 구성된다.In one embodiment, the verification calculator, the first cluster result corresponding to the correct answer sheet A, the second cluster result by the community detection algorithm B, the number of clusters of the first cluster result c A , the second The number of clusters in the cluster result is C B , the number of nodes in the graph data is N, and the number of nodes belonging to the i th cluster, which is an arbitrary natural number in the first cluster result, is N i , and the second cluster result is random. If the number of nodes belonging to the j-th cluster, which is a natural number, is N j , and the number of nodes belonging to the j-th cluster of the second cluster result among the nodes belonging to the i-th cluster of the first cluster result is N ij ,
Figure 112019098909212-pat00001
It is further configured to determine I (A, B) as the normalized mutual information value by the equation of.

일 실시예에 따른 그래프 데이터 클러스터링 방법은, 그래프 데이터 클러스터링 시스템에 하나 이상의 노드 및 상기 노드 사이의 하나 이상의 에지를 포함하는 그래프 데이터를 저장하는 단계; 상기 그래프 데이터 클러스터링 시스템이, 사용자의 요청, 이벤트 발생 또는 미리 설정된 호출 주기에 의한 클러스터링 요청을 수신하는 단계; 상기 그래프 데이터 클러스터링 시스템이, 미리 설정된 복수 개의 커뮤니티 검출 알고리즘 각각에 의한 군집 결과를 미리 설정된 정답지와 비교하여 상기 복수 개의 커뮤니티 검출 알고리즘 중 어느 하나의 커뮤니티 검출 알고리즘을 결정하는 단계; 상기 그래프 데이터 클러스터링 시스템이, 결정된 상기 어느 하나의 커뮤니티 검출 알고리즘을 이용하여 상기 그래프 데이터로부터 상기 클러스터링 결과를 생성하는 단계; 및 상기 그래프 데이터 클러스터링 시스템이, 상기 클러스터링 결과를 제공하는 단계를 포함한다.A graph data clustering method according to an embodiment may include storing graph data including one or more nodes and one or more edges between the nodes in a graph data clustering system; Receiving, by the graph data clustering system, a user's request, an event occurrence, or a clustering request by a preset call cycle; Determining, by the graph data clustering system, a community detection algorithm of one of the plurality of community detection algorithms by comparing a cluster result of each of the plurality of community detection algorithms with a preset correct answer sheet; Generating, by the graph data clustering system, the clustering result from the graph data using the determined community detection algorithm; And the graph data clustering system providing the clustering result.

일 실시예에서, 상기 어느 하나의 커뮤니티 검출 알고리즘을 결정하는 단계는, 상기 그래프 데이터 클러스터링 시스템이, 상기 복수 개의 커뮤니티 검출 알고리즘 각각에 의한 군집 결과와 상기 정답지의 정규화된 상호 정보 값을 산출하는 단계를 포함한다.In one embodiment, the step of determining any one of the community detection algorithms includes: calculating, by the graph data clustering system, a cluster result by each of the plurality of community detection algorithms and a normalized mutual information value of the correct answer sheet. Includes.

일 실시예에서, 상기 어느 하나의 커뮤니티 검출 알고리즘을 결정하는 단계는, 상기 그래프 데이터 클러스터링 시스템이, 상기 복수 개의 커뮤니티 검출 알고리즘 중 상기 정규화된 상호 정보 값이 가장 큰 커뮤니티 검출 알고리즘을 상기 어느 하나의 커뮤니티 검출 알고리즘으로 결정하는 단계를 더 포함한다.In one embodiment, the determining of any one of the community detection algorithms may include: the graph data clustering system, the community detection algorithm having the largest normalized mutual information value among the plurality of community detection algorithms, And determining with a detection algorithm.

일 실시예에서, 상기 정규화된 상호 정보 값을 산출하는 단계는, 상기 그래프 데이터 클러스터링 시스템이, 상기 정답지에 상응하는 제1 군집 결과를 A, 상기 커뮤니티 검출 알고리즘에 의한 제2 군집 결과를 B, 상기 제1 군집 결과의 군집 개수를 cA, 상기 제2 군집 결과의 군집 개수를 cB, 상기 그래프 데이터의 노드의 수를 N, 상기 제1 군집 결과에서 임의의 자연수인 i번째 군집에 소속된 노드의 개수를 Ni, 상기 제2 군집 결과에서 임의의 자연수인 j번째 군집에 소속된 노드의 개수를 Nj, 상기 제1 군집 결과의 i번째 군집에 속한 노드 중 상기 제2 군집 결과의 j번째 군집에 속한 노드의 수를 Nij라 할 경우,

Figure 112019098909212-pat00002
의 수학식에 의하여 I(A, B)를 상기 정규화된 상호 정보 값으로 결정하는 단계를 포함한다.In one embodiment, the step of calculating the normalized cross-information value includes: the graph data clustering system A, a first cluster result corresponding to the correct answer sheet A, and a second cluster result by the community detection algorithm B, and The number of clusters in the first cluster result c A , the number of clusters in the second cluster result c B , the number of nodes in the graph data N, and the node belonging to the i th cluster, which is an arbitrary natural number in the first cluster result The number of N i , the number of nodes belonging to the j th cluster, which is an arbitrary natural number in the second cluster result, is N j , and the j th of the second cluster result among nodes belonging to the i th cluster of the first cluster result. If the number of nodes in the cluster is N ij ,
Figure 112019098909212-pat00002
And determining I(A, B) as the normalized mutual information value according to Equation of

일 실시예에 따른 컴퓨터 프로그램은 하드웨어와 결합되어 전술한 실시예들에 따른 그래프 데이터 클러스터링 방법을 실행하기 위한 것으로서 컴퓨터로 판독 가능한 기록매체에 저장된 것일 수 있다. The computer program according to an embodiment may be stored in a computer-readable recording medium as a combination of hardware and for executing a graph data clustering method according to the above-described embodiments.

본 발명의 일 측면에 따른 그래프 데이터 클러스터링(clustering) 시스템 및 방법을 이용하면, 지속적으로 변화하는 그래프 데이터의 분류 작업에 대해, 자동화된 커뮤니티 검출(community detection) 알고리즘 선정 과정을 통해 최적의 커뮤니티 검출 알고리즘을 적용할 수 있고, 그 결과 지속적이고 영속적인 그래프 데이터 내의 클러스터 관리가 가능한 이점이 있다. Using the graph data clustering system and method according to an aspect of the present invention, an optimal community detection algorithm through an automated community detection algorithm selection process for a classification task of continuously changing graph data Can be applied, and as a result, it is possible to manage clusters in continuous and persistent graph data.

예컨대, 본 발명의 일 측면에 따른 그래프 데이터 클러스터링 시스템 및 방법에 의하면, 사용자의 그래프 데이터에 새로운 정보가 저장될 때마다, 사람이 수작업으로 이를 분류하는 대신 적합한 커뮤니티 검출 알고리즘을 자동으로 선정하여 이를 기반으로 클러스터링을 수행함으로써, 분석에 투입될 수 있는 인력 및 시간에 대한 제한을 극복하고 인력과 시간의 효율적인 사용이 가능한 이점이 있다. For example, according to the graph data clustering system and method according to an aspect of the present invention, whenever a new information is stored in a user's graph data, a user selects a suitable community detection algorithm automatically instead of manually classifying it and bases it By performing the clustering, it overcomes the limitations on manpower and time that can be put into analysis and has the advantage of efficient use of manpower and time.

본 발명의 일 측면에 따른 그래프 데이터 클러스터링 시스템 및 방법은, 자동화된 최적 알고리즘 탐색을 통하여, 분석가의 개입이 없이도 공통 정보에 대한 지속적인 탐색을 수행하는 인공지능(Artificial Intelligence; AI) 기술 기반의 기술로 활용될 수 있다. The graph data clustering system and method according to an aspect of the present invention is a technology based on artificial intelligence (AI) technology that continuously searches for common information without an analyst's intervention through automated optimal algorithm search. Can be utilized.

도 1은 그래프 데이터베이스에 저장되는 그래프 데이터의 예시적인 형태를 나타낸 개념도이다.
도 2는 일 실시예에 따른 그래프 데이터 클러스터링(clustering) 시스템의 개략적인 블록도이다.
도 3은 일 실시예에 따른 그래프 데이터 클러스터링 방법의 순서도이다.
도 4는 일 실시예에 따른 그래프 데이터 클러스터링 방법에 의해 처리되는 예시적인 원본 그래프 데이터이다.
도 5는 도 4의 원본 그래프 데이터에 대한 클러스터링 정답지를 나타내는 이미지이다.
도 6a 내지 6c는 도 4의 원본 그래프 데이터에 대한 다양한 커뮤니티 검출(community detection) 알고리즘에 의한 클러스터링 결과를 나타내는 이미지이다.
1 is a conceptual diagram showing an exemplary form of graph data stored in a graph database.
2 is a schematic block diagram of a graph data clustering system according to an embodiment.
3 is a flowchart of a graph data clustering method according to an embodiment.
4 is exemplary original graph data processed by a graph data clustering method according to an embodiment.
FIG. 5 is an image showing a correct answer sheet for clustering on the original graph data of FIG. 4.
6A to 6C are images showing clustering results by various community detection algorithms for the original graph data of FIG. 4.

이하에서, 도면을 참조하여 본 발명의 실시예들에 대하여 상세히 살펴본다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

도 2는 일 실시예에 따른 그래프 데이터 클러스터링(clustering) 시스템의 개략적인 블록도이다.2 is a schematic block diagram of a graph data clustering system according to an embodiment.

일 실시예에서, 그래프 데이터 클러스터링 시스템은 이벤트(event) 처리부(10), 클러스터링 처리부(20), 및 그래프데이터베이스 저장부(30)를 포함한다. 일 실시예에서, 클러스터링 처리부(20)는 정답지 처리기(21), 커뮤니티 검출(community detection) 알고리즘 수행기(22), 검증 계산기(23) 및 알고리즘 선별기(24)를 포함한다. In one embodiment, the graph data clustering system includes an event processing unit 10, a clustering processing unit 20, and a graph database storage unit 30. In one embodiment, the clustering processing unit 20 includes a correct answer sheet processor 21, a community detection algorithm performer 22, a verification calculator 23, and an algorithm selector 24.

실시예들에 따른 그래프 데이터 클러스터링 시스템은 전적으로 하드웨어이거나, 또는 부분적으로 하드웨어이고 부분적으로 소프트웨어인 측면을 가질 수 있다. 예컨대, 그래프 데이터 클러스터링 시스템에 포함된 각 부(unit)(10, 20, 30)는 특정 형식 및 내용의 데이터를 처리하거나 또는/또한 전자통신 방식으로 주고받기 위한 하드웨어 및 이에 관련된 소프트웨어를 통칭할 수 있다. 본 명세서에서 "부", "모듈", "장치", "단말기", "서버" 또는 "시스템" 등의 용어는 하드웨어 및 해당 하드웨어에 의해 구동되는 소프트웨어의 조합을 지칭하는 것으로 의도된다. 예를 들어, 하드웨어는 CPU 또는 다른 프로세서(processor)를 포함하는 데이터 처리 기기일 수 있다. 또한, 하드웨어에 의해 구동되는 소프트웨어는 실행중인 프로세스, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램(program) 등을 지칭할 수 있다.The graph data clustering system according to the embodiments may have aspects that are entirely hardware, or partially hardware and partially software. For example, each unit (10, 20, 30) included in the graph data clustering system may collectively refer to hardware and software related to processing data of a specific format and content and/or electronic communication. have. The terms "part", "module", "device", "terminal", "server" or "system" in this specification are intended to refer to a combination of hardware and software driven by the hardware. For example, the hardware can be a data processing device that includes a CPU or other processor. Also, software driven by hardware may refer to a running process, an object, an executable, a thread of execution, a program, or the like.

또한, 본 실시예에 따른 그래프 데이터 클러스터링 시스템을 구성하는 각각의 요소는 반드시 서로 물리적으로 구분되는 별개의 장치를 지칭하는 것으로 의도되지 않는다. 즉, 도 2의 이벤트 처리부(10), 클러스터링 처리부(20) 및 그래프 데이터베이스 저장부(30)는 그래프 데이터 클러스터링 시스템을 구성하는 하드웨어를 해당 하드웨어에 의해 수행되는 동작에 따라 기능적으로 구분한 것일 뿐, 반드시 각각의 부가 서로 독립적으로 구비되어야 하는 것이 아니다. 물론, 실시예에 따라서는 이벤트 처리부(10), 클러스터링 처리부(20) 및 그래프 데이터베이스 저장부(30) 중 하나 이상이 서로 물리적으로 구분되는 별개의 장치로 구현되는 것도 가능하다.In addition, each element constituting the graph data clustering system according to the present embodiment is not intended to refer to separate devices that are physically separated from each other. That is, the event processing unit 10, the clustering processing unit 20 and the graph database storage unit 30 of FIG. 2 are only functionally classifying hardware constituting the graph data clustering system according to operations performed by the corresponding hardware. Each part does not necessarily have to be provided independently of each other. Of course, depending on the embodiment, one or more of the event processing unit 10, the clustering processing unit 20, and the graph database storage unit 30 may be implemented as separate devices that are physically separated from each other.

그래프 데이터베이스 저장부(30)는 하나 이상의 그래프 데이터를 포함하는 그래프 데이터베이스를 저장한다. 그래프 데이터베이스 저장부(30)에 저장된 그래프 데이터베이스의 그래프 데이터는, 데이터 객체에 각각 상응하는 복수 개의 노드(node) 및 각 노드 사이를 연결하고 데이터 객체 사이의 연관관계를 나타내는 에지(edge)를 포함한다. 이때, 하나의 에지에 복수 개의 노드가 동시에 연결될 수도 있다. 또한, 각각의 에지는 방향성을 가지는 벡터일 수 있다. 또한, 실시예들에서 그래프 데이터는 객체 사이의 에지에 여러 개의 관계 및 가중치가 존재할 수 있는 프로퍼티 그래프(property graph)일 수도 있으나, 이에 한정되는 것은 아니다.The graph database storage unit 30 stores a graph database including one or more graph data. The graph data of the graph database stored in the graph database storage unit 30 includes a plurality of nodes corresponding to each data object, and edges connecting each node and indicating an association between the data objects. . At this time, a plurality of nodes may be simultaneously connected to one edge. Also, each edge may be a directional vector. Further, in embodiments, the graph data may be a property graph in which multiple relationships and weights may exist at edges between objects, but is not limited thereto.

본 실시예에 따른 그래프 데이터 클러스터링 시스템은, 전술한 것과 같은 그래프 데이터베이스의 그래프 데이터에 대한 클러스터링이 수행되어야 하는 경우, 다양한 커뮤니티 검출 알고리즘에 의한 군집 결과를 사전에 설정된 정답지와 비교하여 적용할 커뮤니티 검출 알고리즘을 결정한다. In the graph data clustering system according to the present embodiment, when clustering of graph data of the graph database as described above is to be performed, a community detection algorithm to be applied by comparing a cluster result by various community detection algorithms with a preset correct answer sheet Decide.

상기 목적을 위하여, 이벤트 처리부(10)는 특정 시간 또는 특정 이벤트에 따라 발생하는 사용자로부터의 클러스터링 요청에 따라 또는 주기적으로 클러스터링 처리부(20)를 호출할 수 있다. 이때 클러스터링 요청이란, 그래프 데이터베이스 내의 데이터 객체들 사이의 연관관계를 기반으로 데이터 객체들을 하나 또는 복수 개의 군집(또는, 클러스터)으로 분류하기 위한 요청을 의미한다. For this purpose, the event processing unit 10 may call the clustering processing unit 20 periodically or periodically according to a clustering request from a user occurring according to a specific time or specific event. In this case, the clustering request means a request for classifying data objects into one or a plurality of clusters (or clusters) based on an association between data objects in the graph database.

클러스터링 처리부(20)는, 루뱅(Louvain) 방법, 거반-뉴먼(Girvan-Newman) 방법, 인포맵(Infomap) 알고리즘, 뉴먼 스펙트럼(Newman-spectral) 알고리즘 등 다양한 커뮤니티 검출 알고리즘을 수행할 수 있도록 구성된다. 이벤트 처리부(10)에 의해 호출될 경우, 클러스터링 처리부(20)는 이들 알고리즘 각각에 의한 군집 결과를 사전에 설정된 정답지와 비교하여, 사용자에게 제공할 클러스터링 결과에 적용하기 위한 커뮤니티 검출 알고리즘을 자동으로 결정하도록 구성된다. The clustering processing unit 20 is configured to perform various community detection algorithms, such as the Louvain method, the Givan-Newman method, the Infomap algorithm, and the Newman-spectral algorithm. When called by the event processing unit 10, the clustering processing unit 20 automatically compares a cluster result by each of these algorithms with a preset correct answer sheet, and automatically determines a community detection algorithm for applying to the clustering result to be provided to the user. It is configured to.

본 명세서에서 정답지란, 본 발명이 속하는 기술 분야에서 다수의 정보들을 대상으로 일정 수준의 효용성이 검증된 분류 방법에 의해 그래프 데이터를 클러스터링한 결과를 지칭하며, 정답지는 분석가 또는 실시예들에 따른 그래프 데이터 클러스터링의 사용자에 의하여 사전에 설정될 수 있다. In this specification, the correct answer sheet refers to a result of clustering graph data by a classification method in which a certain level of effectiveness is verified for a plurality of information in the technical field to which the present invention belongs, and the correct answer sheet is a graph according to an analyst or embodiments It can be set in advance by a user of data clustering.

이벤트 처리부(10)는, 이상의 과정에 의하여 생성된 그래프 데이터의 클러스터링 결과를 사용자에게 제공할 수 있다. 예컨대, 클러스터링 결과란, 그래프 데이터의 노드들이 하나 이상의 그룹으로 군집화된 결과를 의미할 수 있다. 이벤트 처리부(10)는 이러한 클러스터링 결과를 표시부(미도시)를 통해 표시하거나, 또는 사용자 장치(미도시) 상에서 표시될 수 있는 데이터 패킷의 형태로 사용자에게 제공할 수 있다. The event processing unit 10 may provide a user with a clustering result of graph data generated by the above process. For example, the clustering result may mean a result in which nodes of graph data are clustered into one or more groups. The event processing unit 10 may display the clustering result through a display unit (not shown) or provide the user with a data packet that can be displayed on a user device (not shown).

도 3은 일 실시예에 따른 그래프 데이터 클러스터링 방법의 순서도이다. 설명의 편의를 위하여, 이하에서는 도 2 및 도 3을 참조하여 본 실시예에 따른 그래프 데이터 클러스터링 방법에 대하여 설명한다. 3 is a flowchart of a graph data clustering method according to an embodiment. For convenience of description, a graph data clustering method according to this embodiment will be described below with reference to FIGS. 2 and 3.

먼저, 이벤트 처리부(10)는 이벤트 처리 주기를 확인하여 그래프 데이터베이스 저장부(30)에 저장된 그래프 데이터의 클러스터링이 필요한지 여부를 확인할 수 있다(S1). 이때 처리 주기란 반드시 일정한 시간이 도래하는 것을 의미하지 않으며, 예컨대, 사용자의 요청이 있는 경우, 그래프 데이터의 수정과 같은 특정 이벤트가 발생한 경우 등을 의미하는 것일 수도 있다. 또한, 그래프 데이터 클러스터링에 대한 사용자 요청은 사용자로부터 이벤트 처리부(10)에 입력되거나, 또는 사용자 장치(미도시)로부터 유선 및/또는 무선 네트워크를 통한 통신방식으로 이벤트 처리부(10)에 수신될 수도 있다. First, the event processing unit 10 may check whether an event processing cycle is needed to determine whether clustering of graph data stored in the graph database storage unit 30 is necessary (S1). At this time, the processing cycle does not necessarily mean that a certain time has arrived, and may be, for example, a user's request or a specific event such as modification of graph data. In addition, a user request for graph data clustering may be input from the user to the event processing unit 10 or may be received from the user device (not shown) to the event processing unit 10 in a communication method through a wired and/or wireless network. .

확인 결과 호출 주기에 해당하는 경우(사용자 요청시, 이벤트 발생시, 또는 사전에 설정된 시간 도래시 등)(S2), 이벤트 처리부(10)는 클러스터링 처리부(20)의 정답지 처리기(21)를 호출할 수 있다(S3). 정답지 처리기(21)는 사전에 설정된 정답지가 저장되는 부분이다. 정답지 처리기(21)에 정답지가 입력되어 있는 경우(S4), 커뮤니티 검출 알고리즘 수행기(22)는 정답지와의 비교를 위하여 루뱅(Louvain) 방법, 거반-뉴먼(Girvan-Newman) 방법, 인포맵(Infomap) 알고리즘, 뉴먼 스펙트럼(Newman-spectral) 알고리즘 등 다양한 커뮤니티 검출 알고리즘에 의한 데이터 객체의 군집을 수행한다(S6). If the check result corresponds to the call cycle (when a user requests, when an event occurs, or when a predetermined time arrives, etc.) (S2), the event processing unit 10 may call the correct answer sheet processor 21 of the clustering processing unit 20 Yes (S3). The correct answer sheet processor 21 is a part in which the correct answer sheet is set in advance. If a correct answer sheet is input to the correct answer sheet processor 21 (S4), the community detection algorithm performer 22 performs a Louvain method, a Givan-Newman method, and an Infomap for comparison with the correct answer sheet. Clustering of data objects by various community detection algorithms such as an algorithm and a Newman-spectral algorithm is performed (S6).

한편, 정답지 처리기(21)에 정답지가 입력되어 있지 않은 경우, 정답지 처리기(21)는 그래프 데이터베이스 저장부(30)에 저장된 그래프 데이터를 기반으로 정답지에 해당하는 클러스터링 결과를 산출할 수 있다(S5). 이는 그래프 데이터베이스 저장부(30)에 저장된 그래프 데이터에 대해 현업에서 효용성이 있는 것으로 알려진 소정의 기준을 적용하여 군집 결과를 얻는 것을 의미할 수 있다. 예를 들면, 특정 IP 주소와 연관되며 서로 상이한 이메일 정보들이 있는 경우, 이메일 자체는 서로 상이하지만 동일한 IP 주소를 사용하는 점을 통하여 동일한 공격자로 식별 가능하다. 따라서, 동일한 IP 주소를 갖는 이메일 주소들을 하나의 군집으로 함으로써 정답지를 생성할 수 있다. 그러나 이는 예시적인 것으로서, 대상이 되는 그래프 데이터에 대해 효용이 있는 것으로 알려진 다른 임의의 기준을 이용하여 정답지를 생성할 수도 있다.On the other hand, if no correct answer sheet is input to the correct answer sheet processor 21, the correct answer sheet processor 21 may calculate a clustering result corresponding to the correct answer sheet based on the graph data stored in the graph database storage unit 30 (S5). . This may mean obtaining a cluster result by applying a predetermined criterion known to be useful in the field to the graph data stored in the graph database storage unit 30. For example, if there are different email information associated with a specific IP address, the email itself is different from each other, but can be identified as the same attacker through the use of the same IP address. Therefore, a correct answer sheet can be generated by making e-mail addresses having the same IP address as one cluster. However, this is an example, and the answer sheet may be generated using any other criteria known to be useful for the target graph data.

커뮤니티 검출 알고리즘 수행기(22)에 의하여 루뱅(Louvain) 방법, 거반-뉴먼(Girvan-Newman) 방법, 인포맵(Infomap) 알고리즘, 뉴먼 스펙트럼(Newman-spectral) 알고리즘 등 커뮤니티 검출 알고리즘 수행기(22)에 저장된 모든 알고리즘이 수행되었다면(S7), 각각의 알고리즘별 수행 결과가 커뮤니티 검출 알고리즘 수행기(22)에 저장될 수 있다(S8). By the community detection algorithm performer 22, all stored in the community detection algorithm performer 22, such as the Louvain method, the Givan-Newman method, the Infomap algorithm, and the Newman-spectral algorithm, etc. If the algorithm is performed (S7), the execution result for each algorithm may be stored in the community detection algorithm performer 22 (S8).

다음으로, 검증 계산기(23) 및 알고리즘 선별기(24)는 전술한 복수 개의 커뮤니티 검출 알고리즘 각각에 의한 군집 결과를 미리 설정된 정답지와 비교하여, 적용할 커뮤니티 검출 알고리즘을 결정할 수 있다. 일 실시예에서, 검증 계산기(23)는 복수 개의 커뮤니티 검출 알고리즘 각각에 의한 군집 결과와 정답지 사이의 정규화된 상호 정보(Normalized Munutal Information; NMI) 값에 기초하여 적용할 커뮤니티 검출 알고리즘을 결정할 수 있다. Next, the verification calculator 23 and the algorithm selector 24 may determine the community detection algorithm to be applied by comparing the cluster result by each of the plurality of community detection algorithms described above with a preset correct answer sheet. In one embodiment, the verification calculator 23 may determine a community detection algorithm to be applied based on the normalized mutual information (NMI) value between the cluster result and the correct answer by each of the plurality of community detection algorithms.

구체적으로, 검증 계산기(23)는 정답지에 해당하는 군집의 수를 행으로 구성하고, 검증할 커뮤니티 검출 알고리즘에 의한 군집의 수를 열로 구성하여 2차원 리스트 Nij를 생성할 수 있다. 예를 들어, 정답지의 군집의 수가 i개이고, 검증할 커뮤니티 검출 알고리즘의 군집의 수가 9개라면, Nij는 [[0, 16, 0, 0, 0, 0, 0, 0, 0], [0, 2, 7, 0, 0, 0, 0, 0, 0], ...]와 같이 9개의 열과 i개의 행을 갖는 2차원 배열이 된다.다음으로, 검증 계산기(23)는 검증할 커뮤니티 검출 알고리즘에 의한 군집 결과를 정답지와 비교하여 양자 사이의 NMI를 0 내지 1의 범위에서 산출할 수 있다(S9). 구체적으로, 전술한 2차원 배열의 각 항의 값은 정답지의 i번째 군집에 포함된 데이터들이 커뮤니티 검출 알고리즘의 몇 번째 군집에 존재하는지를 나타내며, 양 군집에 동일한 데이터가 존재할수록 해당 데이터가 발견된 곳의 값이 증가한다. 예컨대, 2차원 배열의 첫 번째 항 [0, 16, 0, 0, 0, 0, 0, 0, 0]은 정답지의 1번 군집에 포함된 데이터들이 검증할 커뮤니티 검출 알고리즘에 의한 2번째 군집에서 16개가 발견되었음을 의미한다.Specifically, the verification calculator 23 may generate a two-dimensional list N ij by configuring the number of clusters corresponding to the correct answer sheet as a row, and configuring the number of clusters by the community detection algorithm to be verified as a column. For example, if the number of clusters in the correct answer sheet is i and the number of clusters in the community detection algorithm to be verified is 9, N ij is [[0, 16, 0, 0, 0, 0, 0, 0, 0], [ 0, 2, 7, 0, 0, 0, 0, 0, 0], ...] is a two-dimensional array having 9 columns and i rows. Next, the verification calculator 23 is to be verified The cluster result by the community detection algorithm can be compared with the correct answer sheet to calculate the NMI between the two in the range of 0 to 1 (S9). Specifically, the value of each term of the above-described two-dimensional array indicates how many clusters of the community detection algorithm are included in the i-th cluster of the correct answer sheet, and the same data exists in both clusters, Value increases. For example, the first term [0, 16, 0, 0, 0, 0, 0, 0, 0] of the 2D array is in the second cluster by the community detection algorithm that the data included in cluster 1 of the correct answer sheet will verify. This means that 16 have been found.

이상의 과정을 자동화하여 반복 수행하면, 검증할 커뮤니티 검출 알고리즘에 의한 군집 결과와 정답지의 NMI를 산출할 수 있다. 구체적으로, 정답지에 상응하는 제1 군집 결과를 A, 커뮤니티 검출 알고리즘에 의한 제2 군집 결과를 B, 제1 군집 결과의 군집 개수를 cA, 제2 군집 결과의 군집 개수를 cB, 대상 그래프 데이터의 노드의 수를 N, 제1 군집 결과에서 임의의 자연수인 i번째 군집에 소속된 노드의 개수를 Ni, 제2 군집 결과에서 임의의 자연수인 j번째 군집에 소속된 노드의 개수를 Nj, 제1 군집 결과의 i번째 군집에 속한 노드 중 제2 군집 결과의 j번째 군집에 속한 노드의 수를 Nij라 할 경우, 검증 계산기는 하기 수학식에 의하여 제1 및 제2 군집 결과 사이의 NMI인 I(A, B)를 결정할 수 있다.If the above process is automated and iteratively performed, it is possible to calculate the cluster result by the community detection algorithm to be verified and the NMI of the correct answer sheet. Specifically, the first cluster result corresponding to the correct answer sheet A, the second cluster result by the community detection algorithm B, the number of clusters of the first cluster result c A , the number of clusters of the second cluster result c B , the target graph N the number of nodes in the data, N the number of nodes belonging to the i th cluster, which is an arbitrary natural number in the first cluster result, N i , N the number of nodes belonging to the j th cluster, which is an arbitrary natural number in the second cluster result. j , If the number of nodes belonging to the j-th cluster of the second cluster result among the nodes belonging to the i-th cluster of the first cluster result is N ij , the verification calculator calculates between the first and second cluster results by the following equation. The NMI of I (A, B) can be determined.

Figure 112019098909212-pat00003
Figure 112019098909212-pat00003

커뮤니티 검출 알고리즘 수행기(22)에 저장된 모든 알고리즘을 대상으로 검증 계산기(23)에 의한 NMI의 산출이 이루어졌다면(S10), 알고리즘 선별기(24)는 검증 계산기(23)에서 반환된 값을 기준으로 가장 NMI가 높은 값인 커뮤니티 검출 알고리즘을 결정하고 이의 결과가 클러스터링 결과가 되도록 할 수 있다(S11). If the calculation of the NMI is performed by the verification calculator 23 for all the algorithms stored in the community detection algorithm performer 22 (S10), the algorithm selector 24 simulates based on the value returned from the verification calculator 23. A community detection algorithm having a high NMI value may be determined and the result may be a clustering result (S11).

본 발명자들은 18,071건의 노드 및 16,593 건의 에지를 가지는 그래프 데이터를 대상으로 루뱅 방법, 거반-뉴먼 알고리즘, 인포맵 알고리즘 및 뉴먼 스펙트럼 알고리즘 각각과 정답지의 NMI를 산출하였다. 아래의 표 1에 도시된 검출 결과와 같이, 검증된 알고리즘 중 루뱅 방법에 의한 알고리즘이 가장 높은 I(A, B) 값을 나타내어 시스템의 클러스터링 결과를 얻기 위한 알고리즘으로 적용될 수 있다. The present inventors calculated the NMI of the correct answer sheet and each of the Leuven method, the Gervan-Newman algorithm, the Infomap algorithm, and the Newman spectrum algorithm on graph data having 18,071 nodes and 16,593 edges. As shown in the detection results shown in Table 1 below, among the verified algorithms, the algorithm by the Leuven method can be applied as an algorithm for obtaining the clustering result of the system by indicating the highest I(A, B) values.

알고리즘 종류Algorithm type 루뱅 방법Leuven Method 거반-뉴먼
알고리즘
Gaban-Newman
algorithm
인포맵
알고리즘
Info Map
algorithm
뉴먼 스펙트럼
알고리즘
Newman spectrum
algorithm
커뮤니티 검출 결과Community detection result 571건571 cases 569건569 cases 599건599 cases 557건557 cases

Figure 112019098909212-pat00004
Figure 112019098909212-pat00004
-116220.2-116220.2 -116220.2-116220.2 -113868.61-113868.61 -113748.61-113748.61
Figure 112019098909212-pat00005
Figure 112019098909212-pat00005
-110008.07-110008.07 -109692.95-109692.95 -110191.03-110191.03 -110092.05-110092.05
Figure 112019098909212-pat00006
Figure 112019098909212-pat00006
-219920.46-219920.46 -219339.23-219339.23 -216567.33-216567.33 -214256.27-214256.27
I(A,B)I(A,B) 0.97211740.9721174 0.97090060.9709006 0.9665610.966561 0.9571820.957182

도 4는 일 실시예에 따른 그래프 데이터 클러스터링 방법에 의해 처리되는 예시적인 원본 그래프 데이터이다. 또한, 도 5는 도 4의 원본 그래프 데이터에 대한 클러스터링 정답지를 나타내는 이미지로서, 편의상 색을 통하여 군집의 구분을 표시한 이미지이다.4 is exemplary original graph data processed by a graph data clustering method according to an embodiment. In addition, FIG. 5 is an image showing a correct answer sheet for clustering with respect to the original graph data of FIG. 4, and is an image showing the classification of clusters through color for convenience.

도 4를 참조하면, 원본 그래프 데이터는 하나 이상의 노드(400)와 각각의 노드(400)를 사이를 연결하는 에지를 포함할 수 있다. 본 도면의 예에서, 그래프 데이터의 각 노드(400)는 도 5에 도시된 것과 같이 서로 상이한 군집에 속하는 제1 노드(501) 및 제2 노드(502) 분류되어, 그래프 데이터가 두 개의 그룹으로 클러스터링될 수 있다. Referring to FIG. 4, the original graph data may include one or more nodes 400 and edges connecting each node 400. In the example of this figure, each node 400 of the graph data is classified into the first node 501 and the second node 502 belonging to different clusters as shown in FIG. 5, so that the graph data is divided into two groups. Can be clustered.

한편, 도 6a 내지 6c는 도 4의 원본 그래프 데이터에 대한 다양한 커뮤니티 검출 알고리즘에 의한 클러스터링 결과를 나타내는 이미지이다. Meanwhile, FIGS. 6A to 6C are images showing clustering results by various community detection algorithms for the original graph data of FIG. 4.

먼저, 도 6a에 도시된 어느 하나의 알고리즘에 의한 클러스터링 결과에서 그래프 데이터의 노드들은 제3 노드(601) 및 제4 노드(602)로 분류되었다. 이는 도 5의 정답지와 동일하지만 군집의 식별만이 상이한 것이므로, 도 6a에 도시된 클러스터링 결과와 정답지의 NMI 값은 1이 되고, 정답지와 대상 알고리즘의 클러스터링 결과에 차이가 없음을 출력값으로 보이게 된다. First, nodes of the graph data are classified into a third node 601 and a fourth node 602 in the clustering result by any one algorithm shown in FIG. 6A. Since this is the same as the correct answer sheet in FIG. 5, only the cluster identification is different, so the clustering result shown in FIG. 6A and the NMI value of the correct answer sheet are 1, and it is shown that there is no difference in the clustering result of the correct answer sheet and the target algorithm as an output value.

한편, 도 6b는 도 6a와 상이한 다른 알고리즘에 의한 클러스터링 결과를 나타내는 것으로서, 본 클러스터링 결과에서 알고리즘은 그래프 데이터의 모든 노드(610)들 전체를 하나의 군집으로 파악하였다. 도 6b에 도시된 클러스터링 결과를 검증 계산기(23; 도 2)의 입력값으로 할 경우 알고리즘에 의한 클러스터링 결과와 도 5의 정답지의 NMI는 0으로, 둘 사이에는 전혀 연관성이 없다는 것을 나타내는 정보가 시스템으로부터 출력될 수 있다. Meanwhile, FIG. 6B shows the clustering result by another algorithm different from FIG. 6A, and in the clustering result, the algorithm grasps all the nodes 610 of the graph data as one cluster. When the clustering result shown in FIG. 6B is used as the input value of the verification calculator 23 (FIG. 2), the clustering result by the algorithm and the NMI of the correct answer sheet in FIG. 5 are 0, and information indicating that there is no correlation between the two is system Can be output from

나아가, 도 6c는 도 6a 및 6b와 상이한 또 다른 알고리즘에 의한 클러스터링 결과를 나타낸다. 도 6c에 도시된 클러스터링 결과에서는 그래프 데이터의 노드들이 제5 노드(621), 제6 노드(622) 및 제7 노드(623)로 분류되어, 정답지보다 더욱 세분화된 3개의 군집으로 노드들이 구별되었다. 도 6c에 도시된 클러스터링 결과를 검증 계산기(23; 도 2)의 입력값으로 할 경우 알고리즘에 의한 클러스터링 결과와 도 5의 정답지의 NMI는 약 0.5928이다. Furthermore, FIG. 6C shows clustering results by another algorithm different from FIGS. 6A and 6B. In the clustering result shown in FIG. 6C, nodes of the graph data are classified into the fifth node 621, the sixth node 622, and the seventh node 623, so that the nodes are divided into three clusters more subdivided than the correct answer sheet. . When the clustering result shown in FIG. 6C is used as an input value of the verification calculator 23 (FIG. 2 ), the clustering result by the algorithm and the NMI of the correct answer sheet in FIG. 5 are about 0.5928.

따라서, 사용자가 도 6a 내지 6c에 각각 상응하는 3가지의 커뮤니티 검출 알고리즘을 정답지와 비교할 경우, 가장 높은 NMI 값인 1을 가지는 도 6a의 커뮤니티 검출 알고리즘이 정답지와 가장 근접한 결과를 얻는 커뮤니티 검출 알고리즘으로 선정되며, 도 6a의 커뮤니티 검출 알고리즘에 의한 클러스터링 결과가 시스템의 출력값으로 최종 선정될 수 있다. Therefore, when the user compares the three community detection algorithms corresponding to each of FIGS. 6A to 6C with the correct answer sheet, the community detection algorithm of FIG. 6A having the highest NMI value of 1 is selected as the community detection algorithm that obtains the result closest to the correct answer sheet. The clustering result by the community detection algorithm of FIG. 6A may be finally selected as the output value of the system.

이상에서 설명한 실시예들에 따른 그래프 데이터 클러스터링 방법에 의한 동작은 적어도 부분적으로 컴퓨터 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 실시예들에 따른 그래프 데이터 클러스터링 방법에 의한 동작을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인 프로그램, 코드 및 코드 세그먼트(segment)들은 본 실시예가 속하는 기술 분야의 통상의 기술자에 의해 용이하게 이해될 수 있을 것이다.The operation by the graph data clustering method according to the above-described embodiments may be at least partially implemented by a computer program and recorded on a computer-readable recording medium. A program for implementing an operation by the graph data clustering method according to embodiments is recorded, and a computer-readable recording medium includes all types of recording devices in which data that can be read by a computer is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disks, and optical data storage devices. In addition, the computer readable recording medium may be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present embodiment will be readily understood by those skilled in the art to which this embodiment belongs.

이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해서 정해져야 할 것이다.The present invention described above has been described with reference to the embodiments shown in the drawings, but this is only exemplary and those skilled in the art will understand that various modifications and modifications of the embodiments are possible therefrom. However, it should be considered that such modifications are within the technical protection scope of the present invention. Therefore, the true technical protection scope of the present invention should be defined by the technical spirit of the appended claims.

Claims (9)

하나 이상의 노드 및 상기 노드 사이의 하나 이상의 에지를 포함하는 그래프 데이터를 저장하도록 구성된 그래프 데이터베이스 저장부;
사용자의 요청, 이벤트 발생 또는 미리 설정된 호출 주기에 의한 클러스터링 요청을 수신하고, 상기 그래프 데이터에 대한 클러스터링 결과를 제공하도록 구성된 이벤트 처리부; 및
상기 이벤트 처리부에 의해 호출되어, 미리 설정된 복수 개의 커뮤니티 검출 알고리즘 중 선택된 어느 하나의 커뮤니티 검출 알고리즘을 이용하여 상기 그래프 데이터로부터 상기 클러스터링 결과를 생성하도록 구성된 클러스터링 처리부를 포함하되,
상기 클러스터링 처리부는,
미리 설정된 정답지를 입력받아 저장하도록 구성된 클러스터링 정답지 처리기;
상기 복수 개의 커뮤니티 검출 알고리즘 각각에 의한 군집 결과를 생성하도록 구성된 커뮤니티 검출 알고리즘 수행기;
상기 군집 결과와 상기 정답지 사이의 정규화된 상호 정보 값을 생성하도록 구성되어, 상기 정답지에 상응하는 제1 군집 결과를 A, 상기 커뮤니티 검출 알고리즘에 의한 제2 군집 결과를 B, 상기 제1 군집 결과의 군집 개수를 cA, 상기 제2 군집 결과의 군집 개수를 cB, 상기 그래프 데이터의 노드의 수를 N, 상기 제1 군집 결과에서 임의의 자연수인 i번째 군집에 소속된 노드의 개수를 Ni, 상기 제2 군집 결과에서 임의의 자연수인 j번째 군집에 소속된 노드의 개수를 Nj, 상기 제1 군집 결과의 i번째 군집에 속한 노드 중 상기 제2 군집 결과의 j번째 군집에 속한 노드의 수를 Nij라 할 경우,
Figure 112020015012128-pat00017
의 수학식에 의하여 I(A, B)를 상기 정규화된 상호 정보 값으로 결정하는 검증 계산기; 및
상기 복수 개의 커뮤니티 검출 알고리즘 중 상기 정규화된 상호 정보 값이 가장 큰 커뮤니티 검출 알고리즘을 이용한 군집 결과를 상기 클러스터링 결과로 결정하도록 구성된 알고리즘 선별기를 포함하고,
상기 복수 개의 커뮤니티 검출 알고리즘 각각에 의한 군집 결과를 미리 설정된 정답지와 비교하여, 상기 복수 개의 커뮤니티 검출 알고리즘 각각에 의한 군집 결과와 상기 정답지 사이의 정규화된 상호 정보 값을 산출하고, 상기 복수 개의 커뮤니티 검출 알고리즘 중 상기 정규화된 상호 정보 값이 가장 큰 커뮤니티 검출 알고리즘을 상기 어느 하나의 커뮤니티 검출 알고리즘으로 결정하도록 더 구성된 그래프 데이터 클러스터링 시스템.
A graph database storage configured to store graph data including one or more nodes and one or more edges between the nodes;
An event processing unit configured to receive a user request, an event occurrence, or a clustering request according to a preset call cycle, and provide clustering results for the graph data; And
A clustering processor configured to generate the clustering result from the graph data by using any one community detection algorithm selected from a plurality of preset community detection algorithms, which is called by the event processing unit,
The clustering processing unit,
A clustering correct answer sheet processor configured to receive and store a preset correct answer sheet;
A community detection algorithm performer configured to generate a cluster result by each of the plurality of community detection algorithms;
It is configured to generate a normalized cross-information value between the cluster result and the correct answer sheet, A for a first cluster result corresponding to the correct answer sheet, B for a second cluster result by the community detection algorithm, and B for the first cluster result. The number of clusters c A , the number of clusters of the second cluster result c B , the number of nodes of the graph data N, and the number of nodes belonging to the i th cluster, which is an arbitrary natural number in the first cluster result, N i , The number of nodes belonging to the j th cluster, which is an arbitrary natural number in the second cluster result, is N j , of the nodes belonging to the j th cluster of the second cluster result among nodes belonging to the i th cluster of the first cluster result. If the number is N ij ,
Figure 112020015012128-pat00017
A verification calculator for determining I(A, B) as the normalized mutual information value by the equation of And
And an algorithm selector configured to determine a cluster result using the community detection algorithm having the largest normalized mutual information value among the plurality of community detection algorithms as the clustering result,
The cluster result by each of the plurality of community detection algorithms is compared with a preset correct answer sheet to calculate normalized mutual information values between the cluster result by each of the plurality of community detection algorithms and the correct answer sheet, and the plurality of community detection algorithms Graph data clustering system further configured to determine the community detection algorithm having the largest normalized mutual information value as the one community detection algorithm.
삭제delete 삭제delete 삭제delete 그래프 데이터 클러스터링 시스템에 하나 이상의 노드 및 상기 노드 사이의 하나 이상의 에지를 포함하는 그래프 데이터를 저장하는 단계;
상기 그래프 데이터 클러스터링 시스템이, 사용자의 요청, 이벤트 발생 또는 미리 설정된 호출 주기에 의한 클러스터링 요청을 수신하는 단계;
상기 그래프 데이터 클러스터링 시스템이, 미리 설정된 복수 개의 커뮤니티 검출 알고리즘 각각에 의한 군집 결과를 미리 설정된 정답지와 비교하여, 상기 정답지에 상응하는 제1 군집 결과를 A, 상기 커뮤니티 검출 알고리즘에 의한 제2 군집 결과를 B, 상기 제1 군집 결과의 군집 개수를 cA, 상기 제2 군집 결과의 군집 개수를 cB, 상기 그래프 데이터의 노드의 수를 N, 상기 제1 군집 결과에서 임의의 자연수인 i번째 군집에 소속된 노드의 개수를 Ni, 상기 제2 군집 결과에서 임의의 자연수인 j번째 군집에 소속된 노드의 개수를 Nj, 상기 제1 군집 결과의 i번째 군집에 속한 노드 중 상기 제2 군집 결과의 j번째 군집에 속한 노드의 수를 Nij라 할 경우,
Figure 112020501849025-pat00018
의 수학식에 의하여 I(A, B)를 상기 정규화된 상호 정보 값으로 결정하고, 상기 복수 개의 커뮤니티 검출 알고리즘 각각에 의한 군집 결과와 상기 정답지 사이의 정규화된 상호 정보 값을 산출하여, 상기 복수 개의 커뮤니티 검출 알고리즘 중 상기 정규화된 상호 정보 값이 가장 큰 커뮤니티 검출 알고리즘을 상기 복수 개의 커뮤니티 검출 알고리즘 중 어느 하나의 커뮤니티 검출 알고리즘으로 결정하는 단계;
상기 그래프 데이터 클러스터링 시스템이, 결정된 상기 어느 하나의 커뮤니티 검출 알고리즘을 이용하여 상기 그래프 데이터로부터 클러스터링 결과를 생성하는 단계; 및
상기 그래프 데이터 클러스터링 시스템이, 상기 클러스터링 결과를 제공하는 단계를 포함하는 그래프 데이터 클러스터링 방법.
Storing graph data comprising one or more nodes and one or more edges between the nodes in a graph data clustering system;
Receiving, by the graph data clustering system, a user request, an event occurrence, or a clustering request according to a preset call cycle;
The graph data clustering system compares a cluster result by each of a plurality of preset community detection algorithms with a preset correct answer sheet, and compares a first cluster result corresponding to the correct answer sheet with A and a second cluster result by the community detection algorithm. B, the number of clusters of the first cluster result c A , the number of clusters of the second cluster result c B , the number of nodes in the graph data N, the i th cluster, which is an arbitrary natural number in the first cluster result The number of nodes belonging to N i , the number of nodes belonging to the j th cluster, which is an arbitrary natural number in the second cluster result, is N j , the result of the second cluster of nodes belonging to the i th cluster of the first cluster result If the number of nodes belonging to the j th cluster of N is ij ,
Figure 112020501849025-pat00018
The I(A, B) is determined as the normalized mutual information value according to the equation, and the normalized mutual information value between the cluster result by each of the plurality of community detection algorithms and the correct answer sheet is calculated, and the plurality of Determining a community detection algorithm having the largest normalized mutual information value among community detection algorithms as one of the plurality of community detection algorithms;
Generating, by the graph data clustering system, a clustering result from the graph data using the determined community detection algorithm; And
And the graph data clustering system providing the clustering result.
삭제delete 삭제delete 삭제delete 하드웨어와 결합되어 제5항에 따른 그래프 데이터 클러스터링 방법을 실행하도록 컴퓨터로 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.A computer program stored in a computer-readable recording medium to execute the graph data clustering method according to claim 5 in combination with hardware.
KR1020190119286A 2019-09-27 2019-09-27 System and method for clustering graph data and computer program for the same KR102136222B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190119286A KR102136222B1 (en) 2019-09-27 2019-09-27 System and method for clustering graph data and computer program for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190119286A KR102136222B1 (en) 2019-09-27 2019-09-27 System and method for clustering graph data and computer program for the same

Publications (1)

Publication Number Publication Date
KR102136222B1 true KR102136222B1 (en) 2020-07-21

Family

ID=71832537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190119286A KR102136222B1 (en) 2019-09-27 2019-09-27 System and method for clustering graph data and computer program for the same

Country Status (1)

Country Link
KR (1) KR102136222B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230000204A (en) * 2021-06-24 2023-01-02 주식회사 카카오페이 Apparatus and method for user segment classification using network analysis technique

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016073379A2 (en) * 2014-11-03 2016-05-12 Vectra Networks, Inc. A system for implementing threat detection using daily network traffic community outliers
KR101697875B1 (en) 2015-10-30 2017-01-18 아주대학교산학협력단 Method for analying document based on graph model and system thereof
US20170185910A1 (en) * 2015-12-28 2017-06-29 International Business Machines Corporation Steering graph mining algorithms applied to complex networks
KR20180137386A (en) * 2017-06-15 2018-12-27 한양대학교 산학협력단 Community detection method and community detection framework apparatus
KR101965277B1 (en) * 2018-08-10 2019-04-03 주식회사 비트나인 System and method for analysis of hypergraph data and computer program for the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016073379A2 (en) * 2014-11-03 2016-05-12 Vectra Networks, Inc. A system for implementing threat detection using daily network traffic community outliers
KR101697875B1 (en) 2015-10-30 2017-01-18 아주대학교산학협력단 Method for analying document based on graph model and system thereof
US20170185910A1 (en) * 2015-12-28 2017-06-29 International Business Machines Corporation Steering graph mining algorithms applied to complex networks
KR20180137386A (en) * 2017-06-15 2018-12-27 한양대학교 산학협력단 Community detection method and community detection framework apparatus
KR101965277B1 (en) * 2018-08-10 2019-04-03 주식회사 비트나인 System and method for analysis of hypergraph data and computer program for the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230000204A (en) * 2021-06-24 2023-01-02 주식회사 카카오페이 Apparatus and method for user segment classification using network analysis technique
KR102583341B1 (en) * 2021-06-24 2023-09-26 주식회사 카카오페이 Apparatus and method for user segment classification using network analysis technique

Similar Documents

Publication Publication Date Title
US10726153B2 (en) Differentially private machine learning using a random forest classifier
US9514248B1 (en) System to group internet devices based upon device usage
US11159556B2 (en) Predicting vulnerabilities affecting assets of an enterprise system
CN111614690B (en) Abnormal behavior detection method and device
EP1667062A1 (en) Resource reconciliation
US20140067757A1 (en) Method and System for Clustering Data Points
CN107305611B (en) Method and device for establishing model corresponding to malicious account and method and device for identifying malicious account
Kamaludin et al. Clone tag detection in distributed RFID systems
US10628412B2 (en) Iterative visualization of a cohort for weighted high-dimensional categorical data
WO2020005250A1 (en) Detecting zero-day attacks with unknown signatures via mining correlation in behavioral change of entities over time
US10445341B2 (en) Methods and systems for analyzing datasets
US20170083575A1 (en) Query hint learning in a database management system
US20180268035A1 (en) A query processing engine recommendation method and system
US10824986B2 (en) Auto-suggesting IT asset groups using clustering techniques
KR102136222B1 (en) System and method for clustering graph data and computer program for the same
US9465854B2 (en) In-database connectivity components analysis of data
US20170316071A1 (en) Visually Interactive Identification of a Cohort of Data Objects Similar to a Query Based on Domain Knowledge
Sun et al. Sensitive task assignments in crowdsourcing markets with colluding workers
Whang et al. Disinformation techniques for entity resolution
CN115225359A (en) Honeypot data tracing method and device, computer equipment and storage medium
CN113468560A (en) Data protection method and device and server
de Oliveira Efficient processing of multiway spatial join queries in distributed systems
CN102968593B (en) The method and system of the isolating points of application program is positioned under multi-tenant environment
US8774530B1 (en) Automated diagnostic analysis of image data
CN112231524A (en) Data fusion method and device, storage medium and electronic equipment

Legal Events

Date Code Title Description
GRNT Written decision to grant