성장通

02. 그래프 씽킹 본문

그래프/그래프 데이터

02. 그래프 씽킹

백악기작은펭귄 2023. 12. 21. 18:26

그래프 씽킹

그래프 씽킹(Graph Thinking)은 말 그대로 '데이터 간의 관계를 그래프로 생각하는 방법'으로, 도메인 문제를 연결된 그래프로 표현하고 그래프 기술을 사용해 도메인 역학 관계를 설명함으로써 문제를 해결한다. 데이터를 그래프로 표현하면 해당 도메인 내 데이터 간 복잡한 네트워크를 직관적으로 이해할 수 있어 문제 해결에 도움이 된다.

데이터를 잘 저장하고 불러오는 것에 초점을 맞췄던 것에서 데이터 내에 숨어있는 가치를 발굴하는 것으로 초점이 넘어감에 따라 그래프 기술은 새로운 데이터 혁신을 불러왔다.


복잡한 문제와 복잡한 시스템

먼저 여기서 말하고자 하는 '복잡한 문제''복잡한 시스템'에 대해서 정의하고 넘어가도록 하자. 복잡한 문제란 복잡한 시스템에 존재하는 네트워크를 가리킨다. 다시 말해, 복잡한 시스템 내에서 관측되고 측정될 수 있는 개별 문제들이다. 그렇다면 복잡한 시스템은 무엇이라고 정의할 수 있을까? 세상에는 많은 컴포넌트와 그 동작들이 있다. 이러한 컴포넌트의 동작들이 서로 유기적인 관계를 이루며 조합되어 있을 때, 이것을 복잡한 시스템이라고 한다. 즉, 전체 시스템의 동작이 다양한 방식으로 연결된 시스템을 의미하며 창발적 행위(emergent behavior)라고도 부른다.

일반적으로 가치가 높은 비즈니스 문제는 복잡한 문제인 경우가 많으며, 이를 풀기 위해 고려해 볼 수 있는 방법론 중 하나가 바로 그래프 씽킹이다.


비즈니스의 복잡한 문제

기존의 데이터에 대한 인식은 '비즈니스의 부산물' 정도였고, 비즈니스 유지를 위한 최소한의 비용만 투자하는 것이 일반적이었다. 하지만 이제 데이터의 숨은 가치에 집중하는 시대가 오면서, 데이터의 위상 또한 굉장히 높아진 상황이다.

이러한 현상을 단적으로 보여주는 예가 바로 마이크로소프트의 링크드인, 깃허브 인수인데, 마이크로소프트는 예상 수익이 각각 3억 달러, 10억 달러인 깃허브와 링크드인을 26배 가치인 78억 달러와 260억 달러에 인수했다. 이는 링크드인과 깃허브의 방대한 네트워크 그래프 데이터의 가치를 높게 산 것으로, 도메인 그래프의 구축이 회사 가치에 얼마나 큰 영향을 미치는지를 보여줬다.

이 외에도 많은 기업들이 자신들의 데이터 전략을 재조정하여 복잡한 문제를 모델링하는 방법론을 구축했다. 구글은 방대한 지식 그래프를 구축해서 검색 엔진에 이를 결합했고, 아마존과 페덱스는 글로벌 공급망 및 운송 경제 그래프를 만들어 물류배송 최적화를 이루었으며, 메타는 글로벌 소셜 네트워크 그래프를 구축했고 넷플릭스는 확장 가능한 엔터테인먼트 그래프를 만들었다.

넷플릭스 데이터를 그래프로 모델링하는 방법: 확장 가능한 협업 필터링

 

데이터에서 가치를 얻으려면 이들의 상호 연결 관계를 살펴야 한다. 즉 데이터가 묘사하는 복잡한 시스템을 파악해야 한다는 의미로, 이것을 모델링하는 기술에 투자하는 것은 데이터로부터 가치를 추출하는 것만큼 중요하다. 그 후에 이러한 연결을 저장, 관리, 추출하는 적절한 기술을 선택하는 것이 올바른 수순이라고 할 수 있다.


언제 그래프 기술을 선택해야 할까?

복잡한 문제를 해결하기 위해 고려해 볼 만한 기술에는 그래프 씽킹 외에도 여러 가지가 존재한다. 바꿔 말해, 모든 복잡한 문제에 대한 최적의 해결 기술이 그래프인 것은 아니라는 뜻이다. 그래프 기술을 도입하기 전 고려해야 할 질문에는 크게 두 가지가 존재한다.

 

 

