Wide and Deep
정의
Wide & Deep(Cheng et al., 2016)은 **선형 wide component(기억, memorization)**와 **DNN deep component(일반화, generalization)**를 결합한 클릭률(CTR) 예측 모델이다. Google Play 앱 추천에 처음 적용되었다.
Wide Component
일반화 선형모형(generalized linear model)으로, raw feature 와 cross-product transformation 를 입력으로 받는다:
이 cross-product feature는 사람이 직접 설계해야 하며, 특정 feature 조합의 동시 출현(co-occurrence)을 기억한다.
Deep Component
순방향 신경망(feed-forward neural network)으로, categorical feature를 dense embedding으로 변환한 뒤 여러 hidden layer를 거친다:
고차 feature interaction을 암묵적으로 학습해, 보지 못한 feature 조합으로의 일반화를 담당한다.
Joint Training
Wide와 Deep component를 **함께 학습(joint training)**하며, 두 component의 output을 가중합해 최종 예측을 만든다. 학습에는 Wide는 FTRL + L1을, Deep은 AdaGrad를 사용했다.
직관적 이해
추천 시스템에서 두 가지 능력이 모두 필요하다:
- 기억(memorization) (Wide): “사용자가 과거에 설치한 앱과 비슷한 앱을 추천” — 과거 데이터의 직접적인 패턴을 기억한다.
- 일반화(generalization) (Deep): “이 사용자의 전반적 취향으로 볼 때 새 카테고리의 앱도 좋아할 수 있음” — 보지 못한 조합으로 일반화한다.
Wide만 쓰면 과거 패턴에 과적합되고, Deep만 쓰면 특정 동시 출현(co-occurrence)을 놓칠 수 있다. 둘을 결합하면 양쪽의 장점을 함께 취한다.
장점과 한계
장점:
- 기억과 일반화를 균형 있게 결합한다.
- 산업계에서 대규모로 검증되었다(Google Play, 5억+ 사용자).
- Wide와 Deep 각각의 역할이 명확해 해석하기 쉽다.
한계:
- Wide part의 cross-product feature를 사람이 직접 설계해야 한다(도메인 전문성 필요).
- Wide와 Deep이 embedding을 공유하지 않아, 두 component 간 학습 신호가 분리된다.
- cross-product feature의 선택이 성능에 큰 영향을 주며, 잘못 설계하면 성능이 떨어진다.
- 저차(low-order) interaction 중 사람이 정의하지 않은 조합은 포착하지 못한다.
관련 개념
- DeepFM - Wide를 FM으로 대체해 feature engineering이 불필요하고, 공유 임베딩(shared embedding)을 도입한다.
- Factorization Machine - 2차 feature interaction을 자동으로 학습해 Wide의 cross-product를 대체한다.
- FNN - FM으로 사전학습한 뒤 DNN을 학습하는, Wide & Deep과는 다른 접근이다.
- PNN - product layer로 interaction을 포착하며, Wide & Deep의 Deep만 확장한 구조다.
참고 논문
- Cheng, H., et al. (2016). Wide & deep learning for recommender systems. DLRS 2016. — 원논문이다.
- guoDeepFMFactorizationMachineBased2017 - DeepFM으로, Wide & Deep의 한계를 개선한다.