반응형

편집자 주: 이 프레젠테이션은 Frederick Kagan과 Sébastien Heymann이 다음에서 제공했습니다.그래프커넥트 뉴욕2018년 10월.

프레젠테이션 요약

The 미국기업연구소(AEI)는 기밀되지 않은 정보를 사용해서 중동, 아프리카, 유럽에서 벌어지는 분쟁을 이해하고 예측 및 정책 권장 사항을 만드는 독립적인 비영리 단체에요.

정보 커뮤니티나 대규모 비즈니스 분석 팀과 마찬가지로, 이 비영리 단체도 모든 데이터를 하나의 인터페이스로 통합해야 하는 과제를 안고 있었죠. 그래서 Neo4j와 Linkurious의 조합으로 솔루션을 찾았다고 해요. 몇 가지 과제는 정적 데이터 시각화, 그리고 광범위한 속성을 가진 Node와 관련되어 있었고요.

The AEI 시스템의 백본은 클라우드 검색 Index와 AWS, Azure 문서 저장소로 보완되는 Neo4j 데이터베이스인데요. Python과 Neo4j 샌드박스의 이점을 활용해서 팀은 Linkurious로 복잡한 스키마를 시각화하는 동시에 Neo4j의 광범위한 Node 태깅 기능을 활용할 수 있었어요.

AEI의 작업에는 살라피-지하디 네트워크를 아프리카 사헬 지역에 매핑하는 것도 포함되는데요. AEI의 작업 덕분에 미국 지도자들이 지역 정책을 결정할 때 참고할 수 있는 네트워크와, 지역 부족 및 민족 그룹 간의 이전에는 알려지지 않았던 연관성을 밝혀낼 수 있었답니다.

AEI는 다양한 종류의 데이터베이스를 사용해본 결과, Neo4j와 같은 Graph Database가 분석 조직의 핵심 백본이 되어야 한다는 결론을 내렸다고 해요. 정부 내부와 외부 모두에서요!

전체 프레젠테이션: 테러리스트 위협에 맞서 싸우는 그래프 기술

세바스티앙 하이만: 오늘 이야기할 내용은 정부가 테러 위협 탐지를 위한 테러 분석을 수행하기 위해 Neo4j와 Linkurious를 어떻게 사용하는지에 대한 거예요.

저는 Linkurious의 CEO입니다. Linkurious는 그래프 시각화 및 그래프 분석 기술을 제공하는 프랑스 회사예요. 저희의 그래프 인텔리전스 플랫폼은 복잡한 위협에 대한 조사 속도를 높이고 을 활용하여 복잡한 사기 수법, 파나마 페이퍼스, 그리고 파라다이스 페이퍼를 밝혀내는 데 사용되었죠. 오늘날 기업 및 정부 기관의 조사관들은 이러한 그래프 분석 도구를 사용하여 사기, 자금 세탁 활동, 사이버 위협 등을 신속하게 밝혀내고 조사하고 있어요.

저희는 미국기업연구소(AEI)라는 독립적으로 자금을 지원받는 비영리 단체와도 협력하고 있는데요, 이들은 기밀되지 않은 정보를 사용하여 중동, 아프리카, 유럽에서 진행 중인 분쟁을 이해하고 예측 및 정책 권장 사항을 제시하고 있답니다.

또, 저희는 전쟁연구소와 심각한 위협 프로젝트라는 단일 오픈 소스 분석 팀과도 협력하고 있어요. 주요 관심 분야는 이란, 러시아, 시리아, 이라크, 예멘, 아프가니스탄, 북아프리카, 특히 리비아와 아프리카의 뿔 지역이에요.

저희는 글로벌 알카에다와 ISIS 네트워크, 이란의 동맹 네트워크, 중동 전역에서 활동하는 프록시를 연구하고 있고, 남아시아 프로그램을 수립하는 과정에 있어요. 또한 미국과 동맹 정책 입안자들에게 옵션을 제시하기 위해 분석, 예측, 계획 연습 결과를 발표하고 있답니다.

저희는 오픈 소스 인텔리전스가 생성되고 사용되는 방식의 변화를 모델링하기 위한 노력에도 참여하고 있는데요, 이걸 저희는 이라고 불러요. 세상에서 무슨 일이 일어나고 있는지에 대한 전체적인 그림은 분류되지 않은 정보에서 가장 잘 생성되고, 필요한 경우 분류된 데이터로 보완된다고 믿고 있거든요.

