본문 바로가기
728x90
반응형

SVD4

Model based Collaborative Filtering 추천시스템에서 널리 알려진 collaborative filtering(CF)는 주변 사용자들의 정보를 활용하여 추천을 하는 방법이다. 이번 장에서는 CF 알고리즘의 memory based 기반의 방법이 아닌 model based 로 하여금 CF 를 진행하는 방법에 대하여 알아보고자 한다. 아래의 그림은 model based CF 알고리즘에 대한 방법론들을 도식화 해놓은 그림이다. model based CF 방법들은 크게 클러스터링을 기반으로하는 알고리즘, 행렬 분해를 사용한 알고리즘, 그리고 성능이 가장 뛰어난 딥러닝 알고리즘으로 나뉘게 된다. 여기서 Matrix factorization 을 기반으로한 추천시스템의 알고리즘에 대해 알아보도록 한다. 먼저 기존의 memory based CF 추천시스템의 경.. 2021. 2. 4.
Singular Decomposition(2) SVD가 실제로 어떤 application에 사용되는지 예제를 통해 살펴보자. 추천시스템 설계의 기본적인 알고리즘으로 사용된다. 아래의 예시는 user x movie 행렬을 $A$ (4x3) 이라 할 때, 각 컬럼이 특정 유저가 4개의 영화에 대해 선호도를 rating한 행렬이다. 먼저 SVD에서의 $U, V^{T}$의 singularvector들이 어떤 의미를 갖는지부터 살펴보자. 주어진 (4x3)행렬은 $\Phi : \mathbb{R}^{3} \rightarrow \mathbb{R}^{4}$ 와 같은 linearmapping을 표현한다고 볼 수 있다. 3dim을 user space라 보고, 4dim 을 movie space라 볼 수 있다. 아래의 그림은 SVD한 결과이다. 가장 우변인 $V^{T}$에.. 2020. 5. 30.
Singulardecomposition 이번 장에서는 특잇값분해 singulardecomposition을 알아본다. 앞서 고윳값분해에서는 square matrix에서만 정의될 수 있었고, 항상 존재하진 않았다. 또한 주어진 n x n 의 고윳값들이 linear independent해야 정의가 됐었다. 하지만 특잇값분해는 어떠한 형태의 matrix도 정의가능하고 항상 존재한다. SVD도 linear mapping과 연관지은 설명과, 직관적으로 어떤작용을 하는지 알아보자. $A = U \Sigma V^{T}$ 행렬곱으로 표현이 된다. matrix $\Sigma$의 $\sigma_{i}$ 값들을 singular value라고 한다. $\Sigma$ 행렬이 직사각행렬이기 때문에 $ii$를 벗어난 값들(off diagonal term)은 전부 0이다... 2020. 5. 30.
SVD 를 활용한 협업필터링 협업필터링은 메모리 기반과 모델 기반으로 나뉜다고 했다. 근데 여기서 모델기반 중 클러스터링 기법, 행렬 축소 기법, 딥러닝 기법이 있는데 이번 장에서는 행렬 축소 기법 중 하나인 SVD(특잇값 분해: Singular Vector Decomposition)에 대하여 간단히 알아보고, MovieLens데이터를 SVD를 활용하여 추천을 하는 코딩을 해보도록 하였다. https://drive.google.com/drive/folders/1EwDW7RMbJrKvvDdZCHWpFpQ2gbmpj1Y9?usp=sharing 위의 링크를 타면 사용중인 movielens 데이터를 txt형태로 받을 수 있따. 1. SVD란 SVD는 Latent Semantic Indexing의 부분으로써, 동의어나 다의어로부터 오는 문제.. 2020. 2. 22.
728x90
반응형