KG: 기계학습에서 추천, 정보 추출, 질의 응답에서 활용
(Recommender system, information extraction, question answering, query relazation, query approximation, etc)
embedding: 대부분의 머신러닝은 벡터 형태의 입력을 필요로 하므로, 그래프 형태를 연속적이고 저차원의 dense vector로 embedding을 하는 작업이 필요
KG embedding: 각 entity(node)와 relation (edge label)을 고정된 차원 d 의 vector로 변환하여 이 벡터들을 이용해 그래프의 구조와 의미를 내재적으로 학습

Figure: Toy example of two-dimensional relation and entity embeddings learnt by TransE; the entity embeddings use abbreviations and include an example of vector addition to predict what is west of Antofagasta
TransE: 관계 벡터 r은 주어 s의 벡터에 더해져 목적어 O를 만든다고 가정 (e_s + r = e_o)
-단점: 같은 관계가 다양한 노드를 대상으로 할 떄 표현이 부정확해짐
순환 관계 (cyclis relation) 표현이 어려움
TransH: 관계마다 하이퍼플레인 도입
TransR: 관계마다 다른 임베딩 공간
RotatE: 복소수 공간에서 회전을 통한 임베딩
MuRP: 쌍곡공간(Pincare ball)을 이용한 더 정교한 표현
그래프를 3차원 텐서(G[i,j,k])로 표현 후 CP 분해(canonical polyadic)로 저차원 벡터 집합으로 근사)
DistMult: 단순한 곱셈 기반 스코어링, 대칭 관계만 표현 가능
RESCAL: 관계를 행렬로 표현하여 방향성을 고려
ComplEx: 복소수 벡터를 사용해 비대칭 관계까지 처리 가능
TuckER: Tucker 분해를 사용, 더 뛰어난 성능

Figure: illustration of a cp d rank decomposition of a tensor representing the graph
비선형적 scoring function을 학습하여 더 복잡한 관계도 모델링 가능
NTN(Neural Tensor Network): 복잡한 tensor-matrix 연산 포함, 파라미터 많음
MLP: 단순한 multi layer perceptron
ConvE: 2D 합성곱 사용 but 2D 구조 유지
HypER: 관계별 convolution filter를 새성하는 hypernetwork 이용, ConvE보다 효율적
Examples
링크 예측: 누락된 관계나 노드 예측
유사도 측정: 중복된 엔티티 탐색, 추천시스템
질의 완화: 모호하거나 불완전한 질의를 보완
그래프 보강: 외부에서 추출된 삼중항의 신뢰도 평가

자연어 처리에서 사용되는 대표적인 embedding 기법
그래프를 문장처럼 만들어 Word2Vec에 입력
randomwalk로 생성한 경로 (e.g san Pedro-bus -> Calarna - flight -> Snatiago)를 '문장'처럼 간주
Word2Vec에 입력하여 embedding 학습
GloVe방식을 그래프에 적용
각 노드에 대해 personalized pagerank로 근접 노드를 계산하고 이들을 Glove의 공동출현 행렬처럼 사용
TransE 임베딩 모델에 fuzzy logic 기반의 규칙 점수를 통합
e.g) Piedras Rojas-bus-> Moon Valley가 있으면 Piedras Rojas-connects to->Moon Valley 도 예측이 가능
점수 결합: p1*p2 - p1 + 1
soft rule (신뢰도 있는 규칙)과 임베딩 스코어를 통합해 공동 학습
간단한 규칙 (bus는 connects to 보다 항상 덜 타당)에 기반해 embedding 간 불평등 제약을 학습
-노드의 상태 벡터(state vector)를 이웃노드의 상태와 특성으로 반복적으로 갱신
-고정점(fixpoint)에 도달할 때까지 반복
전이함수(transition function): 이웃 노드 정보로 상태 갱신
출력함수(output function): 최종 상태로 예측 값 생성
ex) 관광객 방문수, 거리 등 수치로 표현된 도시정보 -> 정보센터 설치 위치 예측
고정된 레이어 수로 구성된 GNN
각 layer는 이웃노드의 정보를 집계(aggregation)
반복 종료 조건이 없고 매 layer마다 독립적 파라미터 사용
ConvGNN
CNN의 아이디어를 graph에 적용
각 노드의 이웃구조(지역 정보)를 convolution 방식으로 처리
ex) GCN(Kipf & Welling, 2017), GAT (Velickovic et al, 2018)
limitation: 이웃기반 집계만으로는 복잡한 그래프 구분이 어려움 --> 글로벌 벡터, attention, logic extanction 등 필요