Pinterest / machine-learning

4 개의 포스트

pinterest

Bridging the Gap: Diagnosing Online–Offline Discrepancy in Pinterest’s L1 Conversion Models (새 탭에서 열림)

Pinterest는 L1 전환(CVR) 모델의 오프라인 평가 지표가 대폭 개선되었음에도 불구하고, 실제 온라인 A/B 테스트에서는 CPA 성과가 정체되거나 악화되는 ‘온라인-오프라인(O/O) 불일치’ 현상을 겪었습니다. 심층적인 진단 결과, 이 문제의 핵심은 학습 시 사용된 고차원 피처들이 실시간 서빙 시스템의 임베딩 생성 과정에서 누락되거나 쿼리-핀 타워 간의 모델 버전이 어긋난 데 있었습니다. 이를 해결하기 위해 L1/L2 시스템 간 피처 온보딩을 자동화하고 정합성을 맞춤으로써 오프라인의 모델 개선을 실제 비즈니스 지표의 승리로 연결할 수 있었습니다. ### 오프라인 지표와 온라인 성과의 괴리 * **지표 상의 모순:** 새로운 L1 CVR 모델은 오프라인 평가에서 기존 모델 대비 LogMAE를 20~45% 감소시켰으며, 모든 pCVR 버킷에서 우수한 보정(Calibration) 성능을 보였습니다. * **온라인 실험 결과:** 하지만 실제 운영 환경(Budget-Split 실험)에서는 주요 oCPM 세그먼트의 CPA가 오히려 나빠지거나 중립적인 결과를 보였고, 오프라인 예측과는 다른 트래픽 믹스 변화가 관찰되었습니다. * **가설 수립:** 문제 해결을 위해 '모델 및 평가(데이터 오류)', '서빙 및 피처(시스템 정합성)', '퍼널 및 유틸리티(설계 미스)'의 세 가지 계층으로 가설을 나누어 분석을 시작했습니다. ### 원인 분석에서 제외된 요인들 * **오프라인 평가 오류:** 다양한 로그 소스(경매 낙찰 건, 전체 요청 건 등)를 재검증하고 아웃라이어를 제거한 후에도 오프라인 성능 우위는 견고하게 유지되었으므로 평가 방식 자체의 문제는 아니었습니다. * **노출 편향(Exposure Bias):** 실험군 트래픽 비중을 20%에서 70%까지 높였음에도 온라인 보정 문제가 지속되는 것을 확인하여, 대조군 모델의 지배력으로 인한 편향 문제도 주된 원인이 아님을 밝혀냈습니다. * **서빙 지연 및 타임아웃:** 처리 시간(p50/p90/p99) 및 성공률을 비교한 결과 실험군과 대조군 사이에 유의미한 차이가 없어 시스템 성능 이슈도 배제되었습니다. ### 피처 수준의 온라인-오프라인 불일치 * **누락된 피처 파이프라인:** L1 단계는 지연 시간 단축을 위해 별도의 ANN(근사 최근접 이웃) 인덱스를 사용하는데, 학습 로그에는 존재하던 고영향력 피처들이 정작 온라인 임베딩 생성기에는 온보딩되지 않은 상태였습니다. * **구체적 사례:** 타겟팅 사양(관심사, 검색어 모드), 외부 사이트 전환 방문 횟수(1/7/30/90일), MediaSage 이미지 임베딩 등이 온라인 서빙 시 누락되어 모델이 빈약한 정보만으로 예측을 수행하고 있었습니다. * **해결 방안:** UFR(Unified Feature Representation) 구성을 업데이트하여 누락된 피처를 L1 임베딩 경로에 추가했으며, 향후 L2용으로 온보딩된 피처가 L1 임베딩에도 자동 적용되도록 도구의 기본 동작을 수정했습니다. ### 임베딩 버전 및 아키텍처 불일치 * **Two-tower 버전 스큐:** 오프라인에서는 단일 체크포인트로 평가하지만, 온라인 시스템에서는 쿼리 타워(User)와 핀 타워(Ad)가 사용하는 모델 버전이 일시적으로 일치하지 않는 현상이 발생할 수 있음을 확인했습니다. * **모델 정합성:** 두 타워가 서로 다른 시점의 모델 가중치를 사용할 경우 생성된 임베딩 벡터 간의 거리 계산이 무의미해지며, 이는 곧 L1 단계의 회수(Recall) 성능 저하로 이어집니다. * **시스템적 교훈:** 단순한 모델 알고리즘의 개선보다 학습 환경과 서빙 아키텍처 간의 '기술적 정합성'을 유지하는 파이프라인 관리가 실제 성능에 더 결정적인 영향을 미친다는 것을 입증했습니다. L1 랭킹 모델의 성능 향상이 온라인 지표 개선으로 이어지지 않는다면, 모델 자체의 로직보다는 학습 데이터 피처가 실시간 서빙 아키텍처(ANN, 임베딩 빌더 등)까지 온전히 전달되고 있는지 파이프라인의 종단간 정합성을 가장 먼저 점검해야 합니다.

