2014-05-19 4 views
0

나는 MLlib를 사용하여 Spark에서 암시 적 데이터를위한 추천 시스템을 구축 중입니다. 나는 이미 구현 된 기능을 찾아서 사용자들에게 교육 도중 볼 수 없도록 권고하고 아무것도 찾지 못했습니다. 그러한 기능이 존재하는지 아는 사람이 있습니까? 그렇지 않으면 아무도 너무 효율적으로 구현하는 방법에 대한 조언을 가지고 있습니까?Spark MLlib 공동 필터링

답변

2

여기에는 기능이 없습니다. 실제로 MLlib에서 얻은 간단한 RDD 기반 모델을 기반으로 즉각적인 권장 사항을 만드는 것은 실제로 불가능합니다. 당신은 http://blog.cloudera.com/blog/2014/03/why-apache-spark-is-a-crossover-hit-for-data-scientists/에서,이 블로그 게시물에서 구현을 볼 수 있습니다

def recommend(questionID: Int, howMany: Int = 5): Array[(String, Double)] = { 
    // Build list of one question and all items and predict value for all of them 
    val predictions = model.predict(tagHashes.map(t => (questionID,t._1))) 
    // Get top howMany recommendations ordered by prediction value 
    val topN = predictions.top(howMany)(Ordering.by[Rating,Double](_.rating)) 
    // Translate back to tags from IDs 
    topN.map(r => (tagHashes.lookup(r.product)(0), r.rating)) 
} 

lookup 비록 매우 느린 있습니다. (< 10ms와 같이) 권장 사항을 신속하게 구현하려면 RDD를 핵심 표현으로 통합해야합니다.

그러나 일괄 처리 권장 사항 만 있으면 위와 같은 방법을 조인과 함께 효율적으로 만들 수 있습니다.

관련 문제