Making User-Sequence Data More Cost-Efficient, Faster, and Easier to Use

Author: Pinterest Engineering | Source: Medium (Pinterest Engineering) | Published: 2026-05-22


한 줄 요약

“하나의 정의, 여러 런타임” 원칙으로 user sequence(사용자 행동 시퀀스) 플랫폼을 재설계해, 설정-as-code·공유 실행 엔진·람다 아키텍처·컬럼나 저장으로 비용·온보딩 속도·디버깅을 개선.

핵심 주장/내용

  • User sequence = 사용자의 최근 관련 이벤트의 순서화된 리스트 + 각 이벤트의 enrichment(임베딩, 컨텍스트 피처 등). 랭킹·검색·추천 모델(Transformer, attention-over-history)의 핵심 데이터 프리미티브
  • 시퀀스 품질은 다차원: freshness(신선도) + completeness(지각 이벤트/백필 반영) + consistent enrichment(스트리밍·배치 정합) + stable schema
  • 핵심 아이디어 — 하나의 정의, 여러 런타임: signal definition(어떤 원시 이벤트·enrichment·조립 방식)을 한 번 정의해 실시간 인덱싱·배치 백필·온라인 서빙 세 워크로드가 공유 → 학습/서빙 split-brain 방지
  • 설계 결정 4가지: ① 설정-as-code(Python, JSON 컴파일) ② 공유 실행 엔진 + 플러그형 executor(프레임워크/플러그인 분리) ③ 람다 아키텍처(스트리밍=“now” 뷰, 배치=“fix history”) ④ 컬럼나·시간 파티션 저장(blob → 테이블 시맨틱, 필요 컬럼만 읽기)
  • 마이그레이션: 이벤트 타입별로 shadow 시퀀스 생성 → 이벤트 레벨/시퀀스 레벨 2단계 비교 + A/B 실험으로 검증 후 컷오버

주요 수치 / 사실

  • 예시 시퀀스: 사용자의 최근 500개 Pin 인게이지먼트(타임스탬프, 액션 타입, surface, 임베딩 피처)
  • 적용 면: Home Feed, Related Pins, Search Results 등 거의 모든 사용자 대면 surface(organic + ads)
  • 정성적 성과: 인프라 비용 대폭 절감, enrichment/이벤트 타입 온보딩 시간 대폭 단축, 주요 추천 surface 인게이지먼트 개선

관련 위키


Source: 원문 보기