Data & Research

[Recommender System] Wide & Deep learning for recommender system

물박사의 저장공간 2025. 6. 1. 22:39

 

2025.06.01 - [Data & Research] - [Recommender System] Table of Contents


https://arxiv.org/abs/1606.07792

 

Wide & Deep Learning for Recommender Systems

Generalized linear models with nonlinear feature transformations are widely used for large-scale regression and classification problems with sparse inputs. Memorization of feature interactions through a wide set of cross-product feature transformations are

arxiv.org

 

이 논문에서 저자들은 Generalized Linear model들은 feature나 item들의 빈번한 특징 및 상관관계를 학습하여 '기억'(Memorization)하는 것을 담당하지만 일반화(generalization)이 어렵다는 점을 지적합니다. 거꾸로 embedding 기반 딥러닝 모델들은 일반화에는 강점이 있지만 명확한 상호작용이 거의 없는 경우에도 패턴을 찾아서 뱉어내려는 특성을 가집니다. 이런류의 모델들은 overfitting을 일으키면서 오히려 저차원의 상호작용을 찾아내는데 어려움을 겪게 된다는 것이죠. 

 

그래서 이를 절충하기 위해서 저자들은 말 그대로 Memoization을 담당하는 Wide모델과 Generalization을 담당하는 Deep learning의 결합된 형태의 모델을 제안합니다. (Memoization과 Generalization은 마치 강화학습에서의 exploitation과 exploraration의 느낌이 나지 않나요?)

 

모델 자체가 어렵진 않습니다. 아래 그림과 같이 Wide와 Deep 자체는 기존에 존재하는 컨셉인데 이것을 통합하는 것이죠.

 

여기 wide model 부분에서 한 가지만 체크해보면 될 것 같습니다. cross product feature는 선형모델로 생각하면 interaction term 같은 항입니다. feature 간 상호작용을 잡아내는 항입니다. 추천시스템에서는 "사용자가 과거에 A라는 앱을 설치했고, 현재 B라는 앱의 광고를 보고 있다"와 같은 특정 조건의 조합이 구매 확률에 큰 영향을 미칠 수 있는데, 이러한 조합을 cross-product feature로 표현할 수 있습니다.

 

cross product feature는 이진화된(binarized) 희소(sparse) feature들의 논리적 "AND"연산으로 정의됩니다. 

\(d\)개의 binary feature vector \[ \mathbf{x} = [x_1, x_2, \ldots, x_d] \] 가 주어졌을 때, \(k\)번째 cross-product transformation은 아래와 같이 정의할 수 있습니다. 

\[ \phi_k(\mathbf{x}) = \prod_{i=1}^{d} x_i^{c_{ki}} \]

 

\(c_{ki}\)는 \(i\)번째 feature가 \(k\)번째 cross product feature \(\phi_k\)에 포함되는지 여부를 나타내는 이진 값입니다. 즉, 선택된 feature들이 모두 1일 때만 1의 값을 갖고, 하나라도 0이면 0의 값을 갖게 됩니다. 

 

https://github.com/zenwan/Wide-and-Deep-PyTorch/tree/master