질문 1: 그래프 데이터가 필요한 문제인가?

그래프 씽킹을 시작하기에 앞서, 풀고자 하는 문제가 그래프 데이터가 필요한 문제인지를 확인해야 한다. 이를 판단하기 위해서는 문제를 풀기 위해 필요한 데이터의 형태를 이해하는 것이 필요하다.

여기서 말하는 '데이터의 형태'란 데이터에서 얻고자 하는 가치 있는 정보의 구조를 가리킨다. 예를 들어, 어떤 학생의 학번으로 이름과 인적사항을 알고자 한다면, 이를 저장하는 데이터베이스는 관계형으로 구축되는 것이 가장 바람직할 것이다. 즉, Primary key를 이용하여 정보를 획득하고자 하는 경우에는 관계형 데이터베이스(RDBMS)가 효율적이다. 또, 지속적으로 업데이트되고 그 안의 많은 내용을 동시에 접근해야 하는 문서 데이터의 경우 문서 기반 데이터베이스를 사용하는 것이 바람직하며, 소셜 네트워크와 같이 개별 데이터의 property와 함께 그 사이 관계가 중요한 경우 그래프 데이터베이스가 가장 적합하다.

이처럼 탑다운 방식을 이용해 데이터 형태 기반으로 데이터베이스와 기술 옵션을 결정하는 것이 권장된다. 만약 문제를 해결하는 데 필요한 데이터의 형태를 잘 모르겠다면 다음 질문으로 넘어간다.

 

질문 2: 데이터 간의 관계가 문제를 이해하는 데 도움이 되는가?

데이터 간의 관계가 문제를 해결하는 데 가치를 제공하는지에 대한 질문은 어찌 보면 그래프 도입에 있어서 가장 중요한 질문이다. 아무리 기술이 좋아도 그에 상응하는 가치를 가져오지 못한다면 도입을 할 이유가 없기 때문이다.

이 질문에 대해서는 '네', '아니오', '확신할 수 없음' 총 세 가지의 선택지가 존재한다. 이 중 답이 '네', '아니오'인 경우 경로가 명확해진다. 전자의 경우 바로 그래프 씽킹을 시작하면 되고, 후자의 경우 그래프가 아닌 다른 방법을 찾으면 된다. 하지만, 여기서 '확신할 수 없음'을 선택하게 될 경우, 문제에 대해서 다시 한번 생각해보아야 한다. 대부분의 경우, 너무 큰 문제를 풀려고 하기 때문에 무엇을 건드려야 할지 명확하지 않아 이러한 선택지를 고르게 되므로, 문제를 더 작은 문제로 나누어 처음으로 돌아가는 과정이 필요하다. 개체 해석(entity resolution)이나 데이터 정의의 단계에서 세분화하여 각각에 대한 정의를 명확히 하는 것이 권장된다.

 

데이터를 이해할 때 자주 발생하는 실수
그래프 데이터를 공부하다 보면, 그래프 데이터 형태가 다른 형태, 이를 테면 테이블 형식의 데이터보다 중요하고 좋다는 편견을 가지게 되는 경우가 더러 있다. 이러한 실수는 특히 복잡한 문제를 해결하고자 할 때 자주 발생하는데, 이는 잘못된 생각일 수 있다. 모든 데이터 컴포넌트에 그래프 기술을 적용해야 할 필요는 없다. 오히려, 테이블이나 문서형을 먼저 고려해 보는 것이 좋은 경우도 많다. 먼저 그렇게 투영해 보고 그래프가 더 낫다는 확신이 서면 그때 그래프 기술을 도입해도 전혀 문제가 되지 않는다.

그래프 데이터 활용법

앞서 두 가지 질문을 통해 그래프 데이터가 필요한 문제인지를 판단하였다. 그렇다면 이번에는 순서를 바꾸어서, 그래프 데이터가 있을 때 이를 어떻게 사용해야 할지에 대해서 알아보자.

 

 

질문 3: 데이터의 관계를 어떻게 활용할 것인가?

