728x90
반응형

Matrix Factorization 4

추천시스템 18 - 경사하강법

추천시스템 본 포스팅은 Minnesota대학교의 Intro to Recommender Systems코세라 강좌를 정리한 내용입니다. https://www.coursera.org/learn/collaborative-filtering?specialization=recommender-systems SVD의 문제점 SVD는 좋은 테크닉이지만 아래와 같은 문제가 있다: SVD를 계산하는것은 매우 느리다. SVD는 채워지지 않은 데이터에 대해 어떠한 조치를 취해주어야 한다. 따라서 이러한 문제들을 해결하기 위해 경사하강법을 적용해보고자 한다. 접근법 경사하강법을 적용하고자 하는 인사이트는, SVD를 사용해 추천을 계산할때의 에러를 직시하는것이다. 선형대수적으로는 SVD를 구한 다음, k만큼의 값을 자르는것이, ra..

추천시스템 17 - 행렬 분해

추천시스템 본 포스팅은 Minnesota대학교의 Intro to Recommender Systems코세라 강좌를 정리한 내용입니다. https://www.coursera.org/learn/collaborative-filtering?specialization=recommender-systems 잠재 의미 분석 (Latent Semantic Analysis) 정보검색 분야에서도 비슷한 고민을 먼저 시작했다. 문서의 키워드벡터와 쿼리의 키워드벡터 들의 조합은 간단하지만 좋은 표현법은 아니다. - 의미를 내포하기가 힘들다 이것을 해결하기 위해 특이값분해 (Singular Value Decomposition, SVD)라는 테크닉을 사용한다. SVD는 행렬을 사용자-아이템 행렬에서 선호도 기반의 작은 행렬로 감소시..

PyTorch 5 - 딥러닝 기반 협업필터링

딥러닝 기반 협업필터링¶ 이번 포스팅에서는 신경망을 기반으로 한 협업필터링을 구현해본다. 신경망 기반 협업필터링은, 기존의 MF기반 협업필터링과는 조금 다르다. MF기반은 벡터끼리의 내적곱을 활용하지만, 신경망 기반은 비선형 활성함수(relu)를 사용하게 된다. In [43]: # 패키지 import from pathlib import Path import pandas as pd import numpy as np In [44]: data = pd.read_csv('./ml-latest-small/ratings.csv') data.head() Out[44]: userId movieId rating timestamp 0 1 1 4.0 964982703 1 1 3 4.0 964981247 2 1 6 4.0 9..

PyTorch 4 - 협업필터링

PyTorch를 활용한 협업필터링¶ 이번 포스팅에서는 행렬분해를 사용한 추천시스템 문제를 풀어보려 한다. 그리고 더 일반적인 산경망 모델을 사용해 해당문제를 풀어보겠다. MovieLens 데이터셋은 영화 추천에 자주 활용되는 유명한 데이터셋이다. 이 데이터셋에는 영화 추천 시스템 내의 별점 5점 만점의 평점데이터와 자유 텍스트 태깅 정보가 들어있다. 총 9125개의 영화에 대한 100004개의 평점과 1296개의 태그가 기록되어 있다. 영화 데이터는 https://grouplens.org/datasets/movielens/ 에서 내려받을 수 있다. In [3]: # wget을 사용해 데이터를 내려받는다 !wget http://files.grouplens.org/datasets/movielens/ml-la..

728x90
반응형