본문으로 건너뛰기

파이썬 라이브러리 PyKEEN을 활용한 지식 그래프 임베딩 실습.

PyKEEN을 사용하여 지식 그래프 임베딩 모델을 학습하고 링크 예측 성능을 평가하는 실습 가이드이다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

PyKEEN은 지식 그래프 임베딩 모델의 학습과 평가 파이프라인을 표준화한 파이썬 라이브러리이다. 데이터셋, 모델, 손실 함수, 평가 지표를 독립적인 인자로 분리하여 공정한 비교와 재현성을 확보한다. TransE, DistMult, RotatE 등 다양한 모델을 지원하며, 링크 예측 태스크를 통해 모델 성능을 MR, MRR, Hits@K 지표로 정량화한다. 데모에서는 Nations 데이터셋을 활용해 모델 학습부터 임베딩 공간 시각화까지의 전 과정을 실습한다.

챕터별 상세

00:00

커리큘럼 및 개요

지식 그래프 임베딩 실습을 위한 전체 커리큘럼을 소개한다. 오리엔테이션부터 지식 그래프 구축, 임베딩 모델 학습, 링크 예측 평가까지의 과정을 다룬다. 본 실습은 PyKEEN 라이브러리를 활용하여 KG 임베딩 모델의 학습과 평가 파이프라인을 구축하는 데 중점을 둔다.
00:27

PyKEEN 라이브러리 소개

PyKEEN은 지식 그래프 임베딩 모델의 학습과 평가를 위한 파이썬 라이브러리이다. 모델마다 상이한 구현 방식과 하이퍼파라미터 설정을 파이프라인으로 표준화하여 데이터셋, 모델, 손실 함수, 평가 지표를 독립적인 인자로 분리한다. 이를 통해 모델 간 공정한 비교와 재현성을 확보할 수 있다.
01:58

KG 임베딩 모델의 원리

모든 엔티티와 관계는 벡터로 표현된다. 학습의 목표는 참인 트리플(Positive Sample)과 거짓인 트리플(Negative Sample) 간의 점수 차이를 미리 정해둔 마진(Margin) 이상으로 벌리는 것이다. 지식 그래프에는 참인 트리플만 존재하므로, 헤드나 테일 엔티티를 무작위로 교체하여 거짓인 트리플을 생성하는 부정 샘플링(Negative Sampling) 과정을 수행한다.
05:36

주요 임베딩 모델 비교

TransE, DistMult, RotatE 세 가지 모델을 다룬다. TransE는 헤드와 관계 벡터의 합이 테일 벡터가 되도록 학습하며, DistMult는 관계를 헤드와 테일 벡터의 연관성 가중치로 본다. RotatE는 헤드 벡터를 관계만큼 회전시켜 테일 벡터를 생성한다. RotatE는 회전 연산을 통해 양방향 관계를 효과적으로 표현할 수 있다.
python
from pykeen.pipeline import pipeline
results = pipeline(
    dataset='Nations',
    model='TransE',
    loss='margin',
    negative_sampler='bernoulli',
    negative_sampler_kwargs=dict(num_negs_per_pos=64),
    training_loop='lcwa'
)

PyKEEN 파이프라인을 사용하여 지식 그래프 임베딩 모델을 학습하는 기본 설정 코드이다.

10:09

링크 예측 태스크와 평가 지표

링크 예측은 트리플의 한쪽 엔티티를 가린 후, 전체 후보군 중에서 정답 엔티티의 순위를 예측하는 태스크이다. 평가 지표로는 정답 순위의 산술 평균인 MR, 정답 순위 역수의 평균인 MRR, 정답이 상위 K개 안에 포함된 비율인 Hits@K를 사용한다. MRR은 상위권 순위의 차이를 민감하게 반영한다.
12:05

실습: 라이브러리 설치 및 데이터셋 탐색

PyKEEN과 scikit-learn, matplotlib을 설치하고 Nations 데이터셋을 로드한다. Nations 데이터셋은 14개 국가 간의 외교, 경제, 군사 관계를 담은 소규모 지식 그래프이다. 데이터셋의 엔티티 수, 관계 수, 학습/검증/테스트 트리플 개수를 확인한다.
python
from pykeen.predict import predict_target

# (head, relation, ?) 예측
predictions = predict_target(
    model=model,
    head='brazil',
    relation='intergovorgs',
    triples_factory=training
)

학습된 모델을 사용하여 특정 헤드와 관계에 대한 타겟 엔티티를 예측하는 코드이다.

14:53

실습: 모델 학습

TransE, DistMult, RotatE 모델을 파이프라인에 설정하고 학습을 수행한다. 각 모델은 동일한 데이터셋과 에폭(Epoch) 수를 사용하여 학습된다. 학습 과정에서 손실(Loss) 값이 감소하는 것을 확인하며, 학습이 완료되면 각 모델의 임베딩 크기를 출력한다.
15:58

실습: 링크 예측 평가

학습된 모델을 사용하여 테스트 데이터셋에 대한 링크 예측 성능을 평가한다. MR, MRR, Hits@K 지표를 계산하여 모델별 성능을 비교한다. Nations 데이터셋의 특성상 모델 간 성능 차이가 크지 않을 수 있음을 유의해야 한다.
17:46

실습: 링크 예측 질의

학습된 모델에 실제 질의를 던져 예측 결과를 확인한다. 예를 들어 '브라질이 어떤 국제기구에 가입했는가'와 같은 질의를 통해 모델이 예측한 상위 엔티티를 확인한다. 모델이 예측한 결과가 실제 데이터에 존재하는지 여부를 통해 모델의 추론 능력을 간접적으로 파악한다.
23:59

실습: 임베딩 공간 시각화

PCA를 사용하여 고차원의 임베딩 벡터를 2차원으로 축소하여 시각화한다. 엔티티 간의 유사도를 코사인 유사도로 계산하여 히트맵으로 표현한다. 시각화를 통해 모델이 학습한 임베딩 공간에서 유사한 엔티티들이 군집을 이루는지 확인한다.

용어 해설

지식 그래프(Knowledge Graph)
엔티티와 엔티티 간의 관계를 그래프 형태로 구조화한 데이터 모델이다. 본 영상에서는 1960년대 국가 간 외교 상황을 엔티티와 관계로 표현한 데이터셋을 예시로 사용한다.
지식 그래프 임베딩(KG Embedding)
지식 그래프의 엔티티와 관계를 저차원의 벡터 공간으로 매핑하는 기술이다. 벡터 연산을 통해 엔티티 간의 관계를 추론하거나 링크를 예측할 수 있다.
부정 샘플링(Negative Sampling)
지식 그래프에는 참인 트리플만 존재하므로, 거짓인 트리플을 인위적으로 생성하여 모델이 참과 거짓을 구분하도록 학습시키는 기법이다.

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 18.수집 2026. 08. 18.출처 타입 YOUTUBE

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.