SlideShare une entreprise Scribd logo
1  sur  15
Collaborative Filtering
협업 필터링 추천 방식에 대한 정리
Collaborative Filtering
• 추천 알고리즘의 하나의 방법
– 각 항목별 유사도에 가중치를 두어 추천
– User-based : 사용자의 유사도를 비교
– Item-based : 아이템의 유사도를 비교
User-based
• 선호 이력이 유사한 다른 사용자의
선호 아이템 찾고
• 아직 구매하지 않은 아이템을 추천
Item-based
• 사용자가 좋아하는 아이템을 찾고
• 해당 아이템과 유사한 아이템을 추
천
유사도 알고리즘
• 유클리디안(Euclidean) 거리 점수 기반
• 코사인(Cosine) 기반
• 자카드 계수 (Jaccard) 기반
• 피어슨 상관계수
• 맨해튼 거리
유클리디안(Euclidean) 거리 점수 기반 유사도(1)
• 두 점 사이의 거리를 계산할 때 주로 사용하는 알고리즘
• 사람들이 공통으로 점수를 매긴 항목의 거리를 통해
유사도를 판단
• 거리가 짧을 수록 유사하다고 판단
※ 일반적으로 유사도가 높을 수록 1에 가깝고, 낮을 수록 0에 가깝도록
표현한다. 따라서 1/(1+d) 의 연산을 한다. (d=유클리디안 거리점수)
유클리디안(Euclidean) 거리 점수 기반 유사도(2)
Item1 Item2 Item3 Item4
User1 5 1 1 4
User2 4 1 2 3
User3 1 2 4 1
코사인(Cosine) 기반 유사도(1)
• 이것은 두 단위 벡터의 내적을 이용, 단위 벡
터간의 내각의 크기로 유사도 측정을 한다.
• 값은 0~1 사이로 가지게 된다.
• 결과 값이 1인 경우, 모든 단어의 가중치가 동
일한 항목, 완전 같은 문서
• 0은 두 항목에 일치 하는 것이 없다는 것을 뜻
한다.
코사인(Cosine) 기반 유사도(2)
User1 User2 User3
Item1 3 2 1
Item2 4 2 3
Item3 2 4 5
User1 User2 User3
Item1 0.8018 0.5345 0.2673
Item2 0.7428 0.3714 0.557
Item3 0.2981 0.5963 0.7454
코사인(Cosine) 기반 유사도(3)
User1 User2 User3
Item1 0.8018 0.5345 0.2673
Item2 0.7428 0.3714 0.557
Item3 0.2981 0.5963 0.7454
Item1 Item2 Item3
Item1 1 0.943 0.757
Item2 0.943 1 0.858
Item3 0.757 0.858 1
자카드 계수(Jaccard) 기반 유사도
(1)
• Boolean 속성으로 이루어진 두 개의 오브젝
트 A와B에 대하여
• A와 B가 교집합으로 1의 값을 가진 속성의 개
수를
• A와 B의 1의 합집합 개수로 나눈 값.
자카드 계수(Jaccard) 기반 유사도
(1)
User based 데이터 셋 (1 : 구매 )
사용자 1과 사용자 2의 Jaccard 유사도를 계산하는 경우
(분모) |A∪B| 즉 두 사람이 산 상품의 합집합의 개수는 3
(분자) |A∩B| 두 사람이 산 상품의 교집합의 개수는 2
jaccard 유사도 값은 ⅔= 0.67
모든 사용자간 계산된 유사도
Item1 Item2 Item3 Item4
User1 0 1 0 1
User2 0 1 1 1
User3 1 0 1 0
User1 User2 User3
User1 1.0 0.67 0
User2 0.67 1.0 0.25
User3 0 0.25 1.0
자카드 계수(Jaccard) 기반 유사도
(3)
User based 데이터 셋 과 유사도
사용자 선호도가 높은 항목에 가중치를 주기 위해
행렬곱
점수가 높은 항목 중 이미 구매 하지 않은 항목 추천
Item1 Item2 Item3 Item4
User1 0 1 0 1
User2 0 1 1 1
User3 1 0 1 0
User1 User2 User3
User1 1.0 0.67 0
User2 0.67 1.0 0.25
User3 0 0.25 1.0
Item1 Item2 Item3 Item4
User1 0 1.67 0.67 1.67
User2 0.25 1.67 1.25 1.67
User3 1.0 0.25 1.25 0.25
마치며…
• 항목 기반 필터링은 미리 항목의 유사함을 구해 놓고, 가
중치를 주어 추천
• 항목의 유사도가 상대적으로 변하지 않는다.
• 빠르다.
• 유사도 저장 공간이 추가로 필요.
• 사용자 기반 필터링은 가중치에 대한 추가 단계가 없어 구
현이 용이.
• 자주 변경되는 보다 작은 데이터 세트에 적당하다.
참고.
• http://readme.skplanet.com/?p=2509
• http://rosaec.snu.ac.kr/meet/file/20120728b.pdf
• http://algo.yonsei.ac.kr/domestic_JNL/PredictiveAlgorithm02Park.pdf
• http://dev.kthcorp.com/2013/01/23/deconstructing-recommender-systems/
• 집단지성 프로그래밍
• 실전예제로 살펴보는 집단지성 프로그래밍
• 머하웃 완벽 가이드

