2월 1주차 그래프 오마카세

static and dynamic robustness

Dynamic 편

  • Robustness 기억나시나요? 저번주 오마카세에서는 ‘static’ 맥락을 다루었다면, 이번주차는 ‘dynamic’ 맥락입니다! ‘static 와 dynamic 의 가장 큰 차이점은 바로 ‘역학’ 입니다. 코로나를 역학조사 할 때도 쓰인 개념이죠. SIR 모델. 누군 치료되고 누군 감염되는 등 실시간으로 변화되는 네트워크 상태 예의주시하는게 핵심입니다. 그렇다면 어떻게 우리가 예측을 할 것이냐? 음..! 예측이라는 표현보다 노드와 노드간의 load(부하)가 어떻게 전달 되는지 시뮬레이션 해본다는 맥락이 더 적절하겠네요.
  • dynamic robustness 에서 핵심은 바로 ‘time’ 과 ‘load’ 입니다. 특정 시간대에 부하가 어디에서 어디로 흐르고 있는지 flow 를 파악하며 cascade 현상을 유추하는거죠. 이를 통해, 현상을 정량화 및 tolerance 라는 파라미터로 측정하며하며 어느 부분이 취약점일지 파악하고 빠르게 대처하는거죠. 비단 질병 뿐만아니라, 인터넷 네트워크 시스템 등 연결로 이루어진 모든 데이터에서도 통용되는 개념입니다.
  • 비즈니스 측면으로 바라본다면, 바이럴 마케팅에서도 활용됩니다! sns 상에서 information spread 뿐만 아니라 순간 확장성 그리고 타 커뮤니티로 전달되는 파급력 까지 복잡계 네트워크 지식이 연계되어 있는분야는 너무나도 다양합니다 :) 참 재밌지 않나요?!
  • 제가 지금 전달드리는 내용은 ‘Complex networks: Structure and dynamics’ 의 극히 일부분에 불과합니다. rumor spreading , Fluctuating 등 여러 현상에 대한 분석이 담겨있으니 한 번 보시는 걸 추천드려요!

NodeAug: Semi-Supervised Node Classification with Data Augmentation

