KR20220065585A - Cf+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치 - Google Patents
Cf+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치 Download PDFInfo
- Publication number
- KR20220065585A KR20220065585A KR1020200152276A KR20200152276A KR20220065585A KR 20220065585 A KR20220065585 A KR 20220065585A KR 1020200152276 A KR1020200152276 A KR 1020200152276A KR 20200152276 A KR20200152276 A KR 20200152276A KR 20220065585 A KR20220065585 A KR 20220065585A
- Authority
- KR
- South Korea
- Prior art keywords
- tree
- clustering
- clusters
- mapreduce
- cluster
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치에 관한 것으로, 상기 방법은 전체 데이터 공간(entire data space)을 복수의 지역 공간(local region)들로 분할하는 공간 분할(space-partitioning) 단계; 상기 복수의 지역 공간들을 중심으로 맵리듀스(MapReduce) 환경에서 분산된 맵 및 리듀스 태스크들(Map and Reduce tasks)을 사용하여 복수의 지역 최종 클러스터(local final cluster)들을 생성하는 클러스터링(clustering) 단계; 및 상기 복수의 지역 최종 클러스터들을 병합하여 최종 클러스터를 생성하는 정제(refining) 단계를 포함한다.
Description
본 발명은 맵리듀스 기반 분산 군집화 기술에 관한 것으로, 보다 상세하게는 요약 기반 클러스터링 기법과 분산 컴퓨팅 프레임워크를 통합하여 클러스터링 시간을 효과적으로 줄일 수 있는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치에 관한 것이다.
1930년대부터 연구되기 시작한 데이터 클러스터 분석 기술, 즉 클러스터링 기법은 대용량 데이터를 빠르게 분석할 수 있는 기법으로 발전하고 있으며, 빅 데이터 시대의 도래와 함께 이러한 수요는 더욱더 증가하고 있다. 대용량 데이터 클러스터링을 위해 전체 데이터의 집합에서 일부의 표본만을 사용하는 표본화 기반 클러스터링 기법, 데이터를 구성하는 여러 속성값들 중 중요한 속성의 값만 선별해서 사용하는 차원 감소 기반 클러스터링 기법, 그리고 전체 데이터의 집합을 요약한 후 요약된 데이터의 집합으로 클러스터링을 수행하는 요약 기반 클러스터링 기법(혹은 pre-clustering) 등이 연구되었다.
하지만, 표본화 기법은 임의로 선택된 표본이 전체 데이터의 특성을 정확히 나타낼 수 있는가에 성능이 의존하는 단점이 있었고, 차원 감소 기법은 중요한 값이 누락되어 클러스터링 기법의 정확도가 떨어지는 단점이 있었다. 최근에는 요약 기반 기법을 이용하여 이 문제를 해결하고자 하는 시도가 있으나, 단일 기기 기반의 순차적 클러스터링 기법은 단일 기기에서 분석하기 어려운 거대한 데이터의 분석에 활용하기 어렵다는 문제점이 존재한다.
본 발명의 일 실시예는 요약 기반 클러스터링 기법과 분산 컴퓨팅 프레임워크를 통합하여 클러스터링 시간을 효과적으로 줄일 수 있는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치를 제공하고자 한다.
본 발명의 일 실시예는 주어진 임계값으로 예외적으로 큰 데이터 세트를 클러스터링 하기 위한 CF+ 트리를 구축하고 맵리듀스를 사용하여 최종 클러스터를 효율적으로 찾을 수 있는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치는 제공하고자 한다.
본 발명의 일 실시예는 분산 환경에서 장치 수에 맞춰 확장 가능성을 제공할 수 있는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치를 제공하고자 한다.
실시예들 중에서, CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법은 전체 데이터 공간(entire data space)을 복수의 지역 공간(local region)들로 분할하는 공간 분할(space-partitioning) 단계; 상기 복수의 지역 공간들을 중심으로 맵리듀스(MapReduce) 환경에서 분산된 맵 및 리듀스 태스크들(Map and Reduce tasks)을 사용하여 복수의 지역 최종 클러스터(local final cluster)들을 생성하는 클러스터링(clustering) 단계; 및 상기 복수의 지역 최종 클러스터들을 병합하여 최종 클러스터를 생성하는 정제(refining) 단계를 포함한다.
상기 공간 분할 단계는 샘플 객체들을 이용하여 상기 전체 데이터 공간을 상기 리듀스 태스크의 개수에 대응되는 지역 공간들로 분할하는 단계를 포함할 수 있다.
상기 공간 분할 단계는 상기 샘플 객체들에 대해 K-평균++(K-means++) 알고리즘을 적용하여 클러스터링을 수행한 결과로서 생성되는 클러스터들을 상기 지역 공간들에 대응시킴으로써 상기 분할을 수행하는 단계를 포함할 수 있다.
상기 공간 분할 단계는 상기 복수의 지역 공간들에 대응되는 클러스터들의 중심(centroid)을 해당 지역 공간의 공간 중심(region centroid)으로 정의하는 단계를 포함할 수 있다.
상기 공간 중심은 상기 클러스터링 단계에서 상기 맵 및 리듀스 태스크들에 브로드캐스팅(broadcasting)될 수 있다.
상기 맵 태스크는 입력된 객체들을 기초로 CF+(Clustering Feature) 트리를 구축하고 해당 CF+ 트리의 미세 클러스터(MC, Micro Cluster)들을 가장 가까운 공간 중심을 담당하는 리듀스 태스크로 전달할 수 있다.
상기 리듀스 태스크는 입력된 미세 클러스터(MC)들을 기초로 CF+ 트리를 구축하고 해당 CF+ 트리와 기 설정된 임계값을 이용하여 ERC 단계를 통해 지역 최종 클러스터들을 생성할 수 있다.
상기 리듀스 태스크는 상기 입력된 미세 클러스터(MC)들 중에서 지역 간 경계를 중심으로 정의되는 경계 영역과 중첩되는 경계 MC를 결정할 수 있다.
상기 리듀스 태스크는 상기 지역 간 경계와 연관된 공간 중심 쌍에 대해 특정 미세 클러스터(MC)를 스칼라 프로젝션(scalar projection)하여 해당 특정 미세 클러스터(MC)가 상기 경계 MC인지 여부를 결정할 수 있다.
상기 리듀스 태스크는 상기 특정 미세 클러스터의 평균 반지름과, 상기 특정 미세 클러스터의 중심을 상기 공간 중심 쌍을 구성하는 두개의 공간 중심들 사이의 직선으로 스칼라 프로젝션한 결과를 합산하여 제1 거리를 산출하는 단계; 상기 두개의 공간 중심들 사이의 거리를 2로 나누어 제2 거리를 산출하는 단계; 및 상기 제1 및 제2 거리들 간의 차이가 상기 임계값보다 작은 경우 상기 특정 미세 클러스터를 상기 경계 MC로 결정하는 단계를 통해 동작할 수 있다.
상기 정제 단계는 상기 클러스터링 단계의 경계 MC들을 이용하여 정제된 CF+ 트리(refining CF+ tree)를 구축하는 단계를 포함하고, 상기 정제된 CF+ 트리의 경계 MC들 각각은 서로 병합되지 않고 해당 경계 MC와 연관되는 리듀스 태스크의 ID 및 지역 최종 클러스터의 ID를 포함할 수 있다.
상기 정제 단계는 상기 정제된 CF+ 트리와 상기 임계값을 이용하여 상기 ERC 단계를 통해 상기 경계 MC들의 집합을 생성하는 단계를 포함할 수 있다.
상기 정제 단계는 상기 경계 MC들의 집합을 기초로 상기 복수의 지역 최종 클러스터들을 병합한 결과로서 전역 최종 클러스터들을 생성하여 상기 최종 클러스터로서 제공하는 단계를 포함할 수 있다.
상기 ERC 단계는 트리를 기초로 상기 임계값 내에서 선형적으로 인접한 미세 클러스터(MC)들을 그룹화 하여 미세 클러스터 세그먼트(MCS, Micro Cluster Segment)를 생성하는 분할 과정(partition step); 및 미세 클러스터 세그먼트(MCS) 간 거리(IMD)가 상기 임계값 이내인 미세 클러스터 세그먼트들을 그룹화 하여 미세 클러스터 세그먼트 집합을 생성하는 정제 과정(refinement step)을 포함할 수 있다.
실시예들 중에서, CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 장치는 전체 데이터 공간(entire data space)을 복수의 지역 공간(local region)들로 분할하는 공간 분할(space-partitioning) 수행부; 상기 복수의 지역 공간들을 중심으로 맵리듀스(MapReduce) 환경에서 분산된 맵 및 리듀스 태스크들(Map and Reduce tasks)을 사용하여 복수의 지역 최종 클러스터(local final cluster)들을 생성하는 클러스터링(clustering) 수행부; 및 상기 복수의 지역 최종 클러스터들을 병합하여 최종 클러스터를 생성하는 정제(refining) 수행부를 포함한다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치는 요약 기반 클러스터링 기법과 분산 컴퓨팅 프레임워크를 통합하여 클러스터링 시간을 효과적으로 줄일 수 있다.
본 발명의 일 실시예에 따른 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치는 주어진 임계값으로 예외적으로 큰 데이터 세트를 클러스터링 하기 위한 CF+ 트리를 구축하고 맵리듀스를 사용하여 최종 클러스터를 효율적으로 찾을 수 있다.
본 발명의 일 실시예에 따른 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치는 분산 환경에서 장치 수에 맞춰 확장 가능성을 제공할 수 있다.
도 1은 본 발명에 따른 분산 군집화 시스템을 설명하는 블록도이다.
도 2는 도 1에 있는 분산 군집화 장치의 물리적 구성을 설명하는 도면이다.
도 3은 도 1에 있는 분산 군집화 장치의 기능적 구성을 설명하는 도면이다.
도 4는 본 발명에 따른 맵리듀스 기반 분산 군집화 과정을 설명하는 순서도이다.
도 5는 CF+ 트리와 CF+-ERC를 설명하는 도면이다.
도 6은 본 발명에 따른 CF+ 트리를 이용한 맵리듀스 기반 분산 군집화 방법의 전체 프로세스를 설명하는 도면이다.
도 7은 본 발명에 따른 데이터 공간의 분할에 관한 일 실시예를 설명하는 도면이다.
도 8은 본 발명에 따른 미세 클러스터의 스칼라 프로젝션에 관한 일 실시예를 설명하는 도면이다.
도 9는 본 발명에 따른 분산 군집화 방법의 정제 단계의 프로세스에 관한 일 실시예를 설명하는 도면이다.
도 10 및 11은 본 발명에 따른 분산 군집화 방법의 성능을 설명하는 도면이다.
도 2는 도 1에 있는 분산 군집화 장치의 물리적 구성을 설명하는 도면이다.
도 3은 도 1에 있는 분산 군집화 장치의 기능적 구성을 설명하는 도면이다.
도 4는 본 발명에 따른 맵리듀스 기반 분산 군집화 과정을 설명하는 순서도이다.
도 5는 CF+ 트리와 CF+-ERC를 설명하는 도면이다.
도 6은 본 발명에 따른 CF+ 트리를 이용한 맵리듀스 기반 분산 군집화 방법의 전체 프로세스를 설명하는 도면이다.
도 7은 본 발명에 따른 데이터 공간의 분할에 관한 일 실시예를 설명하는 도면이다.
도 8은 본 발명에 따른 미세 클러스터의 스칼라 프로젝션에 관한 일 실시예를 설명하는 도면이다.
도 9는 본 발명에 따른 분산 군집화 방법의 정제 단계의 프로세스에 관한 일 실시예를 설명하는 도면이다.
도 10 및 11은 본 발명에 따른 분산 군집화 방법의 성능을 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
본 발명에 따른 분산 군집화 장치(130)는 CF+-ERC를 분산 환경에 적용하여 효율적인 데이터 클러스터링을 수행할 수 있다. 여기에서, CF+-ERC는 요약 기반 클러스터링 기법으로 수치 속성 데이터를 CF(clustering feature) 벡터로 요약할 수 있다. 이때, CF 벡터는 클러스터 내 데이터로 구성된 값으로, 각 클러스터의 중심(c: centroid) 및 평균 반지름(ar: average radius)을 구할 수 있다. CF+-ERC는 BIRCH의 CF 트리를 최적화한 CF+ 트리를 활용하여 수행될 수 있다. CF+ 트리의 리프(leaf) 엔트리(entry)들은 데이터의 가장 작은 클러스터인 미세 클러스터(MC, Micro Cluster)에 해당되며, 다른 엔트리와 마찬가지로, CF 벡터를 통해 표현될 수 있다.
이후, 분산 군집화 장치(130)는 ERC(Effective multiple Range queries-based Clustering) 기법을 통해 CF+ 트리의 구조를 활용한 범위 질의를 사용하여 미세 클러스터들을 기초로 최종 클러스터를 도출할 수 있다. 한편, CF+-ERC는 단일 기기 기반의 순차적 클러스터링 기법으로 단일 기기에서 분석하기 어려운 거대한 데이터의 분석에 사용할 수 없고 다중 기기를 활용하여 클러스터링 속도를 높일 수 없는 문제가 있으며, 분산 군집화 장치(130)는 분산 환경에 맞게 CF+-ERC를 적용하여 데이터 클러스터링을 수행하여 해당 문제를 해결할 수 있다. CF+-ERC의 구체적 동작에 대해서는 도 5에서 보다 자세히 설명한다.
도 1은 본 발명에 따른 분산 군집화 시스템을 설명하는 블록도이다.
도 1을 참조하면, 분산 군집화 시스템(100)은 사용자 단말(110) 및 분산 군집화 장치(130)를 포함할 수 있다.
사용자 단말(110)은 분산 군집화 서비스를 이용할 수 있는 컴퓨팅 장치에 해당할 수 있다. 사용자 단말(110)은 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 분산 군집화 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 분산 군집화 장치(130)와 동시에 연결될 수 있다. 한편, 사용자 단말(110)은 분산 군집화 장치(130)의 분산 군집화 연산에 참여하여 동작할 수 있다.
분산 군집화 장치(130)는 대용량 데이터 집합에 대하여 맵리듀스(MapReduce) 환경에서 CF+ 트리를 활용하여 데이터 클러스터링을 효과적으로 수행할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 또한, 분산 군집화 장치(130)는 사용자 단말(110)과 유선 네트워크 또는 블루투스, WiFi 등과 같은 무선 네트워크로 연결될 수 있고, 유선 또는 무선 네트워크를 통해 분산 군집화 장치(130)와 직접 연결될 수도 있다.
여기에서, 맵리듀스(MapReduce)는 대용량 데이터를 처리하기 위한 분산 프로그래밍 모델로서 분산 컴퓨팅 프레임워크에 해당할 수 있다. 맵리듀스에서 맵리듀스 잡(MapReduce job)을 수행하는 동안 입력 및 출력은 '키(key)-값(value)' 쌍의 형태로 처리될 수 있다. 맵 태스크를 수행하는 장치는 매퍼(mapper)에 해당할 수 있고, 리듀스 태스크를 수행하는 장치는 리듀서(reducer)에 해당할 수 있다. 맵퍼와 리듀서의 개수는 시스템에 포함된 장치들의 개수와 사용자 설정에 따라 변경될 수 있다.
구체적으로, 맵리듀스 잡(MapReduce job)은 입력(input), 맵(map), 정렬과 셔플(sort and shuffle), 리듀스(reduce) 및 출력(output)의 다섯 단계로 구성될 수 있다.
입력(input) 단계에서, 입력 데이터 집합은 m개의 분할(split)들로 분리될 수 있고, 모든 분할들은 모든 매퍼(mapper)들로 분배될 수 있다. 맵(map) 단계에서, 각 매퍼(mapper)들는 소정의 분할(split)들을 수신할 수 있다. 각 분할(split)에 대해 맵 태스크가 수행되면 중간 결과를 생성할 수 있고, 그 다음 정렬과 셔플(sort and shuffle) 단계에서 사용될 수 있다. 정렬과 셔플(sort and shuffle) 단계에서, 중간 결과들은 해당 키(key)를 기준으로 분할될 수 있고, 해당 키를 관리하는 리듀서(reducer)로 전달될 수 있다. 리듀스(reduce) 단계에서, 각 리듀서(reducer)는 <키(key), 값 목록(list of values)> 쌍을 수신할 수 있고, 해당 쌍을 처리하기 위해 리듀스 태스크를 수행할 수 있다. 마지막으로, 리듀스 태스크의 결과들은 수집되어 분산 파일 시스템에 저장될 수 있으며, 이는 맵리듀스 잡(MapReduce job)의 결과에 해당할 수 있다.
도 2는 도 1에 있는 분산 군집화 장치의 물리적 구성을 설명하는 도면이다.
도 2를 참조하면, 분산 군집화 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함하여 구현될 수 있다.
프로세서(210)는 분산 군집화 장치(130)가 동작하는 과정에서의 각 단계들을 처리하는 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(210)는 분산 군집화 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 분산 군집화 장치(130)의 CPU(Central Processing Unit)로 구현될 수 있다.
메모리(230)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 분산 군집화 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.
사용자 입출력부(250)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함할 수 있다. 예를 들어, 사용자 입출력부(250)는 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 분산 군집화 장치(130)는 서버로서 수행될 수 있다.
네트워크 입출력부(270)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.
도 3은 도 1에 있는 분산 군집화 장치의 기능적 구성을 설명하는 도면이고, 도 4는 본 발명에 따른 맵리듀스 기반 분산 군집화 과정을 설명하는 순서도이다.
도 3 및 4를 참조하면, 분산 군집화 장치(130)는 공간 분할 수행부(310), 클러스터링 수행부(330), 정제 수행부(350) 및 제어부(370)를 포함할 수 있다.
분산 군집화 장치(130)는 공간 분할 수행부(310)를 통해 전체 데이터 공간(entire data space)을 복수의 지역 공간(local region)들로 분할하는 공간 분할 단계를 수행할 수 있고(단계 S410), 클러스터링 수행부(330)를 통해 복수의 지역 공간들을 중심으로 맵리듀스(MapReduce) 환경에서 분산된 맵 및 리듀스 태스크들(Map and Reduce tasks)을 사용하여 복수의 지역 최종 클러스터(local final cluster)들을 생성하는 클러스터링 단계를 수행할 수 있으며(단계 S430), 정제 수행부(350)를 통해 복수의 지역 최종 클러스터들을 병합하여 최종 클러스터를 생성하는 정제 단계를 수행할 수 있다(단계 S450).
제어부(370)는 분산 군집화 장치(130)의 전체적인 동작을 제어하고, 공간 분할 수행부(310), 클러스터링 수행부(330) 및 정제 수행부(350) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
이하, 도 5 내지 9를 참조하여, 본 발명에 따른 분산 군집화 장치(130)에서 수행되는 맵리듀스 기반의 분산 군집화 방법을 구체적으로 설명한다.
도 5는 CF+ 트리와 CF+-ERC를 설명하는 도면이다.
도 5를 참조하면, CF+-ERC는 CF+ 트리를 구축하고 해당 트리를 기초로 다중 범위 질의를 수행하는 방법을 통해 클러스터링 타임을 줄일 수 있다. CF+-ERC에서 사용되는 CF+ 트리는 CF 벡터와 CF 트리의 개념을 기초로 정의될 수 있다. 구체적으로, 클러스터 C로 묶인 N개의 d차원 객체들 {Xi}, 여기서 i = 1, 2, ..., N 이 주어진 경우, 클러스터 C의 CF 벡터는 다음과 같이 정의될 수 있다. CF = (N, , SS), 여기서 N은 객체들의 개수, 는 N 데이터들의 순차합(linear sum), 즉 , SS는 N 제곱 데이터들의 합(sum of N squared data), 즉 이다. 리프 노드(node2 ~ node5)의 엔트리는 미세 클러스터(MC1 ~ MC11)가 될 수 있으며, 각 미세 클러스터(MC)는 자신의 중심(centroid)에서 임계값 T보다 가까운 객체들을 묶은 소형 클러스터에 해당할 수 있다.
분산 군집화 장치(130)는 클러스터링을 위해 트리에 객체를 입력할 수 있고, 트리를 탐색하여 해당 객체에 가장 가까운 미세 클러스터(MC)를 결정할 수 있다. 해당 객체와 가장 가까운 미세 클러스터(MC)의 중심과의 거리가 임계값 T보다 작은 경우, 분산 군집화 장치(130)는 해당 객체를 해당 미세 클러스터(MC)에 삽입하여 CF 벡터에 반영시킬 수 있다. 만약 해당 객체와 가장 가까운 미세 클러스터(MC)의 중심과의 거리가 임계값 T보다 큰 경우, 분산 군집화 장치(130)는 해당 객체를 기준으로 새로운 미세 클러스터(MC)를 생성하여 삽입할 수 있다.
한편, CF+ 트리에서 미세 클러스터(MC)들로 구성된 리프 노드는 보조 클러스터(SC, Sub-Cluster)로 표현될 수 있다. 도 5에서, 50개의 객체가 CF+ 트리에 입력된 결과 11개의 미세 클러스터들(MC1 ~ MC11)이 생성될 수 있다. 이후, ERC 기법의 분할 과정(partition step)을 통해 6개의 미세 클러스터 세그먼트(MCS)들로 묶일 수 있고, ERC 기법의 정제 과정(refinement step)을 통해 4개의 최종 클러스터(C1 ~ C4)로 묶일 수 있다. 즉, CF+-ERC는 순차적 클러스터링 기법으로서 사용자에 의해 설정된 임계값 T보다 가까운 객체들로 이루어진 최종 클러스터를 찾는 기법에 해당할 수 있다.
여기에서, 임계값 T는 전역 클러스터링(global clustering)을 위한 기준으로 사용될 수 있다. 미세 클러스터 간 거리(IMD, inter-microcluster distance)는 두개의 미세 클러스터들 사이의 거리를 산출하는데 사용될 수 있다. 두개의 미세 클러스터들 사이의 IMD는 그들의 중심(centroid) 간의 유클리디언 거리(Euclidean distance)에서 그들의 반지름의 합을 뺀 값에 해당할 수 있다. 만약 두개의 미세 클러스터들 사이의 IMD가 임계값보다 작은 경우 해당 미세 클러스터들은 동일한 최종 클러스터에 포함될 수 있다.
도 6은 본 발명에 따른 CF+ 트리를 이용한 맵리듀스 기반 분산 군집화 방법의 전체 프로세스를 설명하는 도면이고, 도 7은 본 발명에 따른 데이터 공간의 분할에 관한 일 실시예를 설명하는 도면이며, 도 8은 본 발명에 따른 미세 클러스터의 스칼라 프로젝션에 관한 일 실시예를 설명하는 도면이고, 도 9는 본 발명에 따른 분산 군집화 방법의 정제 단계의 프로세스에 관한 일 실시예를 설명하는 도면이다.
도 6 내지 9를 참조하면, 분산 군집화 장치(130)에 의해 수행되는 CF+ 트리를 이용한 맵리듀스 기반의 분산 군집화 방법(CF+ERC_MR)은 CF+-ERC를 도 6과 같이 다중 맵(Map) 및 리듀스(Reduce) 태스크(task)들을 사용하는 맵리듀스 환경으로 확장한 기법에 해당할 수 있으며, 단일 기기에서만 수행 가능한 제약을 제거하고 여러 기기를 함께 사용하여 클러스터링 속도를 향상시킬 수 있다.
본 발명에 따른 맵리듀스 기반 분산 군집화 방법(CF+ERC_MR)은 공간 분할(space-partitioning) 단계, 클러스터링(clustering) 단계 및 정제(refining) 단계의 3단계로 구분될 수 있다. 도 6에서, CF+ERC_MR은 정제 단계에서 정제 단계의 최종 결과를 획득하기 위해 리듀스 태스크들의 결과를 병합하는 추가적인 동작을 수행할 수 있다.
보다 구체적으로, 공간 분할 단계는 유사한 객체들이 균등한 크기로 분배되도록 전체 데이터 공간을 여러 지역으로 나눌 수 있다. 즉, 공간 분할 단계에서는, 맵 태스크를 위한 공간 중심 집합 V가 순차적인 방법에 따라 생성될 수 있고, 집합 V는 맵 태스크의 중간 결과를 적절한 리듀스 태스크로 전달하는데 사용될 수 있다.
또한, 클러스터링 단계는 맵리듀스 환경에서 공간 분할에 의해 나누어진 지역을 중심으로 다중 맵 및 리듀스 태스크를 사용하여 지역 최종 클러스터들을 결정할 수 있다. 즉, 지역 최종 클러스터들은 분산 환경에서 병렬적으로 수행되는 맵리듀스를 통해 결정될 수 있다. 한편, 지역 최종 클러스터들은 리듀스 단계에서 ERC 단계를 통해 획득되는 최종 클러스터들에 해당할 수 있다. 각 맵 태스크는 주어진 임계값을 이용하여 CF+ 트리를 구축하고, 해당 트리의 미세 클러스터들의 집합을 결정할 수 있다. 모든 미세 클러스터들은 집합 V를 기초로 정렬과 셔플 단계를 통해 적절한 리듀스 태스크들로 전달될 수 있다. 리듀스 태스크는 <키(key), 값 목록(list of values)> 쌍을 수신할 수 있고, 지역 최종 클러스터들을 생성할 수 있다.
예를 들어, 도 6에서 맵 태스크 M1은 분할 1(split 1)의 <키,값> 쌍들을 읽어와, CF+ 트리를 구축할 수 있다. CF+ 트리의 미세 클러스터들의 집합은 중간 결과 I1에 해당할 수 있고, 정렬과 셔플 단계를 통해 <i, MC> 쌍 형태로 리듀스 태스크들 Ri(1≤i≤r)에게 전달될 수 있다. 리듀스 태스크 Ri(1≤i≤r)는 <i, list of MCs> 쌍을 수신할 수 있고, 미세 클러스터들의 리스트(list of MCs)를 이용하여 CF+ 트리를 구축할 수 있다. 트리 구축이 끝나면 리듀스 태스크 Ri(1≤i≤r)는 지역 최종 클러스터들을 결정할 수 있다. 지역 최종 클러스터들의 집합은 Oi로 표현될 수 있다.
또한, 정제 단계는 지역 간 경계로 인해 나누어진 지역 최종 클러스터들을 병합하여 최종 클러스터를 결정할 수 있다. 즉, 정제 단계는 지역 최종 클러스터들을 전역 최종 클러스터들로 순차적으로 병합할 수 있다. 여기에서, 전역 최종 클러스터는 정제 단계에서 지역 최종 클러스터들로부터 병합되는 최종 클러스터들에 해당할 수 있다. 리듀스 태스크는 해당 리듀스 태스크에서만 미세 클러스터들로 구성된 지역 최종 클러스터들을 생성하기 때문에, 해당 지역 최종 클러스터들을 기반으로 전역 최종 클러스터들을 결정할 필요가 있다.
이하, 각 단계의 동작을 구체적으로 설명한다.
첫번째로, 분산 군집화 장치(130)는 공간 분할 수행부(310)를 통해 전체 데이터 공간(entire data space)을 복수의 지역 공간(local region)들로 분할하는 공간 분할 단계를 수행할 수 있다. 일 실시예에서, 공간 분할 수행부(310)는 샘플 객체들을 이용하여 전체 데이터 공간을 리듀스 태스크의 개수인 R개로 나눌 수 있다. 즉, 분할된 공간은 지역 공간에 해당될 수 있으며, 공간 분할 수행부(310)는 전체 데이터 공간을 R개의 지역 공간들로 분할할 수 있다.
일 실시예에서, 공간 분할 수행부(310)는 샘플 객체들에 대해 K-평균++(K-means++) 알고리즘을 적용하여 클러스터링을 수행할 수 있고, 생성된 클러스터들 각각은 지역 공간에 대응될 수 있다. 이때, 복수의 지역 공간들에 대응되는 클러스터들의 중심은 해당 지역 공간의 공간 중심(region centroid)으로 정의될 수 있다. 전체 데이터 공간을 구성하는 지역 공간들 각각의 공간 중심은 클러스터링 단계에서 맵 및 리듀스 태스크들에 브로드캐스팅(broadcasting) 될 수 있으며, 이를 위하여 공간 중심들에 관한 집합이 생성될 수 있다.
두번째로, 분산 군집화 장치(130)는 클러스터링 수행부(330)를 통해 복수의 지역 공간들을 중심으로 맵리듀스(MapReduce) 환경에서 분산된 맵 및 리듀스 태스크들(Map and Reduce tasks)을 사용하여 복수의 지역 최종 클러스터(local final cluster)들을 생성하는 클러스터링 단계를 수행할 수 있다. 즉, 맵리듀스 환경에서 정의되는 맵 및 리듀스 태스크들은 각각 분산된 컴퓨팅 장치에 분산 배치되어 독립적으로 수행될 수 있으며, 분산 군집화 장치(130)는 맵 및 리듀스 태스크들의 동작을 관리하고 관련 데이터의 전달과 수집 및 관리를 담당할 수 있다. 결과적으로, 클러스터링 단계는 맵리듀스를 통해 분산 처리될 수 있으며, 맵 및 리듀스 태스크로 구분되어 처리될 수 있다.
보다 구체적으로, 맵 태스크는 입력된 객체들을 기초로 CF+ 트리를 구축하고, 해당 CF+ 트리의 미세 클러스터들을 가장 가까운 공간 중심을 담당하는 리듀스 태스크로 전달하는 동작을 수행할 수 있다. 이를 통해 맵 태스크와 리듀스 태스크 사이에서 발생하는 네트워크 비용을 줄일 수 있다. 도 7에서, v1, v2, v3은 공간 분할 단계에서 도출된 공간 중심에 해당할 수 있다. 맵 태스크의 결과를 가장 가까운 공간 중심을 담당하는 리듀스 태스크로 전달하므로 전체 데이터 공간은 도 7과 같이 3개의 리듀스 태스크 R1 ~ R3이 담당하는 지역들로 구분될 수 있다.
도 7에서, 가장 작은 원(①)은 미세 클러스터에 해당할 수 있다. 가장 작은 원 각각의 패턴은 전역 최종 클러스터(C1, C2, ..., C5)의 레이블에 해당할 수 있다. 동일한 전역 클러스터에 포함된 미세 클러스터들은 굵은 실선의 원(②)으로 묶일 수 있다. 점선(③)을 통해 연결된 미세 클러스터들의 집합은 리듀스 태스크 동안 ERC 단계를 통해 결정된 지역 최종 클러스터에 해당할 수 있다. 지역 최종 클러스터는 점선의 원(④)으로 묶일 수 있다. 또한, 데이터 공간에서 실선으로 구분된 각 영역은 R1, R2 및 R3의 리듀스 태스크에 의해 관리되는 지역 공간에 해당할 수 있다. 따라서, 리듀스 태스크 R1의 경우 4개의 미세 클러스터들이 생성될 수 있고, 3개의 지역 최종 클러스터들이 획득될 수 있다. 결과적으로, 도 7에는 5개의 전역 최종 클러스터들과, 9개의 지역 최종 클러스터들 및 14개의 미세 클러스터들이 나타날 수 있다.
리듀스 태스크는 자신에게 입력된 미세 클러스터(MC)들을 이용하여 CF+-ERC를 수행함으로써 지역 최종 클러스터를 결정할 수 있다. 즉, 리듀스 태스크는 입력된 미세 클러스터들을 기초로 CF+ 트리를 구축할 수 있고, 해당 CF+ 트리와 기 설정된 임계값 T를 이용하여 ERC 단계를 통해 지역 최종 클러스터들을 생성할 수 있다.
여기에서, ERC 단계는 분할 과정(partition step)과 정제 과정(refinement step)을 포함할 수 있다. 분할 과정(partition step)은 기 구축된 트리를 기초로 임계값 T 내에서 선형적으로 인접한 미세 클러스터(MC)들을 그룹화 하여 미세 클러스터 세그먼트(MCS)를 생성하는 과정에 해당할 수 있다. 정제 과정(refinement step)은 미세 클러스터 세그먼트(MCS) 간 거리(IMD)가 임계값 T 이내인 미세 클러스터 세그먼트들을 그룹화 하여 미세 클러스터 세그먼트 집합을 생성하는 과정에 해당할 수 있다.
일 실시예에서, 리듀스 태스크는 입력된 미세 클러스터(MC)들 중에서 지역 간 경계를 중심으로 정의되는 경계 영역(BR, Border Region)과 중첩되는 경계 MC를 결정할 수 있다. 도 7에서, 긴 파선으로 표시된 미세 클러스터(MC)들의 집합은 지역 최종 클러스터에 해당하는데, 굵은 실선으로 표시된 최종 클러스터(C1, C2, C3, C4)와 다른 것을 확인할 수 있다. 그 원인은 MC1 및 MC2와 같이 임계값 T보다 가까우나 서로 다른 리듀스 태스크 R1 및 R2에 각각 할당되어 하나의 지역 최종 클러스터로 합쳐지지 못하는 경우가 발생하기 때문이다. MC1 및 MC2와 같이 전역 최종 클러스터에서 서로 합쳐질 수 있는 미세 클러스터(MC)는 지역 간 경계(710)에서 T보다 가까운 경계 영역(720)에 겹쳐질 수 있다.
즉, 경계 MC는 지역 간 경계(710)를 중심으로 정의되는 경계 영역(720)과 중첩되는 미세 클러스터(MC)에 해당할 수 있으며, 분산 군집화 장치(130)와 연동하는 분산 파일 시스템에 저장되어 정제 단계에서 사용될 수 있다.
일 실시예에서, 리듀스 태스크는 지역 간 경계와 연관된 공간 중심 쌍에 대해 특정 미세 클러스터(MC)를 스칼라 프로젝션(scalar projection)하여 해당 특정 미세 클러스터(MC)가 경계 MC인지 여부를 결정할 수 있다. 즉, 지역 간 경계를 형성하는 두개의 인접한 지역들 각각의 공간 중심들을 이용하여 특정 미세 클러스터(MC)가 지역 간 경계로부터 얼마나 떨어져 있는지를 간접적으로 확인할 수 있다.
보다 구체적으로, 리듀스 태스크는 특정 미세 클러스터의 평균 반지름과, 특정 미세 클러스터의 중심을 공간 중심 쌍을 구성하는 두개의 공간 중심들 사이의 직선으로 스칼라 프로젝션한 결과를 합산하여 제1 거리를 산출할 수 있고, 두개의 공간 중심들 사이의 거리를 2로 나누어 제2 거리를 산출할 수 있으며, 제1 및 제2 거리들 간의 차이가 임계값 T보다 작은 경우 특정 미세 클러스터를 경계 MC로 결정할 수 있다.
도 8에서, 집합 B를 경계 영역(810)과 겹치는 미세 클러스터 집합이라 하면, 스칼라 프로젝션은 집합 B를 결정하는 과정에 사용될 수 있다. 예를 들어, Ri와 Rj를 두개의 리듀스 태스크들이라 하고, Ri의 미세 클러스터(MC)가 집합 B에 포함되어 있는지 확인하기 위해 다음과 같은 접근 방식이 활용될 수 있다.
즉, 공간 중심 집합 V에 속하는 vi(820)와 vj(830)를 각각 Ri 및 Rj가 관리하는 두 지역의 공간 중심이라 하면, 제1 거리 dc는 미세 클러스터(MC1)의 평균 반지름과 미세 클러스터(MC1)의 중심을 vi(820)와 vj(830) 사이의 직선에 대한 스칼라 프로젝션의 합에 해당하고, dh는 vi(820)와 vj(830) 사이의 거리를 2로 나눈 값에 해당할 수 있다. 만약 dc와 dh의 차이가 임계값 T보다 작으면 해당 미세 클러스터(MC1)는 인접 지역을 담당하는 리듀스 태스크(R2)에 포함된 하나 이상의 미세 클러스터(MC)들과 연결될 가능성이 존재할 수 있고, 따라서 해당 미세 클러스터(MC1)는 집합 B에 포함될 수 있다. 따라서, 집합 B의 모든 미세 클러스터들은 경계 MC에 해당할 수 있으며, 집합 B는 지역 간 경계를 기준으로 정의되는 경계 영역(810) 별로 독립적으로 생성될 수 있다.
마지막으로, 분산 군집화 장치(130)는 정제 수행부(350)를 통해 복수의 지역 최종 클러스터들을 병합하여 최종 클러스터를 생성하는 정제 단계를 수행할 수 있다. 정제 수행부(350)는 경계 MC에 관한 집합들과 지역 최종 클러스터에 관한 집합들 읽어들여 정제 단계를 수행할 수 있으며, 경계 MC에 관한 집합을 기초로 지역 최종 클러스터에 관한 집합들을 병합하여 전역 최종 클러스터를 생성할 수 있다. 전역 최종 클러스터는 연결된 지역 최종 클러스터들을 순차적으로 병합하여 생성될 수 있고, 해당 과정은 경계 MC들로 구축된 CF+ 트리를 기초로 ERC 단계를 통해 효과적으로 수행될 수 있다.
다만, 특정 경계 MC(예를 들어, MCx)는 CF+ 트리를 구축하는 과정에서 임계값 조건에 따라 다른 미세 클러스터(MC)로 흡수될 수 있으며, 이 경우 해당 특정 경계 MC(MCx)를 사용하여 연결된 지역 최종 클러스터들을 찾을 수 없는 문제가 발생할 수 있다.
일 실시예에서, 정제 수행부(350)는 클러스터링 단계의 경계 MC들을 이용하여 정제된 CF+ 트리(refining CF+ tree)를 구축할 수 있다. 여기에서, 정제된 CF+ 트리(refining CF+ tree)는 상기 문제를 해결하기 위해 새롭게 제안되는 것으로, 정제된 CF+ 트리를 구성하는 경계 MC들 각각은 서로 병합되지 않고 해당 경계 MC와 연관되는 리듀스 태스크의 ID 및 지역 최종 클러스터의 ID를 포함할 수 있다. 즉, 정제된 CF+ 트리 구축 과정에서 모든 경계 MC들은 기존의 리프 노드 엔트리들에 흡수되지 않을 수 있다. 따라서, 각 경계 MC들은 리프 노드의 새로운 엔트리로 삽입될 수 있다.
일 실시예에서, 정제 수행부(350)는 정제된 CF+ 트리와 임계값 T를 기초로 ERC 단계를 수행하여 같은 최종 클러스터에 속하는 경계 MC들을 묶어줄 수 있다. 이때, 하나로 묶인 경계 MC들은 집합 형태로 생성될 수 있다. 일 실시예에서, 정제 수행부(350)는 경계 MC들의 집합을 기초로 복수의 지역 최종 클러스터들을 병합한 결과로서 전역 최종 클러스터들을 생성하여 최종 클러스터로서 제공할 수 있다. 보다 구체적으로, 각 경계 MC는 리듀스 태스크 및 지역 최종 클러스터에 관한 ID들을 포함할 수 있고, 정제 수행부(350)는 ERC 단계를 통해 묶인 경계 MC들과 해당 ID 정보를 이용하여 지역 최종 클러스터들을 전역 최종 클러스터로 병합할 수 있다.
도 9는 도 7의 실시예를 사용하여 정제 단계를 수행한 실시예에 해당할 수 있고, 14개의 미세 클러스터(MC)들 중 7개의 미세 클러스터(MC)들이 경계 MC가 되어 정제 단계에서 사용될 수 있다.
보다 구체적으로, 도 7에서 R1은 3개의 지역 최종 클러스터들을 획득할 수 있다. 즉, , 및 이다. 또한, R1은 지역 최종 클러스터들의 인덱스 집합을 획득할 수 있다. 즉, 이다. 유사하게, R2 및 R3는 모든 리듀스 태스크들의 결과로서 6개의 지역 최종 클러스터들을 획득할 수 있다. 즉, , , , , , 이다. 또한, R2 및 R3은 2개의 지역 최종 클러스터들의 인덱스 집합들을 획득할 수 있다. 즉, , 이다.
또한, 클러스터링 단계는 경계 MC들의 집합 B1, B2 및 B3을 획득할 수 있으며, 구체적으로 B1={(1,MC1), (2,MC7), (3,MC10)}, B2={(1,MC2),(3,MC8)} 및 B3={(1,MC9),(2,MC11)}에 해당할 수 있다. 결과적으로, {B1, B2, B3} 및 {I1, I2, I3}는 분산 군집화 장치(130)와 연동하는 분산 파일 시스템(DFS)에 저장될 수 있다.
한편, 도 9에서, 경계 MC들을 이용해서 ERC 단계를 수행할 경우 전역 최종 클러스터 인덱스 집합(global final cluster index set)에 해당하는 결과를 획득할 수 있다. 즉, 집합 B = {(1,1,MC1), (1,2,MC7), (1,3,MC10), (2,1,MC2), (2,3,MC8), (3,1,MC9), (3,2,MC11)}를 이용하여 정제된 CF+ 트리가 구축될 수 있다. 다음으로 ERC 단계를 통해 P1 = {(1,1,MC1), (2,1,MC2)}, P2 = {(1,2,MC7), (2,3,MC8), (3,1,MC9)} 및 P3 = {(1,3,MC10), (3,2,MC11)}와 같은 3개의 연결 집합들을 찾을 수 있다. 왜냐하면, IMD(MC1,MC2), IMD(MC7, MC8), IMD(MC7,MC9) 및 IMD(MC10,MC11)은 임계값 T보다 작기 때문이다.
도 9에서, 첫번째 박스(910)의 아래에 있는 (1,1,MC1),(2,1,MC2)은 리듀스 태스크 R1의 1st 지역 최종 클러스터에 속한 MC1과 리듀스 태스크 R2의 1st 지역 최종 클러스터에 속한 MC2의 거리가 임계값 T보다 가깝다는 것을 의미하며, 따라서 두 지역 최종 클러스터가 하나의 최종 클러스터(Final clusters) C1으로 병합될 수 있다. 이를 모든 전역 최종 클러스터 인덱스 집합에 대해 수행하면 최종 클러스터들(C1 ~ C5)을 획득할 수 있다. 즉, C1 = {MC1, MC2, MC3}, C2 = {MC4, MC5, MC6}, C3 = {MC7, MC8, MC9}, C4 = {MC10, MC11, MC12}, C5 = {MC13, MC14}이다. 결과적으로, 정제 단계는 G = {{(1,1), (2,1)}, {(2,2)}, {(1,2), (2,3), (3,1)}, {(1,3), (3,2)}, {(3,3)}}를 출력으로 제공할 수 있으며, G는 최종 클러스터 C1 ~ C5의 집합과 동일할 수 있다.
도 10 및 11은 본 발명에 따른 분산 군집화 방법의 성능을 설명하는 도면이다. 도 11의 그림 (a)는 리듀스 태스크로 보내지는 미세 클러스터들의 평균 개수에 관한 그래프이고, 그림 (b)는 리듀스 태스크의 평균 실행 시간에 관한 그래프이다.
도 10에서, 분산 군집화 장치(130)에 의해 수행되는 CF+ 트리를 이용한 맵리듀스 기반의 분산 군집화 방법(CF+ERC_MR)을 3개의 그리드 데이터 셋(G32M, G64M, G128M)에 대해서 분산 처리 프레임워크를 구성하는 노드 수를 2개에서 12개로 증가시키면서 클러스터링 시간의 변화를 노드 2개를 기준으로 표시한 것이다. 클러스터링 정확도로 사용되는 purity와 inverse purity는 모두 동일하므로 시간만 분석할 수 있다. G32M은 32M개, G64M은 64M개, G128M은 128M개의 객체들로 각각 구성될 수 있다. 노드가 증가할수록 동일한 작업이 더 많은 노드에 분산되어 처리되므로 노드 수가 증가할수록 speedup이 증가할 수 있다.
특히, 데이터의 크기의 증가, 즉 작업량이 증가할수록 더 많은 노드를 사용하여 분산 처리의 효율을 높일 수 있다. 반대로 크기가 작은 데이터의 경우 분산 처리를 통해서 큰 이득을 볼 수 없는데, 이는 분산 처리를 위한 추가적인 작업(예를 들어, 노드 상태 관리, 작업량 분배 및 네트워크 비용 등)은 노드 수의 증가와 상관없이 고정 비용을 요구하기 때문이다.
도 11에서, GRID, RANDOM, SINE 패턴 데이터 셋에 대해, 그림 (a)는 리듀스 태스크에 입력된 미세 클러스터(MC) 개수의 평균 및 표준 편차(에러 바로 표시), 그림 (b)는 실행 시간의 평균 및 표준 편차(에러 바로 표시)를 나타낼 수 있다. 모든 실험에서 표준표차가 크지 않으므로 각 리듀스 태스크의 비용이 유사함을 알 수 있으며, 이는 본 발명에 따른 분산 군집화 방법의 분산 처리 효율이 뛰어남을 의미할 수 있다. 한편, 본 발명에 따른 분산 군집화 방법은, 이외에도 다양한 합성 및 실제 데이터를 이용한 실험을 통해 purity와 inverse purity 및 클러스터링 시간을 분석한 결과, 높은 클러스터링 정확도를 유지하면서 데이터를 빠르게 클러스터링 할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 분산 군집화 시스템
110: 사용자 단말 130: 분산 군집화 장치
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 공간 분할 수행부 330: 클러스터링 수행부
350: 정제 수행부 370: 제어부
710: 지역 간 경계 720, 810: 경계 영역
820: 공간 중심 v1 830: 공간 중심 v2
110: 사용자 단말 130: 분산 군집화 장치
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 공간 분할 수행부 330: 클러스터링 수행부
350: 정제 수행부 370: 제어부
710: 지역 간 경계 720, 810: 경계 영역
820: 공간 중심 v1 830: 공간 중심 v2
Claims (15)
- 전체 데이터 공간(entire data space)을 복수의 지역 공간(local region)들로 분할하는 공간 분할(space-partitioning) 단계;
상기 복수의 지역 공간들을 중심으로 맵리듀스(MapReduce) 환경에서 분산된 맵 및 리듀스 태스크들(Map and Reduce tasks)을 사용하여 복수의 지역 최종 클러스터(local final cluster)들을 생성하는 클러스터링(clustering) 단계; 및
상기 복수의 지역 최종 클러스터들을 병합하여 최종 클러스터를 생성하는 정제(refining) 단계를 포함하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제1항에 있어서, 상기 공간 분할 단계는
샘플 객체들을 이용하여 상기 전체 데이터 공간을 상기 리듀스 태스크의 개수에 대응되는 지역 공간들로 분할하는 단계를 포함하는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제2항에 있어서, 상기 공간 분할 단계는
상기 샘플 객체들에 대해 K-평균++(K-means++) 알고리즘을 적용하여 클러스터링을 수행한 결과로서 생성되는 클러스터들을 상기 지역 공간들에 대응시킴으로써 상기 분할을 수행하는 단계를 포함하는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제3항에 있어서, 상기 공간 분할 단계는
상기 복수의 지역 공간들에 대응되는 클러스터들의 중심(centroid)을 해당 지역 공간의 공간 중심(region centroid)으로 정의하는 단계를 포함하는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제4항에 있어서, 상기 공간 중심은
상기 클러스터링 단계에서 상기 맵 및 리듀스 태스크들에 브로드캐스팅(broadcasting)되는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제1항에 있어서, 상기 맵 태스크는
입력된 객체들을 기초로 CF+(Clustering Feature) 트리를 구축하고 해당 CF+ 트리의 미세 클러스터(MC, Micro Cluster)들을 가장 가까운 공간 중심을 담당하는 리듀스 태스크로 전달하는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제6항에 있어서, 상기 리듀스 태스크는
입력된 미세 클러스터(MC)들을 기초로 CF+ 트리를 구축하고 해당 CF+ 트리와 기 설정된 임계값을 이용하여 ERC 단계를 통해 지역 최종 클러스터들을 생성하는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제7항에 있어서, 상기 리듀스 태스크는
상기 입력된 미세 클러스터(MC)들 중에서 지역 간 경계를 중심으로 정의되는 경계 영역과 중첩되는 경계 MC를 결정하는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제8항에 있어서, 상기 리듀스 태스크는
상기 지역 간 경계와 연관된 공간 중심 쌍에 대해 특정 미세 클러스터(MC)를 스칼라 프로젝션(scalar projection)하여 해당 특정 미세 클러스터(MC)가 상기 경계 MC인지 여부를 결정하는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제9항에 있어서, 상기 리듀스 태스크는
상기 특정 미세 클러스터의 평균 반지름과, 상기 특정 미세 클러스터의 중심을 상기 공간 중심 쌍을 구성하는 두개의 공간 중심들 사이의 직선으로 스칼라 프로젝션한 결과를 합산하여 제1 거리를 산출하는 단계;
상기 두개의 공간 중심들 사이의 거리를 2로 나누어 제2 거리를 산출하는 단계; 및
상기 제1 및 제2 거리들 간의 차이가 상기 임계값보다 작은 경우 상기 특정 미세 클러스터를 상기 경계 MC로 결정하는 단계를 통해 동작하는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제8항에 있어서, 상기 정제 단계는
상기 클러스터링 단계의 경계 MC들을 이용하여 정제된 CF+ 트리(refining CF+ tree)를 구축하는 단계를 포함하고,
상기 정제된 CF+ 트리의 경계 MC들 각각은 서로 병합되지 않고 해당 경계 MC와 연관되는 리듀스 태스크의 ID 및 지역 최종 클러스터의 ID를 포함하는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제11항에 있어서, 상기 정제 단계는
상기 정제된 CF+ 트리와 상기 임계값을 이용하여 상기 ERC 단계를 통해 상기 경계 MC들의 집합을 생성하는 단계를 포함하는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제12항에 있어서, 상기 정제 단계는
상기 경계 MC들의 집합을 기초로 상기 복수의 지역 최종 클러스터들을 병합한 결과로서 전역 최종 클러스터들을 생성하여 상기 최종 클러스터로서 제공하는 단계를 포함하는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 제7항 또는 제12항에 있어서, 상기 ERC 단계는
트리를 기초로 상기 임계값 내에서 선형적으로 인접한 미세 클러스터(MC)들을 그룹화 하여 미세 클러스터 세그먼트(MCS, Micro Cluster Segment)를 생성하는 분할 과정(partition step); 및
미세 클러스터 세그먼트(MCS) 간 거리(IMD)가 상기 임계값 이내인 미세 클러스터 세그먼트들을 그룹화 하여 미세 클러스터 세그먼트 집합을 생성하는 정제 과정(refinement step)을 포함하는 것을 특징으로 하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법.
- 전체 데이터 공간(entire data space)을 복수의 지역 공간(local region)들로 분할하는 공간 분할(space-partitioning) 수행부;
상기 복수의 지역 공간들을 중심으로 맵리듀스(MapReduce) 환경에서 분산된 맵 및 리듀스 태스크들(Map and Reduce tasks)을 사용하여 복수의 지역 최종 클러스터(local final cluster)들을 생성하는 클러스터링(clustering) 수행부; 및
상기 복수의 지역 최종 클러스터들을 병합하여 최종 클러스터를 생성하는 정제(refining) 수행부를 포함하는 CF+ 트리를 사용한 맵리듀스 기반 분산 군집화 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200152276A KR20220065585A (ko) | 2020-11-13 | 2020-11-13 | Cf+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200152276A KR20220065585A (ko) | 2020-11-13 | 2020-11-13 | Cf+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220065585A true KR20220065585A (ko) | 2022-05-20 |
Family
ID=81801315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200152276A KR20220065585A (ko) | 2020-11-13 | 2020-11-13 | Cf+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20220065585A (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100987026B1 (ko) | 2008-12-16 | 2010-10-11 | 연세대학교 산학협력단 | 매크로 클러스터링 방법과 그 장치, 및 상기 방법을 구현하는 프로그램이 기록된 기록매체 |
-
2020
- 2020-11-13 KR KR1020200152276A patent/KR20220065585A/ko unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100987026B1 (ko) | 2008-12-16 | 2010-10-11 | 연세대학교 산학협력단 | 매크로 클러스터링 방법과 그 장치, 및 상기 방법을 구현하는 프로그램이 기록된 기록매체 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Park et al. | Parallel computation of skyline and reverse skyline queries using mapreduce | |
You et al. | Large-scale spatial join query processing in cloud | |
Xu et al. | Efficient $ k $-Means++ approximation with MapReduce | |
CN105824957A (zh) | 分布式内存列式数据库的查询引擎系统及查询方法 | |
JP2017512338A (ja) | 第一クラスデータベース要素としての半構造データの実装 | |
CN103177059A (zh) | 用于数据库计算引擎的分离处理路径 | |
Chatzimilioudis et al. | Distributed in-memory processing of all k nearest neighbor queries | |
CN107015868B (zh) | 一种通用后缀树的分布式并行构建方法 | |
CN114416855A (zh) | 一种基于电力大数据的可视化平台及方法 | |
CN109033340A (zh) | 一种基于Spark平台的点云K邻域的搜索方法及装置 | |
Hu et al. | Trix: Triangle counting at extreme scale | |
Ye et al. | vHadoop: A scalable Hadoop virtual cluster platform for MapReduce-based parallel machine learning with performance consideration | |
dos Anjos et al. | Smart: An application framework for real time big data analysis on heterogeneous cloud environments | |
Yan et al. | Scalable load balancing for mapreduce-based record linkage | |
CN110008597B (zh) | 基于并行计算框架的建筑信息模型三角剖分方法及装置 | |
CN103365923A (zh) | 用于评估数据库的分区方案的方法和装置 | |
Kocon et al. | Point cloud indexing using Big Data technologies | |
Zhang et al. | MapReduce-based distributed tensor clustering algorithm | |
Vijayalakshmi et al. | The survey on MapReduce | |
Gupta et al. | Efficient query analysis and performance evaluation of the NoSQL data store for bigdata | |
KR20220065585A (ko) | Cf+ 트리를 사용한 맵리듀스 기반 분산 군집화 방법 및 장치 | |
CN103870342B (zh) | 云计算环境中的基于结点属性函数的任务核值计算方法 | |
Shen et al. | Massive power device condition monitoring data feature extraction and clustering analysis using MapReduce and graph model | |
US11586598B2 (en) | Data deduplication in data platforms | |
CN114153987A (zh) | 分布式知识图谱查询方法、装置及存储介质 |