실제로 사람들은 추천 매트릭스의 결 측값으로 무엇을합니까? 계산의 요점은 무엇입니까? Simon의 블로그 게시물을 읽으면 필자가 비결 측 용어 만 사용하여 모델을 작성한다는 것입니다.
맞습니다. 저것과 당신의 모형의 요점입니다. 많은 사람들이 실제로 잊어 버리는 중요한 포인트입니다. 그들은 세계에서 신경 쓰지 않고 누락 된 데이터에 상수를 미리 할당한다고 가정 할 수 있으며 SVD에서 마술처럼 잘 작동 할 것이라고 생각합니다. 쓰레기, 쓰레기 : 그것은 진짜이며, 더 잘 보았습니다. 유용한 결과를 원한다면 정크 데이터를 모델에 공급하지 않는 것이 좋습니다.
대다수 희소 데이터 세트에서 "누락 된 값을 유추하는 것"이 아니라 SVD를 실행하여 SVD를 실행하는 것이 좋습니다 (SVD를 실행하기 전에 이미 대치 했습니까?). 모델이 마술이라고 생각하십니까? 대부분의 가비지 데이터를 극복하는 마술이나 기술은 없습니다. 데이터가 실제 데이터가 아닌 경우 데이터가 실제 데이터라는 모델에 거짓말을 할 수는 없지만 얇은 공기로 만든 평범한 쓰레기 일뿐입니다.
SVD는 다른 유용한 작업을 수행하므로 SVD가 최소한 가치가 없다고 말할 수는 없습니다. 계속해서 완전한 데이터 세트에서만 SVD를 사용하십시오. 아마도 개발 중 바이어스 오류 및 분산 오류에주의를 기울여 이미 머신 러닝 모델을 사용하여 누락 된 값을 지능적으로 전가했을 것입니다.
머신 러닝이 그 길입니다. 따라서 행렬 인수 분해 설계를 사용하여 값을 대치하는 방법을 여전히 알고 싶다면 머신 러닝을 사용하여 정확하게이를 수행하는 좋은 방법이 있으며, 중요 하게도 무의식적으로 학습하려고 모델 에 정크 데이터를 제공하지 않습니다 .
정확하게 이러한 기계 학습 매트릭스 인수 분해 모델은 모듈 5의 Stanford 온라인 코스 Mining Massive Data Sets의 강사가 제공합니다. 이들은 수학을 보여주고 모델을 설명합니다. 그들은 당신을 위해 그것을 코딩하지 않습니다.
기본 기계 학습을 이해하면 직접 코딩 할 수 있기 때문에 괜찮습니다. 손실 함수와 비용 함수가 무엇인지 아십니까? 정규화? 그라데이션 하강? 행렬 곱셈과 덧셈으로 괜찮습니까? 바이어스 오류 및 분산 오류? 그렇다면 당신은 좋습니다. 그렇지 않다면, Andrew Ng의 온라인 코스 Machine Learning at Coursera를 수강 하는 것이 좋습니다.이 코스 는 많은 좋은 출발지 중 하나입니다. 그런 다음 추천 코스 모델을 만들기위한 매트릭스 인수 분해 및 머신 러닝에 대해 정확하게 설명 하는 온라인 코스 Mining Massive Data Sets 를 살펴 보십시오.
말하자면, Simon Funk처럼 결측 데이터를 매우 잘 처리하는 자체 인수 분해 모델을 완벽하게 설계하고 코딩 할 수 있으며 처음부터 다시 수행 할 수는 있지만 다시는 그렇게 힘들지는 않습니다. 요즘에는 TensorFlow 또는 Microsoft CNTK와 같은 도구를 사용할 수 있기 때문에 많은 도움이됩니다. 손실 함수와 비용 함수를 정의하고, 옵티 마이저를 선택하고, 데이터 세트를 교육, 개발자로 분할하고, 실제로 사용 가능한 데이터 (레이블이있는 데이터)에서 테스트 한 후 실행 시키십시오. 심각하게 작동합니다. TF 디버깅과 그래프 작성 오류는 쉽지 않지만 결국에는 훌륭하게 작동 할 수 있으며 한 페이지 미만의 코드가 필요합니다.
특히, 가짜 데이터를 행렬 분해 기계 학습 모델에 공급하지 않는 한 가지 방법은 손실 및 비용 함수에서 누락 된 데이터의 행렬 요소 를 건너 뛰는 것 입니다.