Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Cosine-similarity
- 추천시스템
- pytorch
- 머신러닝
- 데이터 엔지니어링
- 데이터
- wordcloud
- selenium
- Python
- recommendation system
- 웹크롤링
- 협업 필터링
- 프로그래머스
- 웹스크래핑
- TF-IDF
- 시각화
- 코딩테스트
- 알고리즘
- 추천 시스템
- 백준
- 코테
- Tensor
- 딥러닝
- 파이썬
- codingtest
- Overfitting
- coursera
- SGD
- 분산 시스템
- 부스트캠프
Archives
- Today
- Total
개발자식
[Recsys] 추천시스템_NGCF 모델 본문
Neural Collaborative Filtering(NCF) 등장 배경
- Matrix Factorization은 latent factor간의 내적, 즉 선형 결합을 통해 유저-아이템 상호작용(Collaborative Signal)을 나타내기 때문에 복잡한 Signal을 알아내기 어렵다.
- 또한 새로운 유저가 등장하면 저차원 공간에 이를 표현하기 어렵다
→ Neural Collaborative Filtering 등장
Neural Graph Collaborative Filtering(NGCF) 등장 배경
- Neural Collaborative Filtering은 Neural Network를 사용하여 유저-아이템간 상호작용을 학습하는데 비선형적인 Collaborative Signal을 표현할 수 있다는 것이 MF와의 차이점이다.
- 그렇지만 NCF조차도 유저-아이템간 상호작용을 나타내기 부족하다고 새로운 모델을 제안했다.
→ Neural Graph Collaborative Filtering 등장
일반적인 CF 모델 구성
- 유저와 아이템을 벡터로 변환하는 임베딩 과정
- 상호작용 모델링
으로 구성되어 있다.
- 기존 CF 모델(MF, NCF)들은 임베딩에 유저-아이템의 상호작용을 반영하지 않았다.
→ 부정확한 추천의 원인이 될 수 있다.
→ 기존 CF 모델의 한계점을 극복하기 위해 NGCF 모델에서는 High-order Connectivity라는 새로운 특성을 모델에 반영하고자 했다.
NGCF의 Collaborative Signal
- 유저-아이템의 상호작용이 임베딩 단에서부터 학습될 수 있도록 접근
- 모든 상호작용을 표현하기엔 한계가 존재
→ GNN을 통해 High-order Connectivity를 임베딩 (경로가 1보다 큰 연결 의미)
- NGCF Model의 High-order connectivity
- u1←i2←u2: u1과 u2 간 유사성 존재 (두 사용자 모두 i_{2}와 상호작용을 했기 때문)
- u1←i2←u2←i4: u1은 i4를 사용할 가능성이 있음 (u1은 u2와 유사)
- u1은 i5보다 i4를 선호할 것: u2 뿐만 아니라, u1와 유사한 또 다른 유저 u3도 i4를 사용하기 때문
→ 이러한 아이디어를 NGCF 모델 구조에서 embedding propagation layer에서 실현
NGCF 구조
- 임베딩 레이어(Embedding layer) : 유저-아이템 초기 임베딩 제공
- 임베딩 전파 레이어(Embedding propagation layer) : high-order connectivity 학습
- 유저-아이템 선호도 예측 레이어(Prediction layer) : 서로 다른 전파 레이어에서 refine된 임베딩 concat
임베딩 레이어
- 임베딩을 GNN상에 전파시켜 ‘refine’한다.
- collaborative signal을 명시적으로 임베딩 레이어에서 주입하기 위한 과정이다.
임베딩 전파 레이어
- First-order propagation : 첫번째 Embedding Propagation Layer에서 발생하는 전파
- High-order propagation : 두번째 ~ l번째 Embedding Propagation Layer에서 발생하는 전파
임베딩 전파 레이어 - First-order propagation
- 유저-아이템의 collaborative signal을 담을 ‘message’를 구성하고 결합하는 단계
- message construction : 유저-아이템 간 affinity를 고려할 수 있도록 메시지 구성(weight sharing)
- message aggregation : u의 이웃 노드로부터 전파된 message들을 결합하면 1-hop 전파를 통한 임베딩 완료
임베딩 전파 레이어 - High-order propagation
- l개의 임베딩 전파 레이어를 쌓으면, 유저 노드는 l-차 이웃으로부터 전파된 메세지 이용 가능
- l단계에서 유저 u의 임베딩은 (l-1) 단계의 임베딩을 통해 재귀적으로 형성
선호도 예측 레이어
- L차까지의 임베딩 벡터를 concatenate하여 최종 임베딩 벡터를 계산한 후, 유저-아이템 벡터를 내적하여 최종 선호도 예측값을 계산한다.
NGCF 결과 및 요약
- 임베딩 전파 레이어가 많아질수록 모델의 추천 성능 향상
- 다만 레이어가 너무 많이 쌓이면 overfitting 발생
- L = 3~4 일 때 가장 좋은 성능을 보임
- MF와 비교하여 유저-아이템 임베딩 공간에서 더 명확하게 구분된다는 것을 알 수 있다.
'AI > Recommendation System' 카테고리의 다른 글
Comments