KR101672621B1 - 클러스터 적합도를 이용한 그래프 데이터 분산 방법 - Google Patents

클러스터 적합도를 이용한 그래프 데이터 분산 방법 Download PDF

Info

Publication number
KR101672621B1
KR101672621B1 KR1020150017295A KR20150017295A KR101672621B1 KR 101672621 B1 KR101672621 B1 KR 101672621B1 KR 1020150017295 A KR1020150017295 A KR 1020150017295A KR 20150017295 A KR20150017295 A KR 20150017295A KR 101672621 B1 KR101672621 B1 KR 101672621B1
Authority
KR
South Korea
Prior art keywords
node
nodes
cluster
clusters
score
Prior art date
Application number
KR1020150017295A
Other languages
English (en)
Other versions
KR20160095842A (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 KR1020150017295A priority Critical patent/KR101672621B1/ko
Publication of KR20160095842A publication Critical patent/KR20160095842A/ko
Application granted granted Critical
Publication of KR101672621B1 publication Critical patent/KR101672621B1/ko

Links

Images

Classifications

    • G06F17/30705
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • 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
    • G06F17/30958

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (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

그래프 데이터 분산 방법이 개시된다. 상기 그래프 데이터 분산 방법은 복수의 노드들 중 복수의 클러스터들 각각에 배치하기 위한 복수의 초기 노드들을 선정하는 단계와 상기 선정한 복수의 초기 노드들 각각을 상기 복수의 클러스터들 중 해당하는 클러스터에 배치하는 단계와 상기 복수의 초기 노드들을 제외한 상기 복수의 노드들 중 클러스터링하고자 하는 노드의 상기 복수의 클러스터들 각각에 대한 클러스터 적합도를 결정하는 단계 및 상기 결정한 클러스터 적합도에 따라 상기 클러스터링하고자 하는 노드를 상기 복수의 클러스터들 중 해당 클러스터에 클러스터링하는 단계를 포함한다.

Description

클러스터 적합도를 이용한 그래프 데이터 분산 방법{GRAPH DATA DISTRIBUTING METHOD USING CLUSTERING GOODNESS OF FIT}
본 발명의 개념에 따른 실시 예는 그래프 데이터 분석 기술에 대한 것으로, 보다 상세하게는 기준이 되는 초기 노드를 선정한 후, 클러스터링하고자하는 노드들 각각에 대한 인접 노드의 클러스터 적합도를 이용하여 클러스터링을 수행하는 고속 그래프 데이터 처리에 최적화된 그래프 데이터 분산 방법에 대한 것이다.
1936년 쾨니히스베르크의 다리에 관한 오일러의 연구에서 출발한 그래프 이론은 유한개의 정점(vertex 또는 node)과 간선(edge 또는 link)의 결합 양식에 관한 이론이다. 즉, 그래프 이론에서의 그래프란 막대 그래프나 2차 함수의 그래프와 같이 양의 변화를 시각적으로 나타낼 때의 그래프를 의미하는 것이 아니라, 주어진 몇 개의 정점과 그 정점을 끝점으로 하는 몇 개의 변으로 이루어진 도형을 의미하는 것이다. 이때, 상기 정점은 여러 가지 특성을 가질 수 있는 객체를 의미하고, 간선인 변은 이러한 정점들 사이의 관계를 의미한다. 현재, 그래프 이론은 유전자나 화학유기물의 구조, 바이러스 및 백신의 전파, 사람과 사람 사이의 의견이 전파되고 공유되는 소셜 네트워크 등 화학, 생물, 정보공학, 사회학 등 다양한 분야에 응용되고 있다. 특히, 소셜 네트워크 분야는 최근 급진적으로 발전하고 있는데, 페이스북의 이용자는 2013년 기준 약 12억명의 사용자가, 트위터에는 약 2.32억 명의 사용자가 활동 중인 것으로 조사되고 있다. 이와 같이 수 많은 사용자와 더불어 발생하는 데이터의 양 또한 기하급수적으로 증가하고 있으며, 이에 하나의 서버나 물리적인 클러스터 내에서 데이터를 처리하던 방식에서 여러 대의 서버나 클러스터를 이용한 분산 처리 방법으로 변화가 이루어지고 있다. 그러나 그래프 데이터의 경우 각 데이터가 서로 연관 관계가 있기 때문에 종래의 단순 분할 클러스터링 방법은 데이터 처리 속도에 한계가 있었다.
본 발명이 해결하고자 하는 기술적인 과제는 그래프 노드들 각각에 대한 인접 노드의 클러스터 적합도를 이용함으로써 그래프 데이터 처리에 최적화된 데이터 클러스터링을 수행할 수 있는 그래프 데이터 분산 방법을 제공하는 것이다.
복수의 노드들 중 복수의 클러스터들 각각에 배치하기 위한 복수의 초기 노드들을 선정하는 단계와 상기 선정한 복수의 초기 노드들 각각을 상기 복수의 클러스터들 중 해당하는 클러스터에 배치하는 단계와 상기 복수의 초기 노드들을 제외한 상기 복수의 노드들 중 클러스터링하고자 하는 노드의 상기 복수의 클러스터들 각각에 대한 클러스터 적합도를 결정하는 단계 및 상기 결정한 클러스터 적합도에 따라 상기 클러스터링하고자 하는 노드를 상기 복수의 클러스터들 중 해당 클러스터에 클러스터링하는 단계를 포함한다.
이때, 상기 복수의 초기 노드들을 선정하는 단계는 상기 복수의 노드들 각각에 대한 제1번째 인접 노드들 내지 제N번째 인접 노드들 중에서 리프 노드의 개수를 각각 카운트하는 단계와 상기 각각 카운트한 리프 노드의 개수에 소정의 가중치들 각각을 적용하여 상기 복수의 노드들 각각에 대한 초기 스코어를 계산하는 단계 및 상기 계산한 초기 스코어가 큰 노드의 순서대로 상기 복수의 클러스터 개수만큼 상기 초기 노드들을 선정하는 단계를 포함할 수 있다.
실시 예에 따라, 상기 초기 스코어를 계산하는 단계는 상기 소정의 가중치들 중 제1가중치 내지 제N가중치 각각을 상기 카운트한 제1번째 인접 노드들 중의 리프 노드 개수 내지 상기 카운트한 제N번째 인접 노드들 중의 리프 노드인 개수 각각에 곱하는 방식으로 적용하는 단계 및 상기 제1가중치 내지 상기 제N가중치가 적용된 값들의 총합을 상기 복수의 노드들 각각에 대한 초기 스코어로 계산하는 단계로 이루어질 수 있다.
이때, 상기 제1가중치 내지 상기 제N가중치 각각의 크기는 상기 제1가중치로부터 상기 제N가중치에 이르는 순으로 감소할 수 있다.
상기 클러스터 적합도를 산정하는 단계는 상기 복수의 클러스터들 각각에 포함되어있는 노드들 중에서, 상기 클러스터링하고자하는 노드에 대한 제1번째 인접 노드들 내지 제N번째 인접 노드들의 개수를 각각 카운트하는 단계와 상기 각각 카운트한 인접 노드들의 개수에 소정의 가중치들 각각을 적용하여 상기 복수의 클러스터들 각각에 대한 클러스터링 스코어를 계산하는 단계 및 상기 계산한 클러스터링 스코어의 크기에 따라 상기 복수의 클러스터들 각각에 대한 클러스터 적합도를 결정하는 단계를 포함한다.
이때, 상기 클러스터링 스코어를 계산하는 단계는 상기 소정의 가중치들 중 제1가중치 내지 제N가중치 각각을 상기 카운트한 제1번째 인접 노드들 내지 상기 제N번째 인접 노드들의 개수 각각에 곱하는 방식으로 적용하는 단계 및 상기 제1가중치 내지 상기 제N가중치가 적용된 값들의 총합을 상기 복수의 클러스터들 각각에 대한 클러스터링 스코어로 계산하는 단계를 포함할 수 있다.
실시 예에 따라, 상기 클러스터링 스코어의 크기가 동일한 경우에 상기 복수의 클러스터들 중 클러스터링 된 노드의 개수가 적은 클러스터의 클러스터 적합도를 높게 설정할 수 있다.
만일 상기 복수의 클러스터들에 클러스터링 된 노드의 개수가 동일한 경우에는, 상기 클러스터링하고자하는 노드를 랜덤으로 상기 복수의 클러스터들 중 어느 하나에 클러스터링할 수 있다.
상기와 같이 본 발명의 일 실시 예에 따른 그래프 데이터 분산 방법은 노드들 각각에 대한 클러스터 적합도를 이용하여 서로 연관된 노드들을 해당 클러스터에 클러스터링할 수 있으므로, 클러스터링 이후 대용량의 그래프 데이터 처리 속도를 획기적으로 향상시킬 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 그래프 데이터 분산 방법을 설명하기 위한 그래프의 예시도이다.
도 2는 본 발명의 일 실시 예에 따른 클러스터 적합도를 이용하여 도 1에 도시된 그래프 데이터를 분산하는 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 일 실시 예에 따른 초기 노드들을 선정하기 위한 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 일 실시 예에 따른 클러스터 적합도를 결정하기 위한 방법을 설명하기 위한 순서도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 그래프 데이터 분산 방법을 설명하기 위한 그래프의 예시도이다.
도 1을 참조하면, 도시된 그래프는 여러 가지 특성을 가질 수 있는 객체를 의미하는 복수의 노드들(node_A 내지 node_Q)과 복수의 노드들(node_A 내지 node_Q) 사이의 관계를 의미하는 복수의 에지들(edge_1 내지 edge_15)을 포함한다.
이때, 상기 그래프가 포함하는 복수의 노드들(node_A 내지 node_Q) 중에서 각 가지의 끝에 존재하며, 후손 노드(descendant node)를 보유하지 않은 노드를 리프 노드(leaf node)라 한다.
예컨대, 도 1의 그래프에서 각 가지의 끝에 존재하고 후손 노드를 보유하지 않은 리프노드들은 node_A, node_B, node_F, node_G, node_I, node_J, node_L, node_O, node_P 및 node_Q이다.
한편, 복수의 노드들(node_A 내지 node_Q) 중 임의의 노드에 대한 인접 노드란 상기 임의의 노드로부터 에지로 연결되어 있는 노드들을 의미하며, 특히 제1번째 인접 노드란 상기 임의의 노드(예컨대, node_A)로부터 최인접한 노드, 즉 하나의 에지(edge_1)만으로 연결된 노드(예컨대, node_D)를 의미한다.
또한, 상기 임의의 노드에 대한 제2번째 인접 노드란 상기 임의의 노드로부터 두 개의 에지로 연결된 노드를 의미한다.
예를 들어, node_A에 대한 제2번째 인접 노드들은 node_C(edge_1 및 edge_3으로 연결), node_E(edge_1 및 edge_4로 연결), node_H(edge_1 및 edge_12로 연결), node_K(edge_1 및 edge_10으로 연결) 및 node_M(edge_1 및 edge_6으로 연결)이 된다.
같은 방식으로, 복수의 노드들(node_A 내지 node_Q) 중 임의의 노드에 대한 제N번째 인접 노드란 상기 임의의 노드로부터 N 개의 에지로 연결된 노드를 의미한다.
도 2는 본 발명의 일 실시 예에 따른 클러스터 적합도를 이용하여, 도 1에 도시된 그래프의 데이터를 분산하는 방법을 설명하기 위한 순서도이다.
도 1 및 도 2를 참조하면, 본 발명의 일 실시 예에 따른 그래프 데이터 분산방법은 우선 복수의 노드들(node_A 내지 node_Q) 중에서 복수의 클러스터들 각각에 분산하여 배치하기 위한 복수의 초기 노드들을 선정한다(S100).
실시 예에 따라, 상기 복수의 초기 노드들의 수는 복수의 클러스터들의 개수만큼 선정할 수 있다.
본 명세서에서 클러스터(Cluster)란 단일의 서버 또는 여러 서버들의 묶음을 의미하며, 설명의 편의를 위하여 2개의 클러스터들(도 1에 도시된 Cluster1 및 Cluster2)을 예로 들어 설명한다.
상기 복수의 초기 노드들은 상기 클러스터들 중 어느 하나에서 또는 상기 클러스터와는 별도의 그래프 데이터 처리 클러스터(또는 그래프 데이터 처리 서버)에서 다음과 같은 과정을 통해 선정될 수 있다.
도 3은 본 발명의 일 실시 예에 따른 초기 노드들을 선정하기 위한 방법을 설명하기 위한 순서도이다.
도 1 내지 도 3을 참조하면, 상기 복수의 초기 노드들을 선정하는 방법은 다음과 같다.
우선, 복수의 노드들(node_A 내지 node_Q) 각각에 대한 제1번째 인접 노드들 내지 제N번째 인접 노드들 중에서 리프 노드의 개수를 각각 카운트한다(S30).
예를 들어, node_A에 대해서 제1번째 인접 노드(node_D)가 리프 노드인 개수와 제2번째 인접 노드들(node_C, node_E, node_H, node_K 및 node_M) 중의 리프 노드의 개수 및 제3번째 인접 노드들(node_B, node_F, node_G, node_I, node_J, node_L, node_O, node_P 및 node_Q) 중의 리프 노드의 개수를 카운트한다.
즉, node_A의 제1번째 인접 노드(node_D) 중 리프 노드의 개수는 0이고, 제2번째 인접 노드들(node_C, node_E, node_H, node_K 및 node_M) 중의 리프 노드 개수는 0이며, 제3번째 인접 노드들(node_B, node_F, node_G, node_I, node_J, node_L, node_O, node_P 및 node_Q) 중의 리프 노드 개수는 9이다.
이와 동일한 방법으로, node_B에 대해서도 제1번째 인접 노드(node_C)로부터 제4번째 인접 노드(node_F, node_G, node_I, node_J, node_L, node_O, node_P 및 node_Q)까지 각각 리프 노드의 개수를 카운트한다.
이때, node_A는 제4번째 이상의 인접 노드는 존재하지 않고, node_B는 제5번째 인접 노드가 존재하지 않기 때문에 각각 제3번째 인접 노드와 제4번째 인접 노드들까지만 리프 노드들의 개수를 카운트한다.
만일 그 이상의 인접 노드(예컨대, 제4번째 이상의 인접 노드)가 존재하면, 그에 해당하는 인접 노드가 리프 노드에 해당하는 개수를 카운트해야 한다.
상기와 같은 방법으로, 복수의 노드들(node_A 내지 node_Q) 각각에 대한 제1번째 인접 노드들 내지 제N번째 인접 노드들 중에서 리프 노드의 개수를 각각 카운트한다(S30).
순차적으로 복수의 노드들(node_A 내지 node_Q) 각각에 대해 카운트한 리프 노드의 개수에 소정의 가중치들(W_1 내지 W_N) 각각을 적용(S50)하여 상기 복수의 노드들 각각에 대한 초기 스코어(iscore_A 내지 iscore_Q)를 계산한다(S70).
실시 예에 따라, 상기 카운트한 리프 노드의 개수에 소정의 가중치들(W_1 내지 W_N) 각각을 적용한다는 의미는, 제1가중치 내지 제N가중치 각각을 상기 카운트한 제1번째 인접 노드들 중의 리프 노드 개수 내지 상기 카운트한 제N번째 인접 노드들 중의 리프 노드인 개수 각각에 곱하는 것을 의미할 수 있다.
이때, 제1가중치 내지 제N가중치(W_1 ~ W_N) 각각의 크기는 시스템 목적에 따라서 다양한 크기로 설정될 수 있으며, 제1가중치(W_1)로부터 상기 제N가중치(W_N)에 이르는 순으로 감소하도록 설정될 수도 있다.
이후, 상기 제1가중치 내지 상기 제N가중치(W_1 ~ W_N)가 적용된 값들의 총합을 상기 복수의 노드들(node_A 내지 node_Q) 각각에 대한 초기 스코어(iscore_A 내지 iscore_Q)로 계산한다(S70).
보다 상세한 설명을 위해, node_M을 예로 들어 설명한다.
이때, node_M에 대한 제4번째 이상의 인접 노드들은 존재하지 않으므로, 제1가중치 내지 제3가중치(W_1 내지 W_3) 각각을 상기 카운트한 제1번째 인접 노드들 중의 리프 노드 개수 내지 상기 카운트한 제3번째 인접 노드들 중의 리프 노드인 개수 각각에 곱하는 방식으로 적용한다.
즉, node_M에 대한 제1번째 인접 노드들(node_D, node_O, node_P 및 node_Q) 중 리프 노드(node_O, node_P 및 node_Q)의 개수, 제2번째 인접 노드들(node_A, node_C, node_E, node_K 및 node_H) 중 리프 노드(node_A)의 개수, 제3번째 인접 노드들(node_B, node_F, node_G, node_I, node_J 및 node_L) 중 리프 노드(node_B, node_F, node_G, node_I, node_J 및 node_L)의 개수는 각각 3, 1 및 5이다.
따라서, node_M에 대한 초기 스코어(iscore_M)는 3과 제1가중치(W_1)의 곱, 1과 제2가중치(W_2)의 곱 및 5와 제3가중치(W_3)의 곱의 총합(iscore_M = 3 * W_1 + 1 * W_2 + 5 * W_3)으로 결정된다.
이때, 제1가중치(W_1)의 값을 1로 설정하고 그 이외의 가중치들(W_2 내지 W_N)의 값을 0으로 설정하여, 복수의 노드들(node_A 내지 node_Q) 각각에 대한 초기 스코어(iscore_A 내지 iscore_Q)를 결정하면, node_H의 초기 스코어(iscore_H) 및 node_M의 초기 스코어(iscore_M)는 3으로서 가장 높은 초기 스코어를 갖게 된다.
이와 같은 방법에 따라, 복수의 노드들(node_A 내지 node_Q) 중 초기 스코어(iscore_A 내지 iscore_Q)가 큰 노드들(node_H 및 node_M)이 복수의 클러스터들(Cluster1 및 Cluster2) 개수에 상응하는 수(즉, 2개) 만큼 초기 노드로 선정된다(S100).
순차적으로, 상기 선정한 복수의 초기 노드들(node_H 및 node_M) 각각을 상기 복수의 클러스터들(Cluster1 및 Cluster2) 각각에 배치한다(S200).
복수의 초기 노드들(node_H 및 node_M) 각각을 복수의 클러스터(Cluster1 및 Cluster2)들 각각에 배치한 이후, 복수의 초기 노드들(node_H 및 node_M)을 제외한 상기 복수의 노드들(node_A 내지 node_Q 중에서 node_H 및 node_M를 제외한 노드들) 중에서 클러스터링하고자 하는 노드의 클러스터 적합도를 결정한다(S300).
본 명세서에서의 클러스터 적합도란, 임의의 노드가 복수의 클러스터들(Cluster1 및 Cluster2) 중 어느 클러스터에 배치되는 것이 적절한 지를 나타내는 척도를 의미한다.
실시 예에 따라, 상기 클러스터 적합도는 다음과 같은 과정을 통해 결정될 수 있다.
도 4는 본 발명의 일 실시 예에 따른 클러스터 적합도를 결정하기 위한 방법을 설명하기 위한 순서도이다.
도 1 내지 도 4를 참조하면, 상기 클러스터 적합도를 산정하는 방법은 우선 복수의 노드들(node_A 내지 node_Q) 중에서 이미 클러스터링 된 초기 노드들(node_H 및 node_M)을 제외하고, 클러스터링하고자하는 노드에 대한 인접 노드들의 개수를 카운트한다(S230).
이때, 상기 클러스터링하고자하는 노드에 대한 인접 노드들은 상기 복수의 클러스터들(Cluster1 및 Cluster2) 각각에 포함되어있는, 즉 클러스터 별로 포함된 노드들을 대상으로 한다.
순차적으로 상기 클러스터링하고자 하는 노드에 대해 카운트한 클러스터별 인접 노드들의 개수에 소정의 가중치들(W_1 내지 W_N) 각각을 적용하여(S250), 상기 클러스터링하고자 하는 노드의 클러스터별 클러스터링 스코어를 계산한다(S270).
예컨대, node_A에 대한 클러스터별 클러스터링 스코어는 제1클러스터(Cluster1)에 대한 클러스터링 스코어(c1_score_A)와 제2클러스터(Cluster2)에 대한 클러스터링 스코어(c2_score_A)로 계산될 수 있다.
한편, 상기 카운트한 인접 노드들의 개수에 소정의 가중치들(W_1 내지 W_N) 각각을 적용한다는 의미는, 제1가중치 내지 제N가중치(W_1 내지 W_N) 각각을 상기 카운트한 제1번째 인접 노드들의 개수 내지 상기 카운트한 제N번째 인접 노드들의 개수 각각에 곱하는 것을 의미할 수 있다.
앞서 설명한 초기 스코어(iscroe_A 내지 iscore_Q)를 계산하는 것과 마찬가지로, 제1가중치 내지 제N가중치(W_1 ~ W_N) 각각의 크기는 시스템 목적에 따라서 다양한 크기로 설정될 수 있으며, 제1가중치(W_1)로부터 상기 제N가중치(W_N)에 이르는 순으로 감소하도록 설정될 수도 있다.
이후, 상기 제1가중치 내지 상기 제N가중치(W_1 ~ W_N)가 적용된 값들의 총합을 상기 클러스터링하고자 하는 노드에 대한 클러스터별 클러스터링 스코어(예컨대, node_A에 대한 클러스터링 스코어는 c1_score_A 및 c2_score_A)로 계산한다(S150).
순차적으로, 상기 계산한 클러스터링 스코어의 크기에 따라 상기 복수의 클러스터들 각각에 대한 클러스터 적합도를 결정한다(S300).
예컨대, 임의의 노드(예컨대, node_K)에 대한 제1클러스터(Cluster1)에 대한 클러스터링 스코어(예컨대,c1_score_K)가 제2클러스터(Cluster2)에 대한 클러스터링 스코어(c2_score_K)보다 크다면 상기 임의의 노드(node_K)는 제1클러스터(Cluster1)에 대해 클러스터 적합도가 높다고 결정한다.
만일, 임의의 노드에 대한 각 클러스터별 클러스터링 스코어가 동일한 경우에는, 상기 클러스터들(Cluster1 및 Cluster2) 중에 현재 클러스터링 된 노드의 개수가 적은 클러스터의 클러스터 적합도를 높게 결정할 수 있다.
실시 예에 따라, 임의의 노드에 대한 각 클러스터별 클러스터링 스코어가 동일하고 클러스터별 클러스터링 된 노드의 개수도 동일할 경우에는, 랜덤 방식으로 어느 하나의 클러스터의 클러스터 적합도를 높게 결정할 수 있다.
이후, 상기와 같이 결정한 클러스터 적합도에 따라 클러스터링하고자하는 노드를 해당 클러스터에 클러스터링 한다(S400).
보다 상세한 설명을 위해, 초기 노드들(node_H 및 node_M)을 제외한 복수의 노드들(node_A 내지 node_Q 중에서 node_H 및 node_M를 제외한 노드들) 중에서 node_A, node_B 및 node_C를 클러스터링하고자 하는 노드로서 순차적으로 설명한다.
이때, 복수의 클러스터들(Cluster1 및 Cluster2)에는 앞서 설명한 초기 노드들(node_H 및 node_M) 만이 각각 클러스터링 된 것으로 가정하고, 설명의 편의를 위해서 소정의 가중치들(W_1 내지 W_N) 중 제1가중치(W_1)는 0.6, 제2가중치(W_2)는 0.4, 그 이외의 가중치들(W_3 내지 W_N)은 0의 값을 갖는다고 가정한다.
즉, 현재 제1클러스터(Cluster1)에 포함되어 있는 노드는 node_H이고 제2클러스터(Cluster2)에 포함되어 있는 노드는 node_M이다.
우선 제1클러스터(Cluster1)에 포함되어 있는 노드들(node_H) 중에서 node_A에 대한 제1번째 인접 노드들의 개수 내지 제N번째 인접 노드들의 개수를 각각 카운트하고, 제2클러스터(Cluster2)에 포함되어 있는 노드들(node_M) 중에서 node_A에 대한 제1번째 인접 노드들의 개수 내지 제N번째 인접 노드들의 개수를 카운트한다.
제1클러스터(Cluster1)에 포함되어 있는 노드는 오직 node_H이며, node_H는 클러스터링하고자 하는 node_A와 제2단계 인접 노드의 관계에 있으므로, 제1클러스터(Cluster1)에 포함되어 있는 노드들(node_H) 중에서 node_A에 대한 인접 노드들의 개수는 제2번째 인접 노드 1개이다.
또한, 제2클러스터(Cluster2)에 포함되어 있는 노드는 오직 node_M이며, node_M는 node_A와 제2단계 인접 노드의 관계에 있으므로, 제2클러스터(Cluster2)에 포함되어 있는 노드들(node_M) 중에서 node_A에 대한 인접 노드들의 개수 역시 제2번째 인접 노드 1개이다.
node_A의 제1클러스터(Cluster1)에 대한 클러스터링 스코어(c1_score_A)는 1과 제2가중치의 곱이고, node_A의 제2클러스터(Cluster2)에 대한 클러스터링 스코어(c2_score_A)는 1과 제2가중치의 곱으로 동일하다.
즉, node_A의 제1클러스터(Cluster1)에 대한 클러스터링 스코어(c1_score_A)와 제2클러스터(Cluster2)에 대한 클러스터링 스코어(c2_score_A)는 0.4로서 동일하다.
또한, 제1클러스터(Cluster1) 및 제2클러스터(Cluster2)에 포함된 노드 수 역시 1개로 동일하다.
따라서, 랜덤 방식에 따라 제1클러스터(Cluster1) 및 제2클러스터(Cluster2) 중 어느 하나의 클러스터 적합도를 높게 결정할 수 있으며, 상기 결정된 클러스터 적합도에 따라 node_A를 해당 클러스터로 클러스터링할 수 있다.
본 명세서에서는 랜덤 방식에 따라 제1클러스터(Cluster1)에 node_A가 클러스터링 되었다고 가정한다.
이하, node_B의 클러스터 적합도를 결정하는 방법에 대해서 설명한다.
현재 제1클러스터(Cluster1)에 포함되어 있는 노드는 node_A와 node_H이고 제2클러스터(Cluster2)에 포함되어 있는 노드는 node_M이다.
우선 제1클러스터(Cluster1)에 포함되어 있는 노드들(node_A 및 node_H) 중에서 node_B에 대한 제1번째 인접 노드들의 개수 내지 제N번째 인접 노드들의 개수를 각각 카운트한다.
제1클러스터(Cluster1)에 포함되어 있는 노드들(node_A 및 node_H)은 node_B에 대한 제3번째 인접 노드이고, node_B의 제1클러스터(Cluster1)에 대한 클러스터링 스코어(c1_score_B)는 제3번째 인접 노드들의 수(즉, 2)와 제3가중치(즉, 0)의 곱인 0이 된다.
또한, 제2클러스터(Cluster2)에 포함되어 있는 노드들(node_M) 중에서 node_B에 대한 제1번째 인접 노드들의 개수 내지 제N번째 인접 노드들의 개수를 각각 카운트한다.
제2클러스터(Cluster2)에 포함되어 있는 노드(node_M)는 node_B에 대한 제3번째 인접 노드의 관계에 있으므로, node_B의 제2클러스터(Cluster2)에 대한 클러스터링 스코어(c2_score_B) 역시 0이 된다.
다만, 현재 상태에서 제2클러스터(Cluster2)에 포함되어 있는 노드(node_M)의 수가 제1클러스터(Cluster1)에 포함되어 있는 노드들(node_A 및 node_H)의 수보다 작으므로, node_B의 제2클러스터(Cluster2)에 대한 클러스터 적합도를 높게 결정하고, node_B는 제2클러스터(Cluster2)에 클러스터링 된다.
이하, node_C의 클러스터 적합도를 결정하는 방법에 대해서 설명한다.
현재 제1클러스터(Cluster1)에 포함되어 있는 노드는 node_A와 node_H이고 제2클러스터(Cluster2)에 포함되어 있는 노드는 node_B 및 node_M이다.
우선 제1클러스터(Cluster1)에 포함되어 있는 노드들(node_A 및 node_H) 중에서 node_C에 대한 제1번째 인접 노드들의 개수 내지 제N번째 인접 노드들의 개수를 각각 카운트한다.
제1클러스터(Cluster1)에 포함되어 있는 노드들(node_A 및 node_H)은 node_C에 대한 제2번째 인접 노드이고, node_C의 제1클러스터(Cluster1)에 대한 클러스터링 스코어(c1_score_C)는 제2번째 인접 노드들의 수(즉, 2)와 제2가중치(즉, 0,4)의 곱인 0.8이 된다.
또한, 제2클러스터(Cluster2)에 포함되어 있는 노드들(node_B 및 node_M) 중에서 node_C에 대한 제1번째 인접 노드들의 개수 내지 제N번째 인접 노드들의 개수를 각각 카운트한다.
제2클러스터(Cluster2)에 포함되어 있는 node_B는 node_C에 대한 제1번째 인접 노드의 관계에 있고, 제2클러스터(Cluster2)에 포함되어 있는 node_M은 제2번째 인접 노드의 관계에 있다.
즉, node_C의 제2클러스터(Cluster2)에 대한 클러스터링 스코어(c2_score_C)는 제1번째 인접 노드들의 수(즉, 1)와 제1가중치(즉, 0.6)의 곱인 0.6과 제2번째 인접 노드들의 수(즉, 1)와 제2가중치(즉, 0.4)의 곱인 0.4의 합인 1.0이 된다.
node_C의 제1클러스터(Cluster1)에 대한 클러스터링 스코어(c1_score_C = 0.8) 보다 제2클러스터(Cluster1)에 대한 클러스터링 스코어(c2_score_C = 1.0)가 더 크기 때문에, node_C의 클러스터 적합도는 제2클러스터(Cluster2)에 높게 결정되며, 이에 따라 node_c는 제2클러스터(Cluster2)에 클러스터링 된다.
상기와 같은 방법을 통해, 복수의 노드들(node_A 내지 node_Q) 중에서 이미 클러스터링 된 초기 노드들(node_H 및 node_M)을 제외한 모든 노드들에 대하여 클러스터 적합도를 결정하고(S300), 결정된 클러스터 적합도에 따라 해당 클러스터에 노드들을 클러스터링 할 수 있다(S400).
실시 예에 따라, 복수의 노드들(node_A 내지 node_Q)을 상기 S30 단계 내지 S400 단계를 통해 해당 클러스터에 클러스터링 한 후, 상기 클러스터링한 상태를 기준으로 상기 S30 내지 S400 단계를 반복 수행할 수 있다.
상기의 반복 수행을 통해 해당 클러스터에 클러스터링된 노드들 간의 상호 연관성은 더욱 높아질 수 있다.
결국 본 발명의 실시 예에 따른 그래프 데이터 분산 방법은 노드들 간의 클러스터 적합도를 이용하여 연관된 노드들끼리 해당 클러스터에 클러스터링할 수 있으므로, 이후 분산된 그래프 데이터 처리시 매우 향상된 처리 속도를 제공할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (8)

  1. 그래프 데이터 처리 클러스터의 그래프 데이터 분산 방법에 있어서,
    복수의 노드들 각각에 대한 제1번째 인접노드들 내지 제N번째 인접노드들 중에서 리프노드의 개수를 각각 카운트하는 단계;
    상기 각각 카운트한 리프노드의 개수에 소정의 가중치들 각각을 적용하여 상기 복수의 노드들 각각에 대한 초기 스코어를 계산하는 단계;
    상기 계산한 초기 스코어가 큰 순서대로 복수의 클러스터 개수만큼 초기 노드들을 선정하여 상기 복수의 클러스터들에 각각 클러스터링하는 단계;
    상기 복수의 초기 노드들을 제외한 상기 복수의 노드들 중에서 클러스터링 하고자 하는 노드를 선정하고, 상기 복수의 클러스터들 각각에 클러스터링된 노드들 중에서 상기 클러스터링하고자 하는 노드에 대한 제1번째 인접노드들 내지 제N번째 인접노드들의 개수를 각각 카운트하는 단계;
    상기 각각 카운트한 인접노드들의 개수에 소정의 가중치들 각각을 적용하여 상기 클러스터링하고자 하는 노드의 상기 복수의 클러스터들 각각에 대한 클러스터링 스코어를 계산하는 단계;
    상기 계산한 클러스터링 스코어의 크기에 따라 상기 클러스터링하고자 하는 노드의 상기 복수의 클러스터들 각각에 대한 클러스터 적합도를 결정하는 단계; 및
    상기 결정한 클러스터 적합도에 따라 상기 클러스터링하고자 하는 노드를 상기 복수의 클러스터들 중 해당 클러스터에 클러스터링하는 단계;를 포함하는 클러스터 적합도를 이용한 그래프 데이터 분산 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 초기 스코어를 계산하는 단계는,
    상기 소정의 가중치들 중 제1가중치 내지 제N가중치 각각을 상기 카운트한 제1번째 인접노드들 중의 리프노드 개수 내지 상기 카운트한 제N번째 인접노드들 중의 리프노드인 개수 각각에 곱하는 방식으로 적용하는 단계; 및
    상기 제1가중치 내지 상기 제N가중치가 적용된 값들의 총합을 상기 복수의 노드들 각각에 대한 초기 스코어로 계산하는 단계;를 포함하는 클러스터 적합도를 이용한 그래프 데이터 분산 방법.
  4. 제3항에 있어서, 상기 제1가중치 내지 상기 제N가중치 각각의 크기는,
    상기 제1가중치로부터 상기 제N가중치에 이르는 순으로 감소하는 것을 특징으로 하는 클러스터 적합도를 이용한 그래프 데이터 분산 방법.
  5. 삭제
  6. 제1항에 있어서, 상기 클러스터링 스코어를 계산하는 단계는,
    상기 소정의 가중치들 중 제1가중치 내지 제N가중치 각각을 상기 카운트한 상기 제1번째 인접노드들의 개수 내지 상기 카운트한 제N번째 인접노드들의 개수 각각에 곱하는 방식으로 적용하는 단계; 및
    상기 제1가중치 내지 상기 제N가중치가 적용된 값들의 총합을 상기 복수의 클러스터들 각각에 대한 클러스터링 스코어로 계산하는 단계;를 포함하는 클러스터 적합도를 이용한 그래프 데이터 분산 방법.
  7. 제6항에 있어서, 상기 클러스터링 스코어의 크기가 동일한 경우,
    상기 복수의 클러스터들 중 클러스터링 된 노드의 개수가 적은 클러스터의 클러스터 적합도를 높게 설정하는 것을 특징으로 하는 클러스터 적합도를 이용한 그래프 데이터 분산 방법.
  8. 제7항에 있어서, 상기 복수의 클러스터들에 클러스터링 된 노드의 개수가 동일한 경우,
    상기 클러스터링하고자하는 노드를 랜덤으로 상기 복수의 클러스터들 중 어느 하나에 클러스터링하는 것을 특징으로 하는 클러스터 적합도를 이용한 그래프 데이터 분산 방법.
KR1020150017295A 2015-02-04 2015-02-04 클러스터 적합도를 이용한 그래프 데이터 분산 방법 KR101672621B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150017295A KR101672621B1 (ko) 2015-02-04 2015-02-04 클러스터 적합도를 이용한 그래프 데이터 분산 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150017295A KR101672621B1 (ko) 2015-02-04 2015-02-04 클러스터 적합도를 이용한 그래프 데이터 분산 방법

Publications (2)

Publication Number Publication Date
KR20160095842A KR20160095842A (ko) 2016-08-12
KR101672621B1 true KR101672621B1 (ko) 2016-11-03

Family

ID=56714798

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150017295A KR101672621B1 (ko) 2015-02-04 2015-02-04 클러스터 적합도를 이용한 그래프 데이터 분산 방법

Country Status (1)

Country Link
KR (1) KR101672621B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101974069B1 (ko) * 2018-04-30 2019-04-30 한국과학기술원 바이너리 구조 도식화 장치 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101211832B1 (ko) * 2011-01-07 2012-12-12 주식회사 엔씨소프트 클러스터링 기법을 이용한 온라인 게임 내 비정상 캐릭터 검출 시스템 및 그 방법

Also Published As

Publication number Publication date
KR20160095842A (ko) 2016-08-12

Similar Documents

Publication Publication Date Title
US11032391B2 (en) Social network grouping method and system, and computer storage medium
Chen et al. Node immunization on large graphs: Theory and algorithms
US10324989B2 (en) Microblog-based event context acquiring method and system
Mao et al. Analysis of average shortest‐path length of scale‐free network
Aldecoa et al. Exploring the limits of community detection strategies in complex networks
Md Saad et al. Hamming distance method with subjective and objective weights for personnel selection
JP2021533474A (ja) ノード分類方法、モデル訓練方法並びに、その装置、機器及びコンピュータプログラム
Brown et al. Personality, parasites, political attitudes, and cooperation: A model of how infection prevalence influences openness and social group formation
Chakraborty et al. On the categorization of scientific citation profiles in computer science
US9147009B2 (en) Method of temporal bipartite projection
CN105468681B (zh) 一种基于话题模型的网络负面信息影响最小化方法
Fayle et al. Reducing over-reporting of deterministic co-occurrence patterns in biotic communities
CN113422695B (zh) 一种提高物联网拓扑结构鲁棒性能的优化方法
JP7119820B2 (ja) 予測プログラム、予測方法および学習装置
CN113054651B (zh) 一种网络拓扑优化方法、装置以及系统
Bressan et al. The limits of popularity-based recommendations, and the role of social ties
CN111461440B (zh) 链路预测方法、系统及终端设备
Tang et al. Mitigate cascading failures on networks using a memetic algorithm
Beham et al. Instance-based algorithm selection on quadratic assignment problem landscapes
Boyerinas Determining the statistical power of the kolmogorov-smirnov and anderson-darling goodness-of-fit tests via monte carlo simulation
KR101672621B1 (ko) 클러스터 적합도를 이용한 그래프 데이터 분산 방법
EP3876118A1 (en) Automatic adjustment of replica exchange
Borkar et al. Randomized Kaczmarz for rank aggregation from pairwise comparisons
CN106911512B (zh) 在可交换图中基于博弈的链接预测方法及系统
Shekatkar et al. Divisibility patterns of natural numbers on a complex network

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right