pinterest

Beyond Two Towers: Re-architecting the Serving Stack for Next-Gen Ads Lightweight Ranking Models… (새 탭에서 열림)

전통적인 추천 시스템의 표준인 'Two-Tower' 모델은 효율적이지만, 사용자-아이템 간의 복잡한 상호작용 특징(Interaction features)을 반영하지 못하는 구조적 한계가 있습니다. 이를 해결하기 위해 핀터레스트는 범용 신경망 기반의 복잡한 랭킹 모델을 도입하기로 결정하고, 이를 지원하기 위한 GPU 기반의 서빙 스택 재설계를 단행했습니다. 데이터 전송 병목 현상을 해결하고 비즈니스 로직을 모델 내부에 통합함으로써, 초기 4,000ms에 달하던 지연 시간을 실시간 서비스 가능한 수준인 20ms까지 단축하는 데 성공했습니다. ### Two-Tower 모델의 한계와 새로운 도전 * **표현력의 제약:** Two-Tower 구조는 사용자(User)와 아이템(Item)을 각각 독립적인 벡터로 인코딩한 뒤 마지막에 내적(Dot product)만 수행하므로, 네트워크 깊은 곳에서 두 피처가 결합되는 '교차 피처(Cross-features)'나 '타겟 어텐션(Target attention)'을 활용하기 어렵습니다. * **복잡한 모델 도입의 필요성:** 보다 정교한 추천을 위해 피처 간의 직접적인 상호작용을 모델링할 수 있는 일반적인 딥러닝 아키텍처 도입이 필요해졌습니다. * **서빙 인프라의 한계:** 기존 인프라는 단순한 연산(내적 또는 ANN 검색)에 특화되어 있어, 무거운 GPU 추론 단계를 지연 시간 손실 없이 통합하는 것이 핵심 과제였습니다. ### 인벤토리 세분화를 통한 피처 패칭(Feature Fetching) 최적화 * **데이터 전송 병목:** 수만 개의 후보군에 대해 네트워크를 통해 피처를 가져오는 I/O 작업이 모델 추론보다 더 긴 시간을 소모하는 문제가 발생했습니다. * **고가치 인벤토리(Segment 1):** 매출 기여도가 높은 약 100만 개의 문서는 피처를 PyTorch 모델 파일 내의 'Registered Buffer' 형태로 직접 삽입했습니다. 이를 통해 모델 가중치처럼 GPU의 고대역폭 메모리(HBM)에 피처가 상주하게 되어 네트워크 오버헤드를 완전히 제거했습니다. * **롱테일 인벤토리(Segment 2):** 나머지 10억 개 이상의 문서는 고성능 Key-Value 저장소와 인-호스트 캐시를 조합하여 피처를 가져오도록 이원화했습니다. ### 비즈니스 로직의 모델 내부 통합 * **데이터 전송량 최소화:** 기존에는 GPU에서 계산된 수만 개의 점수를 모두 CPU로 보낸 뒤 필터링했으나, 이는 Device-to-Host(D2H) 전송 병목을 야기했습니다. * **로직 내재화:** 유틸리티 계산(pCTR, pCVR, 입찰가 조합 등), 다양성 규칙, Top-K 정렬 등의 비즈니스 로직을 PyTorch 텐서 연산으로 구현하여 모델 내부에 포함시켰습니다. * **병렬 처리 이점:** 복잡한 필터링과 정렬을 GPU의 대규모 병렬 연산으로 처리함으로써 CPU 기반 처리보다 속도를 높였고, 최종 결과값(약 1,000개)만 출력하여 전송 효율을 극대화했습니다. ### GPU 추론 가속화 및 시스템 최적화 * **멀티 스트림 CUDA:** 단일 스트림 방식에서 벗어나 여러 CUDA 스트림을 사용하여 데이터 전송(H2D, D2H)과 연산(Compute)이 서로 겹쳐서 수행(Overlap)되도록 설계했습니다. * **커널 퓨전(Kernel Fusion):** Triton 커널을 사용하여 선형 레이어와 활성화 함수 같은 반복적인 레이어 패턴을 하나로 합침으로써 메모리 대역폭 압박을 완화했습니다. * **수치 형식 최적화:** FP32 대신 BF16(Brain Floating Point 16) 형식을 채택하여 메모리 사용량을 줄이고 연산 속도를 높였습니다. * **워커 정렬:** 호스트 CPU 코어 수에 맞춰 워커 스레드 수를 조정하고 고정(Pinning)하여 컨텍스트 스위칭과 락 경합을 최소화했습니다. 이러한 재설계는 고성능 추천 시스템을 구축할 때 모델 아키텍처뿐만 아니라, 데이터 흐름과 하드웨어 가속기(GPU)의 특성을 고려한 인프라 최적화가 필수적임을 보여줍니다. 특히 대규모 트래픽 환경에서 GPU를 효율적으로 활용하려면 비즈니스 로직을 포함한 전체 서빙 파이프라인을 모델과 밀접하게 통합하는 전략이 유효합니다.

