Machine Learning Tasks/Recommender Systems (5) 썸네일형 리스트형 RecSys - DeepFM RecSys - Factorization Machines (1) ResSys - Factorization Machines (2) RecSys - Field-aware Factorization Machines 유저가 추천된 아이템에 대하여 클릭할 확률을 예측하는 CTR (Click Through Rate) prediction은 온라인 광고, 유튜브 등의 모바일 어플리케이션에 유용하게 탑재되는 알고리즘으로 수많은 데이터가 존재하는 상황에서 플랫폼의 수익성 증대, 유저 관리 측면에서 매우 중요합니다. 지난 포스트에서 살펴본 FM (Factorization Machine)이나 FFM (Field-aware Factorization Machine)에서는 희박하고 (sparse) 고차원 (high-dimension.. RecSys - Field-aware Factorization Machines 지난 포스트 [Machine Learning/기타] - RecSys - Factorization Machines (1) [Machine Learning/기타] - ResSys - Factorization Machines (2) [Machine Learning/기타] - RecSys - Factorization Machines (3), Pytorch 구현 Factorization Machines (FM)은 sparse한 데이터 상황에서 각 feature 간의 상호관계를 모델링하기 위해 Equation 1과 같이 각 feature의 잠재벡터를 (임베딩 벡터) 학습하고 feature의 선형결합과 잠재벡터의 내적으로 타겟을 예측했습니다. CTR (Click Through Rate)을 예측하기 위한 Table 1.. RecSys - Factorization Machines (3), Pytorch 구현 RecSys - Factorization Machines (1) ResSys - Factorization Machines (2) 이번 포스트에서는 Factorization Machines (FM)을 Pytorch 프레임워크로 구현해보려 합니다. 먼저 추천 시스템에서 자주 쓰이는 벤치마크 데이터셋 MovieLens 20M을 다운받습니다. MovieLens 데이터셋은 다양한 종류가 있으며 여러 유저의 여러 영화에 대한 평가와 장르, 태그와 같은 메타 데이터가 csv 파일로 존재합니다. 그중 MovieLens 20M 데이터셋은 13만여명 유저의 3만여개의 영화에 대한 2백만개의 5-star 레이팅으로 구성되어 있습니다. (Figure 1, ratings.csv) Load datasets 먼저 Pytorch의 .. ResSys - Factorization Machines (2) RecSys - Factorization Machines (1) Comparison to SVM SVM의 결과 $\hat{y} (x)$는 kernel $K$와 Equation 1으로 연관된, feature 공간 $R^n$ 에서 고차원 공간 $F$로 향하는 매핑함수 $\phi$와 모델 파라미터 $w$와의 내적 $$로 표현할 수 있습니다. 따라서 $K$를 어떻게 설정하느냐에 따라 입력 $x\in R^n$을 어떤 공간으로 매핑해서 hyperplane을 구할지 정해지게 되는데요, Linear kernel 먼저 가장 간단한 선형 커널 $K_l (x, z) := 1 + $ 를 생각해볼 수 있습니다. 이는 $\phi (x) := (1, x_1, ..., x_n)$ 와 같고 $\hat{y} (x)=$를 이용하여 Equ.. RecSys - Factorization Machines (1) 유튜브, 넷플리스, 이커머스 등의 플랫폼을 사용하다보면 연관된 영상과 제품이 여러 사용자의 다양한 데이터와 머신러닝 알고리즘에 기반하여 추천됩니다. 내가 이 플랫폼을 처음 사용한다거나 이러한 제품, 영상을 본 적이 없는데도 어떻게 새로운 컨텐츠를 추천할 수 있을까요? 일반적으로 추천 시스템에 (recommender systems) 사용되는 데이터는 Figure 1의 형태처럼 표현할 수 있을겁니다. 행이 유저가 되고 열이 컨텐츠가 되어 특정 인덱스의 행열 값은 유저의 컨텐츠에 대한 rating (score)가 되겠죠. 여기서의 추천 문제는 Figure 1의 데이터에 기반하여 어떤 유저가 어떤 컨텐츠를 얼마나 좋아할까를 예측하는 것입니다. 이러한 류의 문제는 기존의 행렬분해법 (Matrix Factoriza.. 이전 1 다음