GRAPH DB/Graph Solution

G-PAS 이론편: 그래프 DB를 활용한 예측 분석

(주)비트나인 2022. 2. 14. 16:31

 

 

본 글은 비트나인에서 출시한 솔루션 중 하나인 그래프 데이터베이스를 활용한 예측분석 시스템(G-PAS)에 대한 내용을 다루고 있습니다. 

 

G-PAS란?  

 

G-PAS, 빅데이터 예측분석 시스템

그래프 예측분석 시스템 소개 G-PAS(Graph Predictive Analysis System)는 프로퍼티 그래프 데이터 모델(Property Graph Data Model)을 사용하며, 빅데이터를 관리할 수 있는 최적의 구조를 가졌습니다. 프로퍼티..

bitnine.tistory.com

 

비트나인의 그래프 사이언스 R&D팀이 이에 대해 보다 쉽게 이해할 수 있도록 작성했으며, 이론편을 시작으로 ‘그래프를 활용한 예측분석 시스템에 대한 기본적인 개념’과 ‘데이터 모델링을 통해 분석하는 과정’을 설명하는데 초점이 맞추어져 있습니다.

 

이 이론편에서는 수많은 그래프 분석 이론을 모두 담을 수는 없어 실질적으로 예측분석 시스템을 활용하기 위하여 필요한 지식들을 선별하여 담았기에, 독자님들은 가급적이면 이론편을 먼저 이해하고 난 후 실전편으로 넘어가시기를 권고합니다. 

 

(실전편은 추후에 업로드 될 예정입니다)

 

그래프 DB의 장점을 활용하는 예측분석

그래프 DB의 장점 중 하나는 많은 관계를 가진 데이터를 간결하게 처리할 수 있다는 점이 있으며, 추천서비스를 예를 들어 예측분석에 대해 설명하고자 합니다.

 

상품이나 영화 같은 콘텐츠 추천의 기본적인 원리는 나와 비슷한 구매 성향을 가진 사람들이 어떤 상품을 구매했는지 검색하고 그 중 가장 적절한 상품을 나에게 추천해주는 것입니다. 이때 나와 같은 성향을 가진 사람들, 그 사람들이 어떤 상품을 구매했는지, 그 상품 중 나에게 어떤 상품을 추천할 것인지에 대한 복잡한 관계에서 연산이 수행됩니다. 관계형 DB는 별도의 테이블에 저장된 데이터의 관계를 나타내기 위해서 조인(Join) 방식을 사용하지만, 그래프 DB는 직접적으로 데이터 간 관계를 생성하기 때문에 별도의 매핑 테이블이 필요하지 않습니다. 따라서 복잡한 join을 사용할수록 처리비용 면에서는 그래프 DB가 더 이로운 점을 가지고 있습니다.

 

그래프 DB의 다른 장점은 비정형데이터에 대한 예측분석이 가능하다는 점입니다. 물류시스템(Supply Chain)과 같이 원자재, 가공, 창고, 구매자와 같이 여러 주체들 간 서로 Input/Output을 하는 유기적인 시스템을 이룰 경우 기존 관계형 DB 형태로 모델링 및 직관적 분석이 용이하지 않을 수도 있습니다. 제품 생산량, 창고 적재량, 운송거리와 같이 주체 간 역량을 고려하여 예측분석(최적화)을 하는 경우, 그래프 DB가 더욱 효과적일 수 있는 것입니다. 

 

Supply Chain Graph 예시

 

 

또한, 그래프 DB는 연쇄적 사건에 대한 종국 예측을 할 경우 용이합니다. 정책에 대한 예측을 할경우 하나의 정책이 미치는 영향력을 확인하기까지 오랜 시간이 걸리고, 또한 이전의 정책들이 연쇄적 반응에 의한 영향력일 가능성이 높을 수 있습니다. 이때 각 정책과 반응들을 그래프로 구성하여 각 정책효과의 가설을 정립하고 검증하는 데에 효과적입니다.

 

