2012-10-12 2 views
3

쇼에 대한 정보를 사용하여 쇼 추천자를 만들려고합니다. 따라서 콘텐츠 기반이라고 생각합니다. 나는 사람들이보고있는 프로그램을 선택하고 그 프로그램의 내용에 따라 비슷한 프로그램을 추천 해주기를 바랍니다.Mahout 콘텐츠 기반 권장 사항

현재 내 데이터 파일 내가 장르에서 유사점을 찾을 내가 모르는 것은 나는이 나의 데이터로 DataModel로를 사용하는 방법은 내 자신의 ItemSimilarity을 쓴이

Code   Genre 
1260064148537,NOGENRE 
1260064149243,Drama 
1260064149741,Spoof 
1260064764631,Classical 
12600647412748,HipHopRnB&Dancehall 
126006483593,NOGENRE 
1260065049943,NOGENRE 
12600705429,Sketch 
1260070324431,News 
126007032486,Sport 
... 

처럼 보인다 Long과 String 그리고 추천인에게 보내는 방법. 내 자신의 DataModel을 작성해야합니까? 그렇다면 어떻게해야합니까?

답변

4

첫 번째 질문은 사용자에게 프로그램을 연결하는 다른 데이터가 있는지 여부입니다. 그렇지 않으면 추천 문제가 실제로 발생하지 않습니다. 이것은 비슷한 아이템 문제 일뿐입니다. 사용자가 지금보고있는 것과 유사한 것을 추천합니다.

물론 유사성을 정의해야합니다. 가지고있는 레이블이 모두 각 프로그램에 대한 단일 레이블 인 경우 동일한 레이블을 사용하는 경우 유사하다고 말하면 예외는 없습니다. ItemSimilarity을 사용하고 모든 항목을 반복 (아마도 이것을 미리 계산)하여 현재 항목과 가장 유사한 것을 계산할 수 있습니다.

물론 유사성이 레이블 공유 여부에 따라 0 또는 1이면 유사성 문제조차되지 않습니다. 단지 검색 일뿐입니다. 같은 카테고리에 속한 것을 찾으면 끝났습니다.

사용자 데이터를 마음에 가지고있을 때 추천 기능이 작동합니다. 이러한 종류의 데이터를 사용하여 ItemSimilarity을 만든 다음 사용자 항목 데이터 (보기 개수 등)를 사용하여 권장 사항을 만들 수 있습니다. 그러나 나는 또한 당신이 더 풍부한 라벨 데이터를 얻을 수 있는지 평가해야한다고 생각한다; 그렇다면 확실히 더 나은 유사성 메트릭을 만들 수 있습니다.

(이것은 위의 이유로 DataModel에 입력 한 것이 아니지만 문자열 식별자를 사용할 수 없으며 번호 여야한다는 점에 유의해야합니다. 추가 작업과 함께 문자열을 사용할 수도 있지만 그렇지 않습니다. 그만한 가치가 있습니다.)

+0

감사합니다. 현재 장르를 테스트로 사용하고 있지만 채널과 디렉터 등을 추가 할 예정입니다. 동일한 장르가 유사성에 0.5를 더한 것과 같은 유사성을 계산할 것입니다. 동일한 채널이 유사성에 0.3을 더하면 더 나은 추천을 할 수 있습니다. 내가 본 유일한 사용자 정보는 쇼를 시청 한 경우입니다. 따라서 시청 한 경우 1, 시청하지 않은 경우 0이됩니다. 저는 추천인이나 데이터 모델을 사용하지 않고 매우 조잡한 프로토 타입을 만들었지 만, 제가 작업하고있는 쇼의 막대한 양 (약 38,000 개)은 매우 느리고 메모리 집약적입니다. – user1740655

+1

@ user1740655 그런 경우에는 그래프 데이터베이스를 사용하여 물건을 추천하는 것이 좋습니다. – ulkas