그래프 분석

그래프 분석 또는 그래프 알고리즘은 그래프에서 개체 간 관계의 강도 및 방향을 판단하는 데 사용되는 분석 도구입니다. 그래프 분석은 개별적으로 두 개체 간의 쌍 관계(pairwise relationship) 그리고 전체적으로 그래프의 구조적 특성을 살펴보는 데 초점을 맞춥니다.

 

그래프 분석이란?

그래프 분석은 새로운 형태의 데이터 분석으로, 기업이 네트워크 또는 그래프 내 연결 엔터티 데이터 간의 복잡한 관계를 이해하는 데 도움이 됩니다.  

그래프는 물리, 생물, 사회 및 정보 시스템에 존재하는 다양한 관계 및 프로세스 유형을 모델링하는 데 사용되는 수학적 구조입니다. 그래프는 간선(엔터티 간의 관계를 나타냄)으로 연결된 노드 또는 정점(시스템 내 엔터티를 나타냄)으로 구성됩니다. 그래프 작업은 간선과 노드를 탐색하여 복잡한 관계를 발견하고 이해하는 작업 및/또는 네트워크 내 연결 데이터 간의 경로를 최적화하는 작업입니다.

A graph consists of nodes or vertices that are connected by edges

그래프 네트워크 분석은 많은 용도로 사용됩니다. 소셜 네트워크 내 관계를 분석하고, 사이버 위협을 감지하고, 공유된 선호도 정보를 기반으로 제품을 구매할 가능성이 높은 사람을 식별하는 작업 등이 그 예입니다.

실제 사례에서 노드는 사람, 그룹, 장소일 수도 있고 고객, 제품, 회원, 도시, 상점, 공항, 항구, 은행 계좌, 장치, 휴대폰, 분자, 웹페이지 같은 것일 수도 있습니다.

간선 또는 노드 간 관계의 예로는 친구 관계, 네트워크 연결, 하이퍼링크, 도로, 경로, 전신 송금, 전화 통화, 이메일, '좋아요', 결제, 거래, 소셜 네트워킹 메시지 등이 있습니다. 간선에는 한 노드에서 다른 노드로의 관계를 나타내는 단방향 화살표가 있을 수 있습니다(예: Janet이 Jeanette’s의 소셜 미디어 게시물에 '좋아요'를 누름). 그러나 간선은 비방향적일 수도 있습니다(Bob이 Alice의 Facebook 친구이면 Alice도 Bob의 친구임).

그래프 분석을 하는 이유는?

그래프 분석은 그래프에서 개체 간 관계의 강도 및 방향을 판단하는 데 사용될 수 있습니다. 분석의 초점은 개별적으로 두 개체 간의 관계 그리고 전체적으로 그래프의 구조적 특성을 살펴보는 데 있습니다. 그래프에 적합한 데이터의 예로는 도로망, 통신망, 소셜 네트워크, 웹페이지 및 링크, 금융 거래 데이터 등이 있습니다. 그래프 분석은 다음을 수행하는 데 특히 유용합니다. 

  • 자금세탁과 같은 금융 범죄 탐지
  • 사기성 거래 및 활동 식별
  • 소셜 네트워크 커뮤니티 내 인플루언서 분석
  • 고객 평가 또는 구매를 통한 추천 분석
  • 전력망, 상수도망, 교통망의 취약점 파악
  • 항공, 소매, 제조 산업의 경로 최적화

그래프 분석은 어떻게 작동하나요?

그래프 분석은 클러스터링, 파티셔닝, 너비 우선 탐색(breadth first search), 페이퍼랭크(PageRank), 연결 요소, 최단 경로 등의 그래프별 알고리즘을 사용하여 다양한 사례에서 엔터티 간의 관계를 분석합니다.

  • 클러스터링 — 클러스터 내 유사도는 높고 클러스터 간 유사도는 낮도록 특성에 따라 개체를 그룹화하는 것입니다. 응용 사례로는 머신 러닝, 데이터 마이닝, 통계, 이미지 처리와 더불어 수많은 물리 및 사회과학 응용 사례가 있습니다.
  • 절단 또는 파티셔닝 — 가로지르는 간선의 수가 가장 적은 절단선을 찾습니다. 응용 사례에는 데이터 및 통신 네트워크의 취약점 찾기, 소셜 네트워크 내 커뮤니티 탐지 등이 포함됩니다.

  • 탐색 – 너비 우선 탐색 및 깊이 우선 탐색

