KR20170001171A - 소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법 - Google Patents

소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법 Download PDF

Info

Publication number
KR20170001171A
KR20170001171A KR1020150090783A KR20150090783A KR20170001171A KR 20170001171 A KR20170001171 A KR 20170001171A KR 1020150090783 A KR1020150090783 A KR 1020150090783A KR 20150090783 A KR20150090783 A KR 20150090783A KR 20170001171 A KR20170001171 A KR 20170001171A
Authority
KR
South Korea
Prior art keywords
vertex
variables
compression target
vertices
compression
Prior art date
Application number
KR1020150090783A
Other languages
English (en)
Other versions
KR101767309B1 (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 KR1020150090783A priority Critical patent/KR101767309B1/ko
Publication of KR20170001171A publication Critical patent/KR20170001171A/ko
Application granted granted Critical
Publication of KR101767309B1 publication Critical patent/KR101767309B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • G06F17/30651

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 그래프 압축을 수행하는 장치에 관한 것이다. 이러한 본 명세서는 강한 소셜 컴포넌트(SSC)에 속하는 버텍스들에 관련된 변수들을, 동일한 속성을 가지는 것들끼리 연속적으로 배치되는 형태로 저장하는 그래픽 전역 메모리, 상기 동일한 속성을 가지는 변수들 중 적어도 하나를 병합하여 읽고 저장하는 그래픽 지역 메모리, 및 상기 그래픽 지역 메모리에 저장된 변수들에 기반하여, 상기 버텍스들 중에서 압축 대상 버텍스를 결정하는 그래픽 처리부를 포함하는 장치를 게시한다.

Description

소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법{APPARATUS AND METHOD FOR PERFORMING GRAPH COMPRESSION FOR SOCIAL NETWORK ANALYSIS}
본 발명은 대용량의 소셜 네트워크 분석을 위한 그래프 마이닝에 관한 것으로서, 보다 상세하게는 소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법에 관한 것이다.
소셜 네트워크, 화학 구성물 등은 속성을 가지는 버텍스들이 서로 연결 관계를 가지고 형성되는데, 이러한 버텍스와 버텍스 사이의 관계를 그래프로 표현할 수 있다. 최근에는 유비쿼터스 환경 및 이를 이용한 다양한 소셜 네트워크 서비스의 경우를 예로 들면, 소셜 네트워크 서비스에서 사용자를 버텍스로 판단하고 사용자가 가지는 성별, 나이, 직업 등을 노드가 가지는 다양한 속성들로 판단하는 경우 사용자 수와 사용자가 가지는 속성의 수는 기하급수적으로 증가하고 되며, 이와 함께 이러한 버텍스를 표현하는 그래프의 크기도 기하급수적으로 증가하고 있다.
소셜 네트워크에서 효율적으로 질의 패턴을 매칭하기 위하여 다중 제약 그래프 패턴 매칭 기법(multi-constrained graph pattern matching, MC-GPM)이 제안되었다. MC-GPM은 효율성을 위하여 영향력이 높은 사용자들로 구성된 강한 소셜 컴포넌트(strong social component, SSC)를 압축 표현하고, 전체 네트워크가 아닌 SSC에서 제약 조건을 기반으로 매칭을 수행한다. 그러나 압축을 위해 매우 많은 수의 버텍스와 에지를 탐색해 여전히 비효율적인 성능을 보인다.
따라서 대용량의 소셜 네트워크 분석을 위해서는 효율적인 그래프 마이닝 알고리즘이 요구된다.
본 발명의 기술적 과제는 소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법을 제공함에 있다.
본 발명의 일 양태에 따르면, 그래프 압축을 수행하는 장치를 제공한다. 상기 장치는 강한 소셜 컴포넌트(strong social component: SSC)에 속하는 버텍스(vertex)들에 관련된 변수들을, 동일한 속성을 가지는 것들끼리 연속적으로 배치되는 형태로 저장하는 그래픽 전역 메모리, 상기 동일한 속성을 가지는 변수들 중 적어도 하나를 병합하여 읽고(coalescing access) 저장하는 그래픽 지역 메모리, 및 상기 그래픽 지역 메모리에 저장된 변수들에 기반하여, 상기 버텍스들 중에서 압축 대상 버텍스를 결정하는 그래픽 처리부를 포함한다.
일례로서, 상기 그래픽 처리부는 다수의 하위 프로세서를 운영하고, 각 하위 프로세서에는 스레드(thread)가 할당되며, 각 스레드는 대응하는 SSC에 속하는 버텍스들 중에서 상기 압축 대상 버텍스를 탐색할 수 있다.
다른 예로서, 상기 그래픽 처리부는 상기 동일한 속성을 가지는 변수들 중 적어도 하나를 병합하여 읽고 상기 스레드에 할당할 수 있다.
또 다른 예로서, 상기 변수들은 소셜 컴포넌트 내의 버텍스 레이블(label), 엣지 레이블(edge label)을 포함할 수 있다.
또 다른 예로서, 상기 그래픽 처리부는 한 쌍의 버텍스 vi, vj에 대하여 조상 버텍스와 자손 버텍스를 비교하는 방식으로 상기 압축 대상 버텍스를 결정할 수 있다.
또 다른 예로서, 상기 그래픽 처리부는 상기 결정된 압축 대상 버텍스를 압축 대상 버텍스 집합에 추가하고, 상기 압축 대상 버텍스 집합을 상기 그래픽 전역 메모리에 저장한 뒤 반환할 수 있다.
본 발명의 다른 양태에 따르면, 그래프 압축을 수행하는 방법을 제공한다. 상기 방법은 강한 소셜 컴포넌트(strong social component: SSC)에 속하는 버텍스(vertex)들에 관련된 변수들을, 동일한 속성을 가지는 것들끼리 연속적으로 배치되는 형태로 저장하는 단계, 상기 동일한 속성을 가지는 변수들 중 적어도 하나를 병합하여 읽고(coalescing access) 저장하는 단계, 상기 그래픽 지역 메모리에 저장된 변수들에 기반하여, 상기 버텍스들 중에서 압축 대상 버텍스를 결정하는 단계를 포함한다.
일례로서, 상기 압축 대상 버텍스는 SSC에 대응하는 각 스레드에서 병렬적으로 결정될 수 있다.
다른 예로서, 상기 병합하여 읽혀진 적어도 하나의 변수는 상기 스레드에 할당될 수 있다.
또 다른 예로서, 상기 변수들은 소셜 컴포넌트 내의 버텍스 레이블(label), 엣지 레이블(edge label)을 포함할 수 있다.
또 다른 예로서, 상기 압축 대상 버텍스를 결정하는 단계는, 한 쌍의 버텍스 vi, vj에 대하여 조상 버텍스와 자손 버텍스를 비교하는 방식을 포함할 수 있다.
또 다른 예로서, 상기 결정된 압축 대상 버텍스를 압축 대상 버텍스 집합에 추가하고, 상기 압축 대상 버텍스 집합을 상기 그래픽 전역 메모리에 저장한 뒤 반환하는 단계를 더 포함할 수 있다.
분산 환경이 아닌 단일 컴퓨터 환경에서 복잡한 MC-GPM을 수행하더라도 성능이 매우 향상되기 때문에, 기기 관리의 편의성을 높이고 환경 구축 비용을 절감시킬 수 있다.
도 1은 일 실시예에 따른 그래프 압축 방법을 수행하는 장치를 도시한 블록도이다.
도 2는 질의 그래프와 MC-GPM의 예시를 도식화한 것이다.
도 3은 배열의 구조체 형태로 표현된 SSC의 저장 구조를 도식화한 것이다.
도 4는 일 실시예에 따른 압축 대상 버텍스를 탐색하는 과정을 도시한 순서도이다.
도 5 및 도 6은 본 실시예의 실험결과를 도시한 시뮬레이션 그래프이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "~부" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어(hardware)나 소프트웨어(software) 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 일 실시예에 따른 그래프 압축 방법을 수행하는 장치를 도시한 블록도이다.
도 1을 참조하면, 그래프 압축 수행 장치(100)는 대용량의 소셜 네트워크 분석을 위해 그래프 마이닝을 수행하며, 특히 다중 제약 그래프 패턴 매칭(multi-constrained graph pattern matching: MC-GPM)과 GPU 기반의 컴포넌트 병렬 압축을 수행하는 장치로서, 예를 들어 컴퓨터, 노트북, 스마트 기기 등을 포함할 수 있다.
일례로서, 그래프 압축 수행 장치(100)는 버스(bus, 110), 입력부(input unit, 120), 중앙처리부(central processing unit: CPU, 130), 중앙 메모리(central memory, 140), 출력부(output unit, 150), 그래픽 처리부(graphic processing unit, GPU, 160), 그래픽 전역 메모리(graphic global memory, 170), 그래픽 지역 메모리(graphic local memory, 180)를 포함한다.
다른 예로서, 그래프 압축 수행 장치(100)는 그래픽 처리부(160), 그래픽 전역 메모리(170), 및 그래픽 지역 메모리(180)를 포함하는 좁은 개념일 수도 있다.
각 구성요소를 구체적으로 살펴보면, 버스(110)는 그래프 압축 수행장치(110)의 구성요소들 사이에서의 통신을 허용한다.
입력부(120)는 키보드, 포인팅 기기, 터치 스크린, 또는 다른 입력기기를 포함할 수 있다.
중앙 처리부(130)는 지령(instructions) 또는 알고리즘(algorithm)을 해석하고 수행하는 적어도 하나의 프로세서(processor) 또는 마이크로 프로세서를 포함할 수 있다. 일례로서, 중앙 처리부(130)는 그래프 마이닝 알고리즘 소스 코드, MC-GPM 알고리즘 소스 코드를 해석하고 수행할 수 있다.
중앙 메모리(140)는 랜덤 액세스 메모리(random access memory, RAM) 또는 중앙 처리부(130)에 의해 수행되기 위한 정보와 지령 또는 알고리즘들을 저장하는 동적 저장기기의 일 형태일 수 있다. 일례로서, 중앙 메모리(140)는 그래프 마이닝 알고리즘 소스 코드, MC-GPM 알고리즘 소스 코드, GPU 기반의 컴포넌트 병렬 압축 알고리즘 소스 코드를 저장할 수 있다. 이때 중앙 메모리(140)는 유선 또는 무선 인터넷을 통해 파일 형태로 전송되는 소스 코드나 변수들을 저장할 수 있다. 또는 중앙 메모리(140)는 컴퓨터로 판독 가능한 물리적 저장매체(예를 들어 CD, DVD, USB 등)로부터 읽어들인 소스 코드나 변수들을 저장할 수 있다.
중앙 메모리(140)는 중앙 처리부(130)에 의한 지령들 또는 알고리즘의 실행 중에 사용되는 일시적인 변수들 또는 다른 중간 정보를 저장할 수 있다. 일례로서, 일시적인 변수들 또는 다른 중간 정보는 그래프 마이닝 또는 MC-GPM의 수행에 사용되는 정보로서, 버텍스 레이블(vertex label), 에지 레이블(edge label), 버텍스 집합, 에지 집합, 레이블 제약조건, 부분 그래프, 강한 소셜 컴포넌트(strong social component: SSC), 총 에지 수, 외향 에지 집합, 내향 에지 집합 중 적어도 하나를 포함할 수 있다.
출력부(150)는 디스플레이 모니터 또는 다른 출력기기들과 같이 정보를 출력하는 적어도 하나의 매커니즘을 포함한다.
그래픽 처리부(160)는 일련의 지령들을 실행하는 중앙 처리부(130)에 대한 응답에 관련된 기능을 수행할 수 있다. 예컨대 그래픽 처리부(160)는 본 실시예에 따른 그래프 압축을 수행할 수 있다(예컨대 도 4의 그래프 압축 방법). 그래픽 처리부(160)는 그래프 마이닝 또는 MC-GPM의 수행에 사용되는 정보를 그래픽 전역 메모리(170)에 저장할 수 있다. 이때 그래픽 처리부(160)는 중앙 메모리(14)에 저장된 그래프 마이닝 또는 MC-GPM의 수행에 사용되는 정보를 읽어들이고 그래픽 전역 메모리(170)에 저장할 수 있다.
그래프 마이닝 또는 MC-GPM의 수행에 사용되는 정보(다시 말하면 소셜 컴포넌트의 변수들 또는 SSC의 변수들)는 그래픽 전역 메모리(170)상에서 배열의 구조체 형태로 저장될 수 있다. 즉, SSC의 자료구조는 배열의 구조체 형태이다. 배열의 구조체 형태는 모든 구조체의 제1 속성(달리 표현하면, '부류' 또는 '유형' 또는 '멤버')의 변수들끼리 그래픽 전역 메모리(170)에 순차적으로 먼저 저장(달리 표현하면 '배치')되고, 다음으로 제2 속성의 변수들끼리 순차적으로 저장되는 형태를 의미한다. 따라서,
Figure pat00001
와 같이 동일한 속성들의 변수들끼리 그래픽 전역 메모리(170)상에서 하나의 클러스터(cluster)를 형성한다. 이하에서는 본 발명에 따른 배열의 구조체 형태를 설명하기 위한 전제 개념인 소셜 그래프, 버텍스, 엣지 그리고 MC-GPM에 관하여 도 2를 참조하여 보다 상세히 설명한다.
일반적으로 소셜 그래프 G=(V, E, LV, LE)는 사용자들을 버텍스 집합 V로, 사용자 간의 사회적 관계들을 유향 에지 집합 E로 표현한 그래프이다. 버텍스 레이블은 특정 도메인 내의 사회적 역할을 말하며, LV(v)는 V내의 각 버텍스 v에 대한 레이블을 가져오는 함수이다. 에지 레이블은 특정 도메인에서 두 사람간의 사회적 관계도 re와 신뢰도 Te를 말하며, LE(e)는 내의 각 에지 e에 대한 레이블을 가져오는 함수이다.
질의 그래프 GQ=(Vq, Eq, fv, fe, se)는 버텍스 집합 Vq와 에지 집합 Eq로 구성된다. fv는 Vq내의 버텍스 v에 대한 레이블을 가져오는 함수이며, fe는 Eq내의 에지 e의 두 지점 v와 v'에 대한 경로 길이, 즉 최단경로 p의 에지 수를 가져오는 함수이다. se는 Eq내의 에지 e 또는 Vq내의 버텍스 v에 대한 레이블의 제약조건인 λr, λT, λp로 구성된다. 그래프 G에서 모든 버텍스와 에지가 레이블 제약조건 λr, λT, λp를 모두 만족하는 부분그래프 g가 SSC이다.
MC-GPM은 G에서 GQ의 모든 버텍스가 매칭되는 부분그래프 g를 찾는 문제이다. Vq내의 u와 인접한 에지 e에 대해서, 그래프 G내에서 버텍스 v와 경로 길이 fe 내에 연결된 버텍스 v'이 존재하고 v와 v'내의 경로 p의 레이블들의 평균값이 se보다 크다면 두 버텍스 u와 v는 매칭된다.
도 2는 질의 그래프와 MC-GPM의 예시를 도식화한 것이다.
도 2를 참조하면, MC-GPM의 수행에 사용되는 정보로서 레이블 A, B, C의 버텍스를 포함하는 SSC를 가정한다. 그래프 G는 SSC에 의한 제약 그래프로서 A는 버텍스 v1, B는 버텍스 v2, C는 버텍스 v3이다. 버텍스는 노드(node)라 불릴 수도 있다. SSC의 각 버텍스는 레이블(l), 총 에지 수(n), 외향 에지 집합(O) 및 내향 에지 집합(I)으로 구성된다. 외향 에지와 내향 에지는 조상 및 자손 버텍스를 탐색하기 위해 유지한다. 그래프 GQ는 질의 그래프로서 GQ내의 버텍스 u1에 대해서 버텍스 v1은 제약조건 pv1p를 만족하고, v1과 v2의 경로 길이가 2를 만족하고, 에지 레이블의 평균이 λT, λr보다 크므로 u1과 v1은 매칭된다. 이와 같은 이유로 u2와 v2도 매칭되므로 GQ내의 모든 버텍스가 그래프 내에 매칭되어, GQ는 G에 매칭된다.
소셜 네트워크의 SSC들은 버텍스와 에지가 독립적으로 구성되어 있기 때문에, SSC내에서 압축 대상 버텍스를 찾는 작업 또한 독립적으로 수행이 가능하다. 따라서 각각의 스레드는 압축 대상 버텍스를 찾기 위해 전체 그래프 G에 접근할 필요 없이, SSC의 그래프 g에만 접근하여 효율적으로 처리할 수 있다. 즉 MC-GPM은 효율성을 위하여 전체 네트워크의 그래프를 영향력이 높은 사용자들로 구성된 강한 SSC로서 압축하여 표현하고, 전체 네트워크가 아닌 SSC에서 제약 조건을 기반으로 매칭을 수행한다. 이러한 MC-GPM이 중앙 처리부(130)에 의해 수행되는 경우 압축을 위해 매우 많은 수의 버텍스와 에지를 탐색해 여전히 비효율적인 성능을 보일 수 있다. 본 실시예는 그래픽 처리부(160)와 그래픽 메모리(170, 180)에 기반하여 MC-GPM을 분산 또는 병렬 처리하는 방법을 게시한다.
도 3은 배열의 구조체 형태로 표현된 SSC의 저장 구조를 도식화한 것이다.
도 3을 참조하면, 소셜 컴포넌트의 변수들을 속성별로 분류하면 버텍스 레이블, 버텍스의 내향-정도(in-degree), 버텍스의 외향-정도(out-degree), 버텍스의 내향 에지(in-edge),...가 존재한다. 이렇게 속성별로 분류된 변수들은 동일한 속성들끼리 그래픽 전역 메모리(170)에 순차적으로 저장(달리 표현하면 '배치')된다. 예를 들어, 도 3의 경우 버텍스 레이블이 그래픽 전역 메모리(170) 내에서 먼저 A, B, C순서로 저장되고, 다음으로 Pv값들이 0.75, 0.84, 0.73 순서로 저장된다. 각 속성들 내에서 저장되는 순서는 버텍스 레이블에 대응되는 순서와 같을 수 있다.
그래픽 처리부(160)는 복수의 하위 프로세서들을 포함할 수 있으며, 각 하위 프로세서는 스레드(thread)를 할당받는다. 도 3과 같이 동시에 읽어야하는 변수가 연속된 메모리 주소에 저장되어 있는 저장 구조에서, 그래픽 처리부(160)의 각 스레드는 그래픽 전역 메모리(170) 내에서 속성별 합병된 읽기 또는 동시 읽기를 수행할 수 있다. 예를 들어, 각 스레드에서 버텍스의 레이블을 비교하는 경우 합병된 읽기 연산을 통해 한 번에 레이블들을 모두 읽어서 스레드에 할당(또는 그래픽 지역 메모리(180)에 저장)할 수 있다.
한편, 그래픽 처리부(160)는 SSC 내의 압축 대상 버텍스의 탐색을 각 스레드에서 병렬적(또는 반복적 또는 분산적)으로 수행할 수 있다. 여기서, 압축 대상 버텍스 쌍 v와 v'는 조상과 자손 버텍스들이 모두 같은 경우를 말한다. 조상 버텍스들은 내향에지를 기준으로 너비우선탐색을 수행하여 얻어질 수 있고, 자손 버텍스들은 외향에지를 기준으로 탐색하여 얻어질 수 있다. 그래픽 처리부(160)는 이러한 과정을 SSC내의 모든 버텍스들의 쌍에 대해서 반복적으로 검사하고 그 결과값에 기반하여 SSC를 압축한다.
이러한 도 4의 동작 순서를 알고리즘으로 표현하면 표 1과 같다.
Input : A Graph G, A SSCk
Output : A set of compressed vertex pairs C
step 1 :
Figure pat00002
<-- a graph of SSCk in the graphic global memory
step 2 :
Figure pat00003
step 3 : for each vi, vj ∈ Vg
step 4 : ANvj <-- ancestors vertices of vj;
step 5 : ANvi <-- ancestors vertices of vi;
step 6 : DEvj <-- descendants vertices of vj;
step 7 : DEvj <-- descendants vertices of vj;
step 8 : if ANvj=ANvi and DEvjDEvi
step 9 :
Figure pat00004
step 10 : return C;
각 스레드에서 압축 대상 버텍스를 탐색(또는 결정)하는 상세한 과정은 도 4와 같다.
도 4는 일 실시예에 따른 압축 대상 버텍스를 탐색하는 과정을 도시한 순서도이다. 이는 그래픽 처리부(160)의 동작일 수도 있고, 그래픽 처리부(160)의 각 스레드에서의 동작일 수 있다. 도 4에서는 설명의 편의를 위하여 각 스레드의 동작으로 설명하나, 이는 그래픽 처리부(160)의 동작에 대응될 수 있음은 물론이다.
스레드는 입력값으로서 G와 SSCk를 받으며, 결과값으로서 압축 대상 버텍스 집합 C를 반환한다. k는 SSC의 인덱스이다.
도 4를 참조하면, 각 스레드는 그래픽 전역 메모리(170)상에서 배열의 구조체 형태로 저장된 SSCk를 읽어들이고 그래픽 지역 메모리(180)로 복사한다(S400). 이는 표 1의 step 1에 대응될 수 있다. 여기서 배열의 구조체 형태로 저장된 실시예는 도 3과 같다.
스레드는 압축 대상 버텍스 집합 C를 초기화한다(S405). 이는 표 1의 step 2에 대응될 수 있다.
스레드는 소셜 컴포넌트 내의 그래프 g의 한 쌍의 버텍스 vi와 vj에 대해 조상 버텍스(ancestor vertex)와 자손 버텍스(descendant vertex)를 비교한다(S410). 이는 표 1의 step 3~step 8에 대응될 수 있다.
스레드는 조상 버텍스와 자손 버텍스가 동일한 두 버텍스 vi와 vj를 압축 대상 버텍스 집합 C에 추가한다(S415). 이는 표 1의 step 9에 대응한다.
스레드는 이와 같은 과정을 SSCk내의 모든 버텍스 쌍을 대상으로 단계 S410 및 S415를 반복 수행하되(표 1의 step 3에 대응), SSCk 내의 모든 버텍스 쌍에 대한 압축 대상 버텍스 집합 C가 결정되면, 스레드는 압축 대상 버텍스 집합 C를 그래픽 전역 메모리(170)에 복사한 뒤 그래픽 처리부(160) 또는 중앙 처리부(130)로 반환한다(S420).
본 명세서에서 게시된 그래프 압축 방법 및 장치는 소셜 네트워크에서 사용자간의 관계 분석을 통하여 사회적 위치 추정, 전문가 탐색, 여행 계획 수립 등과 같은 다양한 정보를 생산할 수 있다. 소셜 네트워크 분석은 그래프 매칭, 분류, 클러스터링 등의 다양한 그래프 마이닝 기법들로 수행되며, 소셜 네트워크의 대용량이라는 특성 때문에 효율성을 개선한 알고리즘들이 연구되고 있다. 사회적 영향력이 높은 사용자들로 구성된 강한 소셜 관계들을 찾고, 후보들에서 제약 조건을 고려한 질의 그래프 패턴을 매칭한다. 다중 제약 그래프에서 패턴매칭을 위한 관계 데이터 접근 표현 구조를 GPU기반으로 제안하여 화학복합물(케미컬 컴파운드), 제약회사, 생명공학, 소셜 네트워킹 등과 같은 다양한 분야에서 다중 제약 그래프를 위한 병렬 그래프 압축 기술로서 이용될 수 있다.
본 실시예는 각 스레드에서 모든 버텍스들의 특정 속성에 대한 병합 읽기(coalescing access)를 가능하게 한다. 예를 들어, 모든 버텍스들에 대한 레이블 읽기 수행 시, 전역 메모리에서 한꺼번에 읽어 들일 수 있다. 또한 그래픽 처리부(160)는 그래픽 전역 메모리(170)와 그래프 지역 메모리(180)에 접근하기 용이하고, 접근 속도가 빠른 스레드(또는 지역 메모리)에 접근하게 됨으로써 MC-GPM의 수행 성능이 매우 향상될 수 있다. 그리고 도 3과 같이 각 버텍스의 레이블들이 메모리에 국부화되어(localized) 있기 때문에, 그래픽 처리부(160)의 각 스레드에서는 저장된 변수를 읽어들이는데 소요되는 시간이 현저히 줄어든다. 실험결과, 본 실시예에 따른 압축기법의 속도는 도 5와 같이 종래의 MC-GPM의 압축보다 약 100배 향상됨을 보였다.
도 5 및 도 6은 본 실시예의 실험결과를 도시한 시뮬레이션 그래프이다. 여기서 도 5는 SSC 수의 변화에 따른 그래프 압축 기법의 수행시간을 나타낸 결과이고, 도 6은 스레드 수의 변화에 따른 그래프 압축 기법의 수행시간을 나타낸 결과이다. 본 시뮬레이션에 사용된 환경은 Intel(R) Core(TM) i7-5820K CPU와 NVIDIA GeForce GTX 750 GPU를 사용하였다. 실험을 위해 대용량 그래프 데이터셋인 스탠포드 데이터 셋 중에서 Epinion 소셜 네트워크 데이터셋을 사용하였다. Epinion 소셜 네트워크 데이터는 75879개의 버텍스와 508837개의 에지로 구성되어 있다. Epinion 소셜 네트워크 데이터의 버텍스와 에지 레이블은 [0,1] 사이의 실수값으로 난수를 발생시켜 할당하였으며, 버텍스와 에지 제약조건 λr, λT, λp은 0.8로 설정하였다. GPU의 스레드는 SSC의 수만큼 할당하여 그래프를 병렬로 압축하였다.
도 5를 참조하면, 본 실시예에 따른 GPU 기반의 압축 방식이 CPU 환경의 압축 방식보다 약 100배 이상 성능이 향상되었으며, SSC의 수가 증가할수록 더욱 크게 성능이 향상되는 경향을 보인다.
도 6을 참조하면, k는 80개로 고정하여 수행시간을 측정하였다. k = 80일 경우 스레드가 20개 일 때 가장 빠르며 60개 일 때 가장 오래 걸리는 경향을 보였다.
기존에는 단일 컴퓨터에서 작은 크기의 다중 제약 그래프에서만 상용 가능한 응답 수준을 보이거나 분산 환경을 이용한 대용량 다중 제약 그래프 압축 기법이 단일컴퓨터에서 대용량의 다중 제약 그래프 압축 기술을 수행할 수 있었다. 반면, 본 발명은 분산 환경이 아닌 단일 컴퓨터 환경에 적용될 수 있고, 이러한 단일 컴퓨터 환경은 기기 관리의 편의성을 높이고 환경 구축 비용을 절감시킬 수 있다.
본 발명은 기업이나 개인으로부터 비정형데이터를 제공받고, 데이터에서 기업이나 개인이 필요로 하는 정보만을 분석하는 서비스를 제공할 수 있다. 예를 들어 개인은 자신이 속한 소셜 네트워크를 여러 분류로 나눌 수 있고, 해당 소셜 네트워크에서 가장 영향력이 있는 인물을 찾아낼 수도 있다. 기업에서는 소셜 네트워크의 글을 분석하여 회사 상품의 시장성, 가치 등을 평가할 수 있으며, 집중적으로 마케팅해야 하는 연령대 및 성별을 찾아 활용할 수 있다. 이러한 서비스를 제공함으로써 수익을 창출해 낼 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (12)

  1. 그래프 압축을 수행하는 장치로서,
    강한 소셜 컴포넌트(strong social component: SSC)에 속하는 버텍스(vertex)들에 관련된 변수들을, 동일한 속성을 가지는 것들끼리 연속적으로 배치되는 형태로 저장하는 그래픽 전역 메모리;
    상기 동일한 속성을 가지는 변수들 중 적어도 하나를 병합하여 읽고(coalescing access) 저장하는 그래픽 지역 메모리;
    상기 그래픽 지역 메모리에 저장된 변수들에 기반하여, 상기 버텍스들 중에서 압축 대상 버텍스를 결정하는 그래픽 처리부를 포함하는 장치.
  2. 제 1 항에 있어서,
    상기 그래픽 처리부는 다수의 하위 프로세서를 운영하고, 각 하위 프로세서에는 스레드(thread)가 할당되며, 각 스레드는 대응하는 SSC에 속하는 버텍스들 중에서 상기 압축 대상 버텍스를 탐색하는 것을 특징으로 하는, 장치.
  3. 제 2 항에 있어서,
    상기 그래픽 처리부는 상기 동일한 속성을 가지는 변수들 중 적어도 하나를 병합하여 읽고 상기 스레드에 할당하는 것을 특징으로 하는, 장치.
  4. 제 1 항에 있어서,
    상기 변수들은 소셜 컴포넌트 내의 버텍스 레이블(label), 엣지 레이블(edge label)을 포함하는 것을 특징으로 하는, 장치.
  5. 제 1 항에 있어서,
    상기 그래픽 처리부는 한 쌍의 버텍스 vi, vj에 대하여 조상 버텍스와 자손 버텍스를 비교하는 방식으로 상기 압축 대상 버텍스를 결정하는 것을 특징으로 하는, 장치.
  6. 제 5 항에 있어서,
    상기 그래픽 처리부는 상기 결정된 압축 대상 버텍스를 압축 대상 버텍스 집합에 추가하고, 상기 압축 대상 버텍스 집합을 상기 그래픽 전역 메모리에 저장한 뒤 반환하는 것을 특징으로 하는, 장치.
  7. 그래프 압축을 수행하는 방법으로서,
    강한 소셜 컴포넌트(strong social component: SSC)에 속하는 버텍스(vertex)들에 관련된 변수들을, 동일한 속성을 가지는 것들끼리 연속적으로 배치되는 형태로 저장하는 단계;
    상기 동일한 속성을 가지는 변수들 중 적어도 하나를 병합하여 읽고(coalescing access) 저장하는 단계;
    상기 그래픽 지역 메모리에 저장된 변수들에 기반하여, 상기 버텍스들 중에서 압축 대상 버텍스를 결정하는 단계를 포함하는 방법.
  8. 제 7 항에 있어서,
    상기 압축 대상 버텍스는 SSC에 대응하는 각 스레드에서 병렬적으로 결정되는 것을 특징으로 하는, 방법.
  9. 제 8 항에 있어서,
    상기 병합하여 읽혀진 적어도 하나의 변수는 상기 스레드에 할당되는 것을 특징으로 하는, 방법.
  10. 제 7 항에 있어서,
    상기 변수들은 소셜 컴포넌트 내의 버텍스 레이블(label), 엣지 레이블(edge label)을 포함하는 것을 특징으로 하는, 방법.
  11. 제 7 항에 있어서, 상기 압축 대상 버텍스를 결정하는 단계는,
    한 쌍의 버텍스 vi, vj에 대하여 조상 버텍스와 자손 버텍스를 비교하는 방식을 포함하는 것을 특징으로 하는, 방법.
  12. 제 11 항에 있어서,
    상기 결정된 압축 대상 버텍스를 압축 대상 버텍스 집합에 추가하고, 상기 압축 대상 버텍스 집합을 상기 그래픽 전역 메모리에 저장한 뒤 반환하는 단계를 더 포함함을 특징으로 하는, 방법.
KR1020150090783A 2015-06-25 2015-06-25 소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법 KR101767309B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150090783A KR101767309B1 (ko) 2015-06-25 2015-06-25 소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150090783A KR101767309B1 (ko) 2015-06-25 2015-06-25 소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170001171A true KR20170001171A (ko) 2017-01-04
KR101767309B1 KR101767309B1 (ko) 2017-08-10

Family

ID=57831867

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150090783A KR101767309B1 (ko) 2015-06-25 2015-06-25 소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법

Country Status (1)

Country Link
KR (1) KR101767309B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101990735B1 (ko) 2018-03-30 2019-06-18 서울대학교산학협력단 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101990735B1 (ko) 2018-03-30 2019-06-18 서울대학교산학협력단 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법 및 장치

Also Published As

Publication number Publication date
KR101767309B1 (ko) 2017-08-10

Similar Documents

Publication Publication Date Title
Zhao et al. A community detection algorithm based on graph compression for large-scale social networks
Al Hasan et al. Triangle counting in large networks: a review
Tsiotas Detecting different topologies immanent in scale-free networks with the same degree distribution
Vieira et al. Efficient search ranking in social networks
Jiang et al. Exact top-k nearest keyword search in large networks
CN106844407B (zh) 基于数据集相关性的标签网络产生方法和系统
Bae et al. Scalable and efficient flow-based community detection for large-scale graph analysis
CN104077723B (zh) 一种社交网络推荐系统及方法
Nikolentzos et al. Learning structural node representations using graph kernels
Li et al. Overlap community detection using spectral algorithm based on node convergence degree
Li et al. An extended depth-first search algorithm for optimal triangulation of Bayesian networks
Nguyen et al. Fast and scalable algorithms for mining subgraphs in a single large graph
Zhang et al. Discovering key users for defending network structural stability
Qiu et al. Discovering organizational structure in dynamic social network
Levi et al. Constructing near spanning trees with few local inspections
Sahu et al. A neighbour-similarity based community discovery algorithm
George et al. A framework for inventor collaboration recommendation system based on network approach
Hui et al. Incremental mining of temporal patterns in interval-based database
Banerjee A survey on mining and analysis of uncertain graphs
KR101767309B1 (ko) 소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법
Zhang et al. PLinkSHRINK: A parallel overlapping community detection algorithm with Link-Graph for large networks
Chan et al. Interactive audience expansion on large scale online visitor data
Chaudhary et al. Detecting community structures using Modified Fast Louvain Method in complex networks
Huang et al. Community detection algorithm for social network based on node intimacy and graph embedding model
Nimbhorkar et al. Dynamic rank-maximal and popular matchings

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant