SVD

HanJu Han·2024년 11월 30일

추천 시스템

목록 보기
19/49

SVD 분해 과정

먼저 중심화된 행렬 R'을 다시 보겠습니다:

        어벤져스  타이타닉  매트릭스  인셉션
Alice    0.75     1.75    -2.25    -0.25
Bob      2.0     -1.0      1.0     -2.0
Carol   -2.0      1.0     -1.0      2.0

이 행렬을 R' = U × Σ × V^T로 분해하는 과정을 설명하겠습니다.

  1. 각 행렬의 의미:
  • U (3×3): 사용자들의 잠재 특성 행렬
  • Σ (3×3): 특이값을 대각선상에 가진 행렬
  • V^T (3×4): 영화들의 잠재 특성 행렬의 전치행렬
  1. 계산 과정:

a) R'R'^T를 계산하여 U 구하기:

R'R'^T = 
[10.81  -3.25   -7.56]
[-3.25   10.0    -6.75]
[-7.56   -6.75   14.31]

이 행렬의 고유벡터가 U의 열이 됩니다.

b) R'^TR'를 계산하여 V 구하기:

R'^TR' =
[8.56   -2.13   3.44   -9.88]
[-2.13  7.06    -5.19   0.25]
[3.44   -5.19   9.25   -7.50]
[-9.88  0.25    -7.50  17.13]

이 행렬의 고유벡터가 V의 열이 됩니다.

c) 특이값(Σ) 구하기:

  • R'R'^T와 R'^TR'의 고유값들의 제곱근이 특이값이 됩니다
  • 크기 순으로 정렬됩니다

결과적으로 얻어진 분해:

U (사용자-잠재요인):

        요인1    요인2    요인3
Alice   -0.4     0.7     0.6    # Alice는 요인2와 요인3에 강한 양의 관계
Bob     -0.6    -0.7    -0.4    # Bob은 모든 요인에 음의 관계
Carol    0.7     0.2    -0.7    # Carol은 요인1에 강한 양의 관계

Σ (특이값):

4.2   0    0     # 가장 중요한 요인
0    2.1   0     # 두 번째로 중요한 요인
0    0    1.0    # 가장 덜 중요한 요인

V^T (영화-잠재요인):

        어벤져스  타이타닉  매트릭스  인셉션
요인1    -0.5     0.2      -0.3     0.6   # 첫 번째 잠재 요인에서 인셉션이 가장 큰 양의 값
요인2     0.3     0.7      -0.4    -0.2   # 두 번째 잠재 요인에서 타이타닉이 가장 큰 양의 값
요인3     0.4    -0.3       0.5     0.6   # 세 번째 잠재 요인에서 인셉션과 매트릭스가 큰 양의 값
  1. 해석:
  • U의 각 열은 사용자들의 잠재적 취향을 나타냅니다

    • 예: 요인1이 큰 사용자는 인셉션을 좋아하고 어벤져스를 덜 좋아함
  • Σ의 값들은 각 잠재 요인의 중요도를 나타냅니다

    • 4.2가 가장 큰 값으로, 첫 번째 요인이 가장 중요
  • V^T의 각 열은 영화들의 잠재적 특성을 나타냅니다

    • 예: 타이타닉은 두 번째 요인(0.7)이 강함

이렇게 분해된 행렬들을 통해:
1) 사용자들의 취향 패턴
2) 영화들의 특성 패턴
3) 각 패턴의 중요도
를 파악할 수 있습니다.

이는 마치 "취향 사전"을 만드는 것과 같습니다. 사용자와 영화 모두 이 "사전"의 용어(잠재 요인)로 표현되며, 각 용어의 중요도(특이값)가 정해집니다.


참고

먼저 R'은 우리가 가진 중심화된 평점 행렬:

        어벤져스  타이타닉  매트릭스  인셉션
Alice    0.75     1.75    -2.25    -0.25   # Alice의 평점들
Bob      2.0     -1.0      1.0     -2.0    # Bob의 평점들
Carol   -2.0      1.0     -1.0      2.0    # Carol의 평점들

그리고 R'^T는 이 행렬을 "눕힌" 것입니다. 행과 열을 바꾸는 거예요:

           Alice   Bob    Carol
어벤져스    0.75    2.0    -2.0
타이타닉    1.75   -1.0     1.0
매트릭스   -2.25    1.0    -1.0
인셉션     -0.25   -2.0     2.0

