Two-Stage Recommendation System)

HanJu Han·2025년 4월 26일
0

이커머스에서 비슷한 상품을 추천할 때 리트리버(Retriever) 모델랭킹(Ranking) 모델을 함께 사용하는 것은 매우 일반적이고 효과적인 접근 방식입니다. 이를 2단계 추천 시스템(Two-Stage Recommendation System)이라고 부르기도 합니다.

1. 리트리버 (Retriever) 모델:

  • 목표: 전체 상품 풀(수백만 ~ 수억 개)에서 현재 보고 있는 상품과 '어느 정도 관련성이 있을 가능성이 높은' 후보 상품군을 빠르게 찾아내는 것입니다.
  • 역할:
    • 후보 생성 (Candidate Generation): 방대한 상품 중에서 소수의 (예: 수백 ~ 수천 개) 관련성 높은 후보 상품을 효율적으로 필터링합니다.
    • 속도 중시: 모든 상품을 정교하게 비교하는 것은 시간이 너무 오래 걸리므로, 속도를 우선으로 하여 관련성이 떨어지는 상품들을 빠르게 제외합니다.
  • 주요 기술:
    • 임베딩 (Embedding): 상품의 특징(텍스트, 이미지, 카테고리 등)을 벡터 공간에 표현합니다. 비슷한 상품은 벡터 공간에서 가까운 거리에 위치하게 됩니다. (예: Word2Vec, FastText, Item2Vec, 딥러닝 기반 임베딩 모델 - Two-Tower 모델 등)
    • 유사도 검색: 생성된 임베딩 벡터를 기반으로 현재 상품과 유사한 벡터를 가진 상품들을 빠르게 찾습니다. (예: Approximate Nearest Neighbors - ANN 라이브러리 Faiss, ScaNN 등 사용)
  • 결과: 관련성이 있을 가능성이 높은 상품 후보 목록 (Candidate List)

2. 랭킹 (Ranking) 모델 (Re-ranker):

  • 목표: 리트리버 모델이 찾아낸 후보 상품군 내에서 '실제로 사용자에게 보여줄 가장 적합한' 상품 순서를 정교하게 매기는 것입니다.
  • 역할:
    • 순위 재조정 (Re-ranking): 리트리버가 가져온 후보 상품들에 대해 더 많은 특징(Feature)을 사용하여 정확한 유사도 점수나 클릭/구매 확률 등을 예측하고, 이를 기반으로 최종 추천 목록의 순서를 결정합니다.
    • 정확도/관련성 중시: 리트리버 단계보다 더 복잡하고 많은 정보를 활용하여 최종 추천 품질을 높입니다.
  • 주요 기술:
    • 다양한 특징 활용:
      • 상품 자체의 상세 특징 (가격, 브랜드, 속성 일치도 등)
      • 상품 간의 관계 특징 (함께 조회/구매된 빈도 등)
      • 사용자-상품 상호작용 특징 (해당 상품에 대한 사용자 반응 - 개인화 추천 시)
      • 실시간 인기, 재고 유무, 마진 등 비즈니스 로직 관련 특징
    • 머신러닝/딥러닝 모델: XGBoost, LightGBM 같은 트리 기반 모델이나 DNN(Deep Neural Network), Transformer 기반 모델 등을 사용하여 복잡한 특징 간의 관계를 학습하고 정교한 점수를 예측합니다.
  • 결과: 최종적으로 사용자에게 보여줄 정렬된 추천 상품 목록 (예: 상위 10개)

왜 두 단계를 사용할까요?

  • 확장성 (Scalability): 수백만 개 이상의 전체 상품을 대상으로 복잡한 랭킹 모델을 직접 적용하는 것은 계산 비용이 너무 커서 실시간 서비스가 불가능합니다. 리트리버 단계에서 후보군을 효과적으로 줄여주기 때문에 가능해집니다.
  • 효율성 (Efficiency): 리트리버는 속도에 초점을 맞추고, 랭킹 모델은 정확도에 초점을 맞춰 각 단계의 역할을 분담함으로써 전체 시스템의 효율을 높입니다.
  • 정확성 (Accuracy): 랭킹 단계에서 더 많은 정보와 강력한 모델을 사용하여 최종 추천의 관련성과 품질을 극대화할 수 있습니다.

따라서 이커머스의 비슷한 상품 추천 시스템은 대부분 리트리버로 후보를 빠르게 찾고, 랭킹 모델로 그 후보들의 순위를 정교하게 매기는 2단계 구조를 채택하여 사용하고 있습니다.


이커머스에서 비슷한 상품 추천을 포함한 다양한 추천 시스템에서 리트리버(Retriever) 모델과 랭킹(Ranker) 모델을 함께 사용하는 투스테이지(Two-Stage) 방식이 널리 활용됩니다. 이는 대규모 상품 목록을 효율적으로 처리하면서도 사용자에게 가장 관련성 높은 상품을 정교하게 추천하기 위한 구조입니다.

투스테이지 추천 시스템 구조
리트리버 (Retrieval Stage):

수백만 개 이상의 방대한 전체 상품 중에서 사용자의 관심사와 관련성이 높을 가능성이 있는 후보 상품군(수백~수천 개)을 빠르게 찾아내는 단계입니다.

주로 효율성과 재현율(Recall) 최적화에 중점을 두며, 임베딩 기반 모델(예: Two-Tower 모델)을 사용하여 사용자와 아이템 간의 유사도(내적, 코사인 유사도 등)를 빠르게 계산합니다.

클릭과 같은 약한 사용자 반응 신호를 주로 활용합니다.

랭커 (Ranking Stage):

리트리버 단계에서 선별된 소수의 후보 상품들을 대상으로, 더욱 복잡하고 정교한 모델을 사용하여 최종적으로 사용자에게 보여줄 순서를 결정하는 단계입니다.

정확도(Precision)를 높이는 데 초점을 맞추며, 계산 비용이 더 높더라도 사용자-아이템 간의 상호작용을 깊게 분석하는 모델(예: DeepFM, DIN 등)이나 다양한 피처를 활용합니다.

구매와 같이 더 희소하지만 강력한 신호를 기반으로 순위를 매깁니다.

이러한 투스테이지 구조는 대규모 추천 시스템에서 효율성과 추천 품질 사이의 균형을 맞추는 효과적인 방법으로 평가받고 있습니다

profile
시리즈를 기반으로 작성하였습니다.

0개의 댓글