contrastive-learning

5 개의 포스트

‘로컬’ 슈퍼 앱에서 장기 유저 모델링은 어떻게 달라질까? (새 탭에서 열림)

당근(Karrot)은 유저의 장기적인 행동 패턴과 여러 버티컬을 넘나드는 관심을 포착하기 위해 Transformer 기반의 장기 유저 모델링 시스템을 구축했습니다. 대규모 행동 로그를 대조 학습(Contrastive Learning)으로 학습하여 공통 유저 임베딩을 생성하고, 이를 홈피드와 광고 등 다양한 추천 지면에 적용함으로써 서비스 전반의 온라인 지표를 개선했습니다. 특히 지역 기반 서비스의 특성을 반영한 배치 샘플링 전략과 대규모 콘텐츠 임베딩 학습 기법을 통해 기술적 한계를 극복하며 개인화 추천의 품질을 한 단계 높였습니다. ### 장기 유저 모델링의 필요성과 구조적 접근 * 단기 히스토리만으로는 파악하기 어려운 계절적 취향, 이사 등 특정 시기에 발생하는 반복적 관심사, 그리고 중고거래와 알바 등 여러 서비스를 넘나드는 유저의 통합적 의도를 파악하기 위해 장기 모델링을 도입했습니다. * 실시간 랭킹 모델의 지연 시간(Latency) 문제를 해결하기 위해, 별도의 유저 인코더가 오프라인에서 임베딩을 생성하고 다운스트림 모델들이 이를 '공통 피처'로 사용하는 디커플링 구조를 채택했습니다. * 수백억 건의 다중 버티컬 로그를 활용해 유저의 다음 액션을 예측(Next Action Prediction)하는 방식으로 학습하며, 이는 기존 모델 대비 약 150배 많은 데이터를 활용한 결과입니다. ### 콘텐츠 임베딩 전환과 인프라 최적화 * 아이템 ID 기반 임베딩의 한계인 신규 아이템 대응 불가(Cold Start) 문제와 GPU 메모리 점유 문제를 해결하기 위해, LLM 기반의 콘텐츠 임베딩으로 전환했습니다. * 임베딩 테이블이 차지하던 메모리를 Transformer 모델 스케일업에 집중하여 파라미터 수를 ID 기반 모델 대비 1,000배 확장하는 데 성공했습니다. * 수백 GB 규모의 대규모 임베딩 데이터를 처리하기 위해 `memmap`을 사용하여 필요한 시점에만 데이터를 디스크에서 읽고, `bbhash(Minimal Perfect Hash)`를 통해 ID 매핑에 필요한 메모리를 97% 절감하는 기술적 최적화를 수행했습니다. ### 지역성을 고려한 지역 제한 배치 샘플링 (RCBS) * 당근은 거래의 86%가 반경 5km 이내에서 발생하는 지역 기반 서비스로, 유저가 물리적으로 볼 수 없는 지역의 아이템은 학습 시 의미 없는 부정 샘플(Impossible Negatives)이 되어 학습 신호를 희석시켰습니다. * 이를 해결하기 위해 같은 지역 유저끼리 미니배치를 구성하는 '지역 제한 배치 샘플링(RCBS)'을 도입하여, 유효한 부정 샘플(Feasible Negatives)의 비중을 2%에서 70%로 대폭 끌어올렸습니다. * 단순히 부적절한 샘플을 제거하는 마스킹 방식 대신 배치 구성을 변경함으로써, 효과적인 배치 사이즈를 유지하면서도 유저의 세밀한 취향을 구분해야 하는 '어려운 부정 샘플(Hard Negative)' 학습 효과를 얻었습니다. ### 실전 적용 및 운영 전략 * 생성된 유저 임베딩은 홈피드와 광고 랭킹 모델의 추가 피처로 입력되어 장기 취향을 보강하거나, 추천 후보(Retrieval) 모델의 독립적인 소스로 활용되어 결과의 다양성을 높였습니다. * 유저의 최신 취향을 반영하기 위해 GCP Dataflow와 Beam 파이프라인을 활용해 24시간 주기로 임베딩을 갱신하며, 최근 활동이 있는 유저만 선별적으로 추론하여 비용과 시간을 최적화했습니다. * 온라인 A/B 테스트 결과, 임베딩의 갱신 주기가 짧을수록 성능이 향상됨을 확인했으며 향후 실시간 추론에 가까운 시스템 구축을 과제로 삼고 있습니다.

