오늘부터 일주일 간은 최종 프로젝트 직전, recsys의 최신 트렌드에 대해 배운다.
오늘 배운 내용은 그래프 기반 추천!
추천 시스템에서의 Graph Convolutional Network(GCN)은 사용자-아이템 간의 상호작용을 그래프 구조로 모델링하여 더 효과적인 추천을 수행하는 방법이다.
이미지 출처 : IA-GCN: Interactive Graph Convolutional Network for Recommendation
이분 그래프(bipartite graph)
사용자와 아이템을 노드로, 상호작용을 엣지로 표현해 사용자-아이템 간의 엣지만 존재한다.
edge(간선)에는 weight가 있을수도 없을수도 있다.
작동 방식
이웃 노드들의 정보를 집계해 각 노드의 임베딩을 업데이트 (message-passing)
여러 계층의 그래프 합성곱을 통해 고차원적인 상호작용 패턴을 학습
최종적으로 사용자-아이템 간의 선호도를 예측
NGCF와 LightGCN에 대한 설명은 TIL #531 참고.
이미지 출처 : 논문
그래프기반 CF의 발전된 모델로 사용자의 다양한 의도(intent)를 파악하여 더 정교한 추천을 제공하는 시스템이다.
Intent (의도) : 유저가 아이템을 선택하는 이유
ex) 선물용, 킬링타임, 장르선호, 배우선호, 클릭실수 등
Disentangled Representations
K개 intent에 대해 각각 그래프를 만들어
서로 다른 user representations을 생성
원본 그래프를 여러 개의 의도 채널로 분리하는데, 각 채널은 서로 다른 관점의 사용자-아이템 관계를 표현한다.
각 intent 채널에서 독립적으로 메시지를 전파해 이웃 노드의 정보를 수집해서 임베딩을 업데이트한다. 최종적으로는 모든 intent 채널의 정보를 종합해 최종 추천 점수를 계산한다.
학습과정에서 dCor(distance correlation) loss를 적용해서 각각의 intent가 서로 달라지도록 한다. 이걸 하지 않으면 intent 하나만 dominant 해지기 때문에 적용한다.
논문 상에선 intent의 수 k가 4일때 성능이 가장 좋았다.
장점
복잡한 유저의 선호도를 더 잘 표현할 수 있고 설명력이 높다.
같은 아이템이라도 다른 이유로 추천할 수 있다.
유저별로 중요한 intent가 다르게 학습되어 좀 더 개인화된 추천이 가능하다.
이미지 출처 : 논문
LightGCN 기반의 기존 지도학습에 자기 지도 학습을 추가한 모델
등장 배경
추천 data는 log 기반이므로 sparse하며, 충분하지 못하다.
특히 GCN은 메시지 전달로 훈련되기 때문에 history(소비 이력)이 적으면 성능이 떨어진다.
그리고 misclick같은 noise에 매우 취약하다.
Data Augmentation
각 노드에대한 여러 view를 생성해 부족한 데이터 보충
Node Dropout(ND, 일정 확률로 노드 제거), Edge Dropout(ED, 일정 확률로 간선 제거), Random Walk(RW, 매 레이어마다 다르게 ED)
Contrastive Learning : 대조학습.
동일한 노드에서 파생된 다른 뷰 간의 일치(alignment)를 최대화하여 다른 노드와 비교
같은 노드의 다른 view는 pos, 다른노드의 view는 neg하게 optimize
학습과정
증강된 두 개의 그래프 뷰를 생성
동일한 노드에서 나온 두 뷰의 표현 간 유사성을 최대화
다른 노드에서 나온 표현들과의 차이는 최대화
데이터 희소성 문제를 해결하고, longtail 아이템에서도 성능적으로 우수하며, noise에 robust한 모델이지만, 최근 연구에서는 그래프 증강 없이 단순한 노이즈 추가만으로 비슷한 성능이 나온다는 것이 밝혀져 효율적인 모델 구조가 나오고 있다.
하이퍼그래프와 대조 학습을 결합한 새로운 자기 지도 학습 기반의 추천 시스템 모델
over-smoothing 문제
기존 그래프 기반모델에서 나타나는 문제로 layer가 깊어질수록 item과 user representation 구분이 어려워 성능이 저하된다. 층을 깊게 쌓으니 노드들이 다 연결되어 임베딩이 다 비슷비슷해짐. layer 4단만 넘어가도 성능저하.
Local Collaborative Relation Encoding
LightGCN과 거의 비슷. 다만 nonlinear activation으로 LeakyRelu 사용하고 self-connection만 사용. layer가 가까운(1~2, local) 부분에 적용
Hypergraph Floval Dependency Learning
Hypergraph는 한 edge에 여러 노드가 동시에 연결될 수 있는 그래프
파라미터화된 하이퍼그래프 구조를 통해 GNN 기반 협업 필터링의 식별 능력을 향상