![[youtube-dnn-two-tower.png|500]]
- 두 개의 입력을 각각 독립된(또는 파라미터를 공유하는) 인코더에 넣어 임베딩을 만든 뒤 임베딩 사이의 유사도 함수를 적용하는 구조를 뜻함 (NLP쪽에서 처음에 주로 사용)
- = Siamese network
- 유사도 계산은 일반적으로 dot product, cosine similarity 등
- inference 시에는 유사도 계산해서 top-k를 리턴
- 사용자/context -> User Tower
- 아이템 -> Item Tower
추천 시스템 Retrieval 단계에서의 역할
YouTube DNN (Covington et al., 2016)에서 산업 표준이 된 두 단계 아키텍처:
- Retrieval: 수십억 아이템에서 수백~수천 개 후보 빠르게 선택 (Recall@k 최대화)
- Ranking: 소수 최종 후보를 예측 보상 확률로 정렬
Two-Tower는 Retrieval 단계의 표준 구조다. 각 탑은 연속 은닉층에서 유닛 수가 절반씩 감소하는 구조이며, 정식 정의는:
- 쿼리 인코더:
- 아이템 인코더:
- 점수 함수:
학습 목표는 positive 쌍을 임베딩 공간에서 가깝게, negative 쌍을 멀리 배치하는 것 → Negative Sampling 참고.
변형 및 확장
- 다중 임베딩 헤드: 쿼리 탑이 복수의 임베딩을 출력해 다의어 쿼리를 처리 (JD.com의 DPSR)
- 개인화 검색: 소셜 그래프 임베딩 등 사회적 특성 추가 (Facebook 인물 검색)