행동 시퀀스 모델링 (새 탭에서 열림)

핀터레스트는 사용자의 오프사이트(offsite) 행동 이력을 분석하여 미래의 전환 가능성을 예측하는 행동 시퀀스 모델링(Behavioral Sequence Modeling)을 통해 광고 후보군 생성 시스템을 혁신했습니다. 이 시스템은 트랜스포머(Transformer) 기반의 투타워(Two-tower) 구조를 활용해 사용자별로 개인화된 광고주 및 상품을 추천하며, 이를 통해 광고의 관련성을 높이고 광고주 측면에서는 전환 비용(CPA)을 낮추는 성과를 거두었습니다. 결과적으로 수억 개의 상품 카탈로그 속에서 사용자의 진화하는 쇼핑 의도를 실시간으로 포착하여 정교한 광고 서빙이 가능해졌습니다. **광고주 상호작용 예측 모델 (Phase 1)** - 사용자가 과거에 조회, 구매, 장바구니에 담은 상품 시퀀스를 분석하여 다음에 상호작용할 가능성이 높은 광고주를 예측합니다. - 사용자 타워는 양방향 트랜스포머(Bidirectional Transformer)를 사용하여 이벤트 시퀀스를 인코딩하고, 광고주 타워는 MLP 레이어를 통해 광고주를 표현하는 투타워 구조를 채택했습니다. - 학습 시에는 체크아웃, 장바구니 담기, 가입 등을 양성(Positive) 샘플로 정의하고, 샘플링된 소프트맥스 손실(Sampled Softmax Loss)과 인기 항목에 대한 과도한 페널티를 방지하기 위한 Log-Q 편향 수정을 적용했습니다. - 오프라인 평가에서 200만 개의 광고주 임베딩을 대상으로 Recall@K를 측정하여 성능을 검증했으며, 온라인 실험 결과 전환수 증가와 CPA 감소라는 유의미한 비즈니스 지표 개선을 확인했습니다. **상품 단위(Item-level) 예측으로의 확장 (Phase 2)** - 광고주 단위를 넘어 특정 상품(Pin)을 직접 예측함으로써 더욱 깊이 있는 개인화와 효율적인 광고 전달 시스템을 구축했습니다. - 10억 개 이상의 방대한 상품 데이터를 처리하기 위해 핀터레스트 내부의 핀(Pin) 임베딩과 카탈로그 메타데이터를 통합하여 더욱 풍부한 상품 표현력을 확보했습니다. - 대규모 아이템 코퍼스를 다루기 위해 인배치 부정 샘플(In-batch negatives)과 2,000만 개의 무작위 샘플링된 핀을 혼합하여 대조 학습(Contrastive Learning)의 효과를 극대화했습니다. - 일 단위 추론 작업을 통해 최근 활동이 있는 사용자의 임베딩을 업데이트하고, 이를 온라인 피처 스토어에 게시하여 실시간 서빙 시스템에서 활용합니다. **서빙 플로우 및 성능 평가** - 오프라인 배치 워크플로우에서 예측된 상위 100개의 광고주/상품 리스트를 온라인 피처 스토어에 저장하고, 광고 요청 시 L1 랭커와 L2 랭커로 전달하여 최종 광고를 선정합니다. - 모델 성능은 단순 MLP 기반의 풀링(Max/Mean Pooling) 모델을 베이스라인으로 설정하고, 이보다 우수한 Recall@K 성능을 보이는 트랜스포머 모델을 최종 선택했습니다. - 아이템 단위 예측은 하위 단계의 랭킹 모델이 처리해야 할 후보군 수를 최적화함으로써 시스템의 확장성을 높이고 사용자 만족도를 증진시키는 역할을 합니다. 단순한 인구통계학적 타겟팅에서 벗어나 사용자의 실시간 행동 시퀀스를 반영하는 임베딩 기반 검색(Embedding-based Retrieval) 시스템을 구축하는 것이 대규모 커머스 플랫폼에서 광고 효율을 극대화하는 핵심 전략임을 보여줍니다. 특히 아이템 수가 기하급수적으로 늘어날수록 광고주 단위가 아닌 개별 상품 단위의 시퀀스 모델링이 필수적입니다.

