2.Model-based CF with SVD

이의찬·2023년 10월 3일
1

Recommendation system

목록 보기
2/7

Laten Factor Model

-유저와 아이템을 잠재적 요인을 사용하여 표현할 수 있다고 보는 모델
-유저와 아이템을 같은 차원의 벡터로 표현하여 나타낸다.
-같은 차원의 벡터 공간에서 유저와 아이템 벡터가 놓일 경우 유저와 아이템의 유사한 정도를 확인할 수 있다.

Singular Value Decomposition

-차원 축소 기법 중 하나로 Eigen Decomposition의 한계를 극복한 방법이다.
-Eigen Decomposition은 square matrix에 적용 가능한 한계가 있지만 SVD는 n x m matrix에도 적용 가능한 행렬 분해 방법이다.

SVD: A = 𝑈Σ𝑉^T

A라는 n * m 행렬을 𝑈: AA^T의 eigen vector를 모아 놓은 Orthogonal matrix, Σ: 𝑈,𝑉^T의 공통 eigen value의 양의 제곱근, 𝑉^T: A^TA의 eigen vector를 모아 놓은 Orthogonal matrix로 행렬 분해한다는 의미이다.

추천 시스템 SVD

-𝑈: 유저의 Latent Factor
-𝑉: 아이템의 Latent Factor
-Σ: Latent Factor의 중요도를 나타냄

Truncated SVD

-대표값으로 사용될 k개의 특이값(Σ의 k개)만 사용함
-k는 모델의 하이퍼 파라미터
-k개의 laten factor의 정확한 특성은 알수 없음

SVD의 문제점

-분해하려는 행렬의 knowledge가 불완전할 떄 정의되지 않음 즉, sparsity가 높은 데이터의 경우 결측치가 매우 많다.
-따라서 결측된 entry를 모두 채우는 imputation을 통해 dense matrix를 만들어 SVD를 수행
(이 과정에서 Computation 비용이 높아짐)
-정확하지 않은 imputation은 데이터를 왜곡시키고 예측 성능을 떨어트림(과적합 문제)

Matrix Factorization

-SVD의 원리를 차용하되, MF를 학습하기 위한 근사적인 방법
-실제 Matrix Factorization의 구현은 user matrix, item matrix 2개로 이루어지고 SVD로 분해된 행렬의 Σ를 U나 V^T에 곱하여 흡수시키면 MF와 같다.
A = 𝑈Σ𝑉^T
= (𝑈Σ)𝑉 =𝑈'𝑉^T
= 𝑈(Σ𝑉^T) =𝑈𝑉'^T

𝑟̂ =∑𝑢𝑠𝑣 =∑(𝑢𝑠)𝑣 =∑𝑢′𝑣

=> SVD를 통해 분해된 행렬은 결국 user matrix와 item matrix의 곱이 됨

profile
Data Science

0개의 댓글

관련 채용 정보