방대한 콘텐츠 사이에서 자신의 취향에 맞는 작품을 찾아내기란 마치 ‘모래사장에서 바늘 찾기’처럼 어려운 일입니다. 취향은 다양하고 복잡하며, 때로 본인조차 잘 모를 정도로 추상적이기에 그렇습니다. 이처럼 작품 탐색 시 몰려드는 피로감은 서비스를 즐기는 데 중대한 장애물로 작용합니다. 개인 맞춤형 추천 시스템이 단순한 옵션을 넘어 필수여야 하는 이유가 바로 여기 있습니다.
넷플릭스는 추천 시스템을 탁월하게 활용하는 대표적인 서비스 사례입니다. 수많은 작품들 중 자신이 좋아할 만한 콘텐츠를 쉽게 발견하고 즐길 수 있도록, 넷플릭스는 메인 홈 화면을 완전히 개인화했습니다. 예상 선호도에 따라 정렬된 섹션과 콘텐츠 덕분에, 사용자는 자신의 취향에 가장 잘 맞는 주제와 작품들을 홈 화면 상단에서 바로 찾을 수 있습니다. 이 밖에도 쿠팡, 인스타그램과 같은 여러 서비스가 더 나은 사용자 경험을 위해 맞춤형 추천 기능을 제공합니다.
리디의 추천 시스템 또한 새로운 국면을 맞이하였습니다. 리디에 신규 등록되는 작품 수는 그동안 꾸준히 증가해서 2024년 현재 매달 약 7만 개에 이릅니다. 그 덕분에 더 다양하고 풍부한 독서 경험을 제공하게 됐지만, 동시에 개인별 취향에 맞춘 작품을 추천할 필요성도 대두되었습니다. 결국, 추천 시스템을 업그레이드하는 일은 리디 개발센터가 직면한 주요 도전과제 중 하나로 자리 잡았습니다.
변화하는 독서 환경과 사용자의 기대에 발맞추어, 리디의 데이터 엔지니어링 파트는 추천 시스템의 근본적인 개선을 목표로 삼았습니다. 우선은 데이터 파이프라인과 저장소의 효율성을 극대화하여 추천 시스템 고도화에 필요한 데이터 처리 작업을 최적화할 솔루션이 필요했습니다. 다양한 논의 끝에, 결과적으로 머신러닝 파이프라인을 효율적으로 관리하도록 도와주는 Feature Store 라는 프레임워크를 도입하기로 결정했습니다.
이 글에서는 리디 추천 시스템 Phase 2의 중요한 시작점으로서 Feature Store 도입을 소개합니다. Feature Store 라는 새로운 프레임워크를 도입한 배경, 도입 과정에서 직면한 여러 도전과 해결책, 거기서 얻은 귀중한 통찰을 공유하여 리디의 추천 시스템이 더 다양하고 섬세하게 발전하고 있음을 알리고자 합니다.
Feature Store 란?
Feature Store는 빠르게 고도화되는 머신러닝 파이프라인을 효율적으로 관리하고, 머신러닝 알고리즘에 필요한 피처를 중앙 집중식으로 저장·관리할 수 있게 해주는 솔루션입니다. 이는 데이터의 일관성을 유지하면서도 실험 사이클을 대폭 단축시키고, 추천 시스템의 확장성과 유연성을 크게 향상시키는 핵심적인 기반 기술입니다.
Feature Store에는 크게 두 가지 특징이 있습니다. 첫 번째로 데이터 엔지니어와 데이터 사이언티스트의 역할을 분리하여 효율적인 작업 분담을 가능케합니다. 데이터 엔지니어가 원시 데이터를 가공하여 Feature Store에 정리해두면, 데이터 사이언티스트는 원시 데이터에 대한 세부적인 이해 없이도 Feature Store의 데이터를 사용하여 모델을 학습시키고 알고리즘을 개발할 수 있습니다.
두 번째로 Feature Store는 일반적인 데이터 웨어하우스와 달리 (준)실시간으로 피처를 업데이트하고 서빙할 수 있는 환경을 제공합니다. 필요에 따라서 Feature Store는 배치 작업으로 집계하는 Offline 데이터뿐만 아니라, streaming 으로 수집되는 Online 데이터 또한 적재하고 On-Offline Data 간의 싱크를 유지합니다. 이를 통해 데이터의 일관성을 유지하고 모델의 실시간 서빙 구조를 완성합니다.
Feature Store 도입을
결정하기까지···
리디 추천 시스템의 개선은 여러 도전과제를 심도 있게 분석하고, 거기 대응할 전략적인 해결 방안을 모색하는 것에서 시작되었습니다. 단순히 기존 문제들을 해결하는 것을 넘어, 미래의 다양한 요구 사항에도 유연하게 대응할 수 있도록 지속가능한 구조를 설계하는 것이 목표였습니다. 새로운 구조에서는 다음과 같이 세 가지 요소가 필요했습니다.
기본적인 ML 기반 알고리즘의 성능 한계 극복
기본적인 머신러닝(ML) 알고리즘만을 사용하는 현재의 시스템은 사용자의 다양하고 세분화된 요구를 만족시키기에 성능 면에서 한계가 있다는 게 드러났습니다. 이에 대응하여 딥러닝(DL) 기반의 AI 알고리즘을 도입하는 방안을 고려했습니다. DL 알고리즘의 우수한 성능은 이미 여러 분야에서 증명되었으므로, 추천 시스템의 정확도와 사용자 만족도를 대폭 개선할 가능성이 있다고 보았습니다.
한정된 추천 도메인과 데이터 파이프라인의 비효율성 개선
또 다른 문제는 기존 시스템이 단일 알고리즘에 기반한 도서 추천에만 초점을 맞추었단 점입니다. 게다가 각 추천 도메인별로 독립적인 데이터 파이프라인을 사용해서 발생하는 문제들 — 가독성 저하, 레거시 코드 축적, 높은 관리 비용과 낮은 활용성 — 역시 심각했습니다. 그 해결책으로 메타데이터를 활용해 추천 도메인을 확장하고, 데이터 파이프라인의 모듈화 및 계층화를 통해 관리 비용을 절감하며 활용성을 극대화하고자 했습니다.
개발 및 실험 사이클의 길이 단축
개발 효율성을 크게 저해하는 또 다른 요인은 새로운 추천 알고리즘의 개발 및 실험 사이클이 지나치게 길다는 것이었습니다. 따라서 알고리즘 개발 단계와 실험 준비 단계를 명확히 구분하여, 최소한의 개발 작업으로 다양한 데이터셋과 알고리즘에 대해서 실험 및 배포할 수 있는 구조를 만들어야 했습니다.
Feature Store 는 위 세 가지 요소를 개선하는 데 기반이 되는 프레임워크였습니다. 따라서 리디 개발센터는 추천 시스템 Phase 2의 첫 걸음으로 Feature Store 도입을 결정했습니다.
Feature Store 구축
Feature Store는 잠재력이 큰 프레임워크지만, 모든 기능을 일시에 구현하여 기존 시스템을 완전히 이관하는 데는 높은 비용과 복잡성이 뒤따를 것으로 예상했습니다. 따라서 Feature Store에 필요한 핵심 기능들만 선별하여 기존 시스템을 빠르게 이관하는 걸 목표로 두었습니다.
그 과정에서 가장 먼저 배제된 요소는 Online Feature Store 입니다. 기존의 추천 시스템도 오프라인 배치 처리로 운영되고 있었기 때문에, Online Store 구축 및 실시간 추천 모델 서빙의 연동은 초기 도입 단계의 목표를 초과하는 것으로 판단했습니다. 실시간 추천 모델 서빙의 필요성이 부각될 경우 그때 추가적인 구현을 고려하기로 하고, 우선은 Offline Store를 구축하는 데 집중했습니다.
Offline Feature Store 구축 과정에서 시스템의 안정성과 효율성을 증대하고자 다음의 두 가지 전략에 중점을 두었습니다:
1. 독립적인 파이프라인 구성
기존 데이터 플로우에서 데이터 파이프라인 간의 강한 결합은 여러 문제를 야기했습니다. 특히 새로운 기능을 구현하는 과정에서 선행되어야 하는 작업의 규모가 과도하게 커지고, 한 파이프라인에서 발생한 문제가 전체 시스템에 연쇄적으로 영향을 미치는 상황이 자주 발생했습니다. 이는 문제의 진단과 해결을 복잡하게 하고, 비교적 단순한 이슈가 전체 시스템의 큰 장애로 이어지는 문제를 초래했습니다.
이 같은 구조적 취약점을 해결하기 위해, Feature Store 구축하면서 관련 데이터 파이프라인을 독립적으로 구성했습니다. 용도가 다른 파이프라인과의 불필요한 의존성을 제거한 덕분에, 엔지니어들은 이전처럼 복잡한 의존성을 고려할 필요 없이 기능 개발에 온전히 집중할 수 있게 되었습니다. 또한 각 파이프라인에 독립적인 오류 처리 및 복구 메커니즘을 구현하여 상호 영향을 최소화할 수 있었습니다. 결과적으로, 추천 시스템의 개발 속도가 높아지고 시스템 안정성이 전반적으로 강화되었습니다.
2. 데이터 모듈화 및 계층화
리디 개발센터가 채택한 데이터 모듈화 및 계층화 전략은 데이터의 처리와 활용을 최적화하기 위한 구조적 접근법을 제시합니다. 데이터의 복잡성을 관리하고, 처리 과정의 의존성을 최소화하여 데이터의 재사용성과 확장성을 극대화하는 접근법입니다. 여기서는 데이터를 다음 네 단계로 구분합니다:
원시 데이터
원시 데이터는 데이터 엔지니어링 팀이 수집하는, 아직 가공되지 않은 데이터입니다. 데이터베이스와 BigQuery 로그 등에서 직접 추출한 정보를 포함하며, 리디 Feature Store의 기반이 되는 원재료 역할을 합니다.
원천 데이터
원천 데이터는 원시 데이터를 기반으로 전처리 단계를 거친 데이터입니다. 데이터 엔지니어는 피처 개발에 필요한 다양한 데이터를 카테고리, 키워드, 도서, 사용자, 구매 기록 등 직관적인 기준에 따라 모듈화해서 집계합니다. 서비스 로직 기반의 필수적인 전처리가 모두 적용되어 있어서, 데이터 사이언티스트는 서비스 로직의 세부사항을 모두 파악하지 않고도 필요한 데이터 모듈을 찾아서 가공하여 사용할 수 있습니다.
피처 데이터
피처 데이터는 원천 데이터를 더욱 세분화하여 가공한 데이터로서 두 단계로 구분합니다:
- Level 1: 특정한 정책이나 머신러닝(ML) 알고리즘(DL 제외)을 통해 집계된 데이터입니다. 추천 시스템에서 직접 사용될 수 있으며, 딥러닝(DL) 알고리즘의 학습 데이터로도 활용될 수 있습니다.
- Level 2: Level 1 피처 데이터를 활용하여 딥러닝 알고리즘으로 학습 및 추론을 수행한 결과물입니다. 더 정교한 추천 로직을 가능하게 하며, 복잡한 사용자 취향과 행동 패턴을 반영할 수 있도록 고도화된 피처를 제공합니다.
추천 결과
최종적으로, 피처 데이터는 후처리 과정을 거쳐 서비스에 서빙될 수 있는 형태로 가공됩니다. 사용자에게 제공되는 최종 추천의 결과물로, 모든 가공 과정의 결과물을 집약하여 개인별 맞춤형 추천을 제공합니다.
이처럼 데이터 처리 단계가 명확히 구분되어 있는 경우, 데이터 간 의존성 그래프는 단방향 비순환 구조의 네트워크를 형성합니다. 데이터의 재사용성을 높이고 전체적인 시스템의 유지보수와 확장을 더 쉽게 하는 구조로서 복잡한 데이터 생태계를 효과적으로 관리하므로, 진화하는 추천 시스템의 요구사항을 충족하는 데 필수적인 역할을 합니다.
Feature Store의 첫 개시:
새로운 추천 도메인 – 키워드
Feature Store의 구축 이후, 리디가 첫 번째로 개발한 추천 시스템은 ‘키워드 추천’이었습니다. 키워드는 도서의 특성을 반영한 메타데이터 태그로서, 웹툰·웹소설 사용자들이 선호 작품을 탐색하는 핵심 수단입니다.
기존에 키워드 검색 섹션에 노출되던 키워드는 편집자(MD)에 의해 일률적으로 결정되어 모든 사용자에게 동일하게 제공되었습니다. 우리의 첫 번째 목표는 키워드 섹션을 사용자 맞춤형으로 변화시켜, 개인별 취향에 맞는 키워드가 노출되도록 하는 것이었습니다. 과거에도 두 차례의 PoC가 진행되었으나, 오프라인 테스트에서 기대한 성능을 달성하지 못했습니다.
과거의 접근 방식은 원시 데이터로부터 키워드 추천 결과까지 모든 과정을 처음부터 구축하거나, 다른 목적으로 집계된 데이터를 재사용하는 방식이었습니다. 이때는 데이터 준비 단계에 상당한 시간이 소요되었고, 데이터의 품질 또한 만족스럽지 못했습니다.
Feature Store의 도입은 그 과정을 혁신적으로 개선했습니다. 키워드 추천에 필요한 모든 데이터가 이미 원천 데이터로 잘 정리되어 있었기에 모든 리소스를 알고리즘 개발 및 개선에 집중시킬 수 있었고, 단 3일 만에 고품질의 추천 결과 샘플을 집계할 수 있었습니다. 실제로 기존의 도서 추천 파이프라인과 비교해 보면, 키워드 추천 파이프라인이 훨씬 더 간소화된 것을 확인할 수 있습니다.
키워드 추천 샘플에 대한 오프라인 테스트 결과도 매우 긍정적이었고, 곧 A/B 테스트가 이어졌습니다. 사용자 맞춤형 키워드가 검색 섹션에 노출되기 시작하자 놀라운 결과가 나왔습니다. 실험군의 클릭률이 대조군 보다 1.8배 증가했고, 유료 전환율도 약 1.9배 상승했습니다.
즉, Feature Store 도입은 데이터 준비 과정의 복잡성을 대폭 줄이고, 실험 사이클을 빠르게 해 추천 시스템 개발의 효율성과 효과성을 극대화했습니다.
진화하는 추천 시스템:
다음 단계로의 발전
키워드 추천의 성공적 구현은 Feature Store 도입의 중요성을 재확인시켜 주었으며, 리디 추천 시스템 개선 작업에 새로운 확신을 불어넣었습니다. 이 성과를 기반으로, 리디 개발센터는 추천 시스템을 고도화할 다양한 계획을 세워 실행에 옮기고 있습니다. 구체적으로 VAE-CF, DIF-SR, ITEM2VEC 등과 같은 최신 AI 추천 알고리즘을 통합하여 추천의 질을 한 단계 끌어올리며, 저자나 카테고리와 같은 추가적인 메타데이터를 활용해 추천 도메인을 넓혀가고 있습니다. 더 안정적이고 고도화된 MLOps 환경을 구축하기 위해 AWS SageMaker 도입도 준비하고 있습니다.
최근의 난제들 중 흥미로운 것은, AI가 만능 해결책이 아니라는 사실입니다. 실제로 추천 도메인(도서 추천, 키워드 추천 등)과 장르에 따라 데이터 분포는 큰 편차를 보였습니다. 즉, 추천 시스템을 고도화하려면 단일한 방법론이 아닌 Rule-based 시스템, 머신러닝, 딥러닝 등을 상황에 따라 적절히 조합하며 사용하는 전략이 필요합니다.
앞으로 기회가 주어진다면, 앞서 언급한 도전을 극복하는 과정에서 어떤 통찰과 경험을 얻었는지 상세히 공유하고자 합니다. 데이터 엔지니어링을 비롯한 리디 개발 조직은 추천 시스템의 질적 향상뿐만 아니라, 그 과정 중에 마주친 다양한 난제들을 해결해 나가는 여정에도 중요한 가치를 두고 있습니다.
Contributors
- Data Engineer : 오혜성, 오태양, 안수현
- Data Analyst : 김주희
- Product Manager : 임선영
고객과 발맞춰 새로운 콘텐츠 경험을 선보이는
리디와 함께할 당신을 기다립니다.