스캐터랩 | ScatterLab


제타 앱 홈 추천 시스템 고도화

프로젝트 소개

ScatterLab과 함께한 프로젝트는, 제타 앱 홈 추천 시스템 고도화에 초점을 맞춘 DS 프로젝트입니다. 기존의 홈 추천 로직에서 여러 개선점들을 찾고, 모델 리서치를 통해 모델을
확정한 후, 구현 및 오프라인 테스트를 통해 검증을 마무리 한 후 최종 A/B 테스트 및 사후 분석을 진행하였습니다. 

세부 목표:

1. 추천 모델 구현 및 고도화
1-1. 추천 모델 리서치
1-2. 모델 구현 및 오프라인 테스트
1-3. A/B 테스트 및 사후 분석

2. 저퀄리티 필터링 관련 인사이트 도출
2-1. 유저 행동 기반 Key Metric 정의
2-2. 기존 로직 분석 및 문제점 정의
2-3. Key Metric 기반 유연한 Explore & Block 기준 제시


로드맵
Screenshot_2026-01-04_at_9.20_.53 PM_.png
진행 프로세스
​​
주제 1. 추천 모델 구현 및 고도화

1-1.  기존 로직 및 데이터 이해
  1. 기존 GCN 기반 추천 로직의 구조(유저–아이템 그래프 구성, 학습 목적, 활용 지표)를 파악하였습니다. 
  2. 로그 데이터의 스키마를 분석하여 노출, 클릭, 플레이, 체류시간 등 주요 행동 이벤트를 정리하였습니다. 
  3. 추천 학습에 필요한 최소 단위로 데이터 전처리(중복 제거, 시간 정렬, cold-start 분리)를 수행하였습니다.

1-2. 추천 모델 리서치
  1. 실무 환경에서 성능과 확장성이 검증된 모델 중심으로 리서치를 진행하였습니다. 
  2. UltraGCN: 그래프 구조를 단순화하면서도 implicit feedback에 강점을 가지는 모델 
  3. RLMultimodalRec: 이미지·텍스트 임베딩을 활용한 멀티모달 추천 가능성 검토 
  4. BERT4REC: 유저 시퀀스 기반 next-item prediction 성능 비교 
  5. 각 모델의 학습 방식, 요구 데이터, 실제 서비스 적용 난이도를 기준으로 비교 분석하였습니다.

1-3. 모델 구현 및 오프라인 테스트
  1. UltraGCN, RLMultimodalRec, BERT4REC에 대한 구현체를 완성하고, 기존 모델 대비 공정한 비교를 위해 동일한 데이터 split을 적용하였습니다.
  2. Recall@K, NDCG@K, Coverage 등 오프라인 지표를 기준으로 성능을 비교하였습니다.

1-4.  A/B 테스트 및 사후 분석
  1. UltraGCN 모델을 실제 추천 파이프라인에 배포하여 A/B 테스트를 진행하였습니다.
  2. CTR, CVR, EPR, 평균 세션 길이 등 온라인 지표 변화를 추적하였습니다. 
  3. 단순 지표 상승 뿐만 아니라, “누구에게 어떤 추천이 개선되었는지”를 중심으로 사후 분석을 진행하였습니다.


주제 2. 저퀄리티 필터링 관련 인사이트 도출

  1. 필터링 관련 기존 로직과 데이터 구조를 분석하였습니다. 
  2. 유저 행동 기반 Key metric들을 정의하고, Metric 기반 혹은 이미지, 텍스트 임베딩 기반 클러스터링 기반 등 다양한 방법으로 분석을 진행하였습니다. - 즉시 차단이 아닌, 유연한 탐색(Explore) & 필터링(Block) 기준을 제시하였습니다.
1번_내용.png
2번_내용.png

성과 및 인사이트

주제 1. 추천 모델 구현 및 고도화
  1. 매일 nn만명에게 베포되는 추천시스템 비용을 1/10 수준으로 감소
  2. GMGL, Bert4Rec 등의 고도화된 추천 모델 오프라인 테스트에서 기존 모델 대비 recall 기준 10% 이상 향상
  3. 다양한 추천 관련 모델 리서치 및 문서화
  4. 오프라인 테스트로 구현 가능성 및 성능 확보

