🗺️
추천시스템의 임베딩 총정리
User, Item, Context를 하나의 벡터 공간에 모으기
추천시스템에서 가장 근본적인 질문은 "이 유저가 이 아이템을 좋아할까?"다. 임베딩은 이 질문을 벡터 공간에서의 거리 문제로 바꾼다.
유저 벡터와 아이템 벡터가 가까우면 좋아할 가능성이 높다. 이게 Two-Tower 모델의 핵심이고, Matrix Factorization도 결국 같은 아이디어다.
임베딩의 종류
ID 임베딩: 유저 ID, 아이템 ID를 학습 가능한 벡터로. 가장 기본이지만 cold start에 약하다.
Feature 임베딩: 카테고리, 태그, 가격대 같은 속성을 벡터화. Wide&Deep의 Deep 파트가 이걸 한다.
Sequence 임베딩: 행동 시퀀스 전체를 하나의 벡터로. GRU4Rec, BERT4Rec이 여기 해당.
Context 임베딩: 시간, 위치, 디바이스 같은 상황 정보. 같은 유저도 출근길과 주말에 다른 걸 원한다.
동작 원리
1
User/Item/Context 각각의 특징을 정의
2
각 특징을 Embedding Layer로 벡터화
3
벡터를 결합(concat/attention)하여 하나의 표현 생성
4
내적 또는 코사인 유사도로 매칭 점수 계산
장점
- ✓ 이종 데이터(텍스트, 이미지, 행동)를 하나의 공간에 통합
- ✓ ANN 인덱스로 밀리초 단위 서빙 가능
단점
- ✗ 차원 수, 학습률 등 하이퍼파라미터 튜닝 필요
- ✗ 임베딩이 오래되면 drift 발생 — 주기적 재학습 필수
사용 사례
Two-Tower 모델의 유저/아이템 타워
ANN(Approximate Nearest Neighbor) 검색