일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- HTTP
- 클라우드자격증
- 추천시스템
- llm
- 미국석사
- COFIBA
- chatGPT
- RecSys
- 클라우드
- 네트워크
- 언어모델
- nlp
- BANDiT
- MSCS
- docker
- AWS
- BERT이해
- TFX
- 자연어처리
- 플랫폼
- transformer
- MAB
- 머신러닝 파이프라인
- MLOps
- 중국플랫폼
- aws자격증
- BERT
- Collaborative Filtering Bandit
- 머신러닝
- 메타버스
- Today
- Total
Julie의 Tech 블로그
추천시스템 - (4) 이커머스 추천 문제 본문
본 글은 이커머스 시장에서의 추천 시스템을 어떻게 구현하는지 개괄적으로 살펴볼 것이다.
이커머스에는 여러 종류가 있다. 쿠팡 / 11번가 / G마켓은 종합 커머스이고, 무신사는 패션 커머스에 해당한다.
하지만 이커머스의 추천은 대체로 유사하게 흘러간다. 대략적으로 틀을 잡으면 아래와 같다.
1. 홈 : 개인화 추천, 인기 상품 추천, 성별/연령 기반 추천
2. 검색 : 검색어 추천(인기 검색어 등), 검색어와 연관 상품 추천
3. 상품상세 페이지 : 주로 대체 상품 추천 (연관 상품 추천도 있음)
4. 장바구니 페이지 : 보완 상품 추천
어떤 추천을 할 것인가라는 문제를 풀기 위한 방식으로 모델을 분류해볼 수 있다.
예를 들어 모델 알고리즘으로는 대표적으로 CBF(Context-based Filtering), CF(Collarboative Filtering) 방식이 있고,
추천 결과의 output 모양에 따라 Top K만 추천하는 모델 혹은 전체 output에 대해 rating을 매기는 모델이 있다.
이러한 모델을 우리가 풀고자 하는 문제에 따라 잘 선별해야할 것이다.
하지만 모델을 선별하기에 앞서, 추천 시스템을 도입하기 위한 가장 중요한 전제조건은 모델에 학습하기 위한 충분한 데이터가 있어야한다.
첫 번째는 상품에 대한 메타 정보이다.
상품에 대한 메타 정보란, 상품코드가 아닌 상품의 가격(경쟁력), 선호 연령대, 브랜드, 카테고리, 최신성, Seasonality이다.
두 번째는 상품들에 대한 고객의 반응 정보일 것이다.
찜을 했다던지, 클릭을 해봤다던지, 장바구니에 담거나 구매하기 버튼을 누른 것이 대표적인 반응 지표로 사용될 수 있다.
이러한 데이터들은 추천시스템에서 흔히 Implicit Feedback이라고 한다.
이러한 데이터가 마련이 되었을 때, 모델을 잘 선택해서 설계하여 개발해야한다.
모델은 이커머스 플랫폼의 특성에 따라 선별이 될 것이다. 일반적으로 간단한 모델인 CF를 많이 도입한다.
이 중에서도 일반적으로 사용자수가 상품 수보다 훨씬 더 많기 때문에 User-based보다는 Item-based CF를 많이 사용한다.
User-based CF도 구현은 가능하지만, 상품 풀이 고정적이지 않고 지속적으로 변할 뿐더러 연산량이 크기 때문에 성능 이슈가 발생할 수 있다.
추천 결과를 어떻게 노출하여 고객들에게 전달할 것인지에 대해서도 고민해볼 수 있다.
가장 최선인 1개의 결과만을 노출할 수도 있고, 혹은 사전에 우리가 정하는 K개 상품만 노출할 수도 있다. 곁들여 결과에 대한 설명도 붙일 수 있다.
각 선택지에 대한 장단점은 각기 다르게 존재한다. 예를 들어 설명을 붙이게 될 경우 사용자가 결과에 대해 신뢰할 수는 있지만, 설명이 도리어 모델 결과 선택에 크게 작용하여 학습과정에 반응데이터의 의미를 흐릴 수 있다.
즉 요약하자면, 추천시스템을 구성하고 도입하기까지 아래와 같은 단계로 요약할 수 있다.
1. [추천 기획] 어떤 영역에 어떤 모델을 도입하여 어떤 문제를 풀고 싶은지 정의, 어떤 결과로 모델의 결과를 전달할 것인지 결정
2. [데이터 수집] 모델 학습에 필요한 사용자 / 상품에 대한 메타 정보를 수집
3. [모델 개발] 알고리즘을 선별하여 모델을 개발 및 배포
4. [UI/UX반영] 모델의 결과가 고객에게 잘 노출이 되었는지, 노출과 반응 데이터를 다시 수집하여 모델 학습에 사용할 수 있는지 확인
추천시스템의 구조도는 아래와 같다.
1) 상품 판매 내역과 같이 고객의 반응 데이터를 수집 + 상품 및 고객에 대한 메타 정보 수집
2) 추천 모델에 학습하기 위해 사용될 데이터로 전처리
3) 전처리 데이터를 모델에 넣어 학습한 뒤 최신 데이터로 추론
4) 고객의 최근 구매 데이터 및 최신 상품 메타 데이터(재고, 이슈여부 등)를 이용하여 추론 결과를 적절히 필터링
5) 최종 추천 결과 생성 및 고객 노출
추천 알고리즘 중 가장 간단한 Best와 연관 상품 추천 알고리즘에 대해서만 간단하게 살펴보자.
Best는 말 그대로 주어진 조건에 따라 가장 최대의 실적을 내는 상품들을 보여주면 되는데, 조건에 따라 여러 종류로 나뉠 수 있다.
- 전체 베스트, 시간에 따른 베스트, 필터 결과에 따른 베스트(카테고리, 브랜드 등)
스코어 방법에 따라서도 나뉘는데, 클릭, 구매, 유입 대비 전환율 등으로 이루어진다.
이 경우 간단하게 데이터에 쿼리하는 SQL문으로도 데이터를 추출할 수 있을 것이다. 따로 복잡한 모델을 설계하지 않아도 되기 때문이다.
다음은 연관 상품 추천이다. 연관 상품은 연관성을 어떻게 보느냐에 따라 다를 수 있다.
예를 들어 동일상품을 본 사용자를 연관성이 있다고 볼 경우 사용자 기반 연관성 모델이 될 것이고,
동일 세션 내에 본 아이템들을 연관성이 있다고 볼 경우 아이템 기반 연관성 모델이 될 것이다.
연관성 스코어를 매기는 데에는 Association Rules에서 사용하는 Support, Confidence 값이 될 수 있다. 혹은 흔히 사용하는 유사도 함수도 적용이 가능하다. (Cosine Similarity)
두 알고리즘 모두 스코어를 단순히 count하게 되면 인기 상품이나 노출이 많이 된 상품들로 결과가 쏠릴 수 있다.
이럴 경우 로그를 취하거나 최댓값을 한정하는 등 값을 조절해주게 된다. 보통 일반적으로 로그 함수를 사용하며, normalize된 스코어를 활용하여 노출 결과를 만들게 된다.
본 글은 이커머스 몰에서의 추천 시스템을 개괄적으로 살펴보았고, 각 알고리즘 별로 어떤 것들이 있는지 간단히 살펴보았다.
다음 글은 다른 주제에서 어떻게 추천 시스템을 도입하여 문제를 해결하였는지 살펴보는 글이 될 것이다.
'Tech > RecSys' 카테고리의 다른 글
Transformers4Rec - 추천시스템과 Transformer (0) | 2023.01.05 |
---|---|
BERT4Rec - 추천시스템과 BERT (0) | 2023.01.03 |
추천시스템 - (2) One-class Collaborative Filtering (1) | 2021.09.20 |
추천시스템 - (1) 개요 (0) | 2021.09.13 |
Contextual Bandit - 이커머스몰 최적 추천시스템, CAMARS (0) | 2021.07.30 |