personalization

5 개의 포스트

개인화와 실험을 위한 별도의 기술 스택을 사용하는 이유 | Spotify 엔지니어링 (새 탭에서 열림)

스포티파이는 개인화(Personalization)와 실험(Experimentation)을 서로 다른 기술 스택으로 분리하여 운영합니다. 개인화 시스템은 머신러닝(ML) 스택을 통해 구축하고, 이렇게 구축된 시스템의 성과와 가치는 실험 스택인 'Confidence' 플랫폼을 통해 검증하는 구조를 취합니다. 이러한 분리를 통해 스포티파이는 각 인프라의 전문성을 유지하면서도 기술적 부채를 방지하고 대규모 시스템을 효율적으로 확장하고 있습니다. ### 실험에서 개인화로의 진화와 컨텍스트 밴딧 * **A/B 테스트와 멀티 암드 밴딧(MAB):** 일반적인 A/B 테스트는 모든 사용자에게 평균적으로 가장 좋은 버전을 찾습니다. 반면, MAB는 실험 중에 성과가 좋은 그룹에 더 많은 트래픽을 동적으로 할당하여 효율성을 높입니다. * **컨텍스트 밴딧(Contextual Bandits):** 사용자 특성(나이, 위치, 과거 행동 등)에 따라 각기 다른 최적의 '대안(Arm)'을 제공합니다. 이는 더 이상 하나의 최고 버전을 찾는 것이 아니라, 개별 사용자에게 맞춤화된 경험을 제공하는 '개인화' 영역으로 진입함을 의미합니다. * **시스템으로서의 개인화:** 컨텍스트 밴딧이 도입되면 실험의 목적은 특정 버튼의 효과 측정이 아니라, "이 개인화 시스템이 기존 시스템보다 더 큰 가치를 창출하는가?"라는 시스템 평가로 전환됩니다. ### 기술 스택을 분리해야 하는 인프라적 이유 * **성능 및 지연 시간(Latency) 요구사항:** 개인화 모델(NN, LLM, 부스팅 모델 등)은 실시간 데이터 기반의 추론과 극도로 낮은 지연 시간을 요구합니다. 이를 위해 최적화된 ML 스택이 필요하며, 실험 도구가 이러한 성능 요구사항을 모두 수용하려 하면 시스템이 지나치게 비대해집니다. * **기술적 부채 방지:** 실험 스택과 ML 스택의 관심사를 혼합하면 시스템 간 결합도가 높아져 관리하기 어려운 기술적 부채가 발생합니다. 스포티파이는 이를 분리함으로써 각 플랫폼이 고유의 목적에 집중하게 합니다. * **복잡한 모델 지원:** ML 플랫폼은 대규모 피처 세트와 복잡한 알고리즘을 학습하고 서빙하는 데 특화되어 있어, 단순한 실험 도구보다 정교한 개인화 로직 구현에 유리합니다. ### 분리를 통한 평가 체계의 명확성 * **재귀적 평가의 필요성:** 컨텍스트 밴딧이나 추천 알고리즘 자체도 하나의 '기능'입니다. 따라서 새로운 알고리즘 버전이 기존 버전보다 나은지 확인하기 위해서는 별도의 A/B 테스트가 필요합니다. * **관심사 분리(Separation of Concerns):** ML 스택은 "어떻게 개인화할 것인가"를 담당하고, 실험 스택은 "이 개인화가 실제로 효과가 있는가"를 측정합니다. * **병렬 실험 가능:** 실험 플랫폼을 독립적으로 유지함으로써, 수천 개의 다른 실험들과 간섭 없이 개인화 모델의 성능을 동시에 테스트하고 확장할 수 있습니다. 성공적인 개인화 서비스를 구축하려면 개인화 알고리즘(컨텍스트 밴딧 등)을 실험의 도구가 아닌, **검증 대상이 되는 제품의 기능**으로 정의해야 합니다. 저지연 모델 서빙과 복잡한 피처 처리는 전용 ML 스택에 맡기고, 실험 플랫폼은 이를 객관적으로 비교·평가하는 역할에 집중하는 것이 기술적 유연성과 운영 효율성을 동시에 잡는 길입니다.

