Introduction
CF의 효율성과 보편성에도 불구하고, side information을 모델링 하기 힘들다.
SL(Supervised Learning) 모델들은 산업에서 널리 쓰고 performance도 좋지만, 각 interaction을 독립적인 data instance로 모델링하고, 관계를 고려하지 않는 결점이 있다.
위 그림에서,
u는 users, 진짜 사용자를 의미. ex) 넷플릿스 유저
i는 items, 사용자가 보는 아이템 정보. ex) 넷플릭스의 영화
e는 entities, 아이템과 연관성이 있는 어떤 무언가. ex) 베테랑 영화감독은 '류승완'이다, 배우는 '황정민'이다.
CKG는 knowledge graph와 user-item graph의 hybrid structure.
knowledge graph는 e-r의 그래프를 의미하고, user-item graph는 u-i의 그래프를 의미한다.
추천의 핵심 요소는 high-order relations를 exploit하는 것이다.
1) target user와 high-order relations을 갖는 노드들은 order size가 급격히 증가한다.
2) high-order relations는 예측에 필요한 weight를 업데이트 하는 데 균일하게 기여하는 것은 아니다.
CKG structure는 path-based, regularization-based methods로 나눠진다.
Path-based methods
- high-order 정보로 가는 path를 추출해 예측 모델에 넣는 것이다.
- 두 노드 간 수많은 path를 다루기 위해, 눈에 띄는 path를 선택하거나 정제된 meta-path 패턴을 따른다.
- 후자를 따를 경우 domail knowledge가 필요해 다소 노동 집약적일 수 있다.
Regularization-based methods
- 추천 모델을 학습할 때, regularize하기 위해 KG structure의 loss를 추가적으로 구현한다
- 그래서 같은 item 임베딩으로 추천 task와 KG completion을 함께 training 시킨다.
- implicit 방식으로 인코딩하기도 하고, explicit 모델이 부족해서 long-range connectivities나 high-order modeling을 설명하기 힘들다.
기존 솔루션의 한계를 보면,
효율적이고, explicit하고 end-toend 방식으로 KG의 high-order 정보를 exploit할 수 있는 모델을 구현하는 것이 정말정말 중요하다!!!
그래서 얘네들은 KG-based 추천시스템에서 explore된 적 없지만 뭔가 포텐이 보이는 GNN에서 영감을 얻었다.
그게 바로 KGAT!
KGAT
high-order relation을 해결하기 위해 두 가지 방법이 있다.
1) recursive embedding propagation
: 이웃 노드의 임베딩을 기반으로 노드의 임베딩을 업데이트 한다.
linear time 안에 위 과정을 recursively 수행한다.
2) attention-based aggregation
: propagation하는 동안 각 이웃하는 가중치를 학습시키기 위해 neural attention 매커니즘을 적용한다.
그런 cascaded propagations(?)의 attention 가중치는 high-order connectivity의 중요성을 드러낸다.
Task Fomulation
User-Item Bipartite Graph
Knowledge Graph
Collaborative Knowledge Graph
High-Order Connectivity
Methodology
1) Embedding Layer
Knowledge graph embedding은 entities와 relations를 벡터로 파라미터화 하기 위해 효율적인 방법이다.
CKG 중에서 널리 사용되는 TransR(entity space에서 head, tail의 relation을 표현하기 위해 relation space)을 적용,
만약 (h,r,t)가 그래프에 존재한다면, translation principle을 최대화하기 위해 entity와 relation의 임베딩을 각각 학습시킨다.
formulation g의 스코어가 낮을수록 해당 집합이 좋다고 판단된다.
2) Attentive Embedding Propagation Layers
2-1) Information Propagation
하나의 entity는 multiple triplets에 포함될 수 있다. (이 땐, 각 triplet를 연결)
head_entity(h)의 first-order connectivity structure를 특징짓기(???) 위해 아래 식처럼 h의 ego-network의 선형 결합을 계산한다.
ㅠ(h, r, t)는 edge에 propagation할 때 안좋은 요인들을 조절한다.
2-2) Knowledge-aware Attention
- nonlinear activation function으로 tanh를 선택,
- attention score는 relation r 공간에서 e_h, e_t 사이의 거리에 의존적이다.
- 더 가까운 entities에 더 많은 정보를 연산한다.
- 단순성을 위해 오직 inner product만!
- attention 모듈의 exploration을 더 많이 남긴다!
- h와 연결 된 모든 triplets에 coefficient를 일반화한다. -> softmax 함수 채택!!!
우리 모델은 그래프의 가까운 구조를 exploit할 뿐 아니라, 이웃 노드들도 중요하게 다룬다.
input으로 오직 노드만을 갖는 graph attentino network와 달리, 본 논문에서는 e_h와 e_t 사이의 관계(e_r)로 모델링한다.
2-3) Information Aggregation
entity e_h와 ego-network e_N_h를 모은다.
* e_h = f(e_h, e_N_h)
- GCN Aggregator: 두 entity 표현을 합하고 비선형 변환
- GraphSage Aggregator: 두 entity 표현을 연결(concatenate)하고 비선형 변환
- Bi-Interaction Aggregator: f_GCN + element-wise product(element끼리의 곱)
이 모델은 유사 entities로부터 더 많은 메시지를 전달해줘서 e_h와 e_N_h 사이의 유사도에 영향받기 쉽다.
임베딩 레이어의 중요한 포인트는 user, item, knowledge entity 간의 관계를 짓기 위해 first-order connectivity 정보를 exploit하는 데 있다.
2-3) High-order Propagation
은 이전 단계에서 넘어오는 entity t를 나타낸다. (l-1 번째에서 있었던 주변 노드들의 정보 기억)
즉, high-order 임베딩은 속성 기반으로 연결 된 노드들을 학습 과정에 끊어짐 없이 넣는다.
댓글