Product-based neural networks for user response prediction

ph
이동: 둘러보기, 검색

뉴럴넷이 기본적으로 \(\sum w_i x_i\) 라서, \(x_i x_j \)를 보기가 어려운데, libFM의 경우 각 \(x_i\)를 latent vector로 바꾸고 product sum = \(\sum \mathbf{\langle v_i \cdot v_j \rangle} x_i x_j \)을 본다. 이런식으로 product base인 net이 없나 찾아보니 바로 나와서 읽어봄. 논문에서는 PNN(Product-based NN)이라고 함.


cited by 10
여섯쪽짜리 짧은 논문(그래서인지 훌륭하다)

코드가 깃헙에 있다. 데이터셋도 어디서 다운받을 수 있는지 친절히 각주가 있고. 하라는 대로 해보면 잘 된다. 훌륭함.

  • 시간 오래 걸린다(데이터 받고 전처리 하는데만 한시간 이상)
  • 다 받아서 압축풀고 make all까지 하고 나면 해당 폴더가 29G가 된다.
  • import python 이부분 에러나서 적당히 지우고 하면 됨.
  • 데이터가 모두 categorical이다. 0, 1로만 이루어져 있다는 얘기. 다른거랑 섞으면 어떻게 되려나...?

논문 내용 자체도 좋지만, 소스코드 깃헙에 readme에도 기억해 둘만한 팁들이 있다.

  • initialization : 보통 uniform, normal distribution. \(\mu = 0, \sigma = \sqrt\frac1n\) where \(n \) is input dimension.
  • gradient descent에 대해 이 블로그에서 잘 다루고 있다. 엄청나다
    • 어떤 실험은, adam이 sgd보다 더 좋지 않을 수 있다고도 한다.
  • data processing
    • dimension이 너무 커지면, rare한 data들을 아예 없애는것도 고려할것. 성능저하는 거의 없고 dimension은 확 줄어든다.
    • positive:negative를 거의 비슷하게 맞추면 성능이 좋아진다는 보고가 있다.