안타깝게도 정보 커뮤니티에서 분석가와 수집가 사이에 필요한 업무 분담은 오픈 소스 세계에서는 오히려 해로울 수 있어요. 그래서 저희는 데이터를 수집하고 분석하는 동일한 사람들, 즉 '컬렉션 분석가'라고 부르는 사람들을 두고 이 문제를 해결하고 있어요. 따라서 저희 플랫폼은 두 가지 기능을 모두 제어하는 컬렉션 분석 플랫폼인 거죠.

저희 데이터는 다양한 소스에서 다양한 형식과 구조로 제공되고 있어요.

정보 커뮤니티 및 거의 모든 대규모 비즈니스 분석 팀과 마찬가지로, 저희는 분석가가 단 한 번의 검색으로 관련 있는 모든 것을 찾을 수 있도록 해당 데이터를 단일 인터페이스로 통합하는 문제를 해결해야 해요.

Graph Database, 특히 Neo4j는 이러한 문제에 대한 최적의 시스템이라고 생각해요. 스키마나 온톨로지가 필요 없고, 모든 구조의 데이터를 쉽게 받아들일 수 있거든요.

Neo4j의 라벨 시스템은 검색 성능을 저하시키지 않으면서 단일 데이터베이스 내에서 여러 개의 중복되는 온톨로지 생성을 가능하게 해줘요. 다시 말해, 새로운 데이터 소스를 사용하기 위해 각각의 기존 데이터 모델을 변환할 필요가 없다는 거죠. 간단히 Neo4j 데이터베이스로 가져와서 그래픽 사용자 인터페이스만 조정하고, 약간의 수정과 쿼리 구조만 적용하면 즉시 사용할 수 있어요. SQL 데이터베이스에서 해야 하는 것처럼 새 데이터 필드나 전체 하위 온톨로지를 추가할 때마다 대규모 데이터 세트를 다시 인덱싱할 필요도 없고요.

이러한 기능 덕분에 다양한 데이터 형식 및 구조와 상호 작용하는 어려운 문제를 비교적 쉽고 간단하게 해결할 수 있답니다.

도전과제

모든 데이터에 쉽게 액세스할 수 있도록 해주는 Neo4j 사용의 이점에도 불구하고, 여전히 몇 가지 과제에 직면해 있어요.

우리는 사용자가 데이터를 쉽게 볼 수 있도록 해야 해요. 저희는 수집한 비정형 데이터로부터 지속적으로 이벤트, 엔터티, 그리고 관계를 생성하는 40명 이상의 분석가와 인턴으로 구성된 팀을 운영하고 있어요. 분석가들은 패턴을 확인하고 통찰력을 얻기 위해 데이터를 동적으로, 그리고 과거 데이터까지 시각화할 수 있어야 하죠.

통찰력은 `Node` 링크와 지리 공간 분석이 만나는 지점에서 나오는데요. 저희는 관심 있는 국가, 군대, 그리고 비국가 행위 조직의 그림을 구축하고, 그 그림을 지리적 위치에 있는 이벤트에 겹쳐서 보여줌으로써 역량을 식별하고 해당 국가 및 그룹의 의도를 파악하려고 노력하고 있어요.

의도를 분별하는 것은 지능적인 예측을 가능하게 해주며, 가장 어려운 분석 작업 중 하나에요. 이를 위해서는 현재 일어나고 있는 사건과 조직 자체에 대한 연구뿐만 아니라, 해당 조직에 속한 사람들이 발전하고 진화해 온 맥락에 대한 연구도 필요하죠.

그래서 저희 `Node`는 다음 세대의 분석가들에 의해 수년에 걸쳐 많은 속성이 추가되면서 엄청나게 방대해졌어요. `Node`-링크 그래프에 `Node`를 배치하고 지도에 표시하며, 해당 속성에 접근할 수도 있어야 하죠. 저희의 광범위한 데이터 세트는 많은 주와 지역을 포괄하므로, 이해, 평가 및 예측을 위한 탐구의 일환으로 데이터의 하위 집합을 수집하고 신속하고 동적으로 시각화할 수 있어야 해요.

AEI 시스템 요구 사항

저희 시스템의 핵심은 Cloud Search `Index`와 문서 저장소로 보완된 Neo4j 데이터베이스에요. AWS 와 Azure를 사용하고 있죠.

저희 팀은 특별히 제작된 시스템을 통해 데이터와 상호 작용하는데요. Python 스크립트가 작업 흐름에 최적화된 단일 GUI(Graphical User Interface)로 사용되고 있어요.

