이번에는 matrix factorization과 유사성 측정에 대해 알아보겠다.
Matrix factorization
먼저, Wikipedia에서의 Matrix factorization이다.
Non-negative matrix factorization
Non-negative matrix factorization (NMF or NNMF), also non-negative matrix approximation is a group of algorithms in multivariate analysis and linear algebra where a matrix V is factorized into (usually) two matrices W and H, with the property that all three matrices have no negative elements.
요약해서, W와 H의 두 matrix의 곱으로 V matrix를 분해하여 저장한다. 그렇게 되면 속성 간의 연결성을 파악할 수 있다는 것이다.
예를들어, 다음 matrix A가 있다.
이 matrix의 첫번째 열부터 A1, 마지막(네번째) 열을 A4라 하자. 이 중에서 A1과 A3를 기준으로 다음과 같은 특징을 뽑을 수 있다.
A1 = 1 * A1 + 0 * A3
A2 = 2 * A1 + 0 * A3
A3 = 0 * A1 + 1 * A3
A4 = 2 * A1 + 1 * A3
따라서 A1과 A3의 행렬곱으로 나누면 다음과 같이 나눌 수 있다.
이를 다시 곱하면 다시 Matrix A가 나오는 것을 검산도 가능하다. 이와 같이 특정한 행렬에서 속성을 추출하기 위해 사용되는 것이 matrix factorization이며, 이는 특정 사용자 간의, 혹은 특정 아이템 소비군들의 유사도를 분석하는데 큰 도움이 된다.
유사성 측정
유사성 측정에는 유클리드 거리, 코사인 유사도, 피어슨 상관계수를 활용한다.
유클리드 거리
유클리드 거리는 두 점 사이의 거리를 계산하기 위한 공식이다.
코사인 유사도
코사인 유사도는 내적공간의 두 벡터 간 각도의 코사인 값을 이용해 측정된 벡터 간의 유사한 정도를 의미한다. 벡터의 크기가 아니라 방향의 유사도를 판단하는데 주 목적이 있다.
피어슨 상관계수
피어슨 상관계수는 두 변수간의 관련성을 구하기 위해 보편적으로 사용된다
이를 이용해 matrix factorization을 이용한 특정 행에 대한 임의의 행렬A와 B의 곱을 구하고, 그에 대한 유사도를 측정한다.
Comments