Contenu connexe

Tendances

인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템NAVER D2
 
Recommendation Systems: Applying Amazon's Collaborative Filtering Methods to ...
Recommendation Systems: Applying Amazon's Collaborative Filtering Methods to ...Recommendation Systems: Applying Amazon's Collaborative Filtering Methods to ...
Recommendation Systems: Applying Amazon's Collaborative Filtering Methods to ...Nguyen Cao
 
Recommender system introduction
Recommender system   introductionRecommender system   introduction
Recommender system introductionLiang Xiang
 
머피's 머신러닝, Mixture model and EM algorithm
머피's 머신러닝, Mixture model and EM algorithm머피's 머신러닝, Mixture model and EM algorithm
머피's 머신러닝, Mixture model and EM algorithmJungkyu Lee
 
boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)SANG WON PARK
 
Recommendation system
Recommendation systemRecommendation system
Recommendation systemAkshat Thakar
 
Recommendation system
Recommendation systemRecommendation system
Recommendation systemRishabh Mehta
 
Counterfactual Learning for Recommendation
Counterfactual Learning for RecommendationCounterfactual Learning for Recommendation
Counterfactual Learning for RecommendationOlivier Jeunen
 
Collaborative Filtering using KNN
Collaborative Filtering using KNNCollaborative Filtering using KNN
Collaborative Filtering using KNNŞeyda Hatipoğlu
 
Deep Learning in Recommender Systems - RecSys Summer School 2017
Deep Learning in Recommender Systems - RecSys Summer School 2017Deep Learning in Recommender Systems - RecSys Summer School 2017
Deep Learning in Recommender Systems - RecSys Summer School 2017Balázs Hidasi
 
[NDC 발표] 모바일 게임데이터분석 및 실전 활용
[NDC 발표] 모바일 게임데이터분석 및 실전 활용[NDC 발표] 모바일 게임데이터분석 및 실전 활용
[NDC 발표] 모바일 게임데이터분석 및 실전 활용Tapjoy X 5Rocks
 
Overview of recommender system
Overview of recommender systemOverview of recommender system
Overview of recommender systemStanley Wang
 
Deep Learning for Personalized Search and Recommender Systems
Deep Learning for Personalized Search and Recommender SystemsDeep Learning for Personalized Search and Recommender Systems
Deep Learning for Personalized Search and Recommender SystemsBenjamin Le
 
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017Taehoon Kim
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
 
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인Jae Young Park
 
머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)홍배 김
 
Pose Graph based SLAM
Pose Graph based SLAMPose Graph based SLAM
Pose Graph based SLAMEdwardIm1
 
Tag based recommender system
Tag based recommender systemTag based recommender system
Tag based recommender systemKaren Li
 

Tendances (20)

인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
 
Recommendation Systems: Applying Amazon's Collaborative Filtering Methods to ...
Recommendation Systems: Applying Amazon's Collaborative Filtering Methods to ...Recommendation Systems: Applying Amazon's Collaborative Filtering Methods to ...
Recommendation Systems: Applying Amazon's Collaborative Filtering Methods to ...
 
Recommender system introduction
Recommender system   introductionRecommender system   introduction
Recommender system introduction
 
머피's 머신러닝, Mixture model and EM algorithm
머피's 머신러닝, Mixture model and EM algorithm머피's 머신러닝, Mixture model and EM algorithm
머피's 머신러닝, Mixture model and EM algorithm
 
boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)
 
Recommendation system
Recommendation systemRecommendation system
Recommendation system
 
Recommendation system
Recommendation systemRecommendation system
Recommendation system
 
Counterfactual Learning for Recommendation
Counterfactual Learning for RecommendationCounterfactual Learning for Recommendation
Counterfactual Learning for Recommendation
 
Collaborative Filtering using KNN
Collaborative Filtering using KNNCollaborative Filtering using KNN
Collaborative Filtering using KNN
 
Deep Learning in Recommender Systems - RecSys Summer School 2017
Deep Learning in Recommender Systems - RecSys Summer School 2017Deep Learning in Recommender Systems - RecSys Summer School 2017
Deep Learning in Recommender Systems - RecSys Summer School 2017
 
[NDC 발표] 모바일 게임데이터분석 및 실전 활용
[NDC 발표] 모바일 게임데이터분석 및 실전 활용[NDC 발표] 모바일 게임데이터분석 및 실전 활용
[NDC 발표] 모바일 게임데이터분석 및 실전 활용
 
Overview of recommender system
Overview of recommender systemOverview of recommender system
Overview of recommender system
 
Deep Learning for Personalized Search and Recommender Systems
Deep Learning for Personalized Search and Recommender SystemsDeep Learning for Personalized Search and Recommender Systems
Deep Learning for Personalized Search and Recommender Systems
 
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
 
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
 
머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)
 
Pose Graph based SLAM
Pose Graph based SLAMPose Graph based SLAM
Pose Graph based SLAM
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
Tag based recommender system
Tag based recommender systemTag based recommender system
Tag based recommender system
 

Plus de SungMin OH

Apache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsApache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsSungMin OH
 
Head first statistics_summary_ch03
Head first statistics_summary_ch03Head first statistics_summary_ch03
Head first statistics_summary_ch03SungMin OH
 
Head first statistics_summary_ch01
Head first statistics_summary_ch01Head first statistics_summary_ch01
Head first statistics_summary_ch01SungMin OH
 
Head first statistics_summary_ch02
Head first statistics_summary_ch02Head first statistics_summary_ch02
Head first statistics_summary_ch02SungMin OH
 
Netflix suro begins
Netflix suro beginsNetflix suro begins
Netflix suro beginsSungMin OH
 
Multi mechanize
Multi mechanizeMulti mechanize
Multi mechanizeSungMin OH
 

Plus de SungMin OH (8)

Apache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsApache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloops
 
Head first statistics_summary_ch03
Head first statistics_summary_ch03Head first statistics_summary_ch03
Head first statistics_summary_ch03
 
Head first statistics_summary_ch01
Head first statistics_summary_ch01Head first statistics_summary_ch01
Head first statistics_summary_ch01
 
Head first statistics_summary_ch02
Head first statistics_summary_ch02Head first statistics_summary_ch02
Head first statistics_summary_ch02
 
Netflix suro begins
Netflix suro beginsNetflix suro begins
Netflix suro begins
 
Storm begins
Storm beginsStorm begins
Storm begins
 
Hive begins
Hive beginsHive begins
Hive begins
 
Multi mechanize
Multi mechanizeMulti mechanize
Multi mechanize
 

