-1

400 마디와 5M 사용자의 데이터 세트에서 아이템 - 아이템 유사성을 가진 Apache Mahout Item Based Recommender를 사용하고 있습니다. TanimotoCoefficientSimilarityGenricItemBasedRecommender을 사용하고 있습니다.Apache Mahout의 Recommender.recommend() 기능이 느린 이유는 무엇입니까?

그러나 recommender.recommend 함수를 호출 할 때 모든 사용자에 대해 5 개의 항목을 추천하는 데 약 1500 밀리 초가 소요됩니다. 나는 또한 유사성과 추천 모두에서 캐싱을 시도했지만 아무런 도움이되지 못했습니다. apache mahout 0.8에 성능 문제가 있습니까? 권장 사항을 생성하는 데 너무 오래 걸립니다.

최적화 방법을 제안하십시오.

감사합니다.

답변

0

CandidateItemsStrategyMostSimilarItemsCandidateItemsStrategy을 사용해보세요. 예컨대 :

CandidateItemsStrategy candidateStrategy = new SamplingCandidateItemsStrategy(...); 
MostSimilarItemsCandidateItemsStrategy mostSimilarStrategy = new SamplingCandidateItemsStrategy(...); 

Recommender recommender = new GenericItemRecommender(model, similarity, candidateStrategy, mostSimilarStrategy); 

당신은 후보 항목을 샘플링에 대한 매개 변수로 주위에 노는 시도 할 수 있습니다. 이는 UserBasedSimilarity에서 이웃 사용자를 사용하는 것과 유사합니다.

여전히 느린 경우 주기적으로 항목 간의 모든 유사성을 사전 계산하여 주 메모리에서 사용하는 것이 좋습니다. 충분한 주 메모리가없는 경우 미리 계산 된 유사성에 대한 데이터베이스 호출을 시도 할 수도 있습니다.