Breadth-first search and depth-first search.

  • 최단 경로 - 관심 있는 두 노드 간의 최단 경로를 찾습니다. 응용 사례에는 소셜 네트워크 분석, 운송 물류와 기타 여러 최적화 문제가 포함됩니다.

Shortest path.

  • 가장 넓은 경로 – 가중치가 지정된 그래프에서 지정된 두 정점 간의 경로를 찾아 해당 경로에서 최소 가중치를 가진 간선의 가중치를 최대화합니다. 응용 사례에는 IP 트래픽 라우팅, 트래픽 민감형 경로 계획 등이 포함됩니다.
  • 연결 요소 – 강한 연결 그래프는 어떤 노드에서 시작해도 그래프의 모든 노드에 도달할 수 있는 그래프입니다. 강한 연결 요소는 각 하위 영역이 강하게 연결되어 있는, 그래프의 최대 연결 하위 영역입니다. 응용 사례에는 소셜 네트워크 분석이 포함됩니다.

Connected components.

  • 페이지랭크 – 웹페이지의 인기도 측정값으로, 인터넷 검색에서 웹페이지의 순위를 매기는 데 사용됩니다. 소셜 네트워크 분석과 추천 시스템에 사용되며 단백질 간의 관계를 연구하는 자연과학 분야와 생태 네트워크에서 새로운 용도로도 활용되고 있습니다.

Page rank.

주요 그래프 분석 사용 사례

추천 시스템 구축. 기업은 고객, 소셜 미디어, 제품 데이터 간의 관계 및 빈도를 식별하여 고객의 온라인 활동에 실시간으로 반응하는 지능형 추천 엔진을 구축할 수 있습니다.

사기 탐지. 그래프 분석을 사용하면 유연하게 데이터 관계를 대규모로 모델링할 수 있기 때문에 대량의 거래 데이터를 신속하게 분석하여 실시간으로 사기를 식별할 수 있습니다.

규정 준수. HIPAA, PCI/DSS, GDPR 등의 규정 준수 의무는 수많은 산업 분야의 비즈니스에 영향을 미칩니다. 고객에 대한 개인정보를 수집할 때 해당 데이터는 다양한 기업 시스템을 통해 이동하므로, 이러한 규정은 해당 데이터에 대한 가시성을 확보하도록 요구합니다. 그래프 분석을 사용하면 다양한 시스템을 관통하는 데이터 흐름의 시각적 표현을 제공하므로, 기업 시스템을 통과하는 민감한 데이터를 훨씬 더 쉽게 추적할 수 있습니다. 그래프 분석은 규정 준수를 달성할 수 있는 간소화된 방법을 제공합니다.

마스터 ID 및 액세스 관리(IAM). 클라우드 기반 및 온프레미스를 모두 포함하여 민감한 애플리케이션 및 데이터에 액세스할 수 있는 사용자를 결정하는 것은 복잡한 과정입니다. 그래프 분석을 사용하면 관계를 결정하고 안전한 IAM을 가속화하는 데 필요한 모든 데이터를 크로스플랫폼 방식으로 보다 강력하게 실시간 관리할 수 있습니다.

공급망 효율성에 대한 인사이트 확보. 세계화의 결과로 비즈니스 공급망은 그 어느 때보다 복잡합니다. 그래프 분석을 사용하면 이러한 복잡한 관계를 모델링하고, 공급망 운영에 존재하는 비효율성을 훨씬 더 투명하게 파악할 수 있습니다. 

Build recommender systems.

                                                                                                                                        B추천 시스템 구축

Detect fraud.

                                                                                                                                                사기 탐지

   

