>  기사  >  기술 주변기기  >  10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

WBOY
WBOY앞으로
2023-04-11 23:52:011326검색

2019년 뉴욕대학교와 Amazon Cloud Technology는 그래프 신경망 프레임워크 DGL(Deep Graph Library)을 공동 출시했습니다. 이제 DGL 1.0이 공식적으로 출시되었습니다! DGL 1.0은 지난 3년간 학계나 산업계에서 그래프 딥러닝과 그래프 신경망(GNN) 기술에 대한 다양한 요구를 요약한 것입니다. 최첨단 모델에 대한 학문적 연구부터 GNN을 산업 애플리케이션으로 확장하는 것까지, DGL 1.0은 모든 사용자가 그래프 머신 러닝을 더 잘 활용할 수 있도록 포괄적이고 사용하기 쉬운 솔루션을 제공합니다.


10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

DGL 1.0은 다양한 시나리오에 대한 솔루션을 제공합니다.

DGL 1.0은 다양한 사용자 요구를 충족하기 위해 계층화 및 모듈형 디자인을 채택했습니다. 이 릴리스의 주요 기능은 다음과 같습니다.

  • 100개 이상의 기본 GNN 모델 예제, OGB(Open Graph Benchmark)의 15개 이상의 최상위 벤치마크 모델
  • 150개 이상의 일반 GNN 모듈, GNN 레이어, 데이터 세트, 그래프 데이터 변환 모듈, 그래프 샘플러 등을 사용하여 새로운 모델 아키텍처 또는 GNN 기반 솔루션을 구축할 수 있습니다.
  • 개발을 위해 유연하고 효율적인 메시지 전달 및 희소 행렬 추상화; 새로운 GNN 모듈
  • 다중 GPU 및 분산 교육 기능은 수백억 개의 그래프에 대한 교육을 지원합니다.


10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

DGL 1.0 기술 스택 다이어그램

10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시


주소: https://github.com/dmlc/dgl

이 버전의 주요 특징 중 하나는 희소 행렬을 핵심 프로그래밍 추상화로 사용하는 새로운 프로그래밍 인터페이스인 DGL-Sparse의 도입입니다. DGL-Sparse는 기존 GNN 모델(예: 그래프 컨벌루션 네트워크)의 개발을 단순화할 뿐만 아니라 확산 기반 GNN, 하이퍼그래프 신경망 및 그래프 변환기를 포함한 최신 모델과도 작동합니다.

DGL 버전 1.0 출시는 인터넷에서 딥러닝 3대 거물 중 하나인 얀 레쿤(Yann Lecun), 싱가포르 국립대학교 부교수 자비에르 브레송(Xavier Bresson) 등 학자들의 뜨거운 호응을 불러일으켰습니다. 그것을 전달했습니다.

10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

다음 글에서 저자는 두 가지 주류 GNN 패러다임, 즉 메시지 전달 뷰와 매트릭스 뷰에 대해 설명합니다. 이러한 패러다임은 연구자들이 GNN의 내부 작동 메커니즘을 더 잘 이해하는 데 도움이 될 수 있으며, 행렬 관점은 DGL Sparse 개발의 동기 중 하나이기도 합니다.

Message Passing View 및 Matrix View

영화 "Arrival"에는 "사용하는 언어가 생각하는 방식을 결정하고 사물을 보는 관점에 영향을 준다"라는 말이 있습니다. 이 문장도 GNN에 적합합니다.

은 그래프 신경망에 두 가지 다른 패러다임이 있음을 의미합니다. 첫 번째는 메시지 전달 뷰라고 하며 세밀한 로컬 관점에서 GNN 모델을 표현하며 메시지가 에지를 따라 교환되는 방식과 이에 따라 노드 상태가 업데이트되는 방식을 자세히 설명합니다. 두 번째는 행렬 관점입니다. 그래프는 희소 인접 행렬과 대수학적 동등성을 갖기 때문에 많은 연구자들은 희소 인접 행렬 및 고유 벡터와 관련된 연산을 강조하면서 대략적인 전역 관점에서 GNN 모델을 표현하기로 선택합니다.

10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

메시지 전달 관점은 GNN과 WL(Weisfeiler Lehman) 그래프 동형성 테스트 간의 연관성을 보여줍니다. 이 테스트 역시 이웃의 정보 집계에 의존합니다. 행렬 관점은 대수적 관점에서 GNN을 이해하여 과도한 스무딩 문제와 같은 몇 가지 흥미로운 발견을 이끌어냅니다.

간단히 말해서, 이 두 가지 관점은 서로를 보완하고 연구자들이 GNN 모델의 성격과 특성을 더 잘 이해하고 설명하는 데 없어서는 안 될 도구입니다. 이러한 이유로 DGL 1.0 출시의 주요 동기 중 하나는 기존 메시지 전달 인터페이스를 기반으로 매트릭스 관점에 대한 지원을 추가하는 것입니다.

DGL Sparse: 그래프 기계 학습을 위해 설계된 희소 행렬 라이브러리

