PNN
정의
PNN (Qu et al., 2016)은 embedding layer와 DNN hidden layer 사이에 product layer를 도입하여, feature embedding 간의 interaction을 명시적으로 포착한 후 DNN으로 전달하는 CTR 예측 모델이다.
Product Layer
Embedding vector 들 사이의 pairwise interaction을 product 연산으로 계산:
Product layer의 output은 linear signal 와 product signal 의 결합이다:
Variants
Product 연산 의 정의에 따라 세 가지 변형이 존재한다:
| Variant | Product 연산 | 복잡도 | 특성 |
|---|---|---|---|
| IPNN | Inner product: | Scalar output; FM과 유사한 interaction | |
| OPNN | Outer product: | Matrix output; 더 풍부한 interaction, 높은 비용 | |
| PNN* | Inner + Outer product 결합 | Hybrid; 두 방식의 장점 결합 |
여기서 은 field 수, 는 embedding 차원이다.
직관적 이해
DNN에 embedding을 그냥 concatenate하여 넣으면, feature 간의 interaction을 네트워크가 암묵적으로 학습해야 한다. PNN은 embedding 쌍들의 product를 미리 계산하여 DNN에 “힌트”로 제공한다.
비유하자면, 두 재료의 궁합을 요리사가 직접 판단하게 하는 대신(DNN), 미리 재료 조합을 시식하여 궁합 점수를 함께 제공하는(product layer) 것이다. 요리사는 이 정보를 활용하여 더 나은 결정을 내릴 수 있다.
장단점
장점:
- Pre-training 불필요 — end-to-end 학습 가능 (FNN 대비 장점)
- Product layer가 feature interaction을 명시적으로 포착
- IPNN은 FM과 유사한 interaction을 DNN과 결합
단점:
- Low-order interaction(order-1, 2) 무시: Product layer의 출력이 DNN을 거치면서 원래의 low-order signal이 왜곡될 수 있음. FM처럼 low-order를 직접 output에 반영하지 않음
- OPNN 계산 비용: Outer product는 로 feature 수와 embedding 차원이 커지면 비효율적
- Product layer의 pairwise 계산이 field 수 에 quadratic하게 증가
관련 개념
- DeepFM - FM(low-order) + DNN(high-order) 병렬 결합; PNN이 놓치는 low-order를 보완
- Factorization Machine - IPNN의 inner product가 FM의 2차 interaction과 유사
- Wide and Deep - Wide(memorization) + Deep(generalization) 병렬; PNN과 다른 설계 철학
- FNN - FM pre-training + DNN; PNN은 pre-training 없이 product layer로 대체
참고 논문
- Qu, Y., et al. (2016). Product-based neural networks for user response prediction. ICDM 2016. — PNN 원논문
- guoDeepFMFactorizationMachineBased2017 - DeepFM; PNN의 한계(low-order 부재)를 FM 결합으로 해결