Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

개인맞춤 패션 쇼핑몰 상품 추천 시스템

397 views

Published on

personalized item recommendation system in online fashion store

Published in: Data & Analytics
  • Be the first to comment

개인맞춤 패션 쇼핑몰 상품 추천 시스템

  1. 1. 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
  2. 2. 새로운 회원 가입했을 경우 새로운 상품 출시했을 경우 기존 상품에 대한 평점 입력 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 이상의 상품 추천) : 가능 : 불가능
  3. 3. 5 3 2 4 5 4 1 평점 참여 회원 수 : 32,569 명 상품 수 : 1,030 개 (오래된 상품 자동 삭제) 평점 후기 수 : 153,803 개 (약 0.45 % 작성 됨) 상품과 회원의 각각 5%를 test set으로 설정
  4. 4. • Cosine cos 𝜃 = 𝑋 ∙ 𝑌 𝑋 𝑌 𝐽 𝑋, 𝑌 = min⁡( 𝑥𝑖⁡, 𝑦𝑖)𝑖 max⁡( 𝑥𝑖⁡, 𝑦𝑖)𝑖 𝐼𝑓⁡𝑋 = 𝑥1⁡, 𝑥2⁡, ⋯ , 𝑥 𝑛 ⁡𝑎𝑛𝑑⁡𝑌 = 𝑦1⁡, 𝑦2⁡, ⋯ , 𝑦 𝑛 ⁡의⁡𝑣𝑒𝑐𝑡𝑜𝑟라⁡하면 𝑟 = (𝑥𝑖 − 𝑥)(𝑦𝑖 − 𝑦)𝑖 (𝑥𝑖 − 𝑥)2 𝑖 (𝑦𝑖 − 𝑦)2 𝑖 𝑥⁡, 𝑦⁡𝑖𝑠⁡𝑠𝑎𝑚𝑝𝑙𝑒⁡𝑚𝑒𝑎𝑛 • Jaccard • Pearson  Similarity between items 의 값이 매우 작게 나옴. • 상품 수에 비해 회원 수가 30배 가량 많아 값이 작아진 것으로 보임.  Pearson은 대부분 음수가 나와 활용이 어려움. • 데이터의 공백이 많아서 음수가 나온 것으로 보임.
  5. 5.  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(임계값)를 적용
  6. 6. 5 3 2 4 5 4 1 5 3 2 4 5 A B 𝑀𝐴𝐸 = 𝑝𝑖 − 𝑞𝑖 𝑁 𝑖=1 𝑁 = 4 − 𝐴 + 1 − 𝐵 2 • 실제 값(p) • 예측 값(q) • Popularity based CF에서 MAE의 값이 매우 낮게(좋게) 나옴.
  7. 7. 회원이 실제로 구매한 상품 시스템이 추천한 상품  Recall • 실제로 사용자가 좋아하는 상품을 추천한 비율 • Ex. 추천한 4개중 2개를 실제로 구매했으므로 2 4  Precision • 추천한 상품 중 사용자가 실제로 좋아하는 비율 • Ex. 실제 구매한 5개 중 2개만 추천 받았으므로 2 5
  8. 8.  결과표  모든 상품을 추천하면 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 .
  9. 9. .  모든 사용자가 모든 상품에 후기를 작성하지 않으며(0.45% is filled) CF의 특성상 공백 데이터는 모두 0점으로 간주하여 공백 데이터가 추천의 정확도를 떨어뜨림.  사용자 ID의 뒤 네 글자가 *로 표시(ex. a****)되어 크롤링 시 소수의 중복 데이터 발생 가능.  실제 사용자의 구매이력을 데이터로 활용한다면 정확도가 매우 높아질 것으로 예상.

×