메인 콘텐츠로 이동하기
  1. 내 글/

개인화된 콘텐츠 제공: Momspresso의 새로운 추천 엔진

오늘날의 콘텐츠가 풍부한 디지털 세계에서 적절한 시기에 적절한 사용자에게 적절한 콘텐츠를 제공하는 것이 중요합니다. Momspresso의 데이터 파이프라인에 대한 이전 작업을 바탕으로, 이제 수백만 Momspresso 사용자를 위해 콘텐츠를 개인화하는 강력한 추천 엔진을 구현했습니다. 이 시스템을 어떻게 구축했는지 자세히 살펴보겠습니다.

도전 과제 #

Momspresso는 다음과 같은 추천 시스템이 필요했습니다:

  1. 대량의 사용자 상호작용 데이터 처리
  2. 빠르게 개인화된 기사 추천 생성
  3. 사용자가 콘텐츠와 상호작용할 때 실시간으로 추천 업데이트
  4. 수백만 명의 사용자와 기사를 처리할 수 있는 확장성

우리의 해결책: Spark 기반 추천 엔진 #

우리는 이전에 구축한 데이터 파이프라인을 활용하는 다중 구성 요소 추천 시스템을 설계했습니다:

1. 데이터 생성 스크립트 #

데이터 파이프라인의 이벤트 저장소를 사용하여 추천 모델의 훈련 세트를 생성하는 스크립트를 만들었습니다. 이를 통해 실제 사용자 상호작용 데이터를 사용하여 모델을 훈련할 수 있습니다.

2. 모델 훈련을 위한 Spark ML-lib #

모델 훈련을 위해 Spark ML-lib 기반 시스템을 설정했습니다. 현재 협업 필터링을 사용하고 있으며, 이는 3-4일의 데이터만으로 빠르게 훈련할 수 있습니다. 이를 통해 모델을 자주 업데이트하여 추천의 관련성을 유지할 수 있습니다.

3. 추천 웹 서비스 #

사용자 ID를 기반으로 기사 추천을 제공하는 웹 서비스를 구축했습니다. 모델을 메모리에 로드하는 높은 지연 시간을 해결하기 위해 Redis를 사용한 캐싱 전략을 구현했습니다. 이를 통해 추천에 대한 빠른 응답 시간을 보장합니다.

4. 추천 삭제 서비스 #

추천을 최신 상태로 유지하기 위해 사용자의 추천에서 본 기사를 제거하는 서비스를 구현했습니다. 이 서비스는 Kafka에 연결되어 조회 이벤트를 수신하고 실시간으로 추천을 업데이트합니다.

우리 추천 엔진의 주요 기능 #

  1. 개인화: 협업 필터링을 사용하여 유사한 사용자의 행동을 기반으로 맞춤형 추천을 제공할 수 있습니다.

  2. 실시간 업데이트: 우리 시스템은 사용자가 콘텐츠와 상호작용할 때 추천을 업데이트하여 관련성을 보장합니다.

  3. 확장성: Spark와 Redis의 사용으로 대량의 데이터와 사용자를 효율적으로 처리할 수 있습니다.

  4. 유연성: 모듈식 설계를 통해 추천 알고리즘을 쉽게 교체하거나 향후 새로운 기능을 추가할 수 있습니다.

구현 및 결과 #

Momspresso 플랫폼에 추천 엔진을 통합하는 것은 간단했습니다. 프로덕션 웹사이트의 피드 중 하나에 대한 API로 새로운 추천 웹 서비스를 사용하기 위해 Nginx에서 작은 구성 변경을 했습니다.

초기 결과는 유망했습니다:

  • 참여도 증가: 사용자들이 플랫폼에서 더 많은 시간을 보내고 세션당 더 많은 기사를 읽고 있습니다.
  • 향상된 발견: 사용자들이 더 다양한 콘텐츠를 찾고 참여하고 있습니다.
  • 향상된 사용자 만족도: 초기 피드백에 따르면 사용자들이 개인화된 추천을 가치 있게 여깁니다.

앞으로의 계획 #

추천 엔진을 계속 개선하면서 몇 가지 향후 개선 사항에 대해 기대하고 있습니다:

  1. 다중 모델 접근: 다양한 유형의 콘텐츠나 사용자 세그먼트에 대해 다른 추천 모델 구현.
  2. 콘텐츠 기반 필터링: 특히 새로운 콘텐츠나 틈새 콘텐츠에 대한 추천을 개선하기 위해 기사 특성 통합.
  3. A/B 테스트 프레임워크: 다양한 추천 전략을 쉽게 테스트할 수 있는 시스템 구축.

추천 엔진을 지속적으로 개선함으로써 Momspresso가 사용자에게 더 많은 가치를 제공하고, 사용자들이 참여하고 개인화된 콘텐츠를 위해 계속 돌아오도록 돕고 있습니다.

다음 게시물에서는 데이터 파이프라인과 추천 엔진을 사용하여 Momspresso의 콘텐츠 전략에 대한 실행 가능한 인사이트를 도출하는 방법에 대해 논의할 예정이니 계속 지켜봐 주세요!