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

그래프 임베딩 하실 때 데이터에 대해 고민해보신 경험 있으실까요? 오늘 이 시간에는 임베딩 결과에 도움이 될만한 네트워크 지표를 가져왔습니다. 바로 degree 뿐만 아니라, clustering coefficient , path length 등에 대한 요소들입니다. 그럼 이 요소들이 어떻게 도움이 되는가? 라는 의문이 드실텐데요. 활용 사례를 말씀드려볼게요.

21CA47EA-3C16-4DA6-ADA4-6F14D5080D5C.jpeg

Table 2.1. 에서 나온 지표들을 모두 고려하면 최종적으로 네트워크는 대체적으로 scale-free , random graph 으로 분류됩니다. Scale-free 는 power-law 분포를 띄고 random graph 는 가우시안 분포를 띄는 그래프입니다. 네 바로 high-connected 인지 아닌지를 구별하게 되는거죠. 단적인 예로 power-law 분포를 띄는 scale-free network 면 over-squashing , 꼬리에 속해있는 노드의 정보량이 적음 과 같은 경우가 발생함을 추측할 수 있기 때문에 rewiring , virtual node 와 같은 요소들을 모델링에 대입해주면 좋은 결과를 얻을 수 있을것이다. 라는 식의 아이디어가 적용이 가능하다는 거죠.

이처럼 네트워크의 topological feature 를 고려한 모델링을 해보시면 어떨까요? 데이터의 분포에 기반한 모델링을 하기에 더욱 합리적인 접근이 될 것이고, 만약 성능이 개선되었다면 그 근거로서 제시하기에도 용이하실거라 생각이 되네요.

Tip 네트워크 지식을 직접 활용해보시는걸  추천드립니다. Graph Representation learning(GNN) 은 네트워크의 분포를 잘 학습시키기 위해 미분을 활용하며 대표값을 정량화 하는게 목적이고, 복잡계 네트워크는 네트워크 데이터의 특성을 물리학 관점에서 정량화 해보자 라는 맥락을 가지기 때문에 유사한 목적을 가집니다. 두 학문의 접근방식만 다를뿐이죠. 결국 두 방법론들이 상호보완이 될 수 있음을 의미합니다. (ChatGPT 를 적극 활용해보세요!)


Unleashing ML Innovation at Spotify with Ray

