GNN에 관심이 생겨 공부중에 있다.
feature간의 상호작용을 보는데 이용하면 좋을 것 같다. 또한 bio나 medical 뿐 아니라 여러 분야에서도 쓰일수 있는 네트워크이다.
알파폴드에 대해서도 나중에 정리해봐야겠다.
지식 그래프란 item들의 relation 을 나타낸 그래프로
item을 포함한 entitiy와 relation v를 entity-relation-entity (head, relation, tail)로 표현할 수 있다.
예를들어 (설탕, 맛, 단 맛) 이런식으로 말이다.
논문에서는 M명의 유저, N개의 아이템으로 이루어진 메트릭스 Y를 예측하였다. 요소인 (u, v)는 상호작용이 존재하면 1, 아니면 0으로 채워져 있다.
모델 parameter와 매트릭스 Y, 지식 그래프 G를 사용해서 임의의 유저 u와 아이템 v의 상호작용을 binary classification 한다.
이 때 아이템 v와 연결되어 있는 entitie의 집합을 탐색하며 이 집합 entitie와 연결된 entities (...) 를 고려하며 추론을 진행한다.
직관적으로 위의 그림을 보면 알 수 있다.
각 entitie마다 연결되어 있는 entitie의 수가 다르기 때문에 sampling을 통해 K개의 이웃 entitie만을 이용한다. (a)는 깊이 h=2, K =2인 상황이다.
위에는 유저와 relation 간의 스코어 계산이다. Embedding 후 내적 등을 통해서 계산한다.
-임의의 유저 u와 아이템 v 간의 점수는 다음과 같이 나타낸다.
이 때 r은 v와 e사이의 relation 을 의미한다. 즉 유저가 어떠한 relation 에 대해 영향을 많이 받는지에 대한 정보가 포함되어 있다.
알고리즘인데, get-receptive field를 통해 깊이 h에 따른 이웃 entitiy들의 집합들을 생성한 후 각 entitie와 relation 을 이용해 score를 계산한다.
aggregation 은 논문에서 concat, sum , not agg를 이용하며 3가지 방식의 차이도 보여주고 있다.