DCN

- deep network와 cross network의 출력이 concat되어 FC → Logit → sigmoid(확률)
- CTR 예측 (Binary Cross Entropy Loss)
 
 - deep network
- 일반적인 DNN구조
 - 복잡한 암묵적인 비선형 관계(상호작용)을 학습함
 
 - cross network
- 명시적인 feature간의 상호작용을 학습함

 
 - 명시적인 feature간의 상호작용을 학습함
 - layer의 개수는 피쳐들 간의 high-order interaction을 몇 차까지 모델링할 건지를 의미함
- 1개 layer → 2-way interaction e.g. 
user_age * item_price - 2개 layer → 3-way interaction e.g. 
user_age * item_price * item_category - …
 
 - 1개 layer → 2-way interaction e.g. 
 - 각 layer에서 이번 layer의 입력()과 처음 입력값()을 cross
 - 마지막 x는 residual connection의 개념
- x는 이전 layer까지 학습된 모든 특성 상호작용 → 이것도 다음 layer로 전달함으로써 -layer 네트워크가 1차부터 +1차까지 모든 상호작용을 포함하게 함
 - feature crossing부분이 이번 layer x과 다음 layer x의 잔차를 학습하도록 설계되어 이전 상태에서 추가적으로 필요한 변화량만을 학습 (효율적, 안정적인 학습)
 
 
contribution
- 수동 피쳐 엔지니어링 불필요 (cross network에서 자동으로 피쳐를 교차시킨 상호작용을 학습)
 - 한정된 차수(bounded-degree)의 피쳐 상호작용을 효율적으로 학습할 수 있음
 
DCN v2
DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank System (2020)

- 2가지 방식으로 조합할 수 있음 stacked, parallel
- 기존 DCN은 parallel이었음
 
 

- cross layer의 수식에서 가중치를 벡터가 아닌 행렬로 변경
- 더 많은 파라미터를 사용하여 모델의 표현력을 크게 향상
 
 
🌟 초기 DCN에서는 cross layer를 6-8개로 제안했지만 DCN v2는 향상된 표현력으로 인해 1~2개의 cross layer로도 정확성 확보(2개를 초과하면 성능 향상이 정체됨)

- Mixture of low-rank experts
- 하나의 복잡한 큰 가중치 행렬을 학습하지 않고 대신 여러 개의 low-rank expert (더 작은 가중치 행렬) 를 학습한 뒤 weighted sum(softmax)해서 사용
- (a)를 보면, 노란색(초기의 가중치 행렬)은 singular value들이 매우 천천히 감소하는데 파란색(학습 후의 행렬)은 하위로 내려갈수록 singular value가 급격히 감소하므로 아주 소수의 중요한 차원에 대부분의 정보가 들어있다는 것을 의미함 = full-rank 행렬이 아닌 처음부터 low-rank로 구성해도 적은 파라미터로 중요한 내용은 다 학습할 수 있음
 
 - weighted sum을 어떻게 할 건지는 gating network가 입력 을 보고 결정
 
 - 하나의 복잡한 큰 가중치 행렬을 학습하지 않고 대신 여러 개의 low-rank expert (더 작은 가중치 행렬) 를 학습한 뒤 weighted sum(softmax)해서 사용
 - ➡️ 상황별 적합한 표현력, overfitting 방지, 적은 파라미터 수로 계산 효율성 증대→ 대규모 scale 서비스에서도 서빙 가능