-
[주간학습 정리] Week 12Naver AI Tech 2024. 11. 7. 14:09
3줄 요약
추천 프로젝트를 했다
시간이 너무 부족했다
선택 과 집중!사용자의 책 평점 데이터를 바탕으로 사용자가 어떤 책을 더 선호할지 예측하는 프로젝트를 했다.
프로젝트 이외의 일로 인하여 실제 개발하는 시간이 매우 적었다(
3일 정도?)제한된 시간에 하고싶은것을 다 할수 없어서 선택과 집중을 하기로 했다.
내가 선택한것은 Graph가 적용된 추천 모델 중 하나인 NGCF(Neural Graph Collaborative Filtering)을 사용해보는 것이다.
논문을 읽고 이해하고 공부하고 코드를 짜고 할 시간은 없어서 최대한 빠르게 NGCF를 사용해보는것에 초점을 맞췄다.
아래는 NGCF에 대한 포인트 만 작성한 것으로 자세한것은 참고자료를 보고 추후 추가 공부를 하는게 좋을것 같다.
NGCF(Neural Graph Collaborative Filtering)
NGCF가 나오게된 배경
- Neural graph collaborative filtering
- Latent Factor Model 중 하나인 Matrix Factorization
- Matrix Factorization은 유저-아이템 상호작용에는 유저의 행동, 아이템 평점에 영향을 주는 잠재된 요인(latent factor)이 있을 텐데 그 잠재된 요인을 고려하여 유저에게 적합한 아이템을 추천하는 방법이다
- 문제점: Latent factors 간의 곱셉을 선형으로 결합하는 내적(inner product)은 유저-아이템 상호작용 데이터의 복잡한 구조를 알아내기 어렵다
- Latent Factor Model 중 하나인 Matrix Factorization
- Neural graph collaborative filtering
- Deep Neural Network를 사용하여 유저-아이템 상호작용을 학습
- 문제점: 기존 임베딩 방식은 유저-아이템간의 상호작용을 잘 나타내기에는 부족함이 있다
- Neural graph collaborative filtering
- 이러한 문제점들을 해결하고자 나온게 NGCF이다
논문에서 나오는 고차원 그래프 형태
- High order connectivity는 경로 길이가 1보다 큰 노드에서 u1에 도달하는 경로를 의미한다.
- 그래프로 알수있는 점
- 유저 u1과 유저 u2가 아이템 i2와 상호작용하는것을 알 수 있고 유저 u1과 유저 u2간 행동 유사성이 존재함을 알 수 있다
- 유저 u1과 유사한 유저 u2가 과거 아이템 i4를 소비했다. 이를 통해 유저 u1이 아이템 i4를 선택할 가능성을 알 수 있다
- 레이머 l3을 보면 유저 u1의 경우 아이템 i5 보다 아이템 i4를 더 선택할 확률이 높은것을 알 수 있다(이유: i4는 2개, i5는 1개)
NGCF model 아키텍쳐
- Embeddings Layer
- 일반적인 CF 모델 처럼 각각의 유저와 아이템에 대해 임베딩하는 레이어
- 전체 모델에서 유저와 아이템의 임베딩 값은 end-to-end 방식으로 학습된다
- Embedding Propagation Layer
- 그래프 구조를 따라 협업 시그널을 캡처하고 유저 및 아이템 임베딩을 개선하기 위해 GNN의 메시지 전달 아키텍처를 구축한다
- 협업 시그널: 유저(또는 아이템)간 행동의 유사성을 나타내기 위해 유저-아이템 상호작용에 잠재된 요인
- 유저가 아이템을 소비할때 아이템 정보가 유저에게 전달된다. 특정 유저가 아이템을 소비한 정보가 아이템 피처로 사용될수 있다. 이를 토대로 아이템 또는 유저의 유사성을 측정할 수 있게 된다
- Embedding Propagation Layer는 연결된 유저-아이템 간의 임베딩 전파를 수행하며 Message Construction과 Message Aggregation 두 가지 주요 작업으로 구성된다
- Message Construction
- 아이템(유저) 정보가 유저(아이템)에게 전달되는 메시지를 구성한다
- Message Aggregation
- 생성된 메시지들을 모아서 새로운 임베딩을 생성한다
- Message Construction
- 라플라스 메트릭스
- 모든 유저와 아이템에 대한 표현을 효율적으로 동시에 업데이트 할 수 있고, 노드 샘플링 절차를 생략 할 수 있다
- 그래프 구조를 따라 협업 시그널을 캡처하고 유저 및 아이템 임베딩을 개선하기 위해 GNN의 메시지 전달 아키텍처를 구축한다
- Prediction Layer
- 서로 다른 레이어에서 나온 표현은 각기 다른 메시지를 강조하기 때문에 유저 선호도 반영에 서로 다른 기여를 한다. 따라서 이들을 concatenate하여 유저(아이템)을 위한 최종 임베딩을 구성한다
- 내적을 사용하여 타겟 아이템에 대한 유저의 선호도를 예측할 수 있다
참고자료
- 논문: https://arxiv.org/abs/1905.08108
- https://ok-lab.tistory.com/265
- https://github.com/ceo21ckim/NGCF-PyTorch/blob/main/Neural_Graph_Collaborative_Filtering.ipynb
'Naver AI Tech' 카테고리의 다른 글
[주간학습 정리] Week 13 (2) 2024.11.15 [주간학습 정리] Week 11 (0) 2024.11.07 [주간학습 정리] Week10 (0) 2024.10.25 [주간학습 정리] Week 9 (1) 2024.10.18 [주간학습 정리] Week 8 (3) 2024.10.11 - Neural graph collaborative filtering