GPU를 이용한 그래프 분석 가속화

사이버 분석, 유전체학, 소셜 네트워크 분석 및 기타 분야에서 대규모 그래프 처리를 수행하려면 강력하고 효율적인 컴퓨팅 성능이 필요합니다.

GPU는 고도의 병렬성과 메모리 액세스 대역폭 측면의 이점으로 인해, 특히 데이터 집약적 분석 및 그래프 분석을 가속화하는 데 이상적인 도구입니다. GPU의 대규모 병렬 아키텍처는 여러 작업을 동시에 처리하도록 설계된 수천 개의 작은 코어로 구성되어 '모든 X에 대해 Y를 수행'하는 연산 작업에 매우 적합합니다. 이러한 유형의 연산 작업은 대규모 그래프 내의 정점 또는 간선 세트에 적용될 수 있습니다.

The difference between a CPU and GPU.

RAPIDS cuGraph를 이용한 NetworkX 가속화

NVIDIA RAPIDS™ cuGraph는 RAPIDS 에코시스템과 인기 있는 파이썬 그래픽 라이브러리인 NetworkX를 통합하는 가속 그래프 분석 라이브러리를 제공합니다. RAPIDS cuGraph의 비전은 사용자가 기술이나 프레임워크가 아닌 분석 자체에만 집중할 수 있도록 그래프 분석을 유비쿼터스화하는 것입니다. 

최신 NVIDIA GPU의 컴퓨팅 성능으로 그래프 분석 속도가 훨씬 빨라졌습니다. 또한 GPU 내부 메모리 속도를 통해 cuGraph는 단일 데이터 구조에 국한되지 않고 분석의 필요에 가장 적합하도록 데이터 구조를 빠르게 전환할 수 있습니다. 

RAPIDS의 그래프 알고리즘은 GPU가 제공하는 대규모 병렬 처리를 효율적으로 사용하여 대규모 그래프 분석을 1,000배 이상 가속화합니다. 단일 A100 GPU에서는 최대 2억 개의 간선을 탐색할 수 있고, DGX A100 클러스터에서는 수십억 개의 간선으로 확장할 수 있습니다.

NVIDIA GPU 가속 엔드투엔드 데이터 사이언스

NVIDIA RAPIDS는 고속 ETL, 그래프 분석, 머신 러닝 및 딥 러닝을 수행할 수 있는 기능을 결합한 제품입니다. 데이터 사이언스 파이프라인을 전적으로 GPU에서 실행할 수 있게 해주는 이 오픈 소스 소프트웨어 라이브러리 및 API 모음은 며칠 걸리는 훈련 시간을 단 몇 분으로 단축할 수 있습니다. 이 제품은 저수준 컴퓨팅 최적화를 위해 NVIDIA CUDA® 프리미티브에 의존하지만, 사용자 친화적인 파이썬 인터페이스를 통해 GPU 병렬성 및 고대역폭 메모리를 사용할 수 있도록 지원합니다. 

Graph using airports, flights, and distances.

RAPIDS cuGraph는 RAPIDS 데이터 사이언스 에코시스템에 원활하게 통합되므로 데이터 사이언티스트가 GPU 데이터프레임에 저장된 데이터를 사용하여 그래프 알고리즘을 쉽게 호출할 수 있습니다. RAPIDS GPU DataFrame을 사용하면 Pandas와 같은 인터페이스를 사용하여 데이터를 GPU에 로드한 다음, 절대 GPU를 떠나지 않고 이 데이터를 연결된 다양한 머신 러닝 및 그래프 분석 알고리즘에 사용할 수 있습니다. Apache Arrow와 같은 라이브러리를 통해 이러한 수준의 상호 운용성이 가능합니다. 이를 통해 데이터 준비부터 머신 러닝과 딥 러닝에 이르는 엔드투엔드 파이프라인의 가속화를 향상할 수 있습니다. RAPIDS와 DASK를 사용하면 cuGraph가 여러 GPU로 확장하여 수십억 개의 간선으로 구성된 그래프를 지원할 수 있습니다.