반응형
머신러닝에서 모델의 성능을 측정할 때, recall, precision, MAE, RMSE와 같은 평가 지표를 흔히 사용합니다. 추천 시스템에서도 이러한 지표들을 사용하기는 하지만 추천 작업에 조금 더 특화된 방법을 사용합니다. 본 포스팅에서는 유저의 구매 여부, 클릭 여부와 같은 implicit feedback을 활용한 추천 모델을 기반으로 이러한 평가 지표에 대해 알아보겠습니다. "Collaborative Filtering for Implicit Feedback Datasets" 논문을 바탕으로 movielens 데이터로 구현한 뒤, NDCG와 MAP 평가 지표를 통해 모델의 성능을 측정하겠습니다. 먼저 앞서 설명한 implicit data에 사용되는 두 지표에 대해 알아보겠습니다. NDCG (Nor..
Contents 1. 데이터 로딩 2. leave_one_out 3. Negative sampling 4. Dataset & Dataloader 5. 모델 구성 6.Hit ratio & NDCG 7. 모델 적용 이번 포스팅에서는 NCF (neural collaborative filtering) 코드를 직접 구현하고, 실제 Yelp 데이터 세트에 적용해 보겠습니다. 대부분 코드가 movielens 데이터로만 구현되어 있어서, 작성해 보았습니다. 구글 colab 환경에서 진행해서 직관적이고 이해하기 쉬울 것이라고 기대합니다. 보통 NCF 코드 포스팅들을 찾아보면, 기존의 github 레포지토리를 실행하는 코드가 많은데, 본 포스팅에서는 손쉽게 colab 환경에서도 적용할 수 있도록 작성했습니다. PyTorc..
Contents 1. 전통적 추천 시스템 1.1 협업 필터링 1.2 Matrix Factorization 2. 딥러닝 기반 추천 시스템 3. GNN 기반 추천 시스템 3.1 Why graph? 3.2 Graph Neural Network Techniques 3.3 유저-아이템 상호 관계 기반 모델 3.4 시퀀스 데이터를 활용한 모델 3.5 지식 그래프를 활용한 모델 3.6 이 외 모델 4. 마무리 기존 추천시스템에 관한 연구는 전통적인 협업 필터링(CF) 및 행렬 분해(MF) 기반 연구에서 NCF와 같은 딥러닝 기반 모델로 발전되어 왔다. 최근 연구 동향은 그래프 뉴럴 네트워크(Graph Neural Network, GNN) 기법을 활용하여 사용자의 선호도를 그래프 구조로 파악하는 것이 주류이다. 따라서..
이전에 포스팅 했던 NCF 논문의 모델을 PyTorch로 구현한 코드 리뷰이다. 구글 colab 환경에서 진행했으며 스탠다드 GPU를 사용하여 에포크 당 학습 시간은 2분이다. 코드는 guoyang9의 깃허브를 참고했다. 아래는 논문 리뷰 글과 코드 링크이다. 🐊 논문 링크: https://ysg2997.tistory.com/5 원 논문 코드 링크: https://github.com/hexiangnan/neural_collaborative_filtering 코드 링크: https://github.com/guoyang9/NCF The requirements are as follows: * python==3.6 * pandas==0.24.2 * numpy==1.16.2 * pytorch==1.0.1 * ge..