디스코드 테마를 변경 (새 탭에서 열림)

디스코드는 사용자가 데스크톱과 모바일 환경 모두에서 자신만의 개성을 표현할 수 있도록 앱의 시각적 테마 기능을 강화했습니다. 모든 사용자는 네 가지 기본 테마를 자유롭게 선택할 수 있으며, 니트로(Nitro) 구독자에게는 더욱 폭넓은 색상 옵션과 커스텀 기능이 제공됩니다. 이를 통해 기존의 단순한 라이트·다크 모드를 넘어 더욱 다채로운 사용자 인터페이스 환경을 구축할 수 있게 되었습니다. **사용자 권한에 따른 테마 선택 폭** * **일반 사용자:** 앱의 룩앤필을 변경할 수 있는 4가지 기본 테마가 모든 사용자에게 무료로 제공됩니다. * **니트로 멤버 전용 혜택:** 니트로 구독자는 기본 테마 외에 28가지의 추가 컬러 테마를 즉시 사용할 수 있습니다. * **커스텀 테마 제작:** 니트로 멤버는 제공된 프리셋을 사용하는 것에 그치지 않고, 본인의 취향에 맞는 고유한 커스텀 테마를 직접 제작하여 적용할 수 있습니다. **설정 편의성 및 플랫폼 호환성** * **멀티 디바이스 지원:** 테마 설정은 데스크톱 앱과 모바일 앱 모두에서 동일하게 적용되어 어디서든 일관된 시각적 경험을 유지합니다. * **직관적인 인터페이스:** 기존의 라이트 모드나 다크 모드를 전환하던 방식과 동일하게 설정 메뉴에서 간편하게 새로운 테마를 탐색하고 적용할 수 있습니다. 기존의 단조로운 배경색에서 벗어나 자신만의 소통 환경을 꾸미고 싶다면 디스코드 설정의 테마 메뉴를 확인해 보시기 바랍니다. 특히 니트로 사용자라면 제공되는 다양한 색상 조합과 커스텀 기능을 활용해 최적화된 시각적 분위기를 연출해 보는 것을 추천합니다.

디스코드 프로필 꾸 (새 탭에서 열림)

디스코드 프로필은 사용자가 서버나 그룹 DM에 참여할 때 타인에게 가장 먼저 노출되는 핵심적인 요소입니다. 인터넷 사용자들은 새로운 사람을 만났을 때 본능적으로 상대방의 프로필을 클릭하여 정보를 확인하므로, 프로필은 온라인상의 첫인상을 결정짓는 중요한 역할을 합니다. 이 글은 사용자가 자신을 원하는 모습으로 표현할 수 있도록 프로필을 맞춤 설정하고 편집하는 것의 중요성을 강조합니다. **프로필을 통한 첫인상 형성의 중요성** - 사용자가 새로운 커뮤니티나 대화방에 입장할 때, 다른 구성원들이 가장 먼저 확인하는 것은 해당 사용자의 프로필입니다. - 새로운 사용자를 발견하자마자 프로필을 클릭하는 행위는 현대 인터넷 환경에서 일종의 '본능'과 같은 습관으로 자리 잡았습니다. **개성을 반영한 프로필 맞춤 설정** - 프로필을 통해 자신이 다른 사람들에게 어떻게 비춰지길 원하는지 스스로 결정하고 이를 시각적으로 구현할 수 있습니다. - 단순히 정보를 나열하는 것을 넘어, 사용자 본인의 정체성을 가장 잘 나타낼 수 있는 방식으로 프로필을 편집하고 꾸미는 과정이 필요합니다. 따라서 본인을 가장 잘 나타낼 수 있는 이미지와 소개 문구를 활용해 프로필을 주기적으로 업데이트하는 것을 권장합니다. 이를 통해 온라인상에서 긍정적인 첫인상을 구축하고, 자신만의 독특한 디지털 정체성을 효과적으로 전달해 보시기 바랍니다.

사용자 피드백을 바탕으로 (새 탭에서 열림)

