4

필자는 협업 필터링을 위해 행렬 인수 분해를 사용하는 방법에 대해 읽었지만 새로운 사용자 또는 항목을 시스템에 추가하거나 사용자가 새 항목을 평가하는 것을 다루는 예제를 찾을 수없는 것 같습니다. 이 경우 항목 사용자 행렬과 인수 분해를 다시 계산해야합니다. 맞습니까? 이 기능은 많은 수의 사용자 및 항목에서 어떻게 잘 수행 될 수 있습니까? 주위에 방법이 있습니까? 협업 필터링을위한 매트릭스 인수 분해 - 새로운 사용자 및 항목?

감사합니다

+0

것이다 검색에서 당신을 도울 수있는 추가 용어의 몇 "온라인 협업 필터링"및 확률 적 그라디언트 디센트. 나는 다음을 사용하지 않았고 java이지만, 여러분의 필요를 해결할 수있는 프로젝트의 예로 https://github.com/MrChrisJohnson/CollabStream을 확인하고 싶을 수도 있습니다. –

+0

가능한 해결책은 다음을 참조하십시오. http://stackoverflow.com/questions/41537470/als-model-how-to-generate-full-u-vt-v –

답변

3

귀하의 질문은 두 부분이있다 : (A) 새로운 상호 작용을 처리하는 방법을 새로운 사용자와 아이템, (B), (예를 들어, 등급, 클릭 수 등)를 처리하는 방법을.

(A) (우리는 행렬 인수 분해 또는 뭔가 다른 사용 여부에 상관없이) 새로운 사용자 및 항목을 다루는 2 개 개의 다른 전략을 기본적으로 :

  1. 추정 사용자/사용자의 항목 기능 (인구 통계, 설문 조사) 또는 항목 (가격, 장르, 텍스트 설명, 카테고리) 속성
  2. 활발한 학습 : 시스템과 상호 작용하는 모든 사용자 또는 시스템의 새로운 사용자에게 특정 항목을 개별 사용자 환경과 정보의 균형을 유지하는 방식으로 보여주는 적극적 학습 시스템에 의한 이득.

두 가지 문제에 대한 학술 논문이 많이 있습니다.

(B) 이것은 실제로 문제가되지 않습니다. 행렬 인수 분해 모델에 대한 증분 업데이트에는 높은 계산 비용이 없습니다. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.165.8010&rep=rep1&type=pdf

MyMediaLite 라이브러리 : 예를 들어이 문서를 참조하십시오 (면책 조항 : 나는 주 저자) 여러 행렬 인수 분해 방법에 대한 증분 업데이트를 지원합니다 http://ismll.de/mymedialite

+0

증분 svd와 같은 인수 분해 알고리즘을 사용하면 "완료"사용자 x 항목 매트릭스와 새로운 고객이 시나리오에서 발생 1) 그들은 몇 가지 등급 또는 2) 그들은 전체 svd를 다시 실행하지 않고 어떻게 그들을 "점수"것이라고 등급이 없어? 시나리오 1에서 "완료"매트릭스에서 SVD (증분이 아닌 표준 svd가 아닌)를 수행 한 다음 유사성 측정을 사용하여 가장 가까운 사용자를 확인하고 완료된 매트릭스의 항목을 사용하여 권장 사항을 작성할 수 있습니다 ? –

+0

괜찮으 시다면이 분야의 전문가로 보입니다. 이진 데이터 (고객 구입 여부)에 증분 SVD (Simon Funk)를 사용할 수 있습니까? 아니면 다른 용도가 필요합니까? 감사! –