2. How to make sequence data

2024. 1. 3. 16:48NAVER AI Tech/Deep Knowledge Tracing

4가지 대회의 솔루션들을 살펴보면서 알아보자.

 

1. Data Science Bowl

- 게임을 통해 개념을 학습하고, 얼마나 학습했는지를 평가하여 특정 문제를 맞출 수 있을 것인가를 예측

    - 범주형 변수 → embedding → reshape(-1,1) → Linear layer 통과 → LayerNorm → feature1

    - 연속형 변수 → Linear layer 통과 → LayerNorm → feature2

    - concat(feature1, feature2) → sequence data

 

- 범주형 변수 개당 100dim으로 embedding후 1차원으로 concat (3개의 범주형 변수, 따라서 300dim 벡터)

- 300dim → Linear layer 통과 → 64dim

- 연속형 변수 → Linaer layer 통과 → 64dim

- 최종 input : 128dim(64,64 concat) → 최종 output : 3dim

 

2. Riiid

- 토익 시험 문제. 학생별로 푼 문제 데이터가 주어지면 마지막에 푼 문항을 맞출지 틀릴지를 예측

    - 데이터가 너무 많이 주어진 경우 sequence1 + sequence2를 이용하여 공간복잡도를 최소화하고 모델을 사용

 

- sequence길이는 32, 범주형 변수 4개. 범주형 변수 개당 100dim으로 embed → (batch, 32, 4, 100) → (batch, 32, 400)

- 이때 bert 모델 시간 복잡도는 sequence길이(n)의 제곱 영향(n**2)를 받기 때문에 sequence를 16으로 줄이는 대신 embed 증가 → (batch, 16, 800) 두 개의 sequence를 하나로 붙이는 과정 → Linaer layer 통과 → (batch, 16, 128)

 

- sequence길이는 32, 연속형 변수 18개 → (batch, 32, 18) → bert모델 시간복잡도로 인해 sequence 2개를 하나로 합침(batch, 16, 36) → Linear layer 통과 → (batch, 16, 128)

 

이후 두 변수를 concat → (batch, 16, 256) →  Linear layer 통과(projection) → (batch, 16, 128)

 

3. Predicting Molecular Properties

- 원자 간 결합 상수를 찾는 대회

    - 원자를 표현함에 있어서 sequence 순서에 상관없이 같은 원자를 표현해야한다 = sequence invariant

    - 따라서 transformer에서 sequence의 순서를 나타내는 positional encoding을 제거

 

- rotation invariant 효과를 주기 위해서 Data Augumentation을 사용. 즉 여러 각도로 rotation 시킨 데이터를 생성

4. Mechanisms of Actions(MoA)

- 약물을 투여했을 때 여러 특징들에 따라 어떤 화학 반응이 일어날지 예측하는 대회

    - sequence로 묶을 수 있는 데이터가 없고, feature가 너무 많았다.

    - 예측해야할 target class 종류도 많은데 데이터가 너무 부족했다.

    - 유전 정보와 세포 정보를 PCA를 통해 50 dim, 15 dim으로 만든 후 기존 feature와 함께 concat하여 input 생성

    - concat → Linear layer(더 큰 차원으로 변환)  → 1D Conv