페이스북 릴스(Facebook Reels)는 단순한 '좋아요'나 시청 시간 같은 지표를 넘어, 사용자 피드백을 직접 활용하여 개인화된 추천 시스템의 성능을 대폭 개선했습니다. 새롭게 도입된 UTIS(User True Interest Survey) 모델은 사용자의 실제 관심사를 정밀하게 파악함으로써 니치(Niche)한 고품질 콘텐츠의 노출을 늘리고 사용자의 만족도와 유지율을 높이는 데 성공했습니다. 결과적으로 이번 연구는 암묵적인 행동 데이터와 명시적인 사용자 설문을 결합했을 때 추천 시스템의 장기적인 가치가 어떻게 극대화될 수 있는지를 보여줍니다. **기존 행동 지표의 한계와 진정한 관심사 측정** * 기존의 추천 시스템은 시청 시간이나 공유와 같은 행동 신호에 의존하지만, 이러한 데이터는 노이즈가 많고 사용자의 장기적인 만족도를 완전히 반영하지 못하는 한계가 있습니다. * 조사 결과, 기존의 휴리스틱 기반 관심사 파악 방식은 실제 사용자의 관심사를 식별하는 데 있어 정밀도가 48.3%에 불과한 것으로 나타났습니다. * 페이스북은 단순한 주제 정합성을 넘어 오디오, 제작 스타일, 분위기 등 사용자가 체감하는 다양한 차원을 측정하기 위해 대규모 실시간 설문을 피드 내에 도입했습니다. **UTIS(User True Interest Survey) 모델 프레임워크** * 매일 무작위로 선정된 사용자에게 "이 영상이 당신의 관심사와 얼마나 일치합니까?"라는 질문을 1~5점 척도로 제시하여 실시간 피드백을 수집합니다. * 수집된 설문 데이터는 노이즈를 줄이기 위해 이진화(Binarized) 처리를 거치며, 샘플링 편향을 보정하기 위해 가중치를 적용하여 학습 데이터셋으로 구축됩니다. * 메인 랭킹 모델의 예측값을 입력 피처로 사용하는 경량화된 '인지 레이어(Perception Layer)'를 설계하여, 희소한 설문 데이터를 전체 추천 시스템에 일반화할 수 있도록 구현했습니다. **추천 시스템 파이프라인으로의 통합** * **지연 단계 랭킹(Late Stage Ranking, LSR):** UTIS 모델의 점수를 최종 랭킹 공식의 추가 피처로 투입하여, 관심사 일치도가 높은 영상에는 가산점을 주고 낮은 영상은 순위를 낮추는 정밀 조정을 수행합니다. * **초기 단계 랭킹(Retrieval):** 설문 데이터를 집계하여 사용자의 진정한 관심사 프로필을 재구축하고, 이를 기반으로 후보군을 추출합니다. 또한 지식 증류(Knowledge Distillation) 기법을 활용해 LSR의 UTIS 예측값을 검색 모델 학습에 반영합니다. * 이러한 다단계 통합을 통해 단순 인기 기반의 저품질 콘텐츠 추천은 줄이고, 사용자 개인에게 최적화된 고품질 니치 콘텐츠의 비중을 높였습니다. **성과 및 실용적 함의** * UTIS 모델 도입 이후 리텐션(재방문율) 지표가 유의미하게 개선되었으며 좋아요, 공유, 팔로우와 같은 능동적 참여율도 상승했습니다. * 시청 시간만을 최적화할 때 발생할 수 있는 '저품질 대중 콘텐츠 도배' 문제를 해결하고, 장기적인 플랫폼 건강도를 높이는 결과를 얻었습니다. * 이번 사례는 대규모 추천 시스템을 운영할 때 사용자 행동 데이터(Implicit)와 직접적인 피드백(Explicit)을 결합한 '인지 모델'을 구축하는 것이 정교한 개인화를 위해 필수적임을 시사합니다.

동적 사용자 분할을 활용한 새로운 A/B 테스트 시스템을 소개합니다 (새 탭에서 열림)

