AI VIDEO BRIEFING
PyKEEN 실습 정리: 지식 그래프 임베딩 TransE·DistMult·RotatE 링크 예측 비교
서울대 DSBA 연구실 온톨로지 스터디에서 진행한 PyKEEN 실습을 정리했다. 지식 그래프 임베딩 세 모델을 같은 조건에서 학습해 링크 예측 성능을 비교하고, 표현력이 높은 모델이 늘 성능도 좋지는 않은 이유를 짚는다.

핵심 메시지
쉽게 이해하기
서울대학교 산업공학과 DSBA 연구실의 온톨로지·지식 그래프 스터디 18회차는 PyKEEN 실습이었다. 발표자는 먼저 이 라이브러리가 왜 필요했는지부터 짚었다. 지식 그래프 임베딩 모델은 논문마다 구현 방식도, 하이퍼파라미터 설정도, 평가 지표도 제각각이어서 공정한 비교가 사실상 불가능했다는 것이다. 어떤 논문이 자기에게 유리한 조건으로 실험했더라도 이를 확인할 방법이 없었다. PyKEEN은 데이터셋을 나누고 학습해 평가하는 과정을 하나의 파이프라인으로 통일하고, 구성 요소를 전부 독립적인 인자로 분리해 하나씩 바꿔 가며 실험할 수 있게 만들었다. 발표에 따르면 현재 모델 40개, 데이터셋 37개, 순위 기반 지표와 분류 기반 지표 각 22개, 손실 함수 15개가 들어 있다.
학습의 뼈대는 세 모델이 공유한다. 모든 개체와 관계를 벡터로 표현하고, 그래프에 있는 트리플을 참 샘플로, 없는 트리플을 거짓 샘플로 삼아 둘 사이에 미리 정한 마진 이상의 점수 차이가 나도록 임베딩을 조정한다. 문제는 지식 그래프에 참인 사실만 들어 있다는 점이다. 그래서 헤드나 테일의 개체를 무작위로 갈아 끼워 거짓 샘플을 인위적으로 만드는 네거티브 샘플링이 필요하다. 참과 거짓의 점수 차이가 이미 마진보다 크면 손실이 0이 되어 업데이트가 일어나지 않고, 차이가 부족하면 그만큼 임베딩이 조정된다.
세 모델의 차이는 점수 함수를 어떻게 정의하느냐에 있다. 2013년 발표된 TransE는 헤드에 관계를 더하면 테일이 되어야 한다고 보는데, 양방향 관계를 표현하려면 관계 벡터가 0이 되어야 해서 사실상 관계가 사라지는 한계가 있다. 2015년 DistMult는 관계를 헤드와 테일 사이 연관성의 가중치로 보고 원소별 곱의 합을 점수로 쓰는데, 곱셈의 교환법칙 때문에 헤드와 테일을 구분하지 못하고 모든 관계를 양방향으로 취급한다. 2019년 RotatE는 더하기를 회전으로 바꿔, 양방향 관계는 180도 회전, 방향이 있는 관계는 임의의 각도로 표현한다. 앞선 두 모델의 제약이 모두 없어 이론적 표현력이 가장 크다.
실습 데이터셋은 PyKEEN에 내장된 Nations로, 1960년대 후반 국가 간 외교·경제·군사 관계를 담고 있다. 개체는 14개, 관계는 55개, 학습 트리플 1592개에 검증 199개, 테스트 201개 규모다. 세 모델 모두 100에폭, 시드 42, CPU라는 같은 조건으로 돌렸다. 학습된 임베딩은 TransE와 DistMult가 14×50, RotatE가 14×200으로 나오는데, 이는 RotatE가 더 큰 모델이어서가 아니라 복소수 임베딩의 실수부와 허수부를 펼쳐 보여주기 때문이다.
평가는 링크 예측으로 했다. 테스트 트리플의 한쪽 개체를 가리고 모델이 정답을 몇 번째 순위에 올리는지 보는 과제로, 헤드 방향과 테일 방향을 모두 평가해 402개의 순위를 얻는다. 이미 참으로 알려진 다른 트리플은 후보에서 빼는 필터링이 공정성의 조건이다. 지표는 정답 순위의 평균인 MR, 역수 평균인 MRR, 상위 K등 안에 든 비율인 Hits@K를 함께 봤다. 결과는 DistMult가 대부분의 지표에서 가장 좋았고, 표현력이 가장 크다던 RotatE가 그다음이었다. 발표자는 개체가 14개뿐이라 Hits@10 같은 지표는 아무렇게나 찍어도 점수가 잘 나오니 하나만 보지 말라고 당부했다.
주요 인사이트
- 표현력 순위와 실제 성능 순위는 일치하지 않는다. Nations처럼 대칭 관계가 많은 데이터에서는 대칭을 강제하는 DistMult의 약점이 오히려 강점이 됐고, 양방향 관계를 못 다루는 TransE가 가장 뒤처졌다.
- 정성 분석에서 TransE는 '브라질이 브라질과 국제기구에 함께 가입했다'는 식으로 자기 자신을 1순위로 올렸다. 정보량이 없는 답으로, 이 데이터셋에서 제대로 학습되지 않았다는 신호로 읽힌다.
- 모델마다 점수의 척도가 달라 서로 다른 모델의 점수를 확신도처럼 비교하면 안 된다. 점수는 같은 모델 안에서 상대적 순위를 정하는 데만 써야 한다.
- PCA 산점도에서 지리적·정치적으로 가까운 국가들이 뭉쳐 나타났지만 배치 모양은 모델마다 달랐다. 점수 함수가 다르면 만들어지는 의미 공간 자체가 달라진다는 뜻이다.
- 이 기법이 쓰이는 분야는 신약 후보 탐색, 약물 재창출, 부작용 예측, 추천 시스템, 이상거래 탐지처럼 겉보기엔 제각각이지만, 모두 관측되지 않은 링크를 순위로 제시하는 같은 문제다.
자주 묻는 질문
PyKEEN을 쓰는 가장 큰 이유는 무엇인가요?
공정한 비교와 재현성입니다. 모델마다 구현과 하이퍼파라미터, 평가 지표가 달라 논문 간 비교가 어려웠는데, PyKEEN은 데이터 분할부터 학습과 평가까지를 한 파이프라인으로 통일하고 구성 요소를 독립 인자로 분리해 조건을 통제한 실험을 가능하게 합니다.
링크 예측에서 MRR을 함께 보는 이유는 무엇인가요?
역수를 취하기 때문에 상위권의 차이가 크게 반영되기 때문입니다. 1위와 2위는 1.0과 0.5로 차이가 크지만 하위권에서는 차이가 미미해집니다. 정답을 상위로 올리는 것이 중요한 과제이므로 이런 성질이 유용합니다.
모델이 상위로 올린 '기존에 없던' 관계는 사실로 봐도 되나요?
아닙니다. 발표자는 학습 데이터에 없던 상위 후보라도 곧바로 사실이라 결론지을 수 없으며, 임베딩을 토대로 그럴듯하다고 판단한 후보일 뿐이라고 강조했습니다. 지식 그래프 구축이나 과학 분야 활용에서는 전문가 검토나 실험 검증 절차로 넘겨야 합니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