01 Mahout 추천기
24 Aug 2017
|
Mahout
Recommender
1. Mahout Recommender
2. 추천 시스템 아키텍쳐
3. 추천 시스템 처리 과정
- 데이터 모델 생성
- 입력 데이터 규칙 : 사용자ID(정수, Long), 아이템ID(정수, Long), 선호수치(큰 값일수록 선호도가 높은 실수, 일반적으로 0~5사이의 값을 많이 사용, float)
- 선호수치 데이터가 없을 경우 Boolean Preference를 이용하여 분석 가능
- 유사도 모델 생성(유사도는 -1 ~ 1의 범위를 가지며 1과 가까울 수록 서로 유사하다는 의미)
- 유사도 모델 알고리즘 종류(더있음 대표적인것만)
- 피어슨 상관관계 알고리즘 : PearsonCorrelationSimilarity
- 유클리드 거리 알고리즘 : EuclideanDistanceSimilarity
- 스피어만 상관관계 알고리즘 : SpearmanCorrelationSimilarity
- 맨하튼 거리 알고리즘 : CityBlockSimilarity
- 사용자 기반 유사도 모델
- 사용자 기반 유사도 모델 생성
- param : DataModel, (가중치)
- return : UserSimilarity
- 유사한 이웃 그룹 생성
- 고정 크기 이웃 : NearestNUserNeighborhood
- param : 이웃의수, UserSimilarity, DataModel
- return : UserNeighborhood
- 임계치 기반 이웃 : ThresholdUserNeighborhood
- param : 임계치, UserSimilarity, DataModel
- return : UserNeighborhood
- 아이템 기반 유사도 모델
- User-based recommenders are the “original”, conventional style of recommender systems. They can produce good recommendations when tweaked properly; they are not necessarily the fastest recommender systems and are thus suitable for small data sets (roughly, less than ten million ratings). We’ll start with an example of this.
- 아이템 기반 유사도 모델은 상대적으로 시간에 따른 변동폭이 크지 않기 때문에, 주기적으로 미리 계산해 처리해 놓음
- 아이템 기반 유사도 모델 생성(GenericItemSimilarity)
- param : Collection
- return : ItemSimilarity
- 추천기 생성
- 사용자 기반 추천기 : GenericUserBasedRecommender
- param : DataModel, UserNeighborhood, UserSimilarity
- return : UserBasedRecommender
- 아이템 기반 추천기 : GenericItemBasedRecommender
- param : DataModel, ItemSimilarity
- return : ItemBasedRecommender
- 추천 결과 보기
- Recommender클래스에서 recommend메소드 사용
- param : userId, 추천받을 item 개수
- return : List
- 추천기 캐싱
- param : UserBasedRecommender, ItemBasedRecommender
- return : Recommender
Reference
- http://mahout.apache.org/users/recommender/recommender-documentation.html
- https://www.slideshare.net/pitzcarraldo/mahout-cook-book
Comments