PNN
정의
PNN(Qu et al., 2016)은 embedding layer와 DNN의 hidden layer 사이에 product layer를 두어, 특성(feature) 임베딩(embedding) 사이의 상호작용(interaction)을 명시적으로 포착한 뒤 DNN으로 전달하는 CTR 예측 모델이다.
Product Layer
임베딩 벡터 사이의 쌍별(pairwise) 상호작용을 product 연산으로 계산한다.
product layer의 출력은 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 차원이다.
직관적 이해
임베딩을 그냥 이어 붙여(concatenate) DNN에 넣으면, 특성 사이의 상호작용을 네트워크가 암묵적으로 학습해야 한다. PNN은 임베딩 쌍의 product를 미리 계산해 DNN에 “힌트”로 건넨다.
비유하자면, 두 재료의 궁합을 요리사가 직접 판단하게 하는 대신(DNN), 미리 재료 조합을 시식해 궁합 점수까지 함께 제공하는(product layer) 셈이다. 요리사는 이 정보를 써서 더 나은 결정을 내린다.
장단점
장점:
- pre-training이 필요 없어 end-to-end 학습이 가능하다(FNN 대비 장점).
- product layer가 특성 상호작용을 명시적으로 포착한다.
- IPNN은 FM과 유사한 상호작용을 DNN과 결합한다.
단점:
- 저차(order-1, 2) 상호작용 무시: product layer의 출력이 DNN을 거치면서 원래의 저차 signal이 왜곡될 수 있다. FM과 달리 저차 항을 출력에 직접 반영하지 않는다.
- OPNN 계산 비용: outer product는 이라, 특성 수와 임베딩 차원이 커지면 비효율적이다.
- product layer의 쌍별 계산이 field 수 에 대해 제곱으로 증가한다.
관련 개념
- 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 결합으로 해결