16

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

Embed Size (px)

Citation preview

Page 1: 개인맞춤 패션 쇼핑몰 상품 추천 시스템
Page 2: 개인맞춤 패션 쇼핑몰 상품 추천 시스템
Page 3: 개인맞춤 패션 쇼핑몰 상품 추천 시스템
Page 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

0

0

0.3

• Item based CF

Page 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 이상의 상품 추천)

: 가능 : 불가능

Page 6: 개인맞춤 패션 쇼핑몰 상품 추천 시스템
Page 7: 개인맞춤 패션 쇼핑몰 상품 추천 시스템
Page 8: 개인맞춤 패션 쇼핑몰 상품 추천 시스템
Page 9: 개인맞춤 패션 쇼핑몰 상품 추천 시스템

5 3

2 4

5

4

1

평점 참여 회원 수 : 32,569 명

상품 수 : 1,030 개 (오래된 상품 자동 삭제)

평점 후기 수 : 153,803 개 (약 0.45 % 작성 됨)

상품과 회원의 각각 5%를 test set으로 설정

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

• Cosine

cos 𝜃 =𝑋 ∙ 𝑌

𝑋 𝑌 𝐽 𝑋, 𝑌 =

min(𝑥𝑖 , 𝑦𝑖)𝑖

max(𝑥𝑖 , 𝑦𝑖)𝑖

𝐼𝑓𝑋 = 𝑥1, 𝑥2, ⋯ , 𝑥𝑛 𝑎𝑛𝑑𝑌 = 𝑦1, 𝑦2, ⋯ , 𝑦𝑛 의𝑣𝑒𝑐𝑡𝑜𝑟라하면

𝑟 = (𝑥𝑖 − 𝑥 )(𝑦𝑖 − 𝑦 )𝑖

(𝑥𝑖 − 𝑥 )2𝑖 (𝑦𝑖 − 𝑦 )2𝑖

𝑥 , 𝑦 𝑖𝑠𝑠𝑎𝑚𝑝𝑙𝑒𝑚𝑒𝑎𝑛

• Jaccard • Pearson

Similarity between items 의 값이 매우 작게 나옴.

• 상품 수에 비해 회원 수가 30배 가량 많아 값이 작아진 것으로 보임.

Pearson은 대부분 음수가 나와 활용이 어려움.

• 데이터의 공백이 많아서 음수가 나온 것으로 보임.

Page 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(임계값)를 적용

Page 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의 값이 매우 낮게(좋게) 나옴.

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

회원이 실제로 구매한 상품

시스템이 추천한 상품

Recall

• 실제로 사용자가 좋아하는 상품을 추천한 비율

• Ex. 추천한 4개중 2개를 실제로 구매했으므로 2

4

Precision

• 추천한 상품 중 사용자가 실제로 좋아하는 비율

• Ex. 실제 구매한 5개 중 2개만 추천 받았으므로 2

5

Page 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

.

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

.

모든 사용자가 모든 상품에 후기를 작성하지 않으며(0.45% is filled) CF의 특성상

공백 데이터는 모두 0점으로 간주하여 공백 데이터가 추천의 정확도를 떨어뜨림.

사용자 ID의 뒤 네 글자가 *로 표시(ex. a****)되어 크롤링 시 소수의 중복 데이터

발생 가능.

실제 사용자의 구매이력을 데이터로 활용한다면 정확도가 매우 높아질 것으로 예상.

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