본문 바로가기

IT 로그

파이썬 머신 러닝 완벽 가이드 - 추천 시스템 - 행렬 분해의 이해

728x90
반응형

행렬분해란 ?

> 다차원 매트릭스를 저차원 매트릭스로 분해하는 기법 

> 대표적으로 SVD(Singular Vector Decomposition), NMF(Non - Negative Factorization) 이 있음

 

M개의 사용자 행과 N개의 아이템 열을 가진 평점 행렬 R 

R = P*Q.T 

M은 총 사용자 수 

N은 총 아이템 수 

K는 잠재요인의 차원 수 

R은 M*N 차원의 사용자 - 아이템 평점 행렬

P는 사용자와 잠재 요인과의 관계 값을 가지는 M*K 차원의 사용자 - 잠재 요인 행렬

Q는 아이템과 잠재요인과의 관계 값을 가지는 N*K 차원의 아이템 - 잠재 요인 행렬 

Q.T는 Q 매트릭스의 행과 열 값을 교환한 전치 행렬 

 

R을 P와 Q 행렬로 분해하는 방법 ?

> 주로 SVD (Singular Value Decomposition) 방식을 이용

> SVD는 Nan 값이 없는 행렬에만 적용 가능 

> Nan 값이 있는 경우에는 확률적 경사 하강법(SGD:Stochastic Gradient Descent) 이나 ALS(Alternating Least Squares) 방식 이용 SVD 활용 

반응형