2014-02-06 4 views
0

mahout에서 항목 기반 권장 사항을 사용하려고합니다. 그것은 2.5M 사용자, 항목 상호 작용, 환경 설정 값없이 포함되어 있습니다. 약 100 개의 항목과 100,000 명의 사용자가 있습니다. 권장하는 데 약 10 초가 걸립니다. 반면에 동일한 데이터의 경우 사용자 기반 추천기를 사용할 때 1 초도 채 걸리지 않습니다. Mahout의 항목 기반 제안자의 성능 문제

ItemSimilarity sim = new TanimotoCoefficientSimilarity(dm); 
CandidateItemsStrategy cis = new SamplingCandidateItemsStrategy(10,10,10,dm.getNumUsers(),dm.getNumItems()); 
MostSimilarItemsCandidateItemsStrategy mis = new SamplingCandidateItemsStrategy(10,10,10,dm.getNumUsers(),dm.getNumItems()); 
Recommender ur = new GenericBooleanPrefItemBasedRecommender(dm,sim,cis,mis); 

나는 그가 SamplingCandidateItemsStrategy에 대한 위의 매개 변수를 사용하여 제안 @Sean의 대답 중 하나 읽었다. 그러나 나는 그것이 실제로 무엇을하는지 확신하지 못한다.

편집 : 2.5 M이 10 만 사용자가 및 항목의 총 개수가 많은 이유 중 100

답변

1

입니다 항목을 기반 추천인을 선택하는 주된 이유이며, 총 사용자 항목 협회입니다 : if the number of items is relatively low compared to the number of users, the performance advantage could be significant. 이것은 다른 방향으로도 진행됩니다. If the number of users is relatively low compared to the number of items, choosing user-based recommendation will result in performance advantage.

귀하의 질문에서 나는 실제로 데이터 세트의 항목 수와 사용자 수를 얻지 못했습니다. 일단 2.5M 및 100K를 언급하면? 사용자 기반 권장 사항이 더 빠르면이 방법을 선택해야합니다.

항목 항목 유사성이 더 고정적이거나 (크게 변경 될 것으로 예상되지 않는 경우) 제외하고 사전 실행을위한 더 나은 후보자입니다. 사전 계산을 수행하고 항목 사이에 미리 계산 된 유사점을 사용했습니다.

또한 선호도 값이 없으므로 항목 기반 유사성을 사용하려는 경우 항목의 일부 특성을 기반으로 유사한 항목 항목 유사성으로 유사성 기능을 강화할 수 있습니다. (이것은 단지 아이디어 일 뿐이다).