Bert4Rec - penny4860/study-note GitHub Wiki

정리

질문

  • positional embedding에서 maximum length를 정하는건 오리지날 bert도 이런가?
  • output layer에서 임베딩 matrix는 item embedding을 share한다. 그러면 bias는 학습하는 건가?

내용

3.3 Transformer Layer

(working on)

3.4 Embedding Layer

  • item 임베딩과 position 임베딩을 더해서 transformer layer에 입력가능한 형태로 만든다.
    • h_i = v_i + p_i
      • h_i : 첫번째 hidden vector
      • v_i : item 임베딩 vector
      • p_i : position 임베딩 vector
  • position 임베딩이 필요한 이유
    • transformer layer는 모든 단어(또는 item)을 입력 받기때문에 order의 의미가 사라짐.
    • maximum length를 N으로 정하고 (N, d) shape의 matrix를 학습한다.

3.5 Output Layer

  • h_t(L) : final hidden vector
    • 마지막 item의 마지막 transformer layer의 출력 vector
  • flow
    1. FC layer를 수행
      • hh : (d)-shaped
    2. item embedding layer를 역으로 수행
      • E : (n_items, d)-shaped
      • np.dot(hh, E') + bias