동적 유저 세분화(Dynamic User Segmentation) 기술을 도입한 새로운 A/B 테스트 시스템은 사용자 ID 기반의 단순 무작위 배분을 넘어 특정 속성과 행동 패턴을 가진 정교한 사용자 그룹을 대상으로 실험을 수행할 수 있게 합니다. 이 시스템은 타겟팅 엔진과 테스트 할당 로직을 분리하여 데이터 기반의 의사결정 범위를 개인화된 영역까지 확장하며, 서비스 품질 향상과 리소스 최적화라는 두 가지 목표를 동시에 달성합니다. 결과적으로 개발자와 마케터는 복잡한 사용자 시나리오에 대해 더욱 정확하고 신뢰할 수 있는 실험 데이터를 얻을 수 있습니다. ### 기존 A/B 테스트 방식과 고도화의 필요성 * **무작위 배분의 특징**: 일반적인 시스템은 사용자 ID를 해싱하여 실험군과 대조군으로 무작위 할당하며, 구현이 쉽고 선택 편향(Selection Bias)을 줄일 수 있다는 장점이 있습니다. * **타겟팅의 한계**: 전체 사용자를 대상으로 하는 일반적인 테스트에는 적합하지만, '오사카에 거주하는 iOS 사용자'처럼 특정 조건을 충족하는 집단만을 대상으로 하는 정교한 실험에는 한계가 있습니다. * **고도화된 시스템의 목적**: 사용자 세그먼트를 동적으로 정의함으로써, 서비스의 특정 기능이 특정 사용자 층에게 미치는 영향을 정밀하게 측정하기 위해 도입되었습니다. ### 유저 세분화를 위한 타겟팅 시스템 아키텍처 * **데이터 파이프라인**: HDFS에 저장된 사용자 정보(UserInfo), 모바일 정보(MobileInfo), 앱 활동(AppActivity) 등의 빅데이터를 Spark를 이용해 분석하고 처리합니다. * **세그먼트 연산**: Spark의 RDD 기능을 활용하여 합집합(Union), 교집합(Intersect), 차집합(Subtract) 등의 연산을 수행하며, 이를 통해 복잡한 사용자 조건을 유연하게 조합할 수 있습니다. * **데이터 저장 및 조회**: 처리된 결과는 `{user_id}-{segment_id}` 형태의 키-값 쌍으로 Redis에 저장되어, 실시간 요청 시 매우 낮은 지연 시간으로 해당 사용자의 세그먼트 포함 여부를 확인합니다. ### 효율적인 실험 관리와 할당 프로세스 * **설정 관리(Central Dogma)**: 실험의 설정값은 오픈 소스 설정 저장소인 Central Dogma를 통해 관리되며, 이를 통해 코드 수정 없이 실시간으로 실험 설정을 변경하고 동기화할 수 있습니다. * **할당 로직(Test Group Assigner)**: 클라이언트의 요청이 들어오면 할당기는 Central Dogma에서 실험 정보를 가져오고, Redis를 조회하여 사용자가 타겟 세그먼트에 속하는지 확인한 후 최종 실험군을 결정합니다. * **로그 및 분석**: 할당된 그룹 정보는 로그 스토어에 기록되어 사후 분석 및 대시보드 시각화의 기초 자료로 활용됩니다. ### 주요 활용 사례 및 향후 계획 * **콘텐츠 및 위치 추천**: 특정 사용자 세그먼트에 대해 서로 다른 머신러닝(ML) 모델의 성능을 비교하여 최적의 추천 알고리즘을 선정합니다. * **마케팅 및 온보딩**: 구매 빈도가 낮은 '라이트 유저'에게만 할인 쿠폰 효과를 테스트하거나, '신규 가입자'에게만 온보딩 화면의 효과를 측정하여 불필요한 비용을 줄이고 효율을 높입니다. * **플랫폼 확장성**: 향후에는 LY Corporation 내의 다양한 서비스로 플랫폼을 확장하고, 실험 생성부터 결과 분석까지 한 곳에서 관리할 수 있는 통합 어드민 시스템을 구축할 계획입니다. 이 시스템은 실험 대상자를 정교하게 선별해야 하는 복잡한 서비스 환경에서 데이터의 신뢰도를 높이는 데 매우 효과적입니다. 특히 마케팅 비용 최적화나 신규 기능의 타겟 검증이 필요한 팀이라면, 단순 무작위 할당 방식보다는 유저 세그먼트 기반의 동적 타겟팅 시스템을 구축하거나 활용하는 것을 권장합니다.