728x90
반응형
  • Graph Data Science

여러분, ICIJ(국제탐사언론인협회)에서 지난주에 로펌에서 유출된 새로운 문서 모음을 발표했어요. 바로 와 신탁회사 아시아시티에서 유출된 문서들이죠.

이전의 서류와 유사하게 (여기서 자세히 다루었죠), 이러한 기록을 통해 많은 수의 개인과 조직이 조세 피난처 및 역외 관할권에서 위장 회사를 이용해서 필요한 재정적 감독 없이 막대한 금액(수십억 ~ 수조 달러)을 숨기고 이동하고 지출한다는 것을 알 수 있어요.

지난 며칠 동안 Nike, Apple과 같은 회사의 활동, 여왕 투자 그룹의 불미스러운 개입, Wilbur Ross와 같은 정치인 또는 Facebook 및 Twitter와 같은 회사에 대한 러시아 투자의 연결 등을 다루는 수많은 보고서가 발표되는 것을 봤어요.

1,300만 개 이상의 문서, 이메일 및 데이터베이스 기록이 텍스트 분석, 전체 텍스트 및 측면 검색, 그리고 가장 흥미로운 그래프 시각화 및 검색을 사용하여 분석되었답니다.

Paradise Papers 섹션을 보면:

프로젝트의 시각적 요소를 지원해 준 Pulitzer Center on Crisis Reporting, 데이터베이스 지원을 위해 Neo4j 및 Linkurious에 특별한 감사를 드립니다.

특히 자랑스러운 점은 마누엘 빌라가 "Connected Data Fellowship" 후원을 받아 연구 및 데이터 작업에 기여할 수 있었다는 거예요.

이전과 마찬가지로 유출된 정보는 이전 유출로 인해 이미 대량으로 축적된 데이터에 포괄적인 방식으로 추가되었어요. 데이터베이스는 데이터 팀과 조사 저널리스트 모두가 사용할 수 있죠.

ICIJ는 보고된 기사와 동시에 Power Players 시각화의 일부로 Paradise Papers 데이터의 일부를 게시했어요. 대략 1000개의 Nodes와 3000개의 Relationships가 이 예비 데이터 세트에 있답니다.

ICIJ가 곧 데이터 세트의 더 많은 부분을 공개할 것으로 예상하고 있으며 추가 조사 결과를 계속 업데이트해 드릴게요.

데이터 모델

ICIJ가 파나마 페이퍼스에 사용한 데이터 모델은 매우 간단해요. 우리는 이와 동일한 데이터 모델을 사용 가능한 Paradise Papers 데이터 세트에 적용했어요. 모델에는 다음이 포함되죠.

    • 대리인이 저세율 해외 관할권에서 설립한 회사, 신탁 또는 기금 (Entity)
    • 역외 법인에서 역할을 수행하는 사람 또는 회사(Officer)
    • Address
  • 법률 회사 또는 중개인(Intermediary)이 해외 서비스 제공업체에게 고객을 위해 해외 회사를 설립해 달라고 요청하는 것이에요.

각각은 이름, 주소, 국가, 상태, 시작 및 종료 날짜, 유효성 정보 등 다양한 속성을 가지고 있죠.

요소 간의 관계는 해외 법인(종종 페이퍼 컴퍼니)에서 사람이나 다른 회사가 수행하는 역할을 포착하는데요. officer_of 관계는 이사, 주주, 수혜자 등과의 관계를 나타내요.

다른 관계에서는 유사한 주소나 법률 회사가 페이퍼 컴퍼니를 설립하는 책임을 맡는답니다 (intermediary_of).

데이터가 공식적으로 발표될 때까지는, 보고된 기사에 대한 몇 가지 예를 들어 ICIJ 웹사이트의 정보를 사용했어요.

다음은 전체 데이터세트에 통합될 (현재) 독립 보고서의 전체 그래프에요.

이 초기 Neo4j Graph Database는 212개의 법인, 해당 법인에 연결된 669명의 임원에 대한 정보로 구성되며, 이는 15개의 중개자(종종 법인을 통합하는 데 사용되는 법률 회사)를 통해 설립되었어요.

이제 대화형 그래프 시각화를 위해 Neo4j의 데이터를 사용할 수 있을 뿐만 아니라 전체 그래프 query 및 나중에 애플리케이션 그래프 알고리즘(이 블로그 시리즈의 2부)에도 사용할 수 있어요.

데이터에 대한 기본 통계는 다음과 같은 엔터티가 있음을 알려주죠.

MATCH (n)
RETURN labels(n), count(*)
ORDER BY count(*) DESC
╒════════════════╤══════════╕
│"labels(n)"     │"count(*)"│
╞════════════════╪══════════╡
│["Officer"]     │675       │
├────────────────┼──────────┤
│["Entity"]      │212       │
├────────────────┼──────────┤
│["Address"]     │134       │
├────────────────┼──────────┤
│["Intermediary"]│15        │
├────────────────┼──────────┤
│["Other"]       │11        │
└────────────────┴──────────┘

