
SVD와 직교 Procrustes로 모델 구조 변경 없이 콜드 스타트와 데이터 드리프트를 한 번에 해결한 실전 노하우
매달 공고가 바뀌는 역동적인 채용 서비스에서 검색 품질을 유지하기 위한 LINE 엔지니어들의 고군분투기를 담았습니다. 모델을 새로 학습할 때마다 뒤틀리는 임베딩 공간을 수학적으로 고정하여, 데이터 불일치 문제를 해결하고 검색 리랭킹의 정확도를 극대화한 기술적 여정을 소개합니다.
잦은 데이터 갱신으로 콜드 스타트를 겪고 있거나, 주기적인 모델 재학습으로 인한 피처 드리프트 문제를 해결하고 싶은 머신러닝 엔지니어에게 필독을 권합니다.
아르바이트 공고가 월 단위로 대량 교체되면서 리랭킹 모델 학습 데이터가 부족해지는 콜드 스타트 문제와 2타워 모델 재학습 시마다 임베딩 공간이 변하는 비정상성(Non-stationarity) 문제가 발생했습니다. 이로 인해 학습과 추론 시점의 데이터 불일치가 발생하여 실시간 검색 정렬 성능이 저하되는 한계가 있었습니다.
RecSys '25에서 제안된 '직교 저차원 임베딩 안정화' 기법을 도입하여, 저차원 SVD와 직교 Procrustes 변환을 통해 당일의 임베딩 공간을 전일의 기준 공간에 맞춰 정렬했습니다. 대규모 데이터 처리를 위해 Apache Spark를 활용하고 숄레스키 분해를 통해 계산 효율성을 극대화한 후처리 파이프라인을 구축했습니다.
임베딩 안정화 도입 후 1개월이 지나도 벡터 유사도가 0.87 수준으로 유지되었으며, 오프라인 평가에서 전환 nDCG가 9.0% 향상되었습니다. 실제 온라인 A/B 테스트 결과, 서비스 전체 KPI 4.7% 및 매출 6.5% 상승이라는 유의미한 비즈니스 성과를 달성했습니다.
Trade-off
임베딩 공간의 연속성을 유지하기 위해 전일의 안정화된 데이터를 순차적으로 참조해야 하는 시간적 의존성이 발생하며, 검색 화면 내의 즉각적인 KPI 개선보다는 서비스 전체의 장기적인 사용자 행동 변화에 더 큰 영향을 미치는 특성을 보입니다.
사용자와 아이템을 각각 독립적인 신경망으로 인코딩하여 임베딩을 생성한 후, 두 벡터의 내적이나 유사도로 점수를 계산하는 아키텍처입니다.
두 행렬 사이의 유클리드 거리를 최소화하는 직교 행렬을 찾아 공간을 회전 또는 반전시켜 정렬하는 수학적 기법입니다.
양의 정식 행렬을 하삼각 행렬과 그 전치 행렬의 곱으로 분해하여 행렬 연산을 단순화하는 수치 해석 방법입니다.




