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 vectorv_i
: item 임베딩 vectorp_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
- FC layer를 수행
- hh :
(d)
-shaped
- hh :
- item embedding layer를 역으로 수행
- E :
(n_items, d)
-shaped np.dot(hh, E') + bias
- E :
- FC layer를 수행