우리 회사의 학위 분포는 전형적인 권력 법칙을 보여주는데요. 일부 주소에는 127개의 회사가 등록되어 있고 일부는 자신의 이름으로 거의 90개의 페이퍼 컴퍼니가 등록되어 있어요.

이는 Paradise Papers 데이터의 아주 작은 부분이라는 점을 기억해주세요!.

MATCH (n)
WITH labels(n) AS type, size( (n)--() ) AS degree
RETURN type,
       max(degree) AS max, round(avg(degree)) AS avg, round(stdev(degree)) AS stdev
╒════════════════╤═════╤═════╤═══════╕
│"type"          │"max"│"avg"│"stdev"│
╞════════════════╪═════╪═════╪═══════╡
│["Other"]       │14   │4    │4      │
├────────────────┼─────┼─────┼───────┤
│["Address"]     │127  │5    │15     │
├────────────────┼─────┼─────┼───────┤
│["Intermediary"]│44   │10   │14     │
├────────────────┼─────┼─────┼───────┤
│["Officer"]     │89   │4    │8      │
├────────────────┼─────┼─────┼───────┤
│["Entity"]      │112  │12   │13     │
└────────────────┴─────┴─────┴───────┘

이걸 보면 대부분 임원과 법인, 그리고 임원의 주소라는 걸 알 수 있죠.

MATCH ()-[r]->()
RETURN type(r), count(*)
ORDER BY count(*) DESC
╒════════════════════╤══════════╕
│"type(r)"           │"count(*)"│
╞════════════════════╪══════════╡
│"officer_of"        │2079      │
├────────────────────┼──────────┤
│"registered_address"│639       │
├────────────────────┼──────────┤
│"connected_to"      │86        │
├────────────────────┼──────────┤
│"intermediary_of"   │67        │
├────────────────────┼──────────┤
│"same_name_as"      │28        │
├────────────────────┼──────────┤
│"same_id_as"        │2         │
└────────────────────┴──────────┘

officer_of 관계의 link 속성을 확인해 보면 이렇게 나와요.

MATCH ()-[r:officer_of]->()
RETURN toLower(r.link), count(*)
ORDER BY count(*) DESC
LIMIT 10
╒═══════════════════════════╤══════════╕
│"toLower(r.link)"          │"count(*)"│
╞═══════════════════════════╪══════════╡
│"director"                 │661       │
├───────────────────────────┼──────────┤
│"is shareholder of"        │326       │
├───────────────────────────┼──────────┤
│"alternate director"       │238       │
├───────────────────────────┼──────────┤
│"secretary"                │209       │
├───────────────────────────┼──────────┤
│"appleby assigned attorney"│102       │
├───────────────────────────┼──────────┤
│"vice-president"           │65        │
├───────────────────────────┼──────────┤
│"auditor"                  │54        │
├───────────────────────────┼──────────┤
│"president"                │52        │
├───────────────────────────┼──────────┤
│"ultimate beneficial owner"│48        │
├───────────────────────────┼──────────┤
│"is signatory for"         │41        │
└───────────────────────────┴──────────┘

회계 기록에는 잘 안 보이는 'appleby assigned attorney'와 'ultimate beneficial owner'의 수가 꽤 있다는 점이 흥미롭네요.

관할권

이 데이터 세트 버전에는 주소 정보가 제한적으로 들어있지만, 국가별 주소 분포는 확인할 수 있어요.

MATCH (n:Address) WHERE exists(n.country)
RETURN n.country, count(*)
ORDER BY count(*) DESC
LIMIT 10
╒═══════════╤══════════╕
│"n.country"│"count(*)"│
╞═══════════╪══════════╡
│"US"       │23        │
├───────────┼──────────┤
│"BM"       │12        │
├───────────┼──────────┤
│"BR"       │7         │
├───────────┼──────────┤
│"GB"       │7         │
├───────────┼──────────┤
│"IM"       │6         │
├───────────┼──────────┤
│"KY"       │4         │
├───────────┼──────────┤
│"ID"       │4         │
├───────────┼──────────┤
│"JO"       │3         │
├───────────┼──────────┤
│"HK"       │3         │
├───────────┼──────────┤
│"BS"       │3         │
└───────────┴──────────┘

여기서 중요한 질문 하나! 다른 나라 사람들이 가장 많이 이용하는 역외 관할권은 어디일까요?

예를 들어, 미국 주소를 가진 사람들의 경우, 주소 국가별로 가장 흔한 해외 관할권은 어디일까요?