PinLanding: 멀티모달 (새 탭에서 열림)

Pinterest의 'PinLanding'은 수십억 개의 제품 데이터를 멀티모달 AI를 통해 정교한 쇼핑 컬렉션으로 자동 변환하는 프로덕션 파이프라인입니다. 기존의 수동 큐레이션이나 단순 검색 기록 기반 방식에서 벗어나, 제품의 이미지와 텍스트를 직접 분석하여 사용자의 복잡하고 긴 꼬리형(Long-tail) 검색 의도에 맞는 컬렉션을 생성합니다. 이 시스템은 비전-언어 모델(VLM)을 통한 속성 추출과 CLIP 스타일의 효율적인 임베딩 모델을 결합하여 대규모 데이터셋에서도 정밀도와 확장성을 동시에 확보했습니다. **사용자 쇼핑 의도와 데이터 신호의 특성화** * 사용자의 검색 기록, 자동 완성 상호작용, 필터 사용 패턴을 분석하여 쇼핑 의도의 분포를 파악합니다. * '검은색 칵테일 드레스'와 같은 정형화된 주요 쿼리(Head)뿐만 아니라, '이탈리아 여름 휴가 때 입을 옷'과 같은 서술형 및 대화형 쿼리에 대응하는 것을 목표로 합니다. * 색상, 상황, 스타일, 핏 등 20개 카테고리에 걸친 속성 차원을 정의하여, 수요는 높지만 기존 검색 결과가 부족한 영역을 식별합니다. **VLM과 LLM-as-Judge를 활용한 쇼핑 토픽 정제** * 제품의 이미지와 메타데이터를 비전-언어 모델(VLM)에 입력하여 정규화된 키-값 쌍 형태의 속성을 생성합니다. * 초기 VLM 출력의 너무 구체적이거나 중복된 속성(예: 'boho'와 'bohemian')을 해결하기 위해 빈도 기반 필터링과 임베딩 기반 클러스터링을 수행합니다. * 최종적으로 'LLM-as-judge' 단계를 거쳐 추출된 속성들이 실제 쇼핑 의도와 일치하는지, 의미적으로 일관성이 있는지 평가하여 고품질의 쇼핑 토픽 사전을 구축합니다. **CLIP 스타일 모델을 통한 대규모 속성 할당** * 모든 제품에 VLM을 직접 적용하는 것은 비용이 과다하므로, 이미지-텍스트를 정렬하는 CLIP 스타일의 듀얼 인코더 모델을 별도로 학습시킵니다. * 제품 인코더와 속성 구절 인코더를 통해 각각의 임베딩을 생성하고, 두 벡터 간의 유사도가 임계치를 넘을 때 속성을 할당합니다. * 이 방식은 VLM 대비 연산 비용을 획기적으로 낮추면서도, 제품별 속성 밀도를 높여 더욱 일관된 제품-속성 그래프를 형성합니다. **Ray 및 Spark 기반의 효율적인 배치 추론 및 피드 구축** * 수백만 개의 핀(Pin)과 토픽을 처리하기 위해 Ray 프레임워크를 사용하여 GPU와 CPU 리소스를 독립적으로 확장하며 스트리밍 방식으로 추론을 수행합니다. * CLIP 기반 분류기는 8개의 NVIDIA A100 GPU에서 약 12시간 만에 학습 및 추론을 완료하며, 회당 비용을 약 500달러 수준으로 절감했습니다. * 최종 피드 구성은 Apache Spark를 활용하여 제품과 쇼핑 토픽 간의 속성 유사도를 계산하고, 가중치 기반 스코어링을 통해 관련성 높은 제품들을 컬렉션으로 묶어냅니다. PinLanding 시스템은 AI가 단순한 키워드 매칭을 넘어 제품의 시각적, 맥락적 의미를 깊이 있게 이해할 수 있음을 보여줍니다. 대규모 이커머스 환경에서 사용자에게 개인화되고 탐색 가능한 쇼핑 경험을 제공하려는 기업은 VLM을 통한 '지식 추출'과 CLIP 스타일 모델을 통한 '효율적 확산' 전략을 참고할 가치가 있습니다.

