Transformer
encoder를 활용해서 여러 문제에 적용할 수 있다.
transformer는 sequence데이터가 강점을 보이지만 많은 데이터를 요구한다.
Inductive Bias
CNN은 기본적으로 kernel을 통해서 locality를 보면서 bias를 학습하게 설계되어 있고, RNN은 sequence를 보도록 설계되어 있다(inductive bias가 있다). 이렇게 모델 구조상에서 bias가 있는데, MLP나 transfomer는 bias가 적다.
transformer는 inductive bias가 없는 것이 장점이지만 또 단점이 되기도 한다. 데이터에서 다양한 feature를 뽑아내기 위해서는 데이터가 많이 필요하게 되는 것이다. feature engineering가 많이 필요하면 transfomer가 적합하다. 데이터가 적은 경우에는 오히려 inductive bias가 있는 모델들이 적합할 수 있다.
Sequence data를 다룬 Competitions
Data Science Bowl
영유아가 기초수학을 게임을 활용하여 학습하도록 하는 교육과정.
교육과정에서 학생이 거친 모든 학습과정이 데이터로 사용되고, 개념을 정확히 배웠는지 맞추는 것이 대회 목표이다. v평가를 한 번만에 풀 수 있을 것인지, 2번 만에 풀 수 있을 것인지로 multi classification이다.
transformer의 encoder를 사용한 모델이 3등을 차지했다.
- input과 output을 어떻게 구성했느냐
- Bert(transformer의 encoder)를 어떠헤 활용했는가
- 서로 다른 범주형,연속형 데이터들을 어떻게 임베딩 했는가
를 주의깊게 살펴보자
세션별로 sequence가 있고 그것들을 Embedding한다. 그 임베딩을 transformer의 input으로 넣게된다. 마지막 sequence의 output만 뽑아낸다. 그 output은 압축된 정보를 가지고 있어서 softmax를 하는 식으로 학습하게 된다.
노랑색으로 쳐진 부분은 말하자면 필요없는 연산이다. n-1 번째 layer까지는 input으로 필요하기 때문에 연산을 해야하지만, 마지막 layer에서는 session의 output만 필요하기 때문에, n번째 layer의 마지막 transformer를 제외한 다른 transformer들은 필요없다.
Riiid
i-scream데이터와 매우 흡사
토익 시험을 학습하는 과정을 모아둔 데이터로, 마지막에 푼 문항을 맞출지 틀릴지를 맞추는 binary classification 문제이다.
문항번호, 시험지번호, 태그, 시간, 앞의 문항에 대한 설명, 문항의 정답 번호 등의 특성을 갖는다. 강의설명을 보는 interaction도 있다. 전체 interaction은 1억개이고, 유저수는 약 40만이다. 이렇게 데이터 양이 많아서 줄이는 과정을 거쳤다. 2개의 sequence를 하나로 이어붙히고, 임베딩을 2배로 늘렸다. 복잡도는 sequence의 제곱에 비례하고 embedding에 비례하기 때문에 결과적으로 복잡도가 1/2로 줄게 된다.
Predicting Molecular Properties
분자 정보로 원자 간 결함 상수를 찾는 대회
1,2,3등 solution이 모두 transformer였다. 처음으로 transformer가 sequence data 에 적용된 대회였다. 원자간 연결을 하나의 행으로 표현해서 전체 행이 순서에 상관없이 있기만 하면된다. 순서에 상관없이(positional enbedding이 필요없다.) 동일한 값이 나오기에 적절한 것이 transformer였던 것이다.
Transformer가 Sequence에 유리한 이유
- Self-attention) sequence 안에서 모든 token이 다른 token을 참조
- positional embedding을 추가해서 위치 정보를 반영할 수 있다.
각 pair의 결합상수를 예측해야되기 때문에 모든 sequence의 transformer block에서 output을 뽑아내는 형태가 된다.
고정 sequence length를 135로 두고 할 수 있었다. 두 원자간의 정보를 concat에서 input으로 사용했다. 최종 예측값인 결합상수가 4가지 값으로 이루어져 있었기 때문에 결합상수만 예측할 수도 있고, 4개를 예측해서 합을 구할 수도 있다. 두 종류의 결과의 평균값을 구하면 더 좋은 결과가 나왔다.
Mechanisms of Actions (MoA)
약물을 투여했을 때 어떤 화학반응이 일어날지 예측하는 대회
Sequence data는 아니지만 transformer을 사용해서 잘 작동하지 않았다.
feature 많고, 예측 class수도 많지만 데이터는 적었다.
2등 solution이 1D-CNN을 사용했는데, PCA와 feature 생성을 한 후 , Fully Connected layer로 늘리고 reshape했다.
feature의 순서가 중요하는데 이 부분을 담당하는 것이 fully connected layer이다. Feed forward와 back propagation을 통해서 최적의 weight를 찾는다. feature의 순서를 dense layer가 최적의 값으로 나오도록 순서를 배열해준다. (Learning feature ordering). 또한, 각 feature의 scale을 맞추는 것 이상으로 feature마다 가지고 있던 것을 하나로 뭉개면서 각 벡터의 원소가 가지는 의미를 동일하게 만들어준다.
이 경우 뿐 아니라 sequence에서도 조금 다른 방식으로 Conv 1D를 사용할 수 있다. sequence축으로 내려가는 kernel를 만들어서 사용하면 된다.
'부스트캠프 AI Tech 3기 > 프로젝트 : P-stage' 카테고리의 다른 글
[Day74] Github 특강 2-2 amend, reset (0) | 2022.05.06 |
---|---|
Wandb Sweep 하는 방법 : 하이퍼 파라미터 자동 튜닝 (0) | 2022.04.30 |
[Day62] DKT 3. Baseline (LGBM, LSTM, Transformer) (0) | 2022.04.20 |
[Day62] DKT 1. DKT 이해 및 DKT Trend 소개 (0) | 2022.04.20 |
[Day41] Movie Rec 4. Collaborative Filtering (2) (0) | 2022.03.22 |