1

MLlib의 ALS 행렬 인수 분해를 사용하는 모든 사용자에 대해 상위 n 권장 사항을 생성하는 방법을 찾으려고했으나 실패했습니다. 아무도 그러한 방법이 존재한다고 말할 수 있습니까? 어떤 효율적인 방법은 크게 감상 할 수상위 N 권장 사항을 생성하는 MLlib 공동 필터링

Iterator<Rating> it = ratings.toLocalIterator(); 
     while (it.hasNext()) { 
      int user = it.next().user(); 
      if (!userList.contains(user)) { 
       Rating[] rat = model.recommendProducts(user, 10); 
       for (Rating r : rat) { 
        list.add(user + "," + r.product() + "," + r.rating()); 
       } 
       userList.add(user); 
      } 
     } 

:

답변

0

여기 매우 느린 것으로 보인다 내 현재의 접근 방식입니다.

0

위의 구조는 Spark ALS 사용에 대한 올바른 구조입니다. 그러나 당신은 작은 클러스터를 가지고 있다면 주어진 모든 사용자에게 추천 할 클러스터의 많은 것을 요구하고 있습니다.

먼저 다음 사항을 결정해야합니다. 그런 다음 # 사용자가이를 곱하십시오 - 너무 많이 묻는 것을 볼 수 있습니다.

클러스터 문제/차선 구성 설정 일 수도 있고 일반적으로 부족한 클러스터 대 요구 사항과의 비교가있을 수 있습니다.