이건 Neo4j와의 통합에 최적화되고, 매력적이고 게시 가능한 그래픽을 생성하며, `Node` 링크 그래프, 위치 정보 데이터 및 세부 속성 `Node`를 쉽고 동적으로 표시할 수 있는 시각화 시스템이 필요하다는 것을 의미해요. 다양한 자동 레이아웃을 수행할 수 있어야 하고, 사용자가 `Node`에 색상을 지정하고 아이콘을 표시하고 필요에 따라 라이브 데이터 세트에서 업데이트할 수 있어야 하죠.

시각화가 분석 작업 흐름에 최대한 자연스럽게 통합되도록 Python 스크립트 자체에서 API 호출을 통해 이러한 모든 기능에 접근할 수 있어야 해요. 즉, 시각화는 별개의 소프트웨어 패키지라기보다는 GUI의 또 다른 창처럼 작동해야 한다는 거죠.

저희는 팀과 미국 정보 커뮤니티에서 새로운 소프트웨어를 분석 작업 흐름에 통합하는 과정에서 성공과 실패 사례들을 연구했어요. 그 결과, 기존 작업 흐름과 최대한 정확하게 일치하도록 소프트웨어 도구를 설계하는 것이 얼마나 중요한지 알게 되었죠.

도구가 작업 흐름 변경을 허용하거나 요구하는 경우, 소프트웨어 엔지니어가 분석가와 직접 협력하여 작업 흐름을 조정하도록 돕는 것이 필수적이라는 것도 확인했어요. 단순히 기존 워크플로에 새 도구를 추가하는 것만으로는 사용자가 도구를 제대로 활용하지 못하고 기존 워크플로의 틀에 갇히게 되는 경우가 많거든요.

저희가 특별히 제작한 GUI는 작업 흐름에 최적화되어 있고, 사용자에게 여러 가지 새로운 도구를 사용하는 방법을 배우도록 요구하는 것보다 해당 GUI를 통해 기능을 추가하는 것이 훨씬 더 효과적이라는 것을 알게 되었어요. 이것이 바로 저희가 강력한 소프트웨어 패키지뿐만 아니라 API를 통해 쉽게 접근할 수 있는 소프트웨어 패키지가 필요한 이유랍니다.

Neo4j 및 Linkurious 구현

Neo4j의 존재론적 유연성은 데이터를 정리하는 것 이상의 역할을 해요. 자산 수준에서 소싱 및 데이터 입증성을 유지할 수 있도록 고도로 명확한 데이터 `Schema`를 지원하기도 하죠.

우리는 씬 노드 모델(즉, 기본 엔터티 이벤트 node에 몇 가지 속성만 있는 모델)을 사용하는데, UID, 이름, 유형, 그리고 기타 한두 가지 정도의 속성만 가지고 있어요. 연령, 지리적 위치, 순위, 설명, 인용문 같은 대부분의 다른 속성은 기본 node에 연결된 속성 label과 함께 별도의 Neo4j node에 저장되죠.

이런 배열 덕분에 각 속성을 해당 소스 및 속성을 생성한 사용자와 직접 연결할 수 있고, Neo4j 서버에서 사용자 인터페이스로 이동하는 데이터의 양을 제어할 수 있어요. 이렇게 하면 성능이 훨씬 향상되죠.

이 구조의 단점은 Graph 데이터를 시각화하는 일반적인 접근 방식에 딱 맞지 않는다는 점이에요. 그래서 복잡한 데이터 스키마를 시각화하기 위해 Linkurious가 제공하는 기능을 최대한 활용할 수 있도록 다음 모델을 채택했어요.

Python 스크립트는 정식 데이터베이스에서 데이터를 가져와 재구성해서 시각화에 최적화하고, 재구성된 데이터를 정식 데이터베이스와 구별되는 Neo4j Sandbox 데이터베이스에 넣어요. 각 사용자는 Linkurious 인터페이스를 통해 해당 시각화 Sandbox에 액세스하죠. 스크립트는 필요에 따라 샌드박스 데이터베이스를 업데이트하고 Linkurious REST API를 사용해서 변경 사항을 생성하고 node 색상 지정을 포함한 시각화를 표시해요.

Python 스크립트로 제어되는 브라우저를 통해 Linkurious에 액세스하면 브라우저를 자동으로 새로 고쳐서 시각화의 변경 사항을 표시해 원활한 사용자 경험을 만들 수 있어요. 우리 사용자는 단일 GUI인 스크립트와 직접 상호 작용하고, GUI의 별도 창처럼 보이는 화면에서 노력의 시각화된 결과를 볼 수 있지만 실제로는 Linkurious인 거죠. 따라서 우리는 한편으로는 성능과 소싱, 다른 한편으로는 시각화 사이에서 적절한 균형을 찾았어요.

