자막 그룹 이중 언어 오리지널: GCN 도서 네트워크 소개 (GCN)
원래 영어: 그래픽 비자발적 네트워크 (GCN)
바람 듣기 1996, 큰 사촌
많은 문제들은 본질적으로 그림이다. 우리 세계에서, 우리는 분자, 소셜네트워크, 논문 인용 네트워크와 같은 많은 데이터를 볼 수 있습니다.
차트의 예. (사진 출처 [1])
그림에서 노드 특성 (노드 데이터를 나타냄) 과 그래프 구조 (노드 연결 방법을 나타냄) 가 있습니다.
노드의 경우 각 노드에 대한 데이터를 쉽게 얻을 수 있습니다. 그러나 그림의 구조가 관련될 때 유용한 정보를 추출하는 것은 쉽지 않다. 예를 들어, 두 노드는 매우 가깝습니다. 다른 노드와 다르게 취급해야 합니까? 높고 낮은 노드는 어떻게 처리합니까? 사실, 각 특정 작업에 대해, 그것은 단지 특징 공학, 즉, 그림의 구조를 우리의 특징으로 변환하는 것은 많은 시간과 에너지를 소비합니다.
그래픽 피쳐 엔지니어링. (사진 출처 [1])
어떤 식으로든 그래프의 노드 피쳐와 구조 정보를 입력으로 얻을 수 있다면 기계가 어떤 정보가 유용한지 판단할 수 있게 하는 것이 더 좋다.
이것이 우리가 학습을 그래픽으로 표현해야 하는 이유이다.
우리는' 피쳐공학' 을 독학할 수 있기를 바란다. (사진 출처 [1])
논문: 그래프 신경망에 기반한 반감독 분류 (20 17)[3]
GCN 은 그래프에서 직접 작업하고 그래프의 구조 정보를 활용할 수 있는 컨볼 루션 신경 네트워크입니다.
그림 (예: 인용 네트워크) 에 있는 노드 (예: 문서) 의 분류 문제를 해결하고 적은 수의 노드만 표시 (반감독 학습) 합니다.
지도 반 감독 학습의 한 예. 일부 노드에는 레이블이 없습니다 (알 수 없는 노드).
컨볼 루션' 이라는 이름이 지적한 바와 같이, 이 아이디어는 이미지에서 유래한 다음 나중에 도면에 도입되었다. 그러나 이미지가 고정된 구조를 가지고 있으면 그림이 훨씬 복잡해집니다.
이미지에서 그래픽으로 이르는 컨볼 루션 사상. (사진 출처 [1])
GCN 의 기본 사상: 각 노드에 대해 우리는 모든 이웃들로부터 자신의 특징을 포함한 특성 정보를 얻습니다. Average () 함수를 사용한다고 가정합니다. 모든 노드에 대해 동일한 작업을 수행합니다. 마지막으로, 우리는 이러한 계산의 평균을 신경망으로 입력했다.
다음 그림에서는 간단한 참조 네트워크의 예를 보여 줍니다. 각 노드는 한 편의 연구 논문을 대표하고, 변은 한 편의 인용문을 대표한다. 여기에 사전 처리 단계가 있습니다. 여기서는 원지를 특징으로 사용하지 않고 종이를 벡터로 변환합니다 (tf-idf 와 같은 NLP 포함 사용). NLP 포함 (예: TF-IDF).
녹색 노드를 고려해 봅시다. 먼저 우리 자신의 노드를 포함한 모든 이웃의 피쳐 값을 얻은 다음 평균을 구합니다. 마지막으로 신경망을 통해 결과 벡터를 최종 결과로 반환합니다.
GCN 의 주요 사상. 녹색 노드를 예로 들어 보겠습니다. 먼저, 우리는 우리 자신의 노드를 포함한 모든 이웃의 평균을 취한다. 그런 다음 평균은 신경망을 통과합니다. GCN 에서는 하나의 전체 연결 레이어만 사용합니다. 이 예에서는 2D 벡터를 출력으로 가져옵니다 (전체 연결 레이어의 두 노드).
실제로 평균 함수보다 더 복잡한 합산 함수를 사용할 수 있습니다. 더 깊은 GCN 을 얻기 위해 더 많은 레이어를 함께 쌓을 수도 있습니다. 각 레이어의 출력은 다음 레이어의 입력으로 간주됩니다.
2 층 GCN 의 예: 1 층의 출력은 2 층의 입력입니다. 마찬가지로 GCN 의 신경 네트워크는 완전히 연결된 레이어 (그림 [2]) 에 불과합니다.
수학적 관점에서 그것이 어떻게 작동하는지 진지하게 살펴봅시다.
우선, 우리는 필기가 필요하다.
다음 그림과 같이 그림 G 를 고려해 보겠습니다.
그림 G 에서 우리는 인접 행렬 A 와 도 행렬 D 를 가지고 있으며, 동시에 피쳐 행렬 X 도 있습니다.
그럼 어떻게 하면 인접한 노드로부터 각 노드의 고유치를 얻을 수 있을까요? 해결책은 A 와 X 를 곱하는 것입니다.
인접한 행렬의 첫 번째 행을 보면 노드 A 와 노드 E 사이에 연결이 있는 것을 볼 수 있습니다. 행렬의 첫 번째 행은 노드 E 와 A 가 연결된 피쳐 벡터입니다 (다음 그림 참조). 마찬가지로 결과 행렬의 두 번째 행은 D 와 E 의 피쳐 벡터의 합이며, 이 방법을 통해 모든 이웃 노드의 벡터 합계를 얻을 수 있습니다.
And vector matrix 의 첫 번째 줄 AX 를 계산합니다.
문제 (1) 에서 A 에 단위 행렬 I 를 추가하여 새로운 인접 행렬을 얻을 수 있습니까? 。
람다 =1(노드 자체의 특징을 이웃만큼 중요하게 만드는 것), 우리는? =A+I, 람바를 훈련 가능한 매개변수로 볼 수 있지만, 이제 람바를 1 으로 지정하기만 하면 됩니다. 논문에서도 람바다는 단순히 1 을 할당한다.
각 노드에 자체 루프를 추가하여 새로운 인접 행렬을 얻습니다.
문제의 경우 (2): 행렬 배율 조정의 경우 일반적으로 행렬에 대각선 행렬을 곱합니다. 현재 상황에서는 합산 피쳐의 평균을 취해야 합니까, 아니면 수학적으로 노드의 각도에 따라 합산 벡터 행렬을 비교해야 합니까? X 배율 조정. 직감은 여기에 배율 조정을 위한 대각선 행렬이 행렬 D 와 함께 있다는 것을 우리에게 알려준다. 관련 것들 (왜 d? , d 가 아니야? 왜냐하면 우리는 새로운 인접 행렬을 고려하고 있기 때문입니다. 도 행렬 d? 더 이상 하나가 아닙니다).
이제 문제는 우리가 어떻게 확대/축소/정규화 및 벡터가 되는가 하는 것입니다. 다른 말로 하자면:
이웃의 정보를 특정 노드에 어떻게 전달합니까? 먼저 옛 친구의 평균을 말하다. 이 경우 d? (즉, d 의 역행렬? {- 1}) 하면 됩니다. 기본적으로, d? 의 역행렬에 있는 각 요소는 대각선 행렬 D 에 있는 해당 항목의 역수입니다.
예를 들어 노드 A 의 도가 2 인 경우 노드 A 의 합산 벡터에 1/2 를 곱하고 노드 E 의 도가 5 인 경우 E 의 합산 벡터에 1/5 등을 곱해야 합니다.
그래서 d 를 통해? 역수와 X 를 곱하면 우리 자신의 노드를 포함한 모든 이웃 노드의 피쳐 벡터 평균을 얻을 수 있습니다.
지금까지 모든 것이 잘 되었다. 하지만 가중 평균 () 을 물어볼 수 있을까요? 직관적으로, 높낮이를 차별하는 노드가 더 좋을 것이다.
그러나 행별로 확대/축소하고 해당 열 (대시 상자) 은 무시합니다.
열에 새 교정기를 추가합니다.
새로운 확대/축소 방법은 우리에게 "가중치" 평균을 제공합니다. 여기서 하는 일은 하위 수준 노드에 더 많은 가중치를 부여하여 상위 수준 노드의 영향을 줄이는 것입니다. 이 가중 평균의 아이디어는 낮은 수준의 노드가 이웃 노드에 더 큰 영향을 미치고 높은 수준의 노드가 너무 많은 이웃 노드에 영향을 미치기 때문에 더 적은 영향을 미친다고 가정합니다.
노드 b 에서 인접한 노드의 특징을 수집할 때 노드 b 자체에 최대 가중치 (도 3) 를 할당하고 노드 e 에 최소 가중치 (도 5) 를 할당합니다 .....
우리는 두 번 정규화했기 때문에'-1' 을'-1/2' 로 바꿨다.
예를 들어 10 클래스의 다중 분류 문제가 있고 F 는 10 으로 설정되어 있습니다. 레이어 2 에 10 차원 벡터가 있는 경우 softmax 함수를 통해 이러한 벡터를 예측합니다.
손실 함수의 계산 방법은 간단합니다. 즉, 모든 태그 샘플의 교차 엔트로피 오차로 계산됩니다. 여기서 Y_{l} 은 태그 노드의 모음입니다.
도면층 수는 노드 피쳐가 전송할 수 있는 가장 먼 거리입니다. 예를 들어 1 레이어 GCN 에서 각 노드는 해당 이웃으로부터 정보를 얻을 수 있습니다. 각 노드가 정보를 수집하는 프로세스는 독립적이며 모든 노드가 동시에 완료됩니다.
1 층이 1 층 위에 겹쳐지면 정보 수집 과정을 반복하지만, 이번에는 이웃 노드에 이미 자신의 이웃 정보가 있습니다 (이전 단계에서). 이렇게 하면 레이어 수가 노드당 수행할 수 있는 최대 점프가 됩니다. 따라서 노드가 네트워크에서 정보를 얻어야 한다고 생각하는 정도에 따라 #layers 에 적합한 수를 설정할 수 있습니다. 하지만 마찬가지로, 사진에서, 우리는 보통 너무 멀리 가고 싶지 않다. 6-7 점프로 설정하면 거의 전체 그림을 얻을 수 있지만 이로 인해 집계가 무의미하게 됩니다.
예: 대상 노드 I 에 대한 2 계층 정보 수집 절차
이 기사는 또한 얕은 층과 깊은 GCN 을 각각 실험했습니다. 다음 그림에서는 레이어 2 또는 레이어 3 모델을 사용하여 최상의 결과를 얻을 수 있음을 알 수 있습니다. 또한 딥 GCN (7 층 이상) 의 경우 일반적으로 성능이 떨어집니다 (파란색 점선). 한 가지 해결책은 숨겨진 레이어 사이의 나머지 연결 (보라색 선) 을 사용하는 것입니다.
# 다른 계층의 성능 #. 사진은 신문 [3]
논문 작가의 설명
이 프레임워크는 현재 무향 그래프 (가중치 또는 가중치 없음) 로만 제한됩니다. 그러나 원본 방향 다이어그램을 비등방성 이분도로 표시하고 원본 그림에 모서리를 나타내는 노드를 추가하여 방향 모서리 및 모서리 피쳐를 처리할 수 있습니다.
GCN 의 경우 노드 특성과 그래프 구조를 모두 활용할 수 있는 것 같습니다. 그런데 그림에 다른 유형의 가장자리가 있다면요? 우리는 모든 감정을 다르게 대해야 합니까? 이 경우 이웃 노드를 합산하는 방법은 무엇입니까? 요즘 어떤 선진적인 방법이 있습니까?
그래픽 주제에 관한 다음 문장 중에서 좀 더 복잡한 방법을 연구할 것이다.
다른 관계 (형제, 친구, ...) 를 어떻게 처리합니까?
[1]Jure Leskovec (스탠포드) 그래픽 표현 학습에 관한 멋진 슬라이드:
[5] StellarGraph 라이브러리 데모 사용: -node-classification.html
레이펑 자막팀은 AI 애호가로 구성된 번역팀으로, 5 명 이상의 자원봉사자들의 힘을 모아 해외의 최신 AI 정보를 공유하고 인공지능 기술 분야의 산업 변화와 기술 혁신을 교류한다.
팀 구성원으로는 빅데이터 전문가, 알고리즘 엔지니어, 이미지 처리 엔지니어, 제품 관리자, 제품 운영, IT 컨설턴트, 재학 교사 등이 있습니다. 자원봉사자들은 IBM, AVL, Adobe, 알리, 바이두 등 유명 기업과 북경대학교, 청화, 항구대, 중과원, 남카로라나 대학, 조논대 등 국내외 대학의 과학연구원에서 왔다.
만약 너도 나눔을 좋아하는 AI 애호가라면. Lei Feng 자막 그룹과 함께 새로운 지식을 배우고 성장을 공유하는 것을 환영합니다.