정책 영향 관계 Graph 예시

 

GNN, GCN을 활용한 예측분석

기존 그래프 이론을 활용한 분석은 예측보다 그래프 자체를 해석하거나 패턴을 찾는 방법론이 흔했습니다. 그러나 최근 인공신경망을 활용한 여러 방법론 중 그래프와 접목시킨 GNN(Graph Neural network), GCN(Graph Convolutional neural network) 등을 활용한 예측분석이 가능하다는 연구가 나왔습니다. 예측의 범위는 다음과 같습니다.


- Graph-level : 그래프 자체를 Input하여 분류

 

- Node-level : 노드 간의 관계를 학습하여 노드를 분류하거나 속성 값을 예측

 

- Edge-level : 엣지를 분류하거나 연결되지 새로 추가된 노드와의 관계를 예측

 

이를 활용한 예로 유저가 각각 영화 평점을 매긴 것을 바탕으로 아직 평가가 없는 유저-영화 쌍의 예상 평점을 계산하거나(1), 분자구조를 그래프로 변환하고 GNN을 거쳐 향기를 예측한(2) 논문이 있습니다. 그래프는 유연한 데이터 구조를 가지고, 다양한 데이터 구조로 일반화가 가능하여 데이터를 그래프 구조로 표현할 때 문제를 새로운 관점에서 바라볼 수 있습니다. 또한  분자구조, 소셜 네트워크 등 데이터 원형대로 그래프를 표현할 수 있어 활용 범위가 점차 늘어가고 있습니다. 이에 따라 그래프를 활용한  분석 방법론이 연구되고 앞으로도 계속 발전할 것입니다. 

 

그래프 DB에서의 데이터 모델링 및 예측분석 프로세스

그래프 데이터를 모델링 할 때에는 다음의 구성요소를 이용하여 데이터를 표현합니다. GDB는 데이터의 저장, 확장, 변경이 용이하기 때문에 다른 속성을 가진 데이터(노드)나 관계(엣지)가 추가 및 제거되더라도 자유롭게 설정이 가능합니다. 

 

- 노드 (Node): 객체 하나를 표현하는 단위

 

- 엣지 (Edge): 객체 간 관계를 표현하는 단위

 

- Label: 유사한 속성을 가진 그룹을 표현하는 단위.‘사람’, ‘동물’, ‘자동차’와 같이 각 객체가 공통적으로 이용할 수 있는 Label Name을 이용

 

1) Node는 실존하는 객체, Edge는 객체 간의 관계 및 의미를 표현한다. 

 

2) Node의 property는 객체의 속성이나 메타데이터를 나타내며, Edge의 property는  관계의 속성 및 강도, 혹은 메타데이터를 나타낸다. 

 

3) 노든 간의 능동/수동 관계는 양방향으로 표현하지 않고 하나만 표현하도록 한다.

 

4) 방향성이 없는 관계는 하나로만 표현하도록 한다. 

 

   

노드간 능동/수동 관계 표현 예시

 

5) 다수의 노드간에 하나의 관계가 발생하는 경우엔 관계 노드를 생성할 수 있다. 

 

6) 노드보다 엣지가 월등히 많은 경우, 노드-엣지 관계를 엣지-노드 관계로 변환하는 Line Graph 변환을 활용할 수 있다. 

 

RDB에서 GDB로 변환하는 과정

다음은 이미 RDB에 저장되어있는 데이터를 GDB로 변환하는 과정에 대해서 살펴보겠습니다. 맵핑 테이블과 조인(join) 관계로 복잡하게 표현되어있는 RDB 데이터를 GDB로 저장한다면, 맵핑 테이블 없이 스키마가 없는(Schema-less) 형태로 직관적인 객체 간의 관계를 표현할 수 있습니다. 

 

RDB와 GDB의 자료 구조의 차이

 

다음의 절차에 따라서 모델링을 진행합니다. 

 

