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

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

Flexible GraphRAG: a configurable open source framework for GraphRAG Blog link : https://integratedsemantics.org/ Github : https://github.com/stevereiner/flexible-graphrag * 이번 주 오마카세는 'Open Source Integrated AI and Semantic Tech' 블로그에서 설명하는 통합된 오픈소스 플랫폼 관련한 소식을 전달해드리고자 합니다. 최근 포스트에서는 문서 처리, 지식 그래프 구축, RAG 및

By admin

25년 10월 1주차(2) 그래프 오마카세

1.광고 안녕하세요 정이태입니다.오랜만에 10월 23일 목요일 저녁에 GUG 온라인 세미나가 예정되어 있습니다. 카이스트 김재철AI대학원 신기정 교수님 연구실 소속 김선우 연구원님과 하이퍼 그래프 이론부터 응용까지 라는 주제로 진행할 예정이며, 저또한 모더레이터 겸 요새 GraphRAG 트랜드부터 왜 HyperGraphRAG가 나오고 있는지 산업계 관점에서 생각을 공유드릴 예정이오니 관심있는 분들은 참여하셔서 본인 연구나

By Hardy