추천시스템을 위한 기본 수학

유병주·2023년 7월 5일
0

고유값과 고유 벡터

고유값과 고유벡터는 정방행렬에 대해서만 정의 될 수 있다.

A에 대해 Av = λv를 만족하는 0이 아닌 열벡터 v를 고유벡터, 상수 λ를 고유값이라 정의한다. λ는 '행렬 A의 고유값', v는 '행렬 A의 λ에 대한 고유벡터'이다.

고유값과 고유벡터가 가지는 기하학적 의미는 무엇일까?

행렬 A의 고유벡터는 방향은 보존되고, 스케일만 변화되는 방향 벡터를 나타내고, 고유값은 그 고유벡터의 변화되는 스케일 정도를 의미한다.

랭크(rank)

행렬의 랭크란?
행렬에서 선형적으로 독립적인 열 벡터의 최대 개수를 의미한다.
기하적으로, 단위벡터에 대한 선형변환이 가해졌을 때, 공간 차원의 수를 의미하기도 한다.
(base vector 기저 벡터의 개수를 의미하는 것이 아닐까?)

특이값 분해 SVD(Singular Value Decomposition)

특이값 분해는 임이의 m X n 차원의 행렬 A에 대하여 아래와 같이 행렬을 분해할 수 있다는 행렬 분해 방법를 의미한다.

여기서, U와 V는 직교 행렬이고, 시그마는 특이값이 포함된 대각행렬을 의미한다. SVD는 추천시스템에서 데이터의 차원을 줄이고, 노이즈를 제거하는 데도 사용되며, Latent Factor(잠재 변수, 요인)을 발견하는 데 사용 할수 있다.

Latent Factor

추천 시스템에서, Latent Factor model을 이용하여 사용자와 아이템을 잠재적인 차원들을 이용해 나타낼 수 있다는 관점에서 비롯된 모델이다.

위의 그림처럼, x축을 남성향과 여성향의 정도로 표현하고 y축을 웃기고 심각함의 정도로 표현할 수 있다면, 사용자와 아이템은 x,y축 값에 따라 매핑될 수 있음을 의미한다.

사용자와 아이템을 위 그림에서는 두 가지 차원으로 표현하였지만, 실제로는 사용자와 아이템을 모르는 차원에 표현하는 것을 의미하며, 차원이 무엇을 의미하는지 모르며, 개체를 표현하기 위한 차원은 여러 개 일 수 있다.

만약 latent factor model에서 사용자 mapping 지점과 아이템 mapping 지점이 가까울수록 유사하다고 판단할 수 있다.

profile
데이터분석&엔지니어링이 가능한 AI 서비스 개발자를 꿈꿉니다:)

0개의 댓글