pinterest

How Pinterest Built a Real‑Time Radar for Violative Content using AI (새 탭에서 열림)

핀터레스트는 플랫폼 내 유해 콘텐츠 노출 정도를 실시간으로 파악하기 위해 사용자 신고 중심의 지표를 넘어선 '유포율(Prevalence)' 측정 시스템을 구축했습니다. 머신러닝 기반의 가중치 샘플링과 멀티모달 LLM을 결합한 이 시스템은 기존 인적 검토 방식보다 15배 빠른 속도와 낮은 비용으로 매일 노출 위반 사례를 통계적으로 산출합니다. 이를 통해 핀터레스트는 정책 위반 콘텐츠가 사용자에게 미치는 실제 영향력을 정밀하게 모니터링하고 즉각적인 개선 조치를 취할 수 있는 기술적 토대를 마련했습니다. ## 유해 콘텐츠 유포율(Prevalence) 측정의 필요성 * **신고 데이터의 한계 극복:** 자해 콘텐츠와 같이 낙인이 찍힌 분야는 사용자가 신고를 꺼리는 경향이 있으며, 유해 콘텐츠를 직접 찾아보는 사용자는 신고를 하지 않으므로 신고 데이터만으로는 플랫폼의 안전성을 정확히 측정할 수 없습니다. * **노출 중심의 지표 수립:** 콘텐츠의 절대적인 개수보다 해당 콘텐츠가 사용자에게 몇 번 노출되었는지가 중요하므로, '전체 조회수 대비 정책 위반 콘텐츠의 조회수'를 핵심 지표로 정의했습니다. * **기존 인적 검토의 제약 해결:** 과거에는 수동 검토 비용 문제로 6개월마다 간헐적인 조사를 수행했으나, 이는 대응 속도가 느리고 통계적 일관성을 유지하기 어려웠습니다. ## 효율적이고 정교한 ML 기반 샘플링 기법 * **가중치 부여 저수조 샘플링(Weighted Reservoir Sampling):** 일일 노출 스트림에서 위험 점수(Risk Score)와 노출 수가 높은 콘텐츠를 우선적으로 샘플링하여 효율성을 높였습니다. * **편향 없는 통계 추정:** 샘플링 과정에서 발생하는 편향을 제거하기 위해 역확률 가중치(Inverse-probability weighting)를 적용했으며, Hansen–Hurwitz 및 Horvitz–Thompson 비율을 활용해 통계적 일관성을 확보했습니다. * **결측치 처리:** 위험 점수가 없는 신규 콘텐츠의 경우 당일의 중앙값을 할당하여 측정 범위에서 누락되지 않도록 방지하는 안전장치를 마련했습니다. ## 멀티모달 LLM을 통한 대규모 레이블링 자동화 * **속도와 비용의 획기적 개선:** 이미지와 텍스트를 동시에 이해하는 멀티모달 LLM을 활용해 판독 프로세스를 자동화함으로써 인적 검토 대비 15배 빠른 처리 속도와 수십 배 낮은 운영 비용을 달성했습니다. * **전문가 가이드라인 반영:** 정책 전문가(SME)가 검토한 프롬프트를 사용하며, 모델이 내린 결정의 근거와 정책 버전, 모델 ID 등 전체 계보(Lineage)를 기록하여 감사 가능성을 높였습니다. * **지속적인 보정 및 검증:** LLM의 판독 결과가 전문가의 기준(Gold Sets)에서 벗어나지 않도록 주기적인 인간 검증을 수행하며, 모델 드리프트(Drift)를 감시하여 측정의 신뢰도를 유지합니다. ## 시스템 운영 및 가시화 * **대시보드와 알림:** 매일 산출되는 유포율을 95% 신뢰구간(CI)과 함께 시각화하며, 정책 영역별(성인물, 자해, 폭력 등), 서비스 영역별(홈피드, 검색 등)로 세분화하여 분석할 수 있는 기능을 제공합니다. * **확장성 있는 구조:** 특정 LLM에 종속되지 않는 모델 불가지론적(Model-agnostic) 구조를 채택하여 향후 더 성능이 좋은 AI 모델로 손쉽게 교체할 수 있도록 설계했습니다. 이 시스템은 대규모 플랫폼이 AI를 활용하여 정책 위반 콘텐츠를 단순히 차단하는 것을 넘어, 플랫폼 전체의 안전 수준을 어떻게 데이터화하고 관리할 수 있는지에 대한 실질적인 방법론을 제시합니다. 특히 통계적 샘플링과 최신 AI 모델을 결합하여 비용 효율성과 정확성을 동시에 잡은 점이 돋보입니다.