// Most popular offshore jurisdictions for Officer's by country of address
MATCH (a:Address {country: "US"})--(o:Officer)--(e:Entity)
RETURN e.jurisdiction_description AS jurisdiction, COUNT(*) AS num
ORDER BY num DESC LIMIT 10
╒══════════════════════════╤═════╕
│"jurisdiction"            │"num"│
╞══════════════════════════╪═════╡
│"Bermuda"                 │94   │
├──────────────────────────┼─────┤
│"Cayman Islands"          │74   │
├──────────────────────────┼─────┤
│"United States of America"│3    │
├──────────────────────────┼─────┤
│"State of Delaware"       │1    │
└──────────────────────────┴─────┘

미국 주소를 가진 사람들과 연결된 기관의 가장 흔한 관할 구역이 버뮤다와 케이맨 제도라는 것을 알 수 있어요. 이건 상식적으로도 말이 되고, 파나마 서류에 미국인이 거의 없는 이유도 설명해주죠. 왜냐하면 파나마는 미국인들에게 흔한 역외 관할 구역이 아니거든요.

물론 이건 데이터의 작은 부분집합에 대한 `Query`라는 점을 기억해주세요. 다음 블로그 포스팅에서는 전체 데이터 세트를 분석하는 방법을 알아볼 거예요.

윌버 로스

윌버 로스 현 미국 상무장관이 역외 기업과 관련이 있다는 사실이 지난주 초 ICIJ에 의해 밝혀졌어요.

// What are the jurisdictions of Ross's connected entities?
MATCH (o:Officer)--(e:Entity)
WHERE o.name CONTAINS "Ross"
RETURN e.jurisdiction_description AS jurisdiction, COUNT(*) AS num
ORDER BY num DESC
╒═══════════════════╤═════╕
│"jurisdiction"     │"num"│
╞═══════════════════╪═════╡
│"Cayman Islands"   │16   │
├───────────────────┼─────┤
│"State of Delaware"│1    │
└───────────────────┴─────┘

Ross는 17개의 법인과 연결되어 있는데, 그 중 16개가 케이맨 제도에 등록되어 있네요.

// Wilbur Ross’s connections in the Paradise Papers
MATCH (o:Officer)-->(e:Entity)-[:intermediary_of]-(i:Intermediary)
WHERE o.name CONTAINS "Ross"
MATCH (e)--(o2:Officer)
RETURN *

비슷한 `Cypher`를 사용해서 `Node` 레이블이나 `Relationship` 유형을 지정하지 않고 Ross의 2차 네트워크를 `Query`할 수도 있어요:

MATCH p=(o:Officer)-[*..2]-()
WHERE o.name CONTAINS "Ross"
RETURN p

퀸 엘리자베스 투자 하우스

엘리자베스 2세 여왕의 사유 재산이자 포트폴리오인 랭커스터 공국(Duchy of Lancaster)이 Paradise Papers 데이터세트에 등장해요. 케이맨 기업에 수백만 달러가 투자되었는데, 그 중 하나가 공국의 Dover Street VI Cayman Fund였죠. 여왕의 재산은 정기적으로 국내 투자 및 해외 보유 현황을 보고하는데, Dover Street VI Cayman Fund 투자 건도 포함되어 있었어요. 하지만 이전에는 보고된 적이 없었다고 해요.

Duchy에 대한 모든 2홉 연결에 대해 Cypher 쿼리를 작성해 볼 수 있어요.

MATCH p=(o:Officer {name: "The Duchy of Lancaster"})-[*..2]-()
RETURN p

해외 법인 운영의 일반적인 패턴을 볼 수 있는데, "Robinson – Lynniece"와 "Sutherland – Linda M"이라는 두 개의 Officer 노드를 확장해 보면 이들이 다른 많은 해외 엔터티의 임원 역할을 한다는 것을 알 수 있어요.

이들은 기업 서비스 관리자 역할을 하며, 수백 개의 해외 기업의 임원으로 활동할 수 있는 거죠.

미래를 내다보며

이번 포스팅은 최근 발표된 조사 사례와 함께 Paradise Papers 데이터세트에 대한 소개였어요.

다음 포스팅에서는 그래프 알고리즘, 가상 그래프 투영, 고급 쿼리 및 공간 분석을 Paradise Papers 전체 데이터세트에 적용하는 방법을 살펴볼게요.

참고 자료

    • 파라다이스 페이퍼(Paradise Papers) 소개 – ICIJ
    • 해외 누출 온라인 검색
    • 파나마 페이퍼스 조사에 대한 Mar Cabra의 프레젠테이션
    • Panama Papers 데이터 세트를 위한 Neo4j Sandbox
  • 블로그 게시물: Neo4j를 사용한 파나마 페이퍼 분석
Graph Database 기술로 무엇을 할 수 있는지 더 자세히 알고 싶으신가요? 아래를 클릭해서 O'Reilly 도서 무료 사본을 받고, 연결된 데이터의 힘을 활용하는 방법을 알아보세요.
  • Cypher
  • icij

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

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

728x90
반응형

+ Recent posts