[실험] Continuous Embedding #45
JAEWOOSUN
started this conversation in
Experiments
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Continuous Embedding
Description: Embedding에 시간에 따른 Weighted Sum을 했을 때
시작일: 2021년 6월 1일
실험자: 재우 선
제안자: 재우 선
종료일: 2021년 6월 2일
진행상황: 완료
카테고리: Modeling
문제 정의
연속적인 Feature의 경우(시간, interaction, question popularity, question difficulty) 그 값 하나만 embedding해서 넣게되면 아무 의미가 없다. 따라서 주변 값도 영향을 미칠 수 있게 embedding하자!
해결 아이디어
Riiid 4위 solution에는 Continuous Embedding 방식이 존재함
(ref. https://www.kaggle.com/c/riiid-test-answer-prediction/discussion/210171)
즉, 연속적인 feature들을 사용할 때
원래 뽑아내야하는 중심값
과주변값
들의 weighted sum을 해서 사용하는 방식Embedding의 weight matrix에서 일정한 가중치(Window function)을 가지고와서 weighted sum을 수행해서 embedding vector를 만들어 주는 방식
이렇게 하면 그 값 자체로는 아무 의미 없는 값(연속적인 값)들에 대해 주변 값들의 정보를 넣어줘서 embedding함으로써 새로운 feature를 만들어 낼 수 있음
진행 상황
1. 문제상황
2.
modeling_embedding.py
3.
modeling_embedding.py
→__init__
num_points
는 hidden dimensions size (여기서는args.max_sequence_len
으로 통일)minval
은 value가 가질 수 있는 최소값maxval
은 value가 가질 수 있는 최댓값window_type
은 사용할ㄹ window_functionself.points
는 0~args.max_seq_len
값을 하나씩 줌 (예상으로는 postional encoding처럼 사용하는 방식)4.
modeling_embedding.py
→ window type 함수들_hann_window
사용)5.
modeling_embedding.py
→forward
input
의 dimension 값을 하나 늘려준 후self.points
로 빼줌 (위치를 표시하는 dimension으로 예상)w
를 다시 한 번window_func
에 넣음input
의 embedding과w
와의 합성곱 수행6.
model.py
→ Class LSTM →__init__
7. Bert 모델, LSTMAttn 모두 적용
결과
평가
Beta Was this translation helpful? Give feedback.
All reactions