패스트캠퍼스 데이터 사이언스 SCHOOL 3기 프로젝트 _개인맞춤 패션 쇼핑몰 상품 추천 시스템
* The numerous online fashion stores in Korea recommend ‘some items purchased by other members who purchased this item’ or ‘the most popular items’ to their members. However the accuracy of recommendation is poor.
* To improve the performance of recommendation, I use collaborative filtering with member's ratings of each item.
Github : https://github.com/moonkwoo/DataScience/tree/master/project/shopping%20recommendation
Qcon SF 2013 - Machine Learning & Recommender Systems @ Netflix ScaleXavier Amatriain
The document summarizes Netflix's approach to machine learning and recommender systems. It discusses how Netflix uses algorithms like SVD and Restricted Boltzmann Machines on a massive scale to power highly personalized recommendations. Over 75% of what people watch on Netflix comes from recommendations. Netflix collects a huge amount of data from over 40 million subscribers and uses both offline, online, and nearline computation across cloud services to train models and power recommendations in real-time at scale. The key is combining more data, smarter models, accurate metrics, and optimized system architectures.
Netflix provides personalized recommendations at scale to over 37 million members across 40 countries. They take a multi-layered approach using offline, nearline, and online computation. In the offline layer, large datasets are processed to train machine learning models. The nearline layer incrementally refines recommendations based on member events. In the online layer, recommendations are generated and presented to members in real-time based on signals from live services and precomputed results. Netflix recommendations are powered by a massive dataset of over 30 million daily plays and sophisticated algorithms running across distributed cloud computing infrastructure.
Machine Learning Foundations (a case study approach) 강의 정리SANG WON PARK
실제 비즈니스에서 많이 활용되는 사례를 중심으로 어떻게 기존 데이터를 이용하여 알고리즘을 선택하고, 학습하여, 예측모델을 구축 하는지 jupyter notebook을 이용하여 실제 코드를 이용하여 실습할 수 있다.
강의 초반에 강조하는 것 처럼, 머신러닝 알고리즘은 나중에 자세히 설명하는 과정이 따로 있고, 이번 강의는 실제 어떻게 활용하는지에 완전히 초점이 맞추어져 있어서, 알고리즘은 아주 간략한 수준으로 설명해 준다. (좀 더 구체적인 내용은 심화과정이 따로 있음)
http://blog.naver.com/freepsw/221113685916 참고
https://github.com/freepsw/coursera/tree/master/ML_Foundations/A_Case_Study 코드 샘플
패스트캠퍼스 데이터 사이언스 SCHOOL 3기 프로젝트 _개인맞춤 패션 쇼핑몰 상품 추천 시스템
* The numerous online fashion stores in Korea recommend ‘some items purchased by other members who purchased this item’ or ‘the most popular items’ to their members. However the accuracy of recommendation is poor.
* To improve the performance of recommendation, I use collaborative filtering with member's ratings of each item.
Github : https://github.com/moonkwoo/DataScience/tree/master/project/shopping%20recommendation
Qcon SF 2013 - Machine Learning & Recommender Systems @ Netflix ScaleXavier Amatriain
The document summarizes Netflix's approach to machine learning and recommender systems. It discusses how Netflix uses algorithms like SVD and Restricted Boltzmann Machines on a massive scale to power highly personalized recommendations. Over 75% of what people watch on Netflix comes from recommendations. Netflix collects a huge amount of data from over 40 million subscribers and uses both offline, online, and nearline computation across cloud services to train models and power recommendations in real-time at scale. The key is combining more data, smarter models, accurate metrics, and optimized system architectures.
Netflix provides personalized recommendations at scale to over 37 million members across 40 countries. They take a multi-layered approach using offline, nearline, and online computation. In the offline layer, large datasets are processed to train machine learning models. The nearline layer incrementally refines recommendations based on member events. In the online layer, recommendations are generated and presented to members in real-time based on signals from live services and precomputed results. Netflix recommendations are powered by a massive dataset of over 30 million daily plays and sophisticated algorithms running across distributed cloud computing infrastructure.
Machine Learning Foundations (a case study approach) 강의 정리SANG WON PARK
실제 비즈니스에서 많이 활용되는 사례를 중심으로 어떻게 기존 데이터를 이용하여 알고리즘을 선택하고, 학습하여, 예측모델을 구축 하는지 jupyter notebook을 이용하여 실제 코드를 이용하여 실습할 수 있다.
강의 초반에 강조하는 것 처럼, 머신러닝 알고리즘은 나중에 자세히 설명하는 과정이 따로 있고, 이번 강의는 실제 어떻게 활용하는지에 완전히 초점이 맞추어져 있어서, 알고리즘은 아주 간략한 수준으로 설명해 준다. (좀 더 구체적인 내용은 심화과정이 따로 있음)
http://blog.naver.com/freepsw/221113685916 참고
https://github.com/freepsw/coursera/tree/master/ML_Foundations/A_Case_Study 코드 샘플
<마비노기 영웅전>의 사례에 기반하여 다음의 내용을 설명합니다.
1. 국내 및 해외에서 라이브 서비스 중에 발생하는 작업장 이슈에 대응하기 위해서 실시간 로그 수집 프로세스를 구축하면서 고민하였던 내용과
2. 수집한 로그 데이터를 활용하여 온라인 액션 게임에서 캐릭터 애니메이션 패턴간의 유사도(TF-IDF, Cosine Similarity)를 분석하여 현업 실무의 어뷰징 탐지에 활용한 사례를 공유합니다.
라이브 서비스 환경에서 국내 및 해외의 실시간 로그 수집에 대해서 고민하시는 개발자나 온라인 게임에서의 봇탐지에 관심있는 분석가들에게 유용한 사례를 소개해드릴 수 있을 것으로 생각합니다.
SKPlanet 추천 플랫폼 콜로세오 - SK ICT Tech Summit 2017 SKPlanet 추천 플랫폼 콜로세오 - SK IC...Jaehoon Jung
SK ICT Tech Summit 2017 빅데이터 세션에서 발표한
SK Planet 추천 플랫폼 콜로세오 내용을 공유합니다.
추천 로직과 관련된 내용이 아닌
추천서비스 측면에서 추천 플랫폼의 역할에 대해서 기본적인 내용들을 설명 했습니다.
Recopick 부터 콜로세오까지 5년 가까이 추천 서비스를 개발/운영하면서 생각해본 기본 적인 내용들로 구성되어 있습니다.
마지막 장 3줄 요약 있습니다. :)
제10회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 밑바닥부터 시작하는 trivago 추천시스템BOAZ Bigdata
밑바닥부터 시작하는 trivago 추천시스템
: '수백만개의 호텔 중에서 나한테 왜 이 호텔을 추천해준 거지?'
내 화면에 보이는 호텔은 수백만개의 호텔 중 아주 일부란 사실 알고 계신가요?
데이터 관심 있는 사람이라면 한 번쯤 궁금했을 추천 시스템!
Trivago의 실제 로그 데이터를 가지고 직접 밑바닥부터 구현해 보았습니다.
그리고 직접 만든 추천 시스템 시연까지!
이제는 "뭘 좋아할지 몰라서 다 준비"하지 않아도 돼요.
왜냐하면 우린 당신이 좋아할 것을 알고 있거든요.
일상이 된 추천 서비스들, 이제는 알고 이용해봐요!
11기 신승진 박보정 박효선 위승민
[국내 최초 빅데이터 연합동아리 BOAZ]
유튜브 - https://www.youtube.com/channel/UCSniI26A56n2QZ71opJtTUg
페이스북 - https://www.facebook.com/BOAZbigdata
인스타그램 - http://www.instagram.com/boaz_bigdata
블로그 - https://blog.naver.com/boazbigdata
<마비노기 영웅전>의 사례에 기반하여 다음의 내용을 설명합니다.
1. 국내 및 해외에서 라이브 서비스 중에 발생하는 작업장 이슈에 대응하기 위해서 실시간 로그 수집 프로세스를 구축하면서 고민하였던 내용과
2. 수집한 로그 데이터를 활용하여 온라인 액션 게임에서 캐릭터 애니메이션 패턴간의 유사도(TF-IDF, Cosine Similarity)를 분석하여 현업 실무의 어뷰징 탐지에 활용한 사례를 공유합니다.
라이브 서비스 환경에서 국내 및 해외의 실시간 로그 수집에 대해서 고민하시는 개발자나 온라인 게임에서의 봇탐지에 관심있는 분석가들에게 유용한 사례를 소개해드릴 수 있을 것으로 생각합니다.
SKPlanet 추천 플랫폼 콜로세오 - SK ICT Tech Summit 2017 SKPlanet 추천 플랫폼 콜로세오 - SK IC...Jaehoon Jung
SK ICT Tech Summit 2017 빅데이터 세션에서 발표한
SK Planet 추천 플랫폼 콜로세오 내용을 공유합니다.
추천 로직과 관련된 내용이 아닌
추천서비스 측면에서 추천 플랫폼의 역할에 대해서 기본적인 내용들을 설명 했습니다.
Recopick 부터 콜로세오까지 5년 가까이 추천 서비스를 개발/운영하면서 생각해본 기본 적인 내용들로 구성되어 있습니다.
마지막 장 3줄 요약 있습니다. :)
제10회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 밑바닥부터 시작하는 trivago 추천시스템BOAZ Bigdata
밑바닥부터 시작하는 trivago 추천시스템
: '수백만개의 호텔 중에서 나한테 왜 이 호텔을 추천해준 거지?'
내 화면에 보이는 호텔은 수백만개의 호텔 중 아주 일부란 사실 알고 계신가요?
데이터 관심 있는 사람이라면 한 번쯤 궁금했을 추천 시스템!
Trivago의 실제 로그 데이터를 가지고 직접 밑바닥부터 구현해 보았습니다.
그리고 직접 만든 추천 시스템 시연까지!
이제는 "뭘 좋아할지 몰라서 다 준비"하지 않아도 돼요.
왜냐하면 우린 당신이 좋아할 것을 알고 있거든요.
일상이 된 추천 서비스들, 이제는 알고 이용해봐요!
11기 신승진 박보정 박효선 위승민
[국내 최초 빅데이터 연합동아리 BOAZ]
유튜브 - https://www.youtube.com/channel/UCSniI26A56n2QZ71opJtTUg
페이스북 - https://www.facebook.com/BOAZbigdata
인스타그램 - http://www.instagram.com/boaz_bigdata
블로그 - https://blog.naver.com/boazbigdata
AWS Innovate: Best Practices for Migrating to Amazon DynamoDB - Sangpil Kim
개인맞춤 패션 쇼핑몰 상품 추천 시스템
1.
2.
3.
4. Item 간 similarity를 이용하여 사용자의 평점을 예측
Item 당 평점이 많을수록 similarity 존재 확률 상승
𝐴 = (0.3 × 3 + 0.6 × 5) 0.3 + 0.6 = 4.33
𝐵 = (0.5 × 2 + 0.6 × 4) 0.5 + 0.6 = 3.09
𝐴 = (0 × 2 + 0.6 × 5) 0.6 = 5
𝐵 = (0 × 4 + 0 × 2 + 0.3 × 3) 0.3 = 3
User 간 similarity를 이용하여 사용자의 평점을 예측
User 당 평점이 많을수록 similarity 존재 확률 상승
5 2 3
2 4
A 3 5
B 2 4
3 1
0.5
0.3
0.6
• User based CF
0.6
5 2 3
2 4
A B 3 5
2 4
3 1
00
0.3
• Item based CF
5. 새로운 회원 가입했을 경우 새로운 상품 출시했을 경우
기존
상품에
대한
평점 입력
X
Popularity-based CF
(≒기존 인기 상품 추천 방식)
다른
회원들의
평점 입력
X
Contents-based recommendation
(상품별 feature 추출 필요)
O
User-based CF
Item-based CF
(예측 평점 4 이상의 상품 추천)
O
User-based CF
Item-based CF
(예측 평점 4 이상의 상품 추천)
: 가능 : 불가능
6.
7.
8.
9. 5 3
2 4
5
4
1
평점 참여 회원 수 : 32,569 명
상품 수 : 1,030 개
(오래된 상품 자동 삭제)
평점 후기 수 : 153,803 개
(약 0.45 % 작성 됨)
상품과 회원의 각각 5%를
test set으로 설정
10. • Cosine
cos 𝜃 =
𝑋 ∙ 𝑌
𝑋 𝑌
𝐽 𝑋, 𝑌 =
min( 𝑥𝑖, 𝑦𝑖)𝑖
max( 𝑥𝑖, 𝑦𝑖)𝑖
𝐼𝑓𝑋 = 𝑥1, 𝑥2, ⋯ , 𝑥 𝑛 𝑎𝑛𝑑𝑌 = 𝑦1, 𝑦2, ⋯ , 𝑦 𝑛 의𝑣𝑒𝑐𝑡𝑜𝑟라하면
𝑟 =
(𝑥𝑖 − 𝑥)(𝑦𝑖 − 𝑦)𝑖
(𝑥𝑖 − 𝑥)2
𝑖 (𝑦𝑖 − 𝑦)2
𝑖
𝑥, 𝑦𝑖𝑠𝑠𝑎𝑚𝑝𝑙𝑒𝑚𝑒𝑎𝑛
• Jaccard • Pearson
Similarity between items 의 값이 매우 작게 나옴.
• 상품 수에 비해 회원 수가 30배 가량 많아 값이 작아진 것으로 보임.
Pearson은 대부분 음수가 나와 활용이 어려움.
• 데이터의 공백이 많아서 음수가 나온 것으로 보임.
11. AWS에서 Crawling시 간헐적으로 느려짐.
→ request 사이에 random timesleep 적용
Similarity between users 가 5억개 이상으로 RDB에 무리를 줄 수 있음.
→ NoSQL을 활용
Similarity between users 계산 시간이 오래 걸림.
→ tmux를 활용한 Multi-process 구현
개별 Data load후 작업할 시 오래 걸림
→ ORM을 최대 활용하여 DB에서 작업 후 load
Precision 값이 매우 떨어짐.
→ Similarity에 Threshold(임계값)를 적용
12. 5 3
2 4
5
4
1
5 3
2 4
5
A
B
𝑀𝐴𝐸 =
𝑝𝑖 − 𝑞𝑖
𝑁
𝑖=1
𝑁
=
4 − 𝐴 + 1 − 𝐵
2
• 실제 값(p) • 예측 값(q)
• Popularity based CF에서 MAE의 값이 매우 낮게(좋게) 나옴.
13. 회원이 실제로
구매한 상품
시스템이
추천한 상품
Recall
• 실제로 사용자가 좋아하는 상품을 추천한 비율
• Ex. 추천한 4개중 2개를 실제로 구매했으므로
2
4
Precision
• 추천한 상품 중 사용자가 실제로 좋아하는 비율
• Ex. 실제 구매한 5개 중 2개만 추천 받았으므로
2
5
14. 결과표
모든 상품을 추천하면 Recall은 올라가지만 Precision이 낮아진다.
Recall과 Precision 값 모두 커야 추천의 의미가 있다.
Popularity-based CF는 거의 모든 상품을 추천해주고 있기 때문에 Recall이 1이
나온 반면 Precision이 매우 낮음.
Jaccard Similarity에 Threshold를 적용한 Item-based CF를 사용하여 기존의
Popularity-based CF보다 Recall은 낮아졌지만 Precision이 매우 높아져 추천의
정확도가 높아짐
Popularity
based
User based(cosine) Item based (Jaccard)
Threshold = 0.5 Threshold = 0 Threshold = 0.1 Threshold = 0
Recall (≤ 1) 1.0 0.7241 1.0 0.6552 0.9655
Precision (≤ 1) 0.0749 0.1680 0.0803 0..3654 0.0743
.
15. .
모든 사용자가 모든 상품에 후기를 작성하지 않으며(0.45% is filled) CF의 특성상
공백 데이터는 모두 0점으로 간주하여 공백 데이터가 추천의 정확도를 떨어뜨림.
사용자 ID의 뒤 네 글자가 *로 표시(ex. a****)되어 크롤링 시 소수의 중복 데이터
발생 가능.
실제 사용자의 구매이력을 데이터로 활용한다면 정확도가 매우 높아질 것으로 예상.