1) RDBMS에서는 각 Row의 고유 속성을 나타내기 위한 Primary Key, 다른  테이블과의 조인을 위한 Foreign Key가 존재하지만 GDB에서는 객체 간 연결 관계를 직관적으로 표현하므로 이들을 제거하게 된다. 

 

2) RDB의 데이터를 GDB로 표현하기 위해서는 일단 테이블명을 노드의 Label로 설정한다.

 

3) Foreign Key는 제거하고 Join 테이블은 엣지로 변환하며, Join 테이블 내의 속성 값은 엣지의 속성으로 입력하도록 한다.

 

GDB 모델링과 그래프 예측분석 프로세스

GDB 모델링을 하는 사례와 방법은 여럿 있으나, 그중 가장 일반적인 방법을 소개하겠습니다.  

 

A. 분석의 대상이 되는 변수를 중심으로 먼저 GDB 모델링 실시한다.
예를 들어 은행에서 이상거래탐지(FDS)시 계좌를 각 중심 노드로 설정 후, 거래내역을 엣지에 모델링할 수 있습니다. 그리고 예금주 정보, ATM 출금 정보, 지역 및 전화번호 정보 등 이상 거래의 근거 및 단서가 될만한 데이터를 중심 노드인 계좌와 함께 연결하여 모델링을 실시합니다.  

 

은행거래 관계의 그래프 데이터 모델링 예시

 

B. 그래프 쿼리를 이용한 데이터 탐색 및 패턴 도출한다.
그래프 쿼리를 이용한 데이터 탐색과정을 통하여 각종 데이터간의 관계 및 분석에 사용할 만한 패턴을 조회하고 도출할 수 있습니다. 그래프 예측분석의 EDA과정이라고 생각할 수 있으며, 패턴 도출 또한 하나의 분석 방법이 될 수 있습니다.  


먼저, 예측분석 모델에서 사용될 만한 가설을 수립하고 탐색 및 도출해야할 항목을 명확히 설정하는 것도 예측분석 모델의 방향성을 수립하는데 중요한 역할을 합니다.   

 

관계 가설 수립 예시

 

C. 분석 노드를 중심으로 그래프 분석 및 알고리즘을 사용하여 예측분석을 실시한다.
기존의 머신러닝 및 데이터 분석에서는 분석 모델을 수립하고 분석 대상이 되는 계좌의 속성 데이터를 학습 parameter로 가공하여 모델을 학습하는데 초점이 맞춰져 있습니다. 이러한 분석모델은 그 이면의 데이터 간의 관계에 대해서 분석을 고려하지 않는 모습을 볼 수 있습니다. 

그래프 예측분석은 이러한 데이터 간의 관계를 기반으로 새로운 인사이트를 찾고자 하는데서 시작합니다. 새로운 관계를 발견하고 정의하고 이를 기반으로 분석하는데 의의가 있습니다. 이는 기존 데이터 분석 방법론 달리 데이터 간의 관계를 활용한 분석이 가능하다는 차별성이 있습니다.

앞에서 그래프는 예측분석을 실시하는 대상을 중심으로 노드를 모델링을 해야 한다고 언급했습니다.
하지만 그래프 모델링을 하다보면 대상 노드 간의 서로 직접적인 관계가 존재하는 경우도 있지만, 현실의 관계는 그렇지 않은 경우가 더 많을 수 있습니다.

가령  ‘A 은행에서의 서로 다른 계좌가 동시에 동일한 타행인 B 은행의 계좌에 보낸 관계를 이용하여 분석하고 싶다’라 할 때, 동시에 동일한 타행 계좌에 보낸 관계는 데이터에 표기가 되어있지 않습니다. ‘동시에 동일한 타행 계좌에 보낸 관계’라는 새로운 관계를 정의하고 이것을 가공하고 수치화하여 분석을 하고 싶다면 어떻게 해야 가능할까요?


동시 송금 데이터 관계 예시

 