​한국어와 이미지를 한 번에, 카카오의 멀티모달 임베딩 모델 개발기 (새 탭에서 열림)

카카오는 한국어 환경과 다양한 서비스 시나리오에 최적화된 멀티모달 임베딩 모델인 'Kanana-v-embedding'을 개발했습니다. 이 모델은 비전-언어 모델(VLM) 아키텍처를 기반으로 텍스트와 이미지를 하나의 공통된 의미 공간에 표현하여, 검색, 추천, RAG(검색 증강 생성) 등에서 발생하는 복합적인 모달리티 요구사항을 효과적으로 해결합니다. 특히 지시어(Instruction) 기반 학습과 가변 차원 임베딩 기술을 적용하여 실무적인 유연성과 성능을 동시에 확보한 것이 특징입니다. **멀티모달 임베딩의 개념과 VLM 기반 아키텍처** * 텍스트와 이미지를 고정 길이의 벡터로 변환하여 동일한 의미 공간상에 배치함으로써, 서로 다른 형태의 데이터 간 유사도를 코사인 유사도 등으로 직접 비교할 수 있게 합니다. * 기존 CLIP 모델이 텍스트와 이미지를 독립적으로 처리하여 복합 입력에 한계가 있었던 점을 극복하기 위해, VLM 기반 프레임워크를 채택했습니다. * 텍스트와 이미지 토큰이 트랜스포머 레이어를 거친 후, 마지막 히든 스테이트의 [EOS] 토큰 표현을 추출하고 정규화하여 최종 임베딩으로 사용합니다. **지시어 기반 학습 및 가변 차원 지원** * 검색, 추천, 분류 등 수행하려는 태스크의 목적에 맞는 지시어(Instruction)를 입력 쿼리와 함께 제공하여, 목적에 특화된 임베딩 표현을 생성할 수 있도록 설계했습니다. * 마트료시카 표현 학습(Matryoshka Representation Learning) 기법을 적용하여 64차원부터 2,048차원까지 다양한 임베딩 크기를 지원합니다. * 이를 통해 지연 시간(Latency)이 중요한 서비스 환경과 고성능 품질이 필요한 환경 모두에 유연하게 대응할 수 있는 운영 편의성을 갖췄습니다. **성능 극대화를 위한 학습 테크닉과 KoEmbed 데이터셋** * 그래디언트 캐싱(Gradient Caching) 기술을 도입하여 GPU 메모리 한계를 극복하고 대규모 배치 사이즈(8k 이상) 학습을 구현함으로써 대조 학습의 효율을 극대화했습니다. * 하드 네거티브 마이닝(Hard Negative Mining)을 통해 정답과 유사하지만 실제로는 오답인 샘플을 학습에 활용하여 모델의 변별력을 높였습니다. * 한국어와 카카오 서비스 특유의 문맥을 반영하기 위해 텍스트-텍스트, 텍스트-이미지 쌍으로 구성된 대규모 내부 데이터셋 'KoEmbed'를 구축하여 학습에 투입했습니다. **벤치마크를 통한 성능 검증 및 실무 적용** * 한국어 텍스트 임베딩 성능 측정 지표인 Ko-StrategyQA를 포함한 MTEB 벤치마크에서 기존 모델들을 제치고 종합 1위를 기록하며 탁월한 한국어 이해 능력을 입증했습니다. * 멀티모달 검색 성능 지표인 M-BEIR에서도 글로벌 수준의 성능을 확인하여 텍스트-이미지 교차 검색 및 추천에서의 경쟁력을 확보했습니다. * 이 모델은 카카오톡 앨범 검색, 유사 상품 추천, 멀티모달 RAG 시스템 등 다양한 실 서비스에 적용되어 사용자 경험을 개선하는 데 활용될 예정입니다. Kanana-v-embedding은 단순한 기술적 연구를 넘어 한국어 사용자에게 실질적인 가치를 제공하기 위해 최적화된 모델입니다. 한국어 서비스 환경에서 텍스트와 이미지를 동시에 다루며 성능과 효율성을 모두 잡아야 하는 개발자들에게 이 모델의 대조 학습 최적화 기법과 가변 차원 임베딩 방식은 훌륭한 기술적 이정표가 될 것입니다.