Collaborative filtering

  • 1. Collaborative Filtering 협업 필터링 추천 방식에 대한 정리
  • 2. Collaborative Filtering • 추천 알고리즘의 하나의 방법 – 각 항목별 유사도에 가중치를 두어 추천 – User-based : 사용자의 유사도를 비교 – Item-based : 아이템의 유사도를 비교
  • 3. User-based • 선호 이력이 유사한 다른 사용자의 선호 아이템 찾고 • 아직 구매하지 않은 아이템을 추천
  • 4. Item-based • 사용자가 좋아하는 아이템을 찾고 • 해당 아이템과 유사한 아이템을 추 천
  • 5. 유사도 알고리즘 • 유클리디안(Euclidean) 거리 점수 기반 • 코사인(Cosine) 기반 • 자카드 계수 (Jaccard) 기반 • 피어슨 상관계수 • 맨해튼 거리
  • 6. 유클리디안(Euclidean) 거리 점수 기반 유사도(1) • 두 점 사이의 거리를 계산할 때 주로 사용하는 알고리즘 • 사람들이 공통으로 점수를 매긴 항목의 거리를 통해 유사도를 판단 • 거리가 짧을 수록 유사하다고 판단 ※ 일반적으로 유사도가 높을 수록 1에 가깝고, 낮을 수록 0에 가깝도록 표현한다. 따라서 1/(1+d) 의 연산을 한다. (d=유클리디안 거리점수)
  • 7. 유클리디안(Euclidean) 거리 점수 기반 유사도(2) Item1 Item2 Item3 Item4 User1 5 1 1 4 User2 4 1 2 3 User3 1 2 4 1
  • 8. 코사인(Cosine) 기반 유사도(1) • 이것은 두 단위 벡터의 내적을 이용, 단위 벡 터간의 내각의 크기로 유사도 측정을 한다. • 값은 0~1 사이로 가지게 된다. • 결과 값이 1인 경우, 모든 단어의 가중치가 동 일한 항목, 완전 같은 문서 • 0은 두 항목에 일치 하는 것이 없다는 것을 뜻 한다.
  • 9. 코사인(Cosine) 기반 유사도(2) User1 User2 User3 Item1 3 2 1 Item2 4 2 3 Item3 2 4 5 User1 User2 User3 Item1 0.8018 0.5345 0.2673 Item2 0.7428 0.3714 0.557 Item3 0.2981 0.5963 0.7454
  • 10. 코사인(Cosine) 기반 유사도(3) User1 User2 User3 Item1 0.8018 0.5345 0.2673 Item2 0.7428 0.3714 0.557 Item3 0.2981 0.5963 0.7454 Item1 Item2 Item3 Item1 1 0.943 0.757 Item2 0.943 1 0.858 Item3 0.757 0.858 1
  • 11. 자카드 계수(Jaccard) 기반 유사도 (1) • Boolean 속성으로 이루어진 두 개의 오브젝 트 A와B에 대하여 • A와 B가 교집합으로 1의 값을 가진 속성의 개 수를 • A와 B의 1의 합집합 개수로 나눈 값.
  • 12. 자카드 계수(Jaccard) 기반 유사도 (1) User based 데이터 셋 (1 : 구매 ) 사용자 1과 사용자 2의 Jaccard 유사도를 계산하는 경우 (분모) |A∪B| 즉 두 사람이 산 상품의 합집합의 개수는 3 (분자) |A∩B| 두 사람이 산 상품의 교집합의 개수는 2 jaccard 유사도 값은 ⅔= 0.67 모든 사용자간 계산된 유사도 Item1 Item2 Item3 Item4 User1 0 1 0 1 User2 0 1 1 1 User3 1 0 1 0 User1 User2 User3 User1 1.0 0.67 0 User2 0.67 1.0 0.25 User3 0 0.25 1.0
  • 13. 자카드 계수(Jaccard) 기반 유사도 (3) User based 데이터 셋 과 유사도 사용자 선호도가 높은 항목에 가중치를 주기 위해 행렬곱 점수가 높은 항목 중 이미 구매 하지 않은 항목 추천 Item1 Item2 Item3 Item4 User1 0 1 0 1 User2 0 1 1 1 User3 1 0 1 0 User1 User2 User3 User1 1.0 0.67 0 User2 0.67 1.0 0.25 User3 0 0.25 1.0 Item1 Item2 Item3 Item4 User1 0 1.67 0.67 1.67 User2 0.25 1.67 1.25 1.67 User3 1.0 0.25 1.25 0.25
  • 14. 마치며… • 항목 기반 필터링은 미리 항목의 유사함을 구해 놓고, 가 중치를 주어 추천 • 항목의 유사도가 상대적으로 변하지 않는다. • 빠르다. • 유사도 저장 공간이 추가로 필요. • 사용자 기반 필터링은 가중치에 대한 추가 단계가 없어 구 현이 용이. • 자주 변경되는 보다 작은 데이터 세트에 적당하다.
  • 15. 참고. • http://readme.skplanet.com/?p=2509 • http://rosaec.snu.ac.kr/meet/file/20120728b.pdf • http://algo.yonsei.ac.kr/domestic_JNL/PredictiveAlgorithm02Park.pdf • http://dev.kthcorp.com/2013/01/23/deconstructing-recommender-systems/ • 집단지성 프로그래밍 • 실전예제로 살펴보는 집단지성 프로그래밍 • 머하웃 완벽 가이드