이를 해결하는 방법은 위의 상황을  A 은행의 계좌와 B 은행 계좌를 이분그래프로 구분하는 것입니다.  이분 그래프로 이루어진 다음의 관계를 단일 모드 그래프로 변환을 한다면 ‘두 A 은행 계좌가 동시에 동일한 타행 B 은행 계좌에 보낸 관계’를 두 A 은행계좌의 Edge로 모델링이 가능합니다.  Edge의 값에는 여러 가지가 들어갈 수 있는데 기본적으로 얼마나 두 계좌 간에 위의 정의된 관계가 일어났는지 관계의 횟수를 기록할 수 있으며, 분석하는 용도에 따라서 금액 또는 다른 변수들을 함께 기록하여 분석에 사용할 수 있습니다. 


Graph Projection

 

그림처럼 계좌와 계좌간의 Edge의 모델링이 가능하며, 이렇게 이분 그래프를 단일 그래프로 변환하는 과정을 Graph Projection이라고 합니다. 

 

Graph Projection의 결과는 단일 모드 그래프의 관계입니다. 이어서 새롭게 정의된 관계를 기반으로 Graph 예측분석 알고리즘을 적용해볼 수 있을 것입니다. 


예를들어 ‘A 은행의 계좌 중 타행 B은행으로 동시 송금한 패턴 중에 유사한 패턴끼리 군집분석을 실시한다’라 할때, 단일모드 그래프로 동시 송금 관계를 정의한 후 그래프 분석 알고리즘은 커뮤니티 탐지(Community Detection)를 사용하여 군집분석을 실시할 수 있습니다.  

 

다른 예로는 ‘위의 A은행 계좌중 가장 중심에 있는 허브 계좌를 찾고 싶다’라 할때, 단일모드 그래프에서 그래프 분석 알고리즘의 중심성 분석 및 PageRank를 활용하여 중심이 되는 허브계좌를 발견할 수 있습니다.

이렇게 그래프 예측분석에서는 분석 대상간의 새로운 관계를 정의할 수 있으며, 기존 분석과 다르게 새로운 ‘대상 간의 관계’를 정의할 수 있다.  그리고 그래프 변환을 통하여 여러 가지 그래프 알고리즘을 적용하면서 관계에 대한 다양한 분석이 가능합니다. 

 

GDB에서의 대용량 데이터 모델링

그래프 모델에서 두 노드 사이에 생성된 관계가 대용량의 데이터일 때, 레이블 상속을 이용하여 상위 레이블의 개념을 하위 레이블로 분할하여 저장 및 관리할수 있습니다.

 

레이블 상속을 적용을 하게되면, 데이터 액세스 시 범위를 줄여 쿼리의 성능 향상을 가져올 수 있습니다. 또한 여러 분할 영역으로 관리되어 데이터 훼손 가능성이 감소되고, I/O 성능 향상을 가져올 수 있습니다. 이러한 방법들이 주로 활용될 수 있는 분야는 지속적으로 변하는 대규모 소셜 그래프 및 대규모 금융거래 그래프 등에서 분산 저장을 통하여 I/O 처리 향상된 시스템을 구현할 수 있습니다.

그래프 데이터베이스 중 특정 일부 제품들의 레이블들은 계층구조를 가질 수 있으며, 계층 구조를 통해 레이블 상속이 가능합니다. 

 

그래프 DB의 노드 레이블 상속

먼저 데이터 객체가 되는 노드(Vertex)를 카테고리화 해서 Parent Vertex Label(상위개념)과 Child Vertex Label (하위개념)을 분리합니다. 노드의 하위 카테고리 내부의 데이터를 조회하기 위해선 검색조건에 Child Vertex Label 지정하여 그래프 데이터에 액세스 할 수 있기에, 좀 더 데이터 액세스 범위를 줄이는 효과를 가져올 수 있습니다.

 