pinterest

Improving Quality of Recommended Content through Pinner Surveys (새 탭에서 열림)

핀터레스트는 클릭 중심의 단순한 사용자 반응을 넘어, 사용자가 진정으로 선호하는 고품질 콘텐츠를 추천하기 위해 직접적인 설문 기반의 머신러닝 모델을 도입했습니다. 이는 '클릭베이트'와 같은 저품질 콘텐츠의 확산을 막고, 사용자의 웰빙과 장기적인 만족도를 우선시하는 '사용자 제일주의(Put Pinners First)' 가치를 실현하기 위한 시도입니다. 결과적으로 설문 데이터를 학습한 모델을 통해 홈피드, 관련 핀, 검색 서비스 전반에서 추천 콘텐츠의 품질을 성공적으로 개선했습니다. **사용자 직접 피드백을 통한 시각적 품질 데이터 확보** - '이미지가 시각적으로 얼마나 즐거움을 주는가?'라는 질문으로 1~5점 척도의 인앱 설문을 실시하여 사용자의 주관적인 품질 인식을 데이터화했습니다. - 예술, 뷰티, DIY, 홈 데코, 패션 등 5가지 주요 카테고리(L1)에서 노출 수 가중치를 적용해 5,000개의 이미지를 선정했습니다. - 개별 사용자의 주관성과 오클릭에 따른 노이즈를 줄이기 위해 이미지당 최소 10명 이상의 응답을 확보하여 평균 점수를 산출했습니다. - 설문 결과, 홈 데코 카테고리가 전반적으로 높은 점수를 받았으며 예술 카테고리는 사용자 간 평가 편차가 가장 크게 나타나는 등 카테고리별 특성이 확인되었습니다. **시각적 품질 예측을 위한 머신러닝 모델링** - 이미지의 시각적·텍스트적 특성과 핀이 저장된 보드 간의 관계를 포함한 핀터레스트 내부 임베딩 기능을 모델의 피처로 활용했습니다. - 5,000개의 상대적으로 작은 데이터셋에서 과적합(Overfitting)을 방지하고 추론 속도 및 비용을 최적화하기 위해 92,000개의 파라미터만을 가진 단순한 완전 연결 신경망(Fully-connected NN) 구조를 채택했습니다. - 절대적인 점수를 예측하는 방식 대신, 두 이미지 중 어떤 것이 더 높은 평가를 받을지 예측하는 '쌍체 순위 지정(Pairwise ranking)' 기법을 적용해 학습 효율을 높였습니다. - 특히 학습 시 동일한 카테고리 내의 이미지만 비교하게 함으로써, 모델이 콘텐츠의 주제(Semantic)가 아닌 순수한 시각적 품질 차이에 집중하도록 설계했습니다. **실용적 인사이트 및 결론** 단순히 클릭률(CTR)과 같은 단기적인 인게이지먼트 지표에만 의존하는 추천 시스템은 장기적으로 콘텐츠의 질을 저하시킬 위험이 있습니다. 핀터레스트의 사례는 정제된 소규모 설문 데이터를 활용해 사용자의 의도를 모델링에 직접 반영함으로써, 비즈니스 지표와 사용자 만족도를 동시에 잡는 '윈-윈' 전략이 가능함을 보여줍니다. 품질에 대한 정의가 모호할수록 전문가의 라벨링보다는 실제 대중 사용자의 피드백을 수집하여 평균적인 인식을 학습시키는 것이 실질적인 추천 서비스 개선에 더 효과적일 수 있습니다.