주제 2. 저퀄리티 필터링 관련 인사이트 도출
  1. 정적 규칙이 아닌 Key Metric을 활용한 동적 지표 기반 Explore & Block 판단 기준 제시



PM 소회

 ScatterLab과 프로젝트를 진행하며 좋았던 점은 무엇인가요?

  1. 실제 서비스 맥락에서의 문제 해결 경험
    실제 서비스로 베포해보면서 A/B 테스트를 진행할 수 있었다는 점이 좋았습니다. 특히 추천 모델의 성능 개선 뿐만 아니라 추천 결과가 유저 행동과 서비스 지표에 어떤 영향을 주는지를 정성평가 과정에서 함께 고민할 수 있는 경험은 학부생으로서 쉽게 경험할 수 없는 프로젝트였습니다.

  2. end-to-end 경험
    데이터에 대한 이해부터 모델 구현, A/B 테스트, 사후 분석까지 전 과정을 경험하며, 각 단계가 서로 긴밀히 연결되어 있음을 체감할 수 있었습니다. 단편적인 분석이 아닌, 리서치 이후 구현, 실험까지 end-to-end 관점의 프로젝트를 수행했다는 점에서 큰 배움이 있었습니다.

 프로젝트 진행 중 겪었던 가장 큰 어려움은 무엇이었나요? 이를 어떻게 해결했나요?
  1. 협업 구조 및 코드 정리의 어려움
    프로젝트 초반에는 과업이 명확히 정의되지 않은 상태에서 다양한 작업을 병렬적으로 진행했기 때문에 코드 정리 및 버전 관리에 있어 큰 문제가 발생하지 않았습니다.
    그러나 프로젝트가 진행되면서 과업의 규모와 역할이 점차 커지고 명확해짐에 따라, 코드 구조와 파일 경로가 정리되지 않은 상태에서의 협업에 한계를 경험하게 되었습니다.
    이를 해결하기 위해 중간 단계부터 가장 기본적인 폴더 명 통일부터 시작하여, 핵심 로직과 주요 파일 경로를 문서화하고, 
    PM 단에서 보다 low-level까지 진행 상황을 추적하는 방식으로 협업 구조를 정비하였습니다.

 이번 경험을 통해 어떤 인사이트나 역량을 얻으셨나요?

  1. 추천 시스템에 대한 Product 관점의 이해
    추천 시스템은 단순히 정확도를 높이는 문제가 아니라, 탐색과 노출, 필터링 정책까지 포함한 종합적인 설계 문제라는 배움을 얻게 되었습니다. 
    논문의 내용을 공부하고, 구현하는 과정과 비즈니스적 효과를 고민하는 과정에서 Product 자체에 대한 관점을 이해할 수 있었습니다.

향후 유사한 프로젝트를 진행할 학회원들에게 전하고 싶은 조언이 있나요?
  1. 팀과 프로젝트에 알맞는 협업의 방법 찾기
    본 프로젝트와 같이 모델링, 구현, 배포까지 요구되는 프로젝트는 상대적으로 난이도가 높은 편입니다. 따라서 프로젝트 초반 단계에서 예상되는 과업을 세분화하고, 전체적인 로드맵을 사전에 수립하는 과정이 반드시 필요하다고 생각합니다. 
    또한, 명확한 목표와 과업이 정의된 이후에는 각 task의 난이도와 밀도가 크기 때문에, 모든 구성원이 부분적으로 참여하는 방식보다는 특정 task에 대해 온전한 책임을 질 수 있는 협업 구조가 효과적이었습니다. 
    예를 들어, 특정 모델의 구현, 튜닝, 배포와 같이 하나의 큰 단위 task가 존재할 경우, 해당 task에 대해 명확한 담당자를 지정하고 로드맵 상에서 일정(due)을 설정함으로써 책임과 진행 상황을 명확히 하는 것이 프로젝트 완주에 큰 도움이 된다고 생각합니다.