Child Vertex Label명은 상속정보를 포함하여 Label명을 지정할 것을 권고합니다. 데이터 객체가 되는 노드(Vertex) 뿐 아니라 노드와 노드 간 관계가 되는 엣지 또한 레이블 상속이 가능합니다. 

 

관계를 뜻하는 데이터의 특성이 한가지 이상이라면 여러 개의 엣지로 모델링할 수 있습니다. 반면 두 노드 간 관계를 하나의 Edge Label에 대용량으로 저장을 하기 원한다면, 레이블 상속을 활용할 수 있습니다.

 

두 노드간의 관계가 되는 Edge Label을 Parent Edge Label(상위개념)과 Child Edge Label(하위개념)으로 분리할 수 있습니다.

 

여기서 Child Edge Label은 두 노드의 각각 Child Vertex Label의 관계로 매핑을 합니다. 예를들어 VParent1, VParent2라는 두 Vertex에 각각 Vchild1, Vchild2, Vchild3와 Vchild_a, Vchild_b라는 Child Vertex가 존재한다면, Child Edge Label은 (Vchild1, Vchild_a), (Vchild1, Vchild_b), (Vchild2, Vchild_a), (Vchild2, Vchild_b), (Vchild3, Vchild_a), (Vchild3, Vchild_c)의 6개의 Edge로 분할하여 관리할 수 있습니다.

 

Child Edge Label명에는 연결하고자하는 Child Vertex Lable명을 포함하여 Label명을 지정할 것을 권고합니다. 예를 들어 EDG_Vchild1_a 등 레이블 상속의 다른 방법으로는 Edge Label의 데이터 성격이 시계열성 데이터라면, Child Label을 기간으로 분할하여 저장할 수 있습니다. 은행에서 계좌 간의 시계열성 거래 데이터를 월별로 그래프 데이터에 관리한다고 가정한다면, Parent Edge Label은 계좌 간 거래내역이 될 것이며, 각 데이터는 월별로 Child Edge Label로 분할하여 관리할 수 있습니다. 가령, 2020년도 6월의 계좌 간 시계열성 거래 데이터는 EDG_202006_transaction의 이름으로 Child Edge Label을 정하여 관리할 수 있습니다.

 

이처럼 대용량 데이터에 내에서도 위의 모델링 기법으로 데이터를 분할하여 저장하여 효율적으로 관리 및 조회가 가능합니다. 

 

실전편 1편 & 2편 예고

이론편에 이어 실전편은 실제 데이터셋을 기반으로 실질적인 그래프 예측분석 시스템의 적용하는 방법을 살펴볼 것입니다. 두 가지의 사례의 영역에 대한 배경 지식과 그래프 예측분석의 활용방법 대해 소개할 예정입니다. 

 

실전편 1편은 Brazilian E-Commerce Data를 활용한 그래프 예측분석 시스템 및 활용 방법을 소개하며, 실전편 2편은 MovieLens와 IMDB Data를 활용한 영화 추천 시스템에서의 그래프 예측분석 활용방법을 소개할 예정입니다. 두 사례 연구는 다양한 산업에서 서비스로 많이 적용되고 있는 주제이며, 대용량 관계 데이터에 대한 서비스를 고려한 주제이기도 합니다.

 

참고 논문

(1) Graph Convolutional Matrix Completion (2017, Rianne van den Berg, Thomas N. Kipf, Max Welling)

(2) Machine Learning for Scent: Learning Generalizable Perceptual Representations of Small Molecules (2019, Benjamin Sanchez-Lengeling, Jennifer N. Wei, Brian K. Lee, Richard C. Gerkin, Alán Aspuru-Guzik, Alexander B. Wiltschko)

 

글: 비트나인 그래프 사이언스 R&D 센터

 


 

트렌디한 그래프 기술과 IT 소식을 뉴스레터로 받아보세요!

https://bitnine.net/ko/subscribe/

 

제품 및 기술문의

070-4800-3517  |   agens@bitnine.net