추천 시스템의 경우 SVD 뒤에 인간의 직감

Aug 20 2020

이것은 내 질문에 대한 대답이 아닙니다. 나는 선형 대수 관점에서 SVD를 이해하기가 매우 힘들었습니다. 그러나 어떤 경우에는 점을 연결하지 못했습니다. 그래서 저는 SVD의 모든 적용을보기 시작했습니다. 영화 추천 시스템, 구글 페이지 랭킹 시스템 등

이제 영화 추천 시스템의 경우, 제가 마음 속으로 가지고있는 것은 ...

SVD는 협업 필터링에 해당하는 기술입니다. 그리고 SVD가하는 일은 빅 데이터 행렬을 두 개의 작은 행렬로 분해하는 것입니다. 그리고 SVD에 대한 입력으로 불완전한 데이터 매트릭스를 제공합니다. 그리고 SVD는 우리에게 가능한 완전한 데이터 매트릭스를 제공합니다. 여기서 영화 추천 시스템의 경우 사용자의 등급을 예측하려고합니다. 불완전한 입력 데이터 매트릭스는 일부 사용자가 특정 영화에 등급을 부여하지 않았 음을 의미합니다. 따라서 SVD는 사용자의 평점을 예측하는 데 도움이됩니다. 나는 여전히 SVD가 큰 행렬을 작은 조각으로 분해하는 방법을 모릅니다. 나는 SVD가 더 작은 행렬의 차원을 결정하는 방법이 아닙니다.

누군가 내 이해를 판단 할 수 있다면 도움이 될 것입니다. 그리고 SVD를 처음부터 Netflix 추천 시스템에 적용하는 데 도움이 될 수있는 모든 리소스에 감사드립니다. 또한 Google 페이지 순위 시스템 또는 기타 응용 프로그램을 위해.

나는 인간의 직관 수준과 선형 대수 관점에서 더 많은 설명을 기대하고 있습니다. 이 알고리즘을 연구에 사용하는 데 관심이 있기 때문에 가능한 한 빨리 이해해야합니다. SVD가 핵심에서 어떻게 작동합니까?

답변

3 EricPerkerson Aug 20 2020 at 18:53

SVD를 행렬 완성 알고리즘과 혼동하고 있습니다. SVD는$(m \times n)$ 데이터 매트릭스 $M$ 그리고 그것을 $M = U \Sigma V^\text{T}$반면에 행렬 완성 알고리즘은 누락 된 항목이있는 행렬을 가져 와서 일부 기준에 따라 채 웁니다. 특히 SVD는 추천 시스템을위한 협업 필터링 기술 이 아니며 , 모든 행렬을 2 개가 아닌 3 개의 행렬로 분해하고 입력으로 누락 된 항목이있는 행렬을 받아 들일 수 없습니다.

정말로 원하는 것이 행렬 완성 알고리즘에 대한 직관이라면, 그 배후에있는 주요 가정은 주어진 $(m \times n)$ 매트릭스 $M$ 순위가 낮습니다. 즉 $\text{rank}(M) < \min(m, n)$. Netflix 문제의 경우 모든 Netflix 고객이 거의 동일한 방식으로 영화를 평가하는 여러 그룹 중 하나에 속한다고 가정합니다. 고려중인 영화가 5 개만 있고 고객이 6 명이라면 다음과 같은 등급 매트릭스가있을 수 있습니다.$$ \left[ \begin{matrix} 1 & 1 & 5 & 5 & 5 & 2\\ 2 & 2 & 1 & 1 & 1 & 1\\ 5 & 5 & 5 & 5 & 5 & 3\\ 5 & 5 & 4 & 4 & 4 & 4\\ 3 & 3 & 2 & 2 & 2 & 4 \end{matrix} \right] $$여기서 각 행은 영화에 해당하고 각 열은 고객에 해당합니다. 고객 1과 2는 5 개 영화 모두에 대해 동일한 등급을, 고객 3, 4 및 5는 5 개 영화 모두에 대해 동일한 등급을, 고객 6은 자신 만있는 그룹을 갖는 세 가지 그룹으로 나뉩니다. 이것은 매트릭스가$\text{rank}(M) = 3$, 선형으로 독립된 열이 세 개뿐이기 때문입니다. 이것이 각 고객이 5 편의 영화를 모두보고 평가 한 경우 제공 할 실제 등급이라면 매트릭스를 만들기 위해 항목을 삭제하면$$ \left[ \begin{matrix} 1 & 1 & 5 & 5 & 5 & 2\\ 2 & 2 & 1 & 1 & 1 & 1\\ 5 & 5 & 5 & * & 5 & 3\\ 5 & 5 & 4 & 4 & 4 & 4\\ 3 & 3 & 2 & 2 & 2 & 4 \end{matrix} \right] $$ 어디 $*$ 알 수 없거나 지워진 항목을 나타냅니다. $\text{rank}(M) = 3$ 누락 된 항목을 채우기에 충분한 정보입니다. 5가 아닌 경우 행렬의 순위는 3이 아닌 4가됩니다.

SVD가이 문제를 해결하는 것과 어떤 관련이 있는지 직관적으로 이해하려면 행렬의 항목이 $\Sigma$ (행렬의 특이 값이라고 함 $M$) 또한 순위에 대해 알려줍니다. $M$. 구체적으로 말하자면$\text{rank}(M) = \text{(the number of non-zero singular values)}$. 매트릭스 완성 알고리즘은 실제로 더 복잡하지만 아이디어는 기본적으로 하나의 항목이 지워진이 간단한 예제와 동일합니다.

행렬 완성 알고리즘을 이해하는 데 필요한 것을 배우려면 상당한 양의 선형 대수를 배워야합니다. 교과서가 시작하기에 가장 좋은 곳일 수 있지만 다음 주제에 대해 순서대로 학습 해 볼 수 있습니다.

  1. 행렬의 순위
  2. 행렬의 고유 값 분해 (SVD의 선구자)
  3. SVD
  4. 매트릭스 완성