R'R'^T는 이 두 행렬을 곱하는 거예요. 행렬의 곱셈은 다음과 같이 합니다:
1. 첫 번째 행렬의 행과 두 번째 행렬의 열을 곱해서 더합니다.
2. 이걸 모든 행과 열의 조합에 대해 반복합니다.

예를 들어, Alice와 Alice의 값을 구해볼까요?

Alice의 평점: [0.75, 1.75, -2.25, -0.25]
× 
Alice의 평점(전치): [0.75, 1.75, -2.25, -0.25]
= (0.75 × 0.75) + (1.75 × 1.75) + (-2.25 × -2.25) + (-0.25 × -0.25)
= 0.5625 + 3.0625 + 5.0625 + 0.0625
= 10.81

이런 식으로 모든 조합을 계산하면:

           Alice    Bob     Carol
Alice      10.81   -3.25   -7.56
Bob        -3.25   10.0    -6.75
Carol      -7.56   -6.75   14.31

이 결과가 의미하는 건:

  • 대각선의 숫자들(10.81, 10.0, 14.31): 각 사용자의 평점 패턴의 '강도'
  • 다른 숫자들(-3.25, -7.56 등): 두 사용자의 평점 패턴이 얼마나 비슷한지
    • 음수면 반대 패턴
    • 양수면 비슷한 패턴
    • 절댓값이 클수록 관계가 강함

예를 들어:

  • Alice와 Carol은 -7.56으로 매우 다른 취향
  • Bob과 Carol도 -6.75로 꽤 다른 취향
  • Alice와 Bob은 -3.25로 약간 다른 취향

이렇게 R'R'^T는 사용자들 사이의 '취향 관계'를 보여주는 행렬이 됨


R'^T는 아까 봤던 "눕힌" 행렬:

           Alice   Bob    Carol
어벤져스    0.75    2.0    -2.0
타이타닉    1.75   -1.0     1.0
매트릭스   -2.25    1.0    -1.0
인셉션     -0.25   -2.0     2.0

그리고 R'은 원래 행렬:

        어벤져스  타이타닉  매트릭스  인셉션
Alice    0.75     1.75    -2.25    -0.25
Bob      2.0     -1.0      1.0     -2.0
Carol   -2.0      1.0     -1.0      2.0

이번엔 영화들 사이의 관계를 보는 것
예를 들어, 어벤져스와 어벤져스의 값을 구해볼까요?

어벤져스 평점: [0.75, 2.0, -2.0]
×
어벤져스 평점(전치): [0.75, 2.0, -2.0]
= (0.75 × 0.75) + (2.0 × 2.0) + (-2.0 × -2.0)
= 0.5625 + 4.0 + 4.0
= 8.56

어벤져스와 타이타닉의 관계는:

어벤져스 평점: [0.75, 2.0, -2.0]
×
타이타닉 평점: [1.75, -1.0, 1.0]
= (0.75 × 1.75) + (2.0 × -1.0) + (-2.0 × 1.0)
= 1.31 - 2.0 - 2.0
= -2.13

이런 식으로 모든 영화 쌍을 계산하면:

           어벤져스  타이타닉  매트릭스  인셉션
어벤져스    8.56    -2.13     3.44    -9.88
타이타닉   -2.13     7.06    -5.19     0.25
매트릭스    3.44    -5.19     9.25    -7.50
인셉션     -9.88     0.25    -7.50    17.13

이 결과가 의미하는 건:

  • 대각선 숫자들(8.56, 7.06, 9.25, 17.13): 각 영화의 평점 패턴의 '강도'
  • 다른 숫자들: 두 영화의 평점 패턴이 얼마나 비슷한지
    • 예: 어벤져스와 인셉션은 -9.88로 매우 다른 패턴
    • 매트릭스와 어벤져스는 3.44로 약간 비슷한 패턴
    • 타이타닉과 인셉션은 0.25로 거의 관계가 없음

재미있는 발견:
1. 인셉션이 가장 큰 강도(17.13)를 보임 → 사람들이 가장 극단적인 평가를 내린 영화
2. 어벤져스와 매트릭스는 양의 관계(3.44) → 비슷한 취향의 사람들이 좋아함
3. 어벤져스와 인셉션은 강한 음의 관계(-9.88) → 한 영화를 좋아하는 사람은 다른 영화를 싫어하는 경향

이렇게 R'^TR'는 영화들 사이의 '평가 패턴 관계'를 보여주는 행렬

profile
시리즈를 기반으로 작성하였습니다.

0개의 댓글