SlideShare una empresa de Scribd logo
1 de 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/
• 집단지성 프로그래밍
• 실전예제로 살펴보는 집단지성 프로그래밍
• 머하웃 완벽 가이드

Más contenido relacionado

La actualidad más candente

学習係数
学習係数学習係数
学習係数hoxo_m
 
제10회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 밑바닥부터 시작하는 trivago 추천시스템
제10회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 밑바닥부터 시작하는 trivago 추천시스템제10회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 밑바닥부터 시작하는 trivago 추천시스템
제10회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 밑바닥부터 시작하는 trivago 추천시스템BOAZ Bigdata
 
Recommendation system
Recommendation systemRecommendation system
Recommendation systemAkshat Thakar
 
Recommender Systems in E-Commerce
Recommender Systems in E-CommerceRecommender Systems in E-Commerce
Recommender Systems in E-CommerceRoger Chen
 
Recommender systems for E-commerce
Recommender systems for E-commerceRecommender systems for E-commerce
Recommender systems for E-commerceAlexander Konduforov
 
Causal Inference : Primer (2019-06-01 잔디콘)
Causal Inference : Primer (2019-06-01 잔디콘)Causal Inference : Primer (2019-06-01 잔디콘)
Causal Inference : Primer (2019-06-01 잔디콘)Minho Lee
 
An introduction to Recommender Systems
An introduction to Recommender SystemsAn introduction to Recommender Systems
An introduction to Recommender SystemsDavid Zibriczky
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128beom kyun choi
 
How to build a recommender system?
How to build a recommender system?How to build a recommender system?
How to build a recommender system?blueace
 
데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.Yongho Ha
 
Applied Machine Learning for Ranking Products in an Ecommerce Setting
Applied Machine Learning for Ranking Products in an Ecommerce SettingApplied Machine Learning for Ranking Products in an Ecommerce Setting
Applied Machine Learning for Ranking Products in an Ecommerce SettingDatabricks
 
알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기Kwangsik Lee
 
[PAP] 실무자를 위한 인과추론 활용 : Best Practices
[PAP] 실무자를 위한 인과추론 활용 : Best Practices[PAP] 실무자를 위한 인과추론 활용 : Best Practices
[PAP] 실무자를 위한 인과추론 활용 : Best PracticesBokyung Choi
 
Beginners Guide to Non-Negative Matrix Factorization
Beginners Guide to Non-Negative Matrix FactorizationBeginners Guide to Non-Negative Matrix Factorization
Beginners Guide to Non-Negative Matrix FactorizationBenjamin Bengfort
 
레코픽 설명회 15회-개인화 추천(with DMC미디어)
레코픽 설명회 15회-개인화 추천(with DMC미디어)레코픽 설명회 15회-개인화 추천(with DMC미디어)
레코픽 설명회 15회-개인화 추천(with DMC미디어)recopick
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템NAVER D2
 
Learning to Rank for Recommender Systems - ACM RecSys 2013 tutorial
Learning to Rank for Recommender Systems -  ACM RecSys 2013 tutorialLearning to Rank for Recommender Systems -  ACM RecSys 2013 tutorial
Learning to Rank for Recommender Systems - ACM RecSys 2013 tutorialAlexandros Karatzoglou
 
Rによるノンパラメトリック検定と効果量の出し方
Rによるノンパラメトリック検定と効果量の出し方Rによるノンパラメトリック検定と効果量の出し方
Rによるノンパラメトリック検定と効果量の出し方Hikaru GOTO
 
Trends_of_MLOps_tech_in_business
Trends_of_MLOps_tech_in_businessTrends_of_MLOps_tech_in_business
Trends_of_MLOps_tech_in_businessSANG WON PARK
 

La actualidad más candente (20)

学習係数
学習係数学習係数
学習係数
 
제10회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 밑바닥부터 시작하는 trivago 추천시스템
제10회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 밑바닥부터 시작하는 trivago 추천시스템제10회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 밑바닥부터 시작하는 trivago 추천시스템
제10회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 밑바닥부터 시작하는 trivago 추천시스템
 
Recommendation system
Recommendation systemRecommendation system
Recommendation system
 
Recommender Systems in E-Commerce
Recommender Systems in E-CommerceRecommender Systems in E-Commerce
Recommender Systems in E-Commerce
 
Recommender systems for E-commerce
Recommender systems for E-commerceRecommender systems for E-commerce
Recommender systems for E-commerce
 
Causal Inference : Primer (2019-06-01 잔디콘)
Causal Inference : Primer (2019-06-01 잔디콘)Causal Inference : Primer (2019-06-01 잔디콘)
Causal Inference : Primer (2019-06-01 잔디콘)
 
An introduction to Recommender Systems
An introduction to Recommender SystemsAn introduction to Recommender Systems
An introduction to Recommender Systems
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128
 
How to build a recommender system?
How to build a recommender system?How to build a recommender system?
How to build a recommender system?
 
데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.
 
Applied Machine Learning for Ranking Products in an Ecommerce Setting
Applied Machine Learning for Ranking Products in an Ecommerce SettingApplied Machine Learning for Ranking Products in an Ecommerce Setting
Applied Machine Learning for Ranking Products in an Ecommerce Setting
 
알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기
 
[PAP] 실무자를 위한 인과추론 활용 : Best Practices
[PAP] 실무자를 위한 인과추론 활용 : Best Practices[PAP] 실무자를 위한 인과추론 활용 : Best Practices
[PAP] 실무자를 위한 인과추론 활용 : Best Practices
 
Beginners Guide to Non-Negative Matrix Factorization
Beginners Guide to Non-Negative Matrix FactorizationBeginners Guide to Non-Negative Matrix Factorization
Beginners Guide to Non-Negative Matrix Factorization
 
레코픽 설명회 15회-개인화 추천(with DMC미디어)
레코픽 설명회 15회-개인화 추천(with DMC미디어)레코픽 설명회 15회-개인화 추천(with DMC미디어)
레코픽 설명회 15회-개인화 추천(with DMC미디어)
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
 
Learning to Rank for Recommender Systems - ACM RecSys 2013 tutorial
Learning to Rank for Recommender Systems -  ACM RecSys 2013 tutorialLearning to Rank for Recommender Systems -  ACM RecSys 2013 tutorial
Learning to Rank for Recommender Systems - ACM RecSys 2013 tutorial
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
Rによるノンパラメトリック検定と効果量の出し方
Rによるノンパラメトリック検定と効果量の出し方Rによるノンパラメトリック検定と効果量の出し方
Rによるノンパラメトリック検定と効果量の出し方
 
Trends_of_MLOps_tech_in_business
Trends_of_MLOps_tech_in_businessTrends_of_MLOps_tech_in_business
Trends_of_MLOps_tech_in_business
 

Más 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
 

Más 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/ • 집단지성 프로그래밍 • 실전예제로 살펴보는 집단지성 프로그래밍 • 머하웃 완벽 가이드