SensorLM: 웨어 (새 탭에서 열림)

구글 리서치가 발표한 SensorLM은 약 6,000만 시간 분량의 방대한 웨어러블 센서 데이터를 자연어와 연결하여 학습한 새로운 유형의 센서-언어 파운데이션 모델입니다. 이 모델은 스마트워치 등이 수집하는 복잡한 센서 신호를 인간이 이해할 수 있는 정교한 설명으로 변환함으로써, 단순한 수치 기록을 넘어 행동의 맥락과 원인을 파악하는 헬스케어의 새로운 지평을 열었습니다. 대규모 멀티모달 학습을 통해 제로샷 활동 인식 및 텍스트 생성 분야에서 기존 모델을 뛰어넘는 성능을 입증하며 개인 맞춤형 건강 관리의 가능성을 제시합니다. **데이터셋 구축 및 자동화된 캡션 생성** - 127개국 10만 명 이상의 동의를 얻은 익명화된 핏빗(Fitbit) 및 픽셀 워치 데이터를 활용하여 총 5,970만 시간 분량의 역대 최대 규모 센서-언어 데이터셋을 구축했습니다. - 사람이 일일이 데이터를 라벨링하는 비용 문제를 해결하기 위해, 센서 데이터의 통계 정보와 추세, 주요 이벤트를 분석하여 자동으로 상세한 설명을 생성하는 '계층적 파이프라인'을 개발했습니다. - 이를 통해 기존 연구들보다 수십 배 큰 규모의 데이터를 확보함으로써 고차원 센서 신호와 자연어 사이의 미세한 상관관계를 학습할 수 있는 기반을 마련했습니다. **대조 학습과 생성 학습의 통합 아키텍처** - 센서 조각과 텍스트 설명을 매칭하는 '대조 학습(Contrastive Learning)'을 적용하여 수영이나 근력 운동 같은 서로 다른 활동을 정밀하게 구분하는 능력을 갖췄습니다. - 고차원 센서 신호로부터 직접 맥락에 맞는 텍스트 캡션을 생성하는 '생성형 사전 학습(Generative Pre-training)'을 결합하여 데이터의 의미를 능동적으로 해석하도록 설계했습니다. - 두 학습 전략을 단일 프레임워크로 통합함으로써 센서 데이터의 통계적 특성뿐만 아니라 구조적, 의미론적 차원까지 아우르는 깊이 있는 이해가 가능해졌습니다. **활동 인식 및 교차 모달 검색 능력** - 별도의 미세 조정(Fine-tuning) 없이도 20가지 활동을 정확히 분류하는 제로샷(Zero-shot) 성능을 보여주며, 일반적인 거대 언어 모델(LLM)보다 월등히 높은 정확도를 기록했습니다. - 소량의 데이터만으로 새로운 작업에 적응하는 퓨샷(Few-shot) 학습 능력이 뛰어나, 개인별로 다른 활동 패턴이나 특수한 건강 상태에도 유연하게 대응할 수 있습니다. - 텍스트로 특정 센서 패턴을 찾거나 반대로 센서 데이터를 통해 자연어 설명을 추출하는 '교차 모달 검색' 기능을 통해 전문가의 데이터 분석 효율성을 극대화했습니다. **고도화된 상황 인식 캡션 생성** - 웨어러블 기기에서 발생하는 복잡한 신호를 입력받아 계층적이고 문맥에 맞는 자연어 설명을 생성하며, 기존 비전담 LLM 대비 사실 관계가 정확하고 일관성 있는 텍스트를 출력합니다. - 단순한 활동 요약을 넘어 센서 신호에 담긴 통계적 추이와 구조적 변화를 인간의 언어로 번역함으로써 사용자가 자신의 건강 데이터를 훨씬 직관적으로 이해할 수 있도록 돕습니다. SensorLM은 단순히 수치를 기록하는 기기를 넘어 사용자의 상태를 이해하고 설명해 주는 지능형 건강 비서로의 진화를 예고합니다. 이러한 기술은 향후 전문가 수준의 건강 분석 도구나 개인 맞춤형 웰니스 서비스에 핵심 기술로 활용될 것으로 기대됩니다.