Tae Hyun Kim (Lowell)

PNN

2분 읽기 #recsys#factor-models#product-network

정의

PNN(Qu et al., 2016)은 embedding layer와 DNN의 hidden layer 사이에 product layer를 두어, 특성(feature) 임베딩(embedding) 사이의 상호작용(interaction)을 명시적으로 포착한 뒤 DNN으로 전달하는 CTR 예측 모델이다.

Product Layer

임베딩 벡터 ei\mathbf{e}_i 사이의 쌍별(pairwise) 상호작용을 product 연산으로 계산한다.

lp={g(ei,ej)}i,j,lz=[e1,e2,,en]\mathbf{l}_p = \{g(\mathbf{e}_i, \mathbf{e}_j)\}_{i,j}, \quad \mathbf{l}_z = [\mathbf{e}_1, \mathbf{e}_2, \ldots, \mathbf{e}_n]

product layer의 출력은 linear signal lz\mathbf{l}_z와 product signal lp\mathbf{l}_p를 결합한 것이다.

a(1)=ReLU(Wzlz+Wplp+b)\mathbf{a}^{(1)} = \text{ReLU}(\mathbf{W}_z \mathbf{l}_z + \mathbf{W}_p \mathbf{l}_p + \mathbf{b})

Variants

product 연산 g(,)g(\cdot, \cdot)을 어떻게 정의하느냐에 따라 세 가지 변형이 있다.

VariantProduct 연산복잡도특성
IPNNInner product: g(ei,ej)=ei,ejg(\mathbf{e}_i, \mathbf{e}_j) = \langle \mathbf{e}_i, \mathbf{e}_j \rangleO(n2)O(n^2)Scalar output; FM과 유사한 interaction
OPNNOuter product: g(ei,ej)=eiejTg(\mathbf{e}_i, \mathbf{e}_j) = \mathbf{e}_i \mathbf{e}_j^TO(n2k2)O(n^2 k^2)Matrix output; 더 풍부한 interaction, 높은 비용
PNN*Inner + Outer product 결합O(n2k2)O(n^2 k^2)Hybrid; 두 방식의 장점 결합

여기서 nn은 field 수, kk는 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는 O(n2k2)O(n^2 k^2)이라, 특성 수와 임베딩 차원이 커지면 비효율적이다.
  • product layer의 쌍별 계산이 field 수 nn에 대해 제곱으로 증가한다.

관련 개념

  • 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 결합으로 해결

연결 그래프