그래프 데이터에 수행하는 주된 작업 두 가지는 분석(analyze)질의(query)이다. 예를 들어, 페이스북의 '함께 아는 친구'는 친구 그래프 데이터를 질의하여 로딩한 예이다. 또한 메타(구 페이스북) 연구팀은 유저 간 연결을 추적하여 어떠한 사업적 인사이트를 얻어내기도 하는데, 이것이 그래프 분석의 예이다. 이처럼, 물어볼 질문과 해당 질문에 대한 답변을 위한 관계를 설정하여 시스템에서 데이터를 가져오는 행위질의라하고, 이러한 관계를 설정하기 위해 데이터를 조사하는 것분석이라 한다.

 

먼저 그래프 데이터 내의 관계를 저장하고 질의해야 하는 상황을 살펴보자. 최근에는 그래프 데이터베이스가 발전했기 때문에 그래프 데이터에 대해 바로 질의를 수행하기보다는 데이터베이스에 직접 접근하여 사용하는 경우가 대부분이지만, 여전히 일부 상황의 경우 즉각적인 질의와 저장이 이루어지기도 하므로 선택지에 추가하였다. 이러한 방법은 데이터의 양이 적고 변동이 빠른 경우 종종 사용된다.

 

대부분의 조직에서, 문제를 그래프 데이터로 해결할 수 있다는 사실은 인지하고 있지만 어떤 관계를 어떻게 활용해서 문제 해결에 이용해야 할지 모르는 경우가 많다. 문제에 대한 답변을 어떻게 해야 할지 정확하게 알지 못하거나 어떤 관계가 중요한지 모르는 경우인데, 바로 이럴 때 분석이 필요하다.

 

만약 '잘 모르겠음'이라는 결론에 도달한다면, 질문 2에서와 같이, 문제를 작게 나누고 다시 생각해볼 것을 추천한다.

 

질문 4: 결과를 어떻게 활용할 것인가?

그래프 데이터 분석의 주제는 관계의 분포를 이해하는 것부터 시작해서 전체 구조에 대해 알고리즘을 적용하는 것에 이르기까지 다양하다. 대표적으로 Connected Component, Clique Detection, Triangle Counting, PageRank, CF 등이 있다.

그래프 알고리즘의 최종 목표는 보고(report), 연구(research), 획득(retrieval)으로 세 가지가 가장 많이 선택되고 활용된다.

 

 

먼저 보고의 경우, 비즈니스 데이터로부터 지능과 통찰력이 필요한 경우에 주로 채택되며 보통 이를 비즈니스 인텔리전스(Business Intelligence, BI)라 부른다. 초창기 상당수의 그래프 프로젝트는 이를 위한 경우가 많았고, 그만큼 방법론도 매우 다양하다.

다음으로 연구의 경우, 데이터 과학이나 머신러닝 영역에서 주로 채택되는 분석 목표로, 그래프 형태의 데이터에 내재된 가치를 찾기 위해 연구, 개발에 리소스를 투자한다.

마지막으로 획득이다. 이는 앞서 언급한 질의의 사전 단계라고도 볼 수 있는데, 특정 문제에 대한 해답을 얻어내기 위한 관계를 찾는 과정을 말한다. 페이스북에서 피드 추천에 '친구 관계'가 중요하다고 생각해서 친구 그래프를 가져온다고 생각해볼 때, 이러한 결정의 근거를 데이터로부터 얻어내는 과정이 획득이다.

물론 이 세 가지의 경계가 모호한 경우도 많다. 중요한 것은, 이를 명확히 구분하는 것이 아닌, 큰 개념을 이해하고 적절한 경로를 선택해서 수행하는 것임을 기억하자.


전체 과정

비즈니스 데이터의 전략적 중요성을 이해하는 과정은 그래프 기술이 특정 문제를 해결하기 위해 적합한지를 파악하는 과정이다. 이를 위해 필요한 질문 네 가지를 살펴보았고, 각 선택지에 따라 나누어보았다. 이를 정리하면 다음과 같다.

 

 

위 가이드를 통하면 언제 어떻게 그래프 기술을 적용해야 할지 알 수 있을 것이다.


 

'그래프 > 그래프 데이터' 카테고리의 다른 글

06. 관계형을 그래프로  (0) 2024.02.18
05. 그래프의 다중성  (1) 2024.02.03
04. 그래프 스키마 언어  (0) 2024.01.28
03. 관계형에서 그래프 씽킹으로  (1) 2024.01.21
01. 떠오르는 그래프 기술  (1) 2023.12.06