DGL 1.0 버전에는 DGL Sparse(dgl.sparse)라는 새로운 라이브러리가 있습니다. 이 라이브러리는 DGL의 메시지 전달 인터페이스와 함께 모든 유형의 그래프 신경망 모델. DGL Sparse는 특히 그래프 기계 학습을 위한 희소 행렬 클래스와 작업을 제공하므로 행렬 관점에서 GNN을 더 쉽게 작성할 수 있습니다. 다음 섹션에서 저자는 DGL Sparse에서 수학적 공식과 해당 코드 구현을 보여주는 여러 GNN 예제를 보여줍니다.

Graph Convolutional Network

GCN은 GNN 모델링의 선구자 중 하나입니다. GCN은 메시지 전달 뷰와 매트릭스 뷰로 표현될 수 있습니다. 다음 코드는 DGL에서 이 두 가지 방법의 차이점을 비교합니다.

10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시


10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

메시징 API를 사용하여 GCN


구현

10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

DGL Sparse를 사용하여 GCN 구현

그래프 확산을 기반으로 한 GNN

그래프 확산은 가장자리를 따라 노드 특징이나 신호를 전파하거나 평활화하는 프로세스입니다. PageRank와 같은 많은 기존 그래프 알고리즘이 이 범주에 속합니다. 일련의 연구에 따르면 그래프 확산과 신경망을 결합하는 것이 모델 예측을 향상시키는 효과적이고 효율적인 방법인 것으로 나타났습니다. 다음 방정식은 가장 대표적인 모델 중 하나인 APPNP의 핵심 계산을 설명합니다. DGL Sparse에서 직접 구현할 수 있습니다.

10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

하이퍼그래프 신경망

하이퍼그래프는 에지가 원하는 수의 노드(하이퍼에지라고 함)를 연결할 수 있는 그래프의 일반화입니다. 하이퍼그래프는 전자 상거래 플랫폼의 공동 구매 행동이나 인용 네트워크의 공동 저작과 같이 고차 관계를 캡처해야 하는 시나리오에서 특히 유용합니다. 하이퍼그래프의 일반적인 특징은 희소 상관 행렬이므로 초그래프 신경망(HGNN)은 종종 희소 행렬을 사용하여 정의됩니다. 다음은 하이퍼그래프 컨벌루션 네트워크(Feng et al., 2018) 및 해당 코드 구현입니다. Transformer 모델은 자연어 처리 분야에서 가장 성공적인 모델 아키텍처가 되었습니다. 연구원들은 또한 Transformer를 그래프 기계 학습으로 확장하기 시작했습니다. Dwivedi 등은 모든 다중 헤드 주의를 그래프의 연결된 노드 쌍으로 제한하는 아이디어를 개척했습니다. 이 모델은 DGL Sparse 도구를 사용하여 단 10줄의 코드만으로 쉽게 구현할 수 있습니다.

10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시

DGL Sparse의 주요 기능

scipy.sparse 또는 torch.sparse와 같은 희소 행렬 라이브러리와 비교하여 DGL Sparse의 전반적인 디자인은 다음을 포함하여 그래프 기계 학습을 제공하는 것입니다. 다음 주요 기능:

  • 자동 희소 형식 선택: DGL Sparse는 사용자가 희소 행렬(희소 형식이라고도 함)을 저장하기 위해 올바른 데이터 구조를 선택하는 것에 대해 걱정할 필요가 없도록 설계되었습니다. ). 사용자는 dgl.sparse.spmatrix가 희소 행렬을 생성하고 DGL이
  • 스칼라 또는 0이 아닌 벡터 요소라는 연산자를 기반으로 내부적으로 최적의 형식을 선택한다는 점만 기억하면 됩니다. lot GNN 모델은 에지에서 여러 가중치를 학습합니다(예: Graph Transformer 예제에서 설명한 다중 헤드 주의 벡터). 이러한 상황을 수용하기 위해 DGL Sparse는 0이 아닌 요소가 벡터 모양을 갖도록 허용하고 SpMM(Sparse-Dense-Matrix Multiplication) 등과 같은 일반적인 희소 연산을 확장합니다. Graph Transformer 예제에서 bspmm 작업을 참조할 수 있습니다.

DGL Sparse 는 이러한 설계 기능을 활용하여 메시지 전달 인터페이스를 사용하는 이전 매트릭스 뷰 모델 구현에 비해 코드 길이를 평균 2.7x 줄입니다. 또한 단순화된 코드는 프레임워크 오버헤드를 43% 줄입니다. 또한 DGL Sparse는 PyTorch와 호환되며 PyTorch 생태계의 다양한 도구 및 패키지와 쉽게 통합될 수 있습니다.

DGL 1.0 시작하기

DGL 1.0은 모든 플랫폼에서 출시되었으며 pip 또는 conda를 사용하여 쉽게 설치할 수 있습니다. 앞서 소개한 예제 외에도 DGL Sparse의 첫 번째 버전에는 5개의 튜토리얼과 11개의 엔드투엔드 예제가 포함되어 있으며 모두 로컬 설치 없이 Google Colab에서 직접 경험할 수 있습니다.

DGL 1.0의 새로운 기능에 대해 자세히 알아보려면 작성자의 릴리스 로그를 참조하세요. DGL을 사용하는 동안 문제가 발생하거나 제안 또는 피드백이 있는 경우 토론 포럼 또는 Slack을 통해 DGL 팀에 문의할 수도 있습니다.

위 내용은 10줄의 코드로 그래프를 완성하다 Transformer, 그래프 신경망 프레임워크 DGL 버전 1.0 출시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제