CF
From Chaehyun
Collaborative Filtering
- input.txt
- (user_id, item_id)
- map reduce 1 - change input format
- user_id, Vector(item1, item2...)
- user_item_list.txt
- map reduce 2 - minhash clustering
- minhash_id \t user1, user2, user3 ...
- clustering.txt
- map reduce 3 - generate recommendation
- read clustering.txt and generate map in the memory
- user1 - list(minhash1, minhash2, minhash3 ...)
- user2 - list(minhash2, minhash3...)
- mapper
- read user_item_list.txt
- emit each purchase record to each minhash cluster which a user belongs to
- reducer
- collect all records and make recommendations
- output
- user \t item1, item2 ...
- read clustering.txt and generate map in the memory
- map reduce 4 - merge recommend list, sort items based on similarity, and print them
Contents Based Recommender
- 구매기록 기반 -> item minhash -> item - item similarity에 키워드로 추가
- contents 기반 -> item kmeans clustering -> clustering 내에서 구매기록 기반으로 item CF 수행한 뒤 추천
- contents & 구매기록 -> item의 document vector에 item의 minhash 추가 (weight 조절) -> cmeans 수행 -> 구매기록 or contents 기반 유사도를 통해 추천
- item별 키워드 추출 -> 내가 어떤 키워드를 구매했다. -> 사용자별 키워드를 통해 CF -> 키워드별로 질의하여 n개의 추천셋을 만듦
- TreeClusteringRecommender