think deeply

[추천시스템] 연관있는 스타일은 무엇일까, 스타일쉐어(1) 본문

rainbow/추천시스템

[추천시스템] 연관있는 스타일은 무엇일까, 스타일쉐어(1)

윌_ 2023. 8. 3. 13:09

📌 포인트 : 가장 주요한 지표를 ‘관심사’로 봄! 관심사는 행동기록 데이터를 활용

스타일쉐어는 패션 정보에 특화된 인스타그램이라고 할 수 있는데요. 인스타그램처럼 마음에 드는 코디에 좋아요를 누르거나, 마음에 드는 사용자를 팔로우하거나 마음에 드는 코디를 자기 페이지에 스크랩하는 기능 등을 가지고 있어요. 2021년 무신사에 통합되어 2022년 서비스 중단했지만요.

1. 사용자가 좋아할 스타일을 어떻게 정의할까

스타일쉐어의 고민은 여기 있었습니다. 저희가 현재 쓰고 있는 인스타그램처럼 사용자가 좋아할 컨텐츠(패션 스타일)를 업로드해주어야 했어요. 그럼 사용자에게 스타일사용자가 좋아할 스타일을 어떻게 정의할 것인가 고민하는 과정이 존재했습니다. 그럼 어떤 스타일을 연관있는 스타일로 사용자에게 제공해야할까요?

비슷한 옷을 입으면 연관있는 스타일일까요?
같은 상품에 대한 리뷰면 모두 연관된 스타일일까요?

2. 연관있는 스타일의 가장 주요한 지표, ‘관심사’

스타일쉐어는 추천해줄 컨텐츠 선정의 가장 주요한 지표를 ‘관심사’로 잡았아요. 여기서 관심사는 ‘행동기록 데이터’를 활용했어요.

3. 사용자의 행동 기록 데이터 수집

이제 사용자의 관심도를 알아내야겠죠? 스타일쉐어는 이러한 사용자들의 행동 기록을 수집하기 위해 Firebase의 Analytics 기능을 사용했습니다. Firebase에서 수집된 데이터는 Google Big Query에 저장되어있고, 이 데이터를 이용해 Matrix Factorization을 수행하는거죠.

출처:  https://medium.com/styleshare/styleshare-recommendation-beginning-1-c70e159e7479

 

4. Matrix Factorization

행렬 분해가 무엇이냐면, 유저의 컨텐츠에 대한 관심도를 행렬 형태로 나타내고, 각 유저와 컨텐츠에 그 행렬을 가장 잘 나타낼 수 있는 벡터를 찾아 할당하는 알고리즘이에요.

출처: developers

위에서 ‘유저와 컨텐츠에 벡터를 할당한다’는 말을 우리는 흔히 임베딩이라고해요. 임베딩 과정은 각 컨텐츠 사이의 거리를 정의한다는 의미구요. 여기서 거리각 스타일에 대한 유저들의 관심도라고 할 수 있겠죠.

출처:  https://medium.com/styleshare/styleshare-recommendation-beginning-1-c70e159e7479

5. Alternating Least Squares

행렬 분해를 수행하는 알고리즘도 다양합니다. 스타일쉐어는 구현이 가장 쉽고 실험 결과 학습시간대비 가장 괜찮은 결과물을 가져다준 ALS를 활용했다고 해요. 그리고 implicit dataset을 도출하는데 더 높은 정확도를 가지구요.

ALS는 user latent, item latent 중 하나를 고정시키고 다른 하나의 행렬을 순차적으로 반복하면서 최적화하는 방법이에요. ALS 이전 행렬 최적화 방법으로는 SGD가 있는데, 이는 두 행렬을 동시에 최적화하는 방법입니다.

6. A/B 테스트

새로운 서비스를 제공하기 전에 해당 서비스의 효용을 살펴봐야겠죠. 결과는 다음과 같아요. (*대조군 대비 실험군 수치)

  • 평균 클릭수 400% 상승 : 스타일 상세 화면에서 연관 스타일을 방문하는 횟수 400% 상승
  • 전환률 160% 증가 : 스타일 상세에서 연관 스타일을 1회 이상 방문한 유저의 비율 160% 증가
  • 구매전환률 13.5% 증가 : 연관 스타일을 1회 이상 방문한 유저의 경우 구매로 이어지는 구매전환률 13.5% 더 높은 전환률
Comments