[https://engineering.atspotify.com/2023/02/unleashing-ml-innovation-at-spotify-with-ray/]

  • Graph learning 을 recommendation system 에 어떻게 적용하고 있는지 궁금하고 계셨을 분들에게 도움이 되겠네요. RAY + PyG 의 형태로 활용됩니다.
  • Production level 에서 GNN 이 활용되기 어려울거라 생각했던 이유들인 subgraph sampling , batch training 이 Ray 를 통해 해결해서 실제 배포까지 된다는 사실이 너무 신기해서 더욱 와닿은 포스팅이였습니다.
  • 참고로 , Graph learning 2022 에서 발표한 세션에서 자세한 내용이 담겨 있으니, 관심있으신분들은 참고해보셔도 좋을거라 생각됩니다.

Search behavior prediction: A hypergraph perspective

[https://www.amazon.science/publications/search-behavior-prediction-a-hypergraph-perspective]

  • 고객이 쇼핑을 하며 무슨 행동을 하는지 표현할 때 효과적인 구조. 바로 bipartite graph 구조입니다. 아이템과 유저간 발생하는 로그들을 엣지로 표현하게 된다면 0,1 과 같은 feature가 아닌 관계로써 맵핑되기에 직관적이고 효율적이라는 거죠.
  • 허나, 이런 좋은 장점들이 많음에도 불구하고 역시 단점 또한 존재합니다. 바로 Disassortative , Long-Tail Distribution 문제입니다. 간단히 말씀드리면, e-commerce graph 는 power-law 형태를 띄는게 일반적이라고 합니다. 너무나 당연하지만, 저희가 주로 사용하는 휴지 , 물 등 생필품같은 요소들은 주기적으로 꾸준히 구매해야 하기때문이죠. 그 결과, 대다수 유저와 아이템간 관계들을 보면 생필품에 치우쳐져 있다고합니다. 이 관계들이 결국엔 noise 가 될 수 있기에, 유저가 진정 원하는 아이템을 제공할 때 불편함을 초래한다고 합니다.
  • 앞서 언급한 두가지 문제를 해결하기 위해 hypergraph 를 활용합니다. item-item 간의 공통 속성 , higher-order 속성을 활용해서 다양한 context 를 반영해서 문제들을 해결해보고자 시도하는거죠.
  • 곧 진행될 WSDM 23 에 억셉된 논문입니다. 추천시스템에서 hypergraph를 도입하는 추세들이 곳곳에서 보이네요. bipartite 의 문제점부터 시작해서 네트워크 데이터 분포를 연계지어 hypergraph로 해결하려는 시도. 앞으로의 트렌드가 되지 않을까 조심스레 추측해봅니다.

Kumo - why graph is advantage in FDS industry

[https://kumo.ai/ns-newsarticle-using-graph-learning-to-combat-fraud-and-abuse]

  • PyG 컨트리뷰터들이 설립한 회사죠. Kumo , FDS 에서 왜 Graph가 적절한지에 대해 이야기합니다. Rule based → traditiaonl ML → Graph 까지 기술이 잘 되어있습니다. 뿐만아니라, FDS 의 배경과 시스템 설계 시 주의할 점에 대해서도 언급하고 있기에, 게시글의 이해를 위해 따로 FDS를 공부하실 필요까지는 없을만큼 친절하게 설명이 잘 되어있습니다.

T2-GNN: Graph Neural Networks for Graphs with Incomplete Features and Structure via Teacher-Student Distillation

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

Untitled
  • 현업 엔지니어링 측면에서 여러 task 가 존재할텐데요. 모델의 성능과 추론속도를 모두 고려하며 최적화하는 작업이 엔지니어링의 주 목적이지 않을까 싶네요. 소개드릴 논문에서는 경량화 엔지니어링 스킬 중 Knowledge distillation 를 GNN 에 어떻게 대입하는지에 대해 이야기합니다.
  • Node feature가 모두 온전히 존재하는 best 상황이 있는 반면, missing value 들이 node feature에 존재하는 순간도 존재합니다. 주로 0 , medium value 등 missing imputation technique 를 활용합니다. 본 논문에서는 technique 중 node distribution 를 고려해서 missing value 를 채워주는 방식을 언급하며 문제를 제기합니다. 바로, real-network 은 더욱 복잡하며 다양한 분포들이 존재하기에 데이터 분포만을 고려한 방식이 적절치않다는거죠.
  • 그래서 본 논문에서는 node feature을 MLP로 , graph structure feature을 pagerank 로 적용한 뒤 , dual distilliation(joint learning)방식을 활용합니다. 비어있는 node feature는 mlp 로 학습시키며 통상적인 값으로 대체하고 , graph feature는 페이지 랭크를 활용해서 그래프의 중요성을 반영한다는거죠.
  • 결과적으로 모든 베이스라인에서 성능이 향상됨으로 논문의 노벨티를 주장합니다. 유심히 보면 좋을부분은 ablation study 입니다. Feature Teacher , structure feature w/o 등 여러 제한조건을 걸고 각각의 성능을 비교한 그림을 보시면 teacher frame 의 유무에 따라 성능의 변동이 큼을 확인할 수 있습니다. 이를 기반으로 추측해보자면 결국 knowledge distillation task 에서는 node feature을 잘 나타내는게 중요하다라는 사실을 실험 결과를 근거로 알 수 있습니다.

Complex systems in the spotlight: next steps after the 2021 Nobel Prize in Physics

[https://iopscience.iop.org/article/10.1088/2632-072X/ac7f75/pdf]

  • 재미로 보시면 좋을거 같네요. 복잡계 네트워크의 next step 에 대해 물리학계에서 저명한 분들이 언급하신 내용입니다. 향후 학계가 어떤식으로 흘러갈지 유추할 수 있는 힌트들이 마구마구 적혀있기에, 연구 방향성을 잡으실 때 유용하실거라 생각되네요.

Big graph with 리소스

확실히 PyG 를 기반으로 extension version 들이 많이 제작되고 있는 추세인 것 같네요.

Quiver

[https://github.com/quiver-team/torch-quiver]

[https://www-fourier.ujf-grenoble.fr/~mbrion/notes_quivers_rev.pdf]

  • PyG base performance 를 대폭 향상시킨 프로젝트입니다. 그 뒤에는 1. GPU accelerated(NVIDIA 네트워크 통신 최적화) 2. torch-Quiver 만의 그래프 데이터 구조 3. 효율적인 aggregation 을 위한 알고리즘 4. 최적화된 그래프 알고리즘 등이 그 성능 향상의 비법이라고 합니다.
  • 링크 두번째는 Quiver 백서로 연결됩니다.저도 생소한 분야이다보니 ChatGPT 에게 물어봤습니다. 다음과 같이 답변해주네요.
  • Q) what is the Quiver ? A) Quiver is a data structure for efficiently representing and manipulating graph-structured data. It is specifically designed to be used in graph-based deep learning applications, and provides a compact representation of graph-structured data that is optimized for GPU-accelerated computations.
  • Q)why the Quiver structure is useful in graph? A) The Quiver structure is a sparse matrix representation of a graph, where the rows and columns represent nodes and edges, respectively. This representation allows for efficient computations on graph-structured data, even when the graph is very large.

PyG-lib

[https://pyg-lib.readthedocs.io/en/latest/modules/ops.html]

  • PyG 는 기존에 torch-scatter , torch-gather 라이브러리에 굉장히 의존성이 강했습니다. entity 간 발생하는 연산을 흩뿌리고 모아주는 작업이 결국에 message passing , aggregation 과 같이 그래프 임베딩의 핵심 요소였으니깐요.
  • pyg-lib 와 torch-scatter , gather 은 모두 pip install 로 설치하면 적용되는 low-level module 입니다. 허나 pyg-lib를 활용하게 된다면 더욱 gpu 친화적인 low-level 로써 성능향상을 기대할 수 있습니다. 지금은 nightly 단계같아서 안정화까지는 조금 더 기다려봐야할 것 같습니다. github 에 star alert 를 설정해두시고 시의적절할 때 활용해보시는걸 추천드립니다.

Memory-Efficient Aggregations

[https://pytorch-geometric.readthedocs.io/en/latest/advanced/sparse_tensor.html]

  • dense-graph 나 large-graph 에서 gather-scatter 은 물리적으로 메모리 공간을 많이 차지합니다. 이를 sparse-tensor[https://arxiv.org/abs/1803.08601] 활용해서 해결합니다.

EXACT: Scalable Graph Neural Networks Training via Extreme Activation Compression

[https://openreview.net/forum?id=vkaMaq95_rX]

[code , https://github.com/warai-0toko/Exact]

  • Quantized 를 통해 데이터를 압축시켜줌으로서, 성능 개선을 이끌어냅니다. 핵심은 데이터를 mixed precision 과 같이 부동소수형 데이터를 통해 최대한 가볍게 만든 후, low dimensional 로 projection 하는것이라고 볼 수 있겠습니다.

Read more

26년 2월 2주차 그래프 오마카세

Graph Talks LLM,GNN integration 행사 참여 신청 링크 안녕하세요, GUG 정이태입니다. 1.입춘이 다가오고 있지만 여전히 바람이 매섭네요. 다행히 지난 주말은 바람이 잦아들어 잠시나마 숨을 돌릴 수 있는 휴일이었는데, 다들 건강하게 잘 지내고 계신가요? 2.요즘 AI 업계는 NVIDIA GTC 2025에서 화두가 되었던 GraphRAG(Softprompt, KGE)를 넘어, 다가올

By omakasechef

26년 1월 3주차 그래프 오마카세

GUG Interview 안녕하세요, 정이태입니다. GUG talks 소식을 전해드립니다. 이번 세션은 Neo4j 솔루션 엔지니어 Bryan Lee 함께 점심시간을 활용해 온라인으로 진행합니다. 가볍게 점심을 준비해 편안한 마음으로 참여해 주시면 좋을 것 같습니다. Bryan disucssion topic 최근 지식 그래프(Knowledge Graph) 구축을 위한 NER(Named Entity Recognition) 태스크에서 다양한 연구와 시행착오를 겪은 Bryan의

By omakasechef