오늘은 Knowledge Graph (KG) 관련 태스크 중 Entity Alignment (EA)에 대해 보다 자세히 알아보겠습니다. KG 개념에 익숙하지 않으시다면 지난 글을 읽고 오시면 도움이 됩니다.
지난 글에서 간단히 소개했듯, EA는 다른 두 개 (혹은 그 이상의) KG가 가진 엔티티들 중, 실세계에서 같은 객체를 가리키는 엔티티 쌍 (entity pair)을 찾아내고자 (identify) 하는 태스크입니다. 더 종합적이고 큰 하나의 KG를 만들기 위해 여러 KG를 통합시키고자 하는 시도가 많이 진행되고 있고, 그 일환에서 EA는 아주 중요한 태스크가 되겠습니다.
Task Definition
수식을 이용하여 formal 하게 EA 태스크를 정의해보겠습니다.
표기법 정의
- \(KG_1\)와 \(KG_2\)를 두 KG (지식 그래프)라고 가정합니다.
- 각 KG는 엔티티 집합 (\(E\)), 관계 집합(\(R\)), 그리고 트리플 집합 (\(T\))으로 구성됩니다. 여기서 트리플은 \((head, relation, tail)\) 의 형태를 가집니다.
- E.g., \(E_1,R_1,T_1\)은 \(KG_1\)의 엔티티, 관계, 트리플을 나타내며, \(E_2,R_2,T_2\)는 \(KG_2\)에 대응되는 것이죠.
EA 태스크 목적 정의
EA의 목적은 \(KG_1\)의 엔티티 \(e_1\in{E_1}\)과 \(KG_2\)의 엔티티 \(e_2\in{E_2}\) 사이의 대응 관계를 찾아 매핑하는 것인데요, 즉 두 KG 사이에서 실세계 (real-world) 객체를 나타내는 엔티티 쌍 (entity pair)을 식별해내야 합니다.
EA를 수행하는 함수 \(f(\cdot)\)가 있을 때, \(f(\cdot)\)는 \(E_1\)에서 \(E_2\)로의 매핑을 생성하고자 합니다. 즉, \(f(e_1)=e_2\)는 \(e_1\)과 \(e_2\)가 동일한 실세계 객체를 나타내는 경우이므로, \((e_1, e_2)\)가 EA가 찾아내고자 하는 entity pair 입니다.
일반적으로 유사도 (similarity)를 최대화하는 매핑 함수 \(f(\cdot)\)을 최적화하여 EA 태스크의 목적을 달성할 수 있는데요, 유사도의 계산은 text similarity, structural similarity, attribute similarity 등 다양한 방법을 활용할 수 있습니다. 즉, 유사도 측정은 모델을 어떻게 설계하냐에 달려있다고 생각해주시면 됩니다.
매핑 함수 (\(e_1\)과 \(e_2\) 사이의 유사도를 측정하는)의 최적화 문제는 다음과 같이 나타낼 수 있습니다.
\[\max_{f} \sum_{(e_1, e_2) \in E_1 \times E_2} \text{similarity}(e_1, f(e_1))\]
Benchmarks
EA 모델의 성능을 평가하고 비교하기 위한 데이터셋으로는 DBPedia, Yago, Freebase, Wikidata 등이 있습니다. 아래 Paperswithcode에서 발췌한 스크린샷을 보시면 벤치마크 데이터셋으로 다양한 데이터셋이 존재하는 것을 확인하실 수 있습니다.
여기에서 데이터셋 이름에 대해 간단히 알아보겠습니다. “FBDB15k” 로 예를 들자면, 해당 데이터셋은 Freebase (FB)와 DBpedia 사이의 엔티티 매핑 성능을 평가하기 위한 데이터셋으로, 15,000개의 entity pair을 포함하고 있습니다.
또 눈여겨 볼만한 것으로 “DBP15k zh-en” 데이터셋을 확인해 보겠습니다. 이는 EA 태스크를 위해 설계된 벤치마크로, DBPedia의 두 언어 버전, 즉 중국어 (zh) 버전과 영어 (en) 버전 사이의 엔티티 매핑을 평가하기 위한 데이터셋입니다 (15k는 15,000개의 entity pair을 포함함을 나타냄). 가령, “北京 (중국어)”과 “Beijing (영어)“ 사이의 매핑을 모델이 얼마나 잘 해내는지 평가할 수 있습니다. 이와 같이, FBDB15k와 같이 동일한 언어의 KG의 통합을 위한 데이터셋 뿐만 아니라 다른 언어로 구성된 KG를 통합하기 위한 cross-lingual EA 데이터셋 또한 중요한 벤치마크로 활용되고 있음을 알 수 있습니다.
Subtask: Multi-modal Entity Alignment (MMEA)
최근 몇 년간 거의 모든 딥러닝 연구 분야에 걸쳐 Multi-modality가 적극적으로 활용되고 있는 것 같습니다. Multi-modality의 KG분야에서의 사용도 활발하게 연구가 진행되고 있는데요, EA 문제를 해결하기 위한 접근 방식 중 하나이기도 합니다.
MMEA가 풀고자 하는 문제는 EA와 동일합니다. 실세계에서 동일한 객체 entity pair을 찾아내는 것인데, 기존의 EA와 다른 점은 KG에 multi-modality가 추가되었다는 것입니다. 가령, 기존 KG에 image informaton이 추가될 수 있습니다. 최근 연구들은 주로 multi-modality를 통해 entity representation을 더 정교화시켜, EA의 성능을 높이는 데 포커스를 맞추고 있는 것 같습니다.
물론, 기존의 KG도 완벽과는 멀기 때문에 아직까지는 MMEA를 논하는 연구보다는 MMKG Construction에 집중하는 연구도 많이 보입니다.
흥미로운 점은, 앞서 소개한 Paperswithcode의 Benchmark 스샷 이미지에서 여러 벤치마크 데이터셋에서 Best Model을 찍은 모델인 MEAformer가 바로 MMEA 모델이라는 점입니다. EA 태스크에서도 multi-modality를 잘 활용하면 SOTA 성능을 찍을 수 있음을 입증한 셈인데요. 해당 모델은 vision, graph (structure), relation, attribute와 같은 다양한 modality fusion을 통해 EA를 수행하였습니다. MMEA에서 modality fusion을 수행하는 method에 대한 소개는 따로 포스팅할 계획입니다.
함께 보면 좋은 자료
- Entity Alignment Papers (github repo): 읽으면 좋은 EA 논문들을 한데 정리한 깃헙 레포입니다. Conference paper 뿐만 아니라, survey 논문과 benchmark, 관련 tool까지 정리되어 있습니다.
마무리
이번 글에서는 EA 태스크의 수학적 정의와 벤치마크 데이터셋에 대해 다루어 보았습니다. 그리고 최근 연구 트렌드인 Multi-modality를 활용한 EA, 즉 MMEA에 대해서도 간단히 소개해 보았는데요, MMEA의 modality fusion method에 대한 글은 따로 작성할 계획입니다.
* * * Apple iPhone 15 Free: http://saraswathividyalaya.com/upload/go.php * * * hs=d913703027651268f05bb0affc5880bb*
95kwno