LINE 알바 검색, 임베딩 안정화로 콜드 스타트 해결!
LINE Part Time Jobs는 실시간 검색 리랭킹(Real-time Search Reranking)에서 사용자 행동 기반의 2타워 임베딩(Two-tower Embedding)을 사용했으나, 쿼리 정보 미반영 및 임베딩 공간 불안정성 문제 발생
월초마다 알바 공고가 교체되는 콜드 스타트(Cold Start) 문제와 학습/추론 시 임베딩 데이터 불일치 문제 해결을 위해 임베딩 안정화(Embedding Stabilization) 기법 도입
저차원 SVD(Low-rank SVD)와 직교 Procrustes(Orthogonal Procrustes)를 활용한 임베딩 안정화로 일주일 후에도 0.88의 높은 상관관계 유지 및 오프라인 평가에서 nDCG 4.5~9.0% 향상
A/B 테스트 결과, 서비스 전체 KPI 4.7%, 매출 6.5% 향상 달성하며 실시간 리랭킹(Real-time Reranking) 시스템의 효과 입증
검색 리랭킹의 콜드 스타트 문제와 임베딩 불안정성
LINE Part Time Jobs는 월초마다 알바 공고가 대량 교체되는 특성상, 신규 공고에 대한 충분한 사용자 행동 데이터 확보가 어려워 리랭킹 모델의 초기 성능 저하를 야기하는 콜드 스타트(Cold Start) 문제에 직면했다.
또한, 2타워 임베딩 모델은 성능 저하를 막기 위해 주기적으로 재학습되는데, 이 과정에서 임베딩 공간(Embedding Space)이 매번 달라져 학습 시점과 추론 시점 간의 데이터 불일치(Data Mismatch) 문제가 발생하여 다운스트림 작업에서 임베딩을 피처(feature)로 활용하기 어렵다는 과제가 있었다.
임베딩 안정화: 저차원 SVD와 직교 Procrustes
임베딩 안정화는 전날의 안정화된 임베딩을 기준으로 삼아 순차적으로 임베딩 공간을 정렬하는 방식이다. 저차원 SVD(Low-rank SVD)를 통해 각 학습에서 생성된 임베딩을 표준화된 저차원 표현으로 변환하고, 직교 Procrustes(Orthogonal Procrustes)를 사용하여 전일 임베딩과의 공간 정렬을 수행한다.
이 기법은 공간 회전 및 반전만으로 변환하므로 임베딩 간 거리 관계를 보존하며, 모델 재학습 시에도 임베딩 공간의 연속성(Continuity)을 유지할 수 있게 한다. 결과적으로 학습 시점과 추론 시점의 버전 불일치(Version Mismatch) 문제 없이 피처 활용이 가능해진다.
Apache Spark 기반 분산 처리 구현
대규모 데이터 처리를 위해 Apache Spark를 활용한 분산 처리 방식을 채택했다. 저차원 SVD 계산 효율화를 위해 원 논문의 QR 분해 대신 숄레스키 분해(Cholesky Decomposition)를 적용하여 Gramian 행렬 계산량을 줄였다.
직교 Procrustes 계산 시 발생하는 매우 큰 행렬 곱셈은 Spark의 분산 병렬 처리 기능을 활용하여 처리했으며, e×e 크기의 작은 행렬 연산은 단일 노드에서 NumPy를 통해 효율적으로 수행했다. 이러한 분산 처리 최적화를 통해 대규모 데이터셋에서도 안정적인 임베딩 안정화 알고리즘 적용이 가능했다.
임베딩 안정화의 효과: 상관관계 및 성능 향상
임베딩 안정화 도입 후, 일주일 후에도 임베딩 간 상관관계가 약 0.88을 유지하는 것을 확인했다. 이는 안정화 이전 거의 0에 가까웠던 상관관계와 비교했을 때 획기적인 개선이다.
오프라인 평가에서는 안정화된 임베딩을 피처로 사용했을 때 클릭 nDCG가 약 4.5%, 전환 nDCG가 약 9.0% 향상되었다. 이는 임베딩 공간 드리프트(Drift)로 인한 성능 저하를 효과적으로 억제했음을 시사한다.
A/B 테스트 결과 및 시스템 도입의 용이성
A/B 테스트 결과, 임베딩 안정화와 콜드 스타트 대응을 결합한 모델은 서비스 전체 KPI 4.7%, 매출 6.5% 향상을 달성했다. 이는 검색 리랭킹 모델이 장기적 사용자 선호도를 포착하여 서비스 전반에 긍정적인 영향을 미쳤음을 보여준다.
이 기법의 큰 장점은 기존 2타워 모델 구조 변경 없이 후처리만으로 적용 가능하다는 점이다. 이는 학습 파이프라인이나 모델 구조에 큰 영향을 주지 않아 실제 시스템 운영 시 도입 용이성(Ease of Adoption)이 매우 높다는 것을 의미한다.