[https://dl.acm.org/doi/abs/10.1145/3394486.3403063]

  • Imbalanced data task 를 맡게 되면 곧바로 떠오르는 생각이죠. Data augmentation. 그래프에서도 데이터 증강이 가능합니다. 본 논문에서는 node attribute 와 graph structure 를 변형해주며 graph augmentation 을 진행합니다. 또한, subgraph mini-batch training 을 통해 large graph 에서 어떤식으로 training 하면 좋을지에 대한 이야기도 나눕니다.
  • Data augmentation → 데이터 증강은 단순하게 데이터 분포 혹은 조작 단계 뿐만아니라,  증강된 데이터가 적합한 데이터인지 검증하는 단계도 필요합니다. 먼저, 증강된 데이터라 함은 그래프와 연결된 노드 엣지를 random remove / replace 하고, reconnect 를 의미합니다.
  • 이 후 , 검증하는 단계는 remove / replace 전 / 후 그래프의 분포를 KL 로 측정하며 minimize 로 이루어집니다. 되게 간단하게 말했지만 remove 과정에서 굉장히 흥미로운 아이디어들이 있어요. 논문을 보실 분들이시라면 이 측면 꼭 유념하시면서 보시는걸 추천드려요 !
  • Subgraph mini-batch 는 심플하게 whole graph training 이 아닌 , label 에 연결되어있는 subgraph 만을 batch training 해주는 기법을 의미합니다.
  • 실험결과들 모두 자신들의 아이디어가 젱리 좋다 라는 식의 평이한 논리전개를 띄곤하는데요. 본 논문도 마찬가지입니다. 그런데 여기 여러분들에게 유용한 인사이트가 실험 해석에 존재합니다. 데이터 증강이 어떤 그래프 임베딩에서 효과적인지에 대해 실험 결과와 왜 그런 결과가 나왔는지에 대한 해석인데요.
  • GCN GAT LGCN 과 같은 대표적인 모델에 모두 적용했으나, GCN 이 그 중 돋보일만큼 퍼포먼스 향상되었다고 하네요. 왜 그런지에 대한 이유는 논문에서 살펴보시면 좋을거 같아요! 모든 data agumentation 이 만능이 아니라는 관점을 견지하시고 보시면 재밌는 아이디어까지 이어질 것 같습니다 🙂

Industry

ByteGraph: A Graph Database for TikTok

[https://www.mydistributed.systems/2023/01/bytegraph-graph-database-for-tiktok.html?m=1]

  • Short video 플랫폼으로 유명한 틱톡에서는 어떻게 데이터를 관리할까요? 직관적으로 보기에도 real-time 이 굉장히 중요한 요소일거라 생각되는데요. 많은 실시간 데이터를 관리하기 위해 직접 데이터베이스를 만들었습니다. ByteGraph!
  • Low latency , high scalability 두 조건들을 만족하기위해 1. Edge-tree 2. Adaptive optimization 3. geographic replication 요소들을 중점으로 데이터베이스를 설계했습니다.
  • 세 요소들을 하나씩 간단히 말씀드리자면, edge-tree 는 그래프 형태 (adjancecy list)를 b-tree 구조만들어주고 관리해줍니다. Tree 라면 node 들 또한 존재하겠죠? Root , meta, edge 3가지 노드를 통해 데이터 를 읽고 쓰는데 필요한 사이즈들을 upper-bound 와 lower-bound 로 관리해줍니다. Upper bound 나 lower bound 는 데이터들이 bound에 근접할 때 disk I/O 를 줄인다거나 늘린다거나 하는 일종의 데이터 가용 경계라고 보시면 될 것 같아요.
  • Adaptive optimization 은 데이터에 대한 요청에 발생할 때, 어느 thread pool 에서 처리하면 효율적인지 판단해주는 dynamic thread pool 과 데이터에 매칭되는 key가 존재하지 않을 때 전체 edge-tree 를 scanning 하면 비효율적이니, 이를 edge property 로 sorting 그리고 매칭해주는 secondary edge-tree 로 이루어져 있습니다.
  • Geographic replication 는 with a data center , cross data centers in the same region , cross data centers in different region 3가지를 통해 fault tolerance 와 high availability 에서 효율적이였다 라고 합니다. 각 geographic 특성에 따라 어떻게 db 를 deployment 할지에 대한 전략이 나와있다고 생각하시면 될 거 같아요.
  • Production 레벨에서 중요한 high scalablilty , low latency 요소를 어떻게 설계하는지 궁금하셨던 분들에게 유용한 레퍼런스라 생각되네요. 여러 유명한 GDB 특히 neptune 과 비교한 실험이 기억에 남네요. OLTP , OLSP , OLAP 를 모두 아우르며 고성능을 보여준 bytegraph 대단하다고 느껴집니다..!

NFT Wash Trading in the Ethereum Blockchain

[https://arxiv.org/pdf/2212.01225.pdf]

  • 한 때 광풍이였던 가상화폐, 그중에서 NFT 기억나실까요? NFT 에 대한 가치 산정은 주로 rariety 라는 지표로 이루어지고 있었습니다. 근데 여기에서 rariety 지표는 낮음에도 불구하고 가격이 높은 NFT 들이 발생하곤 하는데요. 물론 그 상황에 대한 여러 원인들이 존재하겠으나 대다수는 유저간 담합을 통해 가격을 상승시키는 악의적 행동으로 그렇다고하네요.
  • 그 행동들이 주로 어떤식으로 나타나는지에 대해 다룬 논문입니다. 뿐만아니라, 저희 일전에 공부했던 strongly connected component 기억나실까요? 복잡계 네트워크 지식이 여기에서도 쓰입니다. 많고 많은 데이터들 중 의심 행위를 분별할 때 쓰이는데요. 왜 connected component 인가에 대해 기술하는 부분도 역시 재밌습니다.
  • 지금 비록 NFT에 대한 관심이 많이 시들긴 했으나, 미래는 또 모르니깐요! 그래프 와 블록체인이 결합하여 abnormal tx detection이 어떻게 이루어지는지 overview 를 잘 기술한 논문이기에 추천드립니다 🙂 쉽고 재밌어요 !

ZeRO: Memory Optimizations Toward Training Trillion Parameter Models

[https://arxiv.org/pdf/1910.02054.pdf]

  • parallelism 에 대해 논의하며 과연 data parallelism 이 model training 이 긍정적인 영향을 줄것인가에 대해 논의하는 논문입니다. 말은 쉽게 드리지만, 엔지니어링 스킬들의 집약체 논문이라 생각되네요.
  • Pipeline parallelism , Model parallelism , Cpu offloading 등 전문가들의 다양한 실험과 해석들이 총 집합되어 있다 생각됩니다. Traillion parameter 급의 모델을 다루는 엔지니어링 분들에게 많은 도움이 되리라 생각됩니다.

big graph with 모델

big graph 2번째 시리즈입니다. 모델을 통해 big graph 를 다루는 방식입니다. 이 부분은 OGB LSC에서 지금 이 시간에도 많은 연구자들이 경쟁하고 있는 중입니다.

Recent Advances in Efficient and Scalable Graph Neural Networks

[https://www.chaitjo.com/post/efficient-gnns/#scalable-and-resource-efficient-gnn-architectures]

  • Scalable and resource efficient GNN architectures 항목을 보시면 오늘 제가 논의드릴 내용들이 모두 담겨있습니다. 주 콘셉은 feature aggregation 에서 과도한 memory overhead 가 발생하므로 그것들을 pre-computation 해서 MLP (linear-layer) 에 태우면 light 하다 라는 맥락입니다. lightGCN 의 모티브인 SGC 부터 시작해서 설명이 잘 되어있습니다.
  • GNN ML 엔지니어가 목표라면 필독 해야할 블로그라 생각되네요. 다양한 엔지니어링 스킬 그리고 practical 그래프 임베딩 논문들이 수록되어 있기 때문이죠. 좀처럼 보기 힘든 양질의 포스팅이라 생각됩니다.

Subscribe for daily recipes. No spam, just food.