게시된 데이터세트: Salafi-jihadi 테러리스트 네트워크 매핑

우리는 Linkurious를 사용해서 분석한 결과를 발표했는데, 특히 개인과 집단 사이의 복잡하고 중복되는 관계를 묘사하고 있어요. 살라피-지하디 네트워크에서 아프리카 사헬 지역:

당시 대테러 문제에 대한 많은 논의에서는 시리아와 이라크에서 볼 수 있는 ISIS 알카에다 사단을 다른 곳의 살라피-지하디 네트워크에 매핑하려고 시도했어요. 하지만 시간이 지남에 따라 아프리카에서 살라피-지하디 그룹의 진화를 구축하고 조사하면서 ISIS 알카에다 구별이 해당 지역에서 훨씬 덜 중요하다는 것이 분명해졌죠.

대신, 우리는 주기적으로 브랜드를 변경하지만 서로의 실제 관계는 거의 변경하지 않는 복잡한 중첩 인간 네트워크 세트를 보았어요. 이러한 인적 네트워크에는 살라피 지하디 지도부와 개별 지도자를 따르는 그룹뿐만 아니라 살라피 지하디가 통제하고 영향력을 확산시키는 공통 유대와 연결을 형성하는 부족 및 민족 그룹도 포함되었죠.

위의 그래픽은 데이터베이스에서 동적으로 생성된 후 시각적으로 더 쉽게 해석할 수 있도록 인턴이 수정했어요. 실시간 데이터를 기반으로 구축되었고, 더 많은 데이터가 수집되거나 변경되면 동적으로 업데이트될 수 있어요. 우리는 미국 정책 입안자들이 아프리카의 살라피 지하디 문제에 대해 생각하는 방식을 바꾸려는 우리의 더 큰 노력의 일환으로 기사에 이 그래픽을 게시했답니다.

지능분석과 그래프 기술에 대한 관점

다양한 종류의 데이터베이스를 사용해 본 경험을 바탕으로, Neo4j와 같은 Graph Database가 정부 기관 내부 및 외부의 분석 조직에서 핵심적인 역할을 해야 한다고 생각해요.

구조가 제각각인 많은 데이터 세트를 통합하는 건 거의 모든 분석 팀이 겪는 어려움이죠. 게다가 새로운 도구와 데이터를 통합하기 위해 온톨로지와 스키마를 계속해서 동적으로 적용하고 조정해야 할 필요성도 있고요. 이 모든 게 스키마가 없는 Neo4j 방식에 딱 맞는다는 사실! SQL 유형 데이터베이스를 재구성하고 다시 인덱싱하는 데 드는 성능 비용은 너무 커서, 이런 유형의 시스템이 앞으로 분석 데이터베이스의 기반이 되기는 어려울 거예요.

SQL 유형 데이터베이스 및 다른 데이터 시스템은 특정 기능에서는 Graph Database보다 뛰어날 수 있어요. 그래서 단일 데이터베이스가 아니라 여러 유형의 데이터베이스로 구성된 데이터 계층이 필요하게 되죠. 하지만 Graph Database는 이러한 데이터 계층을 통합하고 최종 사용자가 쉽게 액세스할 수 있도록 하는 데 가장 적합한 방법이며, 앞으로도 그럴 거라고 생각해요.

그래프 분석 및 시각화 플랫폼은 큰 그래프 안에서 숨겨진 정보를 더 빠르게 찾는 데 도움을 줄 수 있고요.

조사는 끊임없이 상호 작용하는 과정인데, Linkurious는 분석가에게 힘을 실어주는 핵심 도구라고 할 수 있어요. 동적이고 실시간 네트워크 시각화는 데이터 간의 연결을 시각적으로 보여줘서 복잡한 상황을 더 잘 이해하고 분석하는 데 도움을 주죠. 기술적인 한계 때문에 시간을 낭비하지 않고 데이터 수집과 분석 모두에 집중할 수 있다는 의미이기도 하고요. 결국 분석가는 데이터를 더 잘 활용해서 가치 있는 통찰력을 얻을 수 있게 되는 거죠!

관계형 데이터베이스와 Graph Database를 좀 더 자세히 비교해 보고 싶으신가요? RDBMS 개발자를 위한 Graph Database에 대한 최종 가이드를 통해 관계형 데이터베이스와 함께 그래프를 사용하는 시기와 방법을 알아보세요.

에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

반응형

+ Recent posts