ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Yongggg's] Matrix Factorization의 이해
    Statistic & Machine Learning 2021. 1. 26. 17:04

    안녕하세요 Yonggg's Blog입니다! 오늘은 Matrix Factorization에 대해 알아보겠습니다.

    1. 목적 

    Matrix Factorization(MF)의 목적은 다음과 같다.

    [그림 1]과 같은 결측을 갖는 Matrix에 대하여 고유값 분해를 이용해 이를 해결한다.

     

    [그림 1] R Matrix 예시

    2. 개념

    [그림 1] 처럼 $ R $ Matrix를 단순히 $ n $명의 User, $ p $개의 items에 의해 rating된 행렬 $ R \in R^{n \times p} $라고 가정하자.

    $ R $ Matrix에 MF으로 행렬을 분해 하면, $ U \in R^{m \times k}, I \in R^{p \times n} $으로 분해가 가능하다.

    [그림 2] MF 도식화

    $ U $와 $ I $ Matrix로 변환하여 [그림 2]와 같이 나타낼 수 있고 아래의 (수식 1)과 같이 쓸 수 있다.

    $$ R \approx U \times I^{T} = \hat{R} \;\;\;\;\;\;\;\;\;\;\; (수식 1) $$

    $ U $와 $ I $의 dimension $ k $는 factorization의 새로운 차원으로 정의할 수있다. 따라서, $ R_{i,j} $는 $ u_{i}, p_{j} $의 내적으로 나타낼 수 있다 $ (u_{i}, p_{j} \in R^{k}) $ . 

     

    3. 원리

    '2. 개념'을 이용하여 다음의 Cost Function을 Minimization 하도록 한다.

    $$ J = ||R-U \times I^{T}||_{2} + \lambda (||U||_{2} + ||I||_{2}) \;\;\;\;\;\;\;\;\;\;\;\; (수식 2) $$

    (수식 2)에서 $ || R - U \times I^{T}||_{2} $ Term은 원래의 Matrix $ R $과 예측 Matrix $ U \times I^{T} $의 MSE를 나타낸다. $ \lambda ( ||U_{2} + ||I||_{2} ) $ Term은 예측한 Matrix가 over fitting을 하지 않도록 하는 규제항이다. (noise를 줌으로 써 over fitting을 막을 수 있음.)

     

    $ U $ 와 $ I $ Matrix가 Initialize 되고 Machine Learning 과정인 Gradient Descent 알고리즘을 이용해 최적화 할 수 있다.

    또, 이 cost function에서 $ k $ 와 $ \lambda $는 Cross validation 등으로 찾아야 할 Hyper Parameter이다. 

     

    4. 참고

    MF는 결측치가 존재하는 실제의 Matrix $ R $에서 Missing Value가 있을 수 있다. 이 때, 아래와 같은 Cost Function을 이용하여 문제를 해결할 수 있다.

    $$ J = \sum_{i,j} w_{ij} \cdot (R_{ij} - u_{i} \times i_{j}^{T})^{2} + \lambda (||U||_{2} + ||I||_{2}) \;\;\;\;\;\;\;\;\;\;\; (수식 3) $$

     

    $$ where w_{i,j} = \begin{cases} 1 & R_{i,j} \; is \; known \\ 0 & R_{i,j} \; is \; unknown \end{cases} $$

     

    (수식 3)을 계산하여 작성하면 다음과 같은 식을 유도할 수 있다.

     

    $$ \begin{matrix} u_{i} = (I^{T} \times w_{i} \times I + \lambda I)^{-1} \times I^{T} \times w_{i} \times r_{i} \\ i_{j} = (U^{T} \times w_{j} \times U + \lambda I )^{-1} \times U^{T} \times w_{j} \times r_{j} \end{matrix} $$

     

    5. 개인 생각

    MF에는 SVD의 개념이 들어간다고 생각한다. 하지만, 고유값과 고유벡터는 사용되지 않는다. 이 것은 결측이 많은 Matrix를 SVD하는 것이 제한적이기 때문에 단순 Matrix 두개를 추정함으로써 문제를 해결하고자 했다고 생각한다.

     

    지금까지 긴 글 읽어주셔서 감사합니다. Matrix Factorization에 개인적인 이해를 담았는데, 잘못된 사항이나 수정할 사항은 댓글로 남겨주시면 감사드리겠습니다.

Designed by Tistory.