문제
수작업 특징은 투명하지만 규모가 커질수록 설계 비용과 유지 비용이 커진다.
그래프는 점과 선으로 이루어졌지만, 학습기는 그 풍경을 그대로 읽지 못한다. 제11장은 복잡한 관계의 지형을 벡터의 좌표로 옮기고, 이웃의 말을 모아 노드의 뜻을 갱신하며, 마침내 GNN과 LLM이 한 시스템 안에서 서로의 부족함을 메우는 과정을 설명한다.
앞선 두 장은 사람이 그래프의 성질을 골라 특징으로 만드는 법을 다뤘다. 차수, 중심성, 경로와 같은 수치는 해석하기 좋지만, 실제 지식그래프가 수백만 노드와 관계로 커지면 설계와 계산의 비용이 급격히 늘어난다. 제11장은 이 병목을 표현학습으로 넘는다.
수작업 특징은 투명하지만 규모가 커질수록 설계 비용과 유지 비용이 커진다.
그래프 표현학습은 구조와 노드 속성에서 조밀한 벡터를 자동으로 학습한다.
GNN은 이웃의 정보를 반복적으로 집계·변환해 다운스트림 태스크에 필요한 특징을 발견한다.
그래프 표현학습의 역사는 복잡한 구조를 낮은 차원으로 옮기는 작업에서 시작해, 무작위 보행으로 관계의 문맥을 포착하고, 마침내 신경망이 구조와 속성을 함께 읽는 단계로 나아간다.
고전적 차원 축소의 관점에서 복잡한 그래프를 더 단순한 공간으로 옮기되 핵심 구조를 보존한다.
Node2Vec처럼 노드의 주변 문맥을 무작위 보행으로 수집해 의미 있는 관계 패턴을 벡터에 담는다.
이미지에서 특징을 자동 학습하듯, 그래프의 이웃 구조와 상호작용을 신경망이 직접 학습한다.
그래프를 도시의 길과 교차로 목록으로만 설명하면 관계를 계산하기 어렵다. 임베딩은 각 노드에 좌표를 부여한 지도와 같다. 인코더 함수는 노드와 주변 구조, 노드 특징을 다차원 벡터 공간으로 옮기며, 그 공간의 거리가 원래 그래프에서 중요한 관계를 반영하도록 최적화된다.
임베딩은 단지 벡터를 만드는 일이 아니다. 벡터가 놓일 기하 공간과, 그 벡터가 보존해야 할 구조를 먼저 정해야 한다.
좌표와 직선거리로 해석하기 쉽고, 대부분의 ML 모델이 기본적으로 가정한다. 좌표 차이에 따라 거리가 선형적으로 증가하며 공간의 성질이 위치에 따라 달라지지 않는다.
경계에 가까워질수록 거리와 가용 공간이 급격히 커진다. 조직도, 생물학적 분류체계, 인터넷 토폴로지처럼 가지가 지수적으로 늘어나는 계층 구조에 적합할 수 있다.
비유클리드 공간이 언제나 우월한 것은 아니다. 그래프가 계층적이라는 강한 근거가 있을 때 선택하고, 거리 계산·시각화·해석을 포함한 전체 파이프라인을 함께 바꿔야 한다.
| 구분 | 보존하려는 것 | 대표적 직관 | 잘 맞는 태스크 |
|---|---|---|---|
| 위치 임베딩 | 전역 위치, 커뮤니티 사이의 다리, 노드 간 거리 | 누가 도시의 중심에 있고 어느 길목을 잇는가 | 비지도 링크 예측, 클러스터링 |
| 구조 임베딩 | 국소 연결 패턴, 역할의 유사성 | 멀리 떨어져도 같은 형태의 골목을 관리하는 두 사람 | 지도 노드 분류, 그래프 분류 |
훈련 시 존재했던 고정 노드의 임베딩을 직접 최적화한다. 기존 노드 사이의 미지 라벨이나 미지 관계를 추론하는 데 강하지만, 새 노드가 들어오면 표현을 바로 만들 수 없다.
노드 특징과 구조를 임베딩으로 바꾸는 매핑 함수를 학습한다. 훈련 때 보지 못한 새 사용자나 새 상품에도 같은 규칙을 적용할 수 있어 동적 그래프에 적합하다.
라벨 없이 누가 누구와 연결되는지를 보며 자연스러운 구조와 군집을 발견한다. 그래프 구조 자체가 중요한 정보를 품고 있다는 가정에 기대는 방식이다.
직무, 질병 분류, 전문가 라벨처럼 추가 문맥을 사용해 특정 목표에 맞는 표현을 학습한다.
제11장의 판단 기준을 조합해 적합한 방향을 확인한다.
역할 유사성에는 구조 임베딩, 영향력과 다리 역할에는 위치 임베딩이 유용하다. 새 사용자가 계속 오므로 귀납적 능력이 중요하다.
생물학의 계층 구조는 쌍곡 임베딩과 맞을 수 있다. 새로운 발견을 계속 반영해야 하므로 귀납 학습이 필요하다.
상위 질병 범주에서 세부 질환으로 내려가는 계층성, 서로 다른 의학 분야의 유사 개념, 전문가 라벨을 함께 고려한다.
인코더–디코더는 행렬분해, 무작위 보행, GNN을 한눈에 비교하게 하는 통합 관점이다. 인코더는 그래프를 벡터로 압축하고, 디코더는 그 벡터로 원래의 중요한 성질을 복원한다.
노드 연결을 나타내는 인접 행렬과 각 노드의 속성 정보다. 단순한 조회표부터 구조와 특징을 함께 처리하는 신경망까지 다양한 구현이 가능하다.
노드가 실제로 연결되는지, 이웃이 얼마나 겹치는지, 노드 라벨이 무엇인지 등을 예측한다. 실제 그래프와의 차이가 인코더를 훈련하는 신호가 된다.
단순한 인코더는 빠르지만 복잡한 패턴을 덜 포착한다. 신경망 인코더는 풍부한 표현을 만들 수 있으나 더 많은 데이터와 계산이 필요하다. 인코더–디코더 틀은 이 교환관계를 비교하는 공통 언어가 된다.
가라테 클럽 네트워크는 강사 노드 0과 관리자 노드 33의 갈등 뒤 두 파벌로 나뉜 사례다. Node2Vec은 친구 관계 위를 여러 번 걸으며 함께 등장하는 노드의 문맥을 배우고, 벡터 유사도로 우정과 파벌을 복원한다.
0 → 1 → 2 → 3과 같은 보행을 만들며 넓은 탐색과 깊은 탐색의 균형을 조절한다.
보행 문맥에서 자주 가까이 등장하는 구성원은 유사한 벡터를 갖도록 학습된다.
소프트맥스 기반 디코더는 한 노드의 벡터가 주어졌을 때 다른 노드가 보행 주변에 나타날 가능성을 계산한다.
시작점을 고르고 보행을 실행해, 국소 관계가 문맥 시퀀스로 바뀌는 모습을 확인한다.
원서의 Listing 11.1은 NetworkX의 가라테 클럽 그래프, Node2Vec 학습, t-SNE 시각화, 유사도 계산, 파벌 예측을 한 흐름으로 묶는다.
실제 분열 뒤 같은 파벌에 속한 구성원은 벡터 공간에서도 가까워지는 경향을 보인다.
두 파벌에 모두 친구가 있는 구성원은 중간적 위치를 반영하는 벡터를 갖는다.
노드 0과 33은 모두 중심적이지만 반대 진영의 지도자라는 차이가 표현에 반영된다.
얕은 임베딩의 인코더는 복잡한 계산 없이 조회표에서 해당 노드의 행을 꺼낸다. 단순하기 때문에 개념을 이해하기 좋고 작은 정적 그래프의 기준선으로 유용하지만, 규모와 변화에 약하다.
인코더는 노드별 행을 반환하고, 디코더는 이 벡터들로 연결 여부나 이웃 유사성을 복원한다. 훈련 과정에서 자주 상호작용하는 노드는 가까운 벡터가 되도록 조정된다.
노드마다 별도 벡터가 필요해 노드 수에 비례해 매개변수가 늘어난다.
그래프 곳곳에서 반복되는 역할 패턴을 하나의 규칙으로 재사용하지 못한다.
나이, 관심사, 유형 같은 노드 속성을 자연스럽게 통합하지 못한다.
훈련 때 없던 새 노드의 벡터를 즉시 만들 수 없어 재학습이 필요하다.
그럼에도 얕은 임베딩은 역사적 출발점이자 강력한 기준선이다. 그래프가 작고 정적이며 자원이 제한된 경우에는 단순성이 오히려 장점이 된다.
단순 그래프에서는 두 노드가 이어졌는지만 보면 되지만, 지식그래프에서는 어떤 관계로 이어졌는지가 핵심이다. 약물·질병·유전자·단백질이 수십 종류의 관계로 연결되는 생의학 KG는 다중관계 임베딩을 요구한다.
이 표현을 학습하려면 두 장치가 필요하다. 첫째, 임베딩이 그래프를 얼마나 잘 표현하는지 평가하는 손실함수. 둘째, 관계 유형마다 다른 패턴을 처리하는 다중관계 디코더다.
모든 노드 쌍을 비교하는 방식은 대규모 그래프에서 계산 불가능하다. 백만 노드만 있어도 잠재적 쌍은 거의 일조 개에 이른다. 게다가 실제 그래프는 희소하여 존재하지 않는 관계가 압도적으로 많다. 제11장은 이를 음성 샘플링과 교차엔트로피 손실로 다룬다.
실제 관계의 점수를 높게 주도록 보상한다. 예: (Aspirin, TREATS, Headache).
샘플링한 거짓 관계의 점수를 낮추도록 벌점을 준다. 모든 비연결을 검사하지 않아도 된다.
음성 샘플의 중요도를 조절한다. 희소 KG에서는 거짓 관계 구별을 강조하기 위해 1보다 크게 둘 수 있다.
실무에서는 하나의 참 관계마다 대략 5–10개의 음성 예를 사용할 수 있다. 다만 어떤 음성을 고르는지가 학습 품질을 좌우한다.
같은 양성 트리플에서 샘플링 전략에 따라 난이도가 어떻게 달라지는지 본다.
이미 존재하는 관계를 거짓으로 뽑는 false negative가 생길 수 있고, ‘Aspirin treats Laptop’처럼 너무 쉬운 예는 세밀한 구별을 가르치지 못한다.
관계의 허용 타입 안에서 후보를 고르거나, 모델이 혼동하기 쉬운 어려운 음성을 생성한다. 주어와 목적어를 번갈아 교체하면 방향성 편향도 줄일 수 있다.
다중관계 디코더는 대칭·비대칭, 합성, 역관계 같은 패턴을 표현해야 한다. 디코더의 선택은 모델이 무엇을 배울 수 있는지를 직접 규정한다.
| 접근 | 핵심 표현 | 장점 | 제약 |
|---|---|---|---|
| TransE | zhead + r ≈ ztail | 직관적이며 합성 패턴에 강함 | 다대일 관계 표현이 어려움 |
| RESCAL | 관계별 변환 행렬 | 표현력이 높음 | 관계 수가 많으면 매개변수 폭증 |
| DistMult | 삼선형 의미 일치 | 효율적이고 단순함 | 비대칭 관계에 약함 |
| ComplEx | 복소수 기반 의미 일치 | 비대칭 관계를 우아하게 처리 | 합성 패턴은 TransE보다 덜 직접적일 수 있음 |
GNN의 메시지 패싱은 그래프 전체에서 벌어지는 정형화된 대화다. 한 라운드마다 노드는 이웃의 메시지를 모으고, 필요한 정보를 가공하고, 자신의 표현을 갱신한다. 라운드가 늘어날수록 정보는 한 홉씩 더 멀리 이동한다.
이웃 노드에서 메시지를 받는다.
합, 평균, 정규화, 주의집중 등으로 이웃 정보를 결합한다.
집계 결과와 기존 노드 상태를 합쳐 새 표현을 만든다.
슬라이더를 움직여 목표 노드 A가 몇 단계 떨어진 정보까지 품게 되는지 확인한다.
분자 그래프에서는 여러 라운드 뒤 원자 표현이 벤젠 고리 같은 구조 정보를 담을 수 있고, 인용망에서는 논문 표현이 관련 논문의 특징을 점차 흡수한다.
노드 자신의 이전 상태와 이웃 상태의 합을 서로 다른 학습 행렬로 변환한 뒤 비선형 활성화를 적용한다. 이웃 수가 노드마다 달라도 합 연산을 통해 가변 크기 입력을 처리한다.
AGGREGATE와 UPDATE를 하나로 합쳐 구현이 단순해지고, 매개변수 공유로 과적합 완화와 훈련 안정성을 기대할 수 있다.
자기 정보와 이웃 정보를 같은 방식으로 처리하므로 두 정보의 역할을 구분해 결합하는 유연성이 줄어든다.
기본 메시지 패싱은 강력한 골격이지만, 실제 그래프는 이웃 수가 제각각이고 관계의 중요도가 같지 않다. 깊은 층에서는 노드의 개성이 희미해질 수도 있다. 제11장은 정규화, 주의집중, 잔차 연결과 게이트로 이 문제를 보완한다.
이웃 수가 큰 노드의 메시지가 과도하게 커지지 않도록 스케일을 맞춘다.
현재 태스크에 더 중요한 이웃에 더 큰 학습 가중치를 부여한다.
skip connection, gate, jumping knowledge로 깊은 층에서도 고유 특징과 다중 스케일 정보를 유지한다.
평균 정규화는 이웃 수가 다른 노드들을 비슷한 스케일로 만든다. GCN의 대칭 정규화는 송신·수신 노드의 차수를 함께 고려해, 인용 수가 매우 큰 논문이 모든 메시지를 지배하는 현상을 줄인다. 다만 정규화는 차수 차이를 희석하므로 구조 정보가 핵심인 태스크에서는 손실이 될 수 있다.
세 이웃의 가중치를 바꾸면 목표 노드 표현에 미치는 비중이 달라진다.
멀티헤드 주의집중은 여러 독립 헤드가 병렬로 다른 관계 패턴을 본다. 분자 그래프라면 한 헤드는 결합 유형, 다른 헤드는 공간 배열에 집중할 수 있다. Transformer와 마찬가지로 Q·K·V 투영과 scaled dot-product attention을 사용할 수 있으며, 노드 차수 같은 구조 인코딩을 특징에 더해 그래프 토폴로지를 보충할 수 있다.
큰 이웃 집합을 병렬 처리할 수 있다.
각 헤드가 서로 다른 관계나 구조 패턴에 전문화된다.
주의 가중치로 어떤 이웃이 예측에 중요했는지 살필 수 있다.
GraphSAGE식 연결은 기존 노드 상태와 이웃 집계값을 이어 붙인다. 원래 특징을 보존하고 두 정보의 기여를 분리해 학습하며, 역전파 경로를 늘려 깊은 GNN의 훈련을 돕는다.
게이트가 기존 표현을 얼마나 유지하고 새 이웃 정보를 얼마나 받아들일지 노드별로 결정한다. 노이즈가 있거나 이웃의 관련성이 노드마다 다를 때 유용하다.
여러 층의 표현을 보관하고 적응적으로 결합한다. 노드마다 필요한 홉 수가 다를 때 국소·전역 구조를 함께 쓰고, 초기 층의 고유 특징이 사라지는 것을 막는다.
GNN은 그래프 구조와 이웃 토폴로지를 읽는 데 강하지만 풍부한 텍스트를 다루는 데 약하다. LLM은 긴 텍스트의 의미와 생성에 강하지만 복잡한 그래프 구조를 자연스럽게 처리하지 못한다. 제11장은 세 가지 결합 경로를 제시한다.
GNN이나 그래프 직렬화가 만든 구조 표현을 받아 최종 예측이나 자연어 응답을 생성한다. KG 질의응답처럼 구조 이해와 언어 생성이 동시에 필요한 태스크에 적합하다.
노드·엣지의 텍스트를 풍부한 특징 벡터로 바꾼 뒤 GNN이 관계 구조를 처리한다. 논문 초록을 LLM으로 인코딩하고 인용 GNN으로 미래 인용을 예측하는 식이다.
LLM과 GNN을 병렬로 두고 대조학습이나 상호학습으로 텍스트 표현과 구조 표현을 정렬한다. 멀티모달 KG처럼 두 관점을 분리해 유지하면서 결합할 때 유용하다.
성공적인 결합의 핵심은 최신 모델을 무작정 붙이는 데 있지 않다. 텍스트와 구조 가운데 무엇이 주된 정보인지, 최종 출력이 분류인지 생성인지, 두 표현을 어느 단계에서 합칠지를 태스크에 맞게 정해야 한다.
원서의 코드는 완성된 제품보다 개념을 움직여 보는 실험실에 가깝다. 각 목록이 장의 어느 생각을 구현하는지 정리한다.
가라테 클럽 그래프 적재, 16차원 Node2Vec 학습, 노드 유사도 계산, t-SNE 2차원 시각화, 두 파벌 예측을 수행한다.
특징을 헤드별 청크로 나누고 여러 attention head를 병렬 적용한 뒤 결과를 연결한다.
Q·K·V 선형 변환, scaled dot-product, softmax, 가중합으로 그래프 이웃 주의를 구현한다.
노드 차수를 학습 가능한 구조 임베딩으로 바꾸고 원래 특징에 더한 뒤 멀티헤드 주의를 적용한다.
노드 특징과 이웃 집계 특징을 연결하고 선형층과 ReLU로 갱신해 skip connection의 효과를 만든다.
sigmoid 게이트와 tanh 후보 상태를 사용해 기존 표현과 새 이웃 정보를 선택적으로 혼합한다.
여러 층의 노드 표현을 쌓고 LSTM으로 층별 정보를 결합해 다중 스케일 표현을 만든다.