ํ์คํ ์น๐ ๊ฐ๋ฐ์ ์ง๋ง์ ๐ง๐ฝโ๐ป
โ ์ธ๊ณต์ง๋ฅ ๊ด์ฌ ๐ค
Categories
-
โฃ
โถ COMPUTER_SCIENCE
๐: 7 -
โฃ
โถ WEB
๐: 3 -
โฃ
โถ ETC
๐: 3-
โ
โฃ
ETCS
๐: 10 -
โ
โฃ
SUBBRAIN ๊ฐ๋ฐ๊ธฐ
๐: 5 -
โ
โ
YOS ๊ฐ๋ฐ๊ธฐ
๐: 1
-
โ
โฃ
-
โ
โถ AI
๐: 9-
โฃ
AITOOLS
๐: 3 -
โฃ
CV
๐: 2 -
โฃ
DEEP_LEARNING
๐: 1 -
โฃ
DATA_VIS
๐: 2 -
โฃ
GRAPH
๐: 1 -
โฃ
LIGHTWEIGHT
๐: 1 -
โฃ
MATH
๐: 1 -
โฃ
NLP
๐: 3 -
โ
STRUCTURED_DATA
๐: 2
-
โฃ
DKT ๊ธฐ๋ณธ
- DKT ์ดํด ๋ฐ DKT Trend ์๊ฐ
- DKT Data Exploratory Data Analysis
- Sequence Data ๋ฌธ์ ์ ์์ ๋ง๋ Transformer Architecture ์ค๊ณ
- Kaggle Riiid Competition Winnerโs Solution ํ์
- ML Pipeline
- Model Serving
- End to End Project
์ฌ์ธต ์ง์ ํ์(Deep Knowledge Tracing, DKT) ๊ธฐ๋ณธ
Naver AI boostcamp DKT ๊ฐ์๋ฅผ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
DKT ์ดํด ๋ฐ DKT Trend ์๊ฐ
DKT Task ์ดํด
DKT (DEEP KNOWLEDGE TRACING) : ๋ฅ๋ฌ๋์ ์ด์ฉํ๋ ์ง์ ์ํ ์ถ์
Question๊ณผ Response๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์ ํ์ด ์ ๋ณด๋ฅผ ํตํด ๋ค์ ์ง์์ํ(์ฃผ๋ก ๋ฌธ์ ๋ฅผ ํ ์ ์๋๊ฐ?)๋ฅผ ์์ธกํ๋ ๋ฐฉ์์ผ๋ก ์งํ๋๋ค.
- ์ฆ, ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ๋ง์ท๋ ์ง ํ๋ ธ๋์ง ์์๋ณด๋ Binary Classification ๋ฌธ์ ์ด๊ธฐ๋ ํ๋ค.
์ง์ ์ํ๋ ๊ณ์ ๋ณํํ๋ฏ๋ก ์ง์์ ์ผ๋ก ์ถ์ ํด์ผ ํ๋ค.
๋ณดํต ๋ฌธ์ ์ ํ์ด ๊ฒฐ๊ณผ๋ฅผ Train set์ผ๋ก,
๋ง์ง๋ง ๋ฌธ์ ์ ํ์ด ๊ฒฐ๊ณผ๊ฐ masking ๋์๋ ๋ฌธ์ ๋ค๊ณผ ํ์ด๊ฒฐ๊ณผ๊ฐ Test set์ผ๋ก ์ฃผ์ด์ง๋ค.
๋ฌธ์ ํ์ด ์ ๋ณด(๋ฐ์ดํฐ)๊ฐ ์ถ๊ฐ๋ ์๋ก ํ์์ ์ง์ ์ํ๋ฅผ ๋ ์ ํํ ์์ธก ๊ฐ๋ฅ.
๋ฐ์ดํฐ๊ฐ ์ ์ ์๋ก ์ค๋ฒํผํ ํ์์ด ์ฝ๊ฒ ์ผ์ด๋๋ค.
Metric ์ดํด
AUC/ACC(Area under the roc curve/Accuracy)
๋ณดํต ์์ธก์ ๊ฒฐ๊ณผ๋ float ํํ๋ก ๋์ค๋ฉฐ, 0.5(Threshold)๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ต ์ฌ๋ถ(1,0)๋ฅผ ๊ฒฐ์ ํ๋ค.
Confusion Matrix(ํผ๋ํ๋ ฌ)์ ์ดํด
Predicted : ๋ชจ๋ธ์ ์์ธก๊ฐ
Actual: ์ค์ ๊ฐ
Accuracy: ์ ์ฒด ์ค ์์ธก๊ฐ๊ณผ ๋ง๋ ๋น์จ
Precision(PPV, Positive predictive value) : ๋ชจ๋ธ์ด ๋ง๋ค๊ณ ์์ธกํ ๋น์จ ์ค ์ค์ ๋ง์ ๋น์จ
Recall,Sensitivity (True positive rate(TPR)): ์ค์ 1์ธ ๋น์จ ์ค์ ๋ชจ๋ธ์ด 1์ด๋ผ๊ณ ํ ๋น์จ
Specificity : ์ค์ 0์ธ ๋น์จ ์ค์ ๋ชจ๋ธ์ด 0์ด๋ผ๊ณ ํ ๋น์จ
F1 score : Prescision๊ณผ Recall์ ์ ์ถฉ์, ๋์์ ๊ณ ๋ คํจ.
๋ค๋ง ์์ metric ๋ค์ Threshold์ ์ํฅ์ ๋ฐ๊ฒ๋จ(์ฌ๊ธฐ์๋ 0.5)
AUC(Area under the roc curve)
๊ทธ๋ํ์ ๋ฉด์ ์ด ์ปค์ง์๋ก ์ฑ๋ฅ์ด ๋ ์ข์์ง๋ค.
AUC ๊ฐ์ ๋ฒ์๋ 0~1์ด๋ฉฐ, ๋๋คํ๊ฒ 0๊ณผ 1์ ๋ฃ์ ๊ฒฝ์ฐ 0.5์ด๋ค.
AUC๋ ์ฒ๋ ๋ถ๋ฉด, ์ ๋ ๊ฐ์ด ์๋๋ผ ์์ธก์ด ์ผ๋ง๋ ์ ํ๊ฐ๋๋์ง ์ธก์ ํ๋ ๊ฒ์ด๋ฉฐ(์์ธก๊ฐ๋ค์ ์ ๋์ ์ธ ํฌ๊ธฐ์ ๊ด๊ณ์์),
๋ถ๋ฅ ์๊ณ๊ฐ ๋ถ๋ณ, ์ด๋ค ๋ถ๋ฅ ์๊ณ๊ฐ์ด ์ ํ๋์๋์ง์ ์๊ด์์ด ๋ชจ๋ธ์ ์์ธก ํ์ง์ ์ธก์ ํ ์ ์๋ค. (Threshold ๊ด๊ณ ์์)
๋จ, ๋จ์ ๋ค๋ก,
์ฒ๋ ๋ถ๋ณ์ด ํญ์ ์ด์์ ์ด์ง ์์ ์ ์๋ค. ์๋ฅผ ๋ค์ด, 0.9 ์ด์์ ๊ฐ์ด ์ค์ํ ๊ฒฝ์ฐ AUC๋ก ์ธก์ ๋ถ๊ฐ
๋ถ๋ฅ ์๊ณ๊ฐ ๋ถ๋ณ์ด ํญ์ ์ด์์ ์ด์ง ์๋ค. ์๋ฅผ ๋ค์ด ํ์ ์์ฑ(FP) ์ต์ํ๊ฐ ๋์ฑ ์ค์ํ ๊ฒฝ์ฐ(์ค์ํ ๋ฉ์ผ์ด ์ง์์ง๋ฉด ์๋๋ ์คํธ๋ฉ์ผ ๋ถ๋ฅ ๋ฑ) ์ด๋ด ๋๋ AUC๊ฐ ์ ์ฉํ ์ธก์ ํญ๋ชฉ์ด ์๋๋ค.
imbalanced data์์๋ accuracy ๋ณด๋ค๋ ๋ซ์ง๋ง, AUC๊ฐ ๋น๊ต์ ๋๊ฒ ์ธก์ ๋๋ ๊ฒฝํฅ์ด ์๋ค.
(๋จ, Test data๊ฐ ๋์ผํ ๊ฒฝ์ฐ, ์๋์ ์ธ ์ฑ๋ฅ ๋น๊ต๋ ๊ฐ๋ฅํ๋ค)
FPR์ Specificity๋ฅผ ์๋ฏธํ๋ฉฐ, TPR์ Recall์ ์๋ฏธํ๋ค.
๊ฒฐ๊ณผ๊ฐ์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ROC curve๋ฅผ ๊ทธ๋ฆด ์ ์๋ค.
์์ ๊ฐ์ด Threshold ์ง์ ์ ์ค์ฌ์ผ๋ก ๊ฒน์น๋ ๋ถ๋ถ (=์์ธก์ด ํ๋ฆฐ ๋ถ๋ถ)์ด ์ ์์๋ก ROC Curve์ ๋ฉด์ ์ด ๋์ด์ง๊ณ , ์ฑ๋ฅ์ด ์ข๋ค๋ ์๋ฏธ์ด๋ค.
DKT History ๋ฐ Trend
ML, DL, Transformer, GNN ๋ฑ์ DKT์ ํธ๋๋๊ฐ ๋ฐ์ ํด ์๋ค.
[1๊ฐ ์ฐธ๊ณ ์๋ฃ, History of deep knowledge tracing ์ฐธ์กฐ]
DKT Data Exploratory Data Analysis
DKT Datset EDA์ ๋ํ ์์
i-Scream ๋ฐ์ดํฐ ๋ถ์
i-Scream edu์์ ์ ๊ณตํ๋ Dataset
feature๋ก userID, assessmentItemID, testId, answerCode, Timestamp, KnowledgeTag๋ก ์ด๋ฃจ์ด์ง.
DKT์์ ๋ณดํต ํ๋์ ํ์ Interaction์ด๋ผ๊ณ ๋ถ๋ฆ
userID
- ์ฌ์ฉ์ ๋ณ ๊ณ ์ ๋ฒํธ, ์ด 7442๋ช ์ ๊ณ ์ ํ ์ฌ์ฉ์ ์กด์ฌ
assessmentItemID
- ์ฌ์ฉ์๊ฐ ํผ ๋ฌธํญ์ ์ผ๋ จ ๋ฒํธ, ์ด 9454๊ฐ์ ๊ณ ์ ํ ๋ฌธํญ์ด ์กด์ฌ
- ์ด 10์๋ฆฌ๋ก ๊ตฌ์ฑ, ์ฒซ์๋ฆฌ๋ ํญ์ ์ํ๋ฉง A, ๊ทธ๋ค์ 6์๋ฆฌ๋ ์ํ์ง ๋ฒํธ, ๋ง์ง๋ง 3์๋ฆฌ๋ ์ํ์ง ๋ด ๋ฌธํญ์ ๋ฒํธ๋ก ๊ตฌ์ฑ
- ex) A030071005
testId
- ์ฌ์ฉ์๊ฐ ํผ ๋ฌธํญ์ด ํฌํจ๋ ์ํ์ง์ ์ผ๋ จ ๋ฒํธ, ์ด 1537๊ฐ์ ๊ณ ์ ํ ์ํ์ง๊ฐ ์กด์ฌ
- ์ด 10์๋ฆฌ๋ก ๊ตฌ์ฑ, ์ฒซ ์๋ฆฌ๋ ํญ์ ์ํ๋ฉง A, ๊ทธ ๋ค์ 9์๋ฆฌ ์ค ์์ 3์๋ฆฌ์ ๋์ 3์๋ฆฌ๊ฐ ์ํ์ง ๋ฒํธ, ๊ฐ์ด๋ฐ 3์๋ฆฌ๋ ๋ชจ๋ 000
- ์์ 3์๋ฆฌ ์ค ๊ฐ์ด๋ฐ ์๋ฆฌ๋ 1~9๊ฐ์ ๊ฐ์ง๋ฉฐ ์ด๋ฅผ ๋๋ถ๋ฅ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
- ex) A030000071
answerCode
- ์ฌ์ฉ์๊ฐ ๋ฌธํญ์ ๋ง์๋ ์ง ์ฌ๋ถ๋ฅผ ๋ด์ ์ด์ง ๋ฐ์ดํฐ, 0์ ํ๋ฆผ, 1์ ๋ง์
- ์ ์ฒด Interaction์ ๋ํด 65.45%๊ฐ ์ ๋ต์ ๋ง์ถค, ์ฆ ์กฐ๊ธ ๋ถ๊ท ํํ ๋ฐ์ดํฐ์
Timestamp
- ์ฌ์ฉ์๊ฐ Interaction์ ์์ํ ์๊ฐ ์ ๋ณด, ์๊ฐ ๊ฐ๊ฒฉ์ ํตํด ๋ฌธ์ ๋ฅผ ํธ๋ ์๊ฐ์ ๊ฐ๋ ํ ์ ์์.
KnowledgeTag
- ๋ฌธํญ ๋น ํ๋์ฉ ๋ฐฐ์ ๋๋ ํ๊ทธ, ์ผ์ข ์ ์ค๋ถ๋ฅ
- ์ด 912๊ฐ์ ๊ณ ์ ํ๊ทธ ์กด์ฌ
๊ธฐ์ ํต๊ณ๋ ๋ถ์
๊ธฐ์ ํต๊ณ๋?
- ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ดํด๋ณผ ๋, ๊ฐ์ฅ ๋จผ์ ์ดํด๋ณด๋ ๊ฒ์ ๊ธฐ์ ํต๊ณ๋์ ๋๋ค.
- ๋ณดํต ๋ฐ์ดํฐ ์์ฒด์ ์ ๋ณด๋ฅผ ์์น๋ก ์์ฝ, ๋จ์ํํ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ํ๋ฉฐ
- ์ฐ๋ฆฌ๊ฐ ์ ์๊ณ ์๋ ํ๊ท , ์ค์๊ฐ, ์ต๋/์ต์์ ๊ฐ์ ๊ฐ๋ค์ ์ฐพ์๋ด๊ณ , EDA ๊ณผ์ ์์๋ ์ด๋ค์ ์ ์๋ฏธํ๊ฒ ์๊ฐํํ๋ ์์ ์ ๊ฑฐ์นจ
- ๋ถ์์ ์ต์ข ๋ชฉํ์ธ ์ ๋ต๋ฅ ๊ณผ ์ฐ๊ด ์ง์ด ์งํํ๋ ๊ฒ์ด ์ ๋ฆฌ
๋ค์์ I-scream dataset์ ํน์ฑ ๋ณ ๋น๋ ๋ถ์ ์ข ํฉ์ด๋ค.
๋ค์์ I-scream dataset์ ํน์ฑ ๋ณ ์ ๋ต๋ฅ ๋ถ์ ์ข ํฉ์ด๋ค.
์์ ๊ฐ์ ๋จ์ ๊ธฐ์ ํต๊ณ๋์ ๋์ด์, ์ป์ด๋ธ ํน์ฑ๊ณผ ์ ๋ต๋ฅ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๋ถ์ํด์ผ ํ๋ฉฐ, ์ด๋, ์ฌ๋ฌ ์ง์๊ณผ ๊ฒฝํ์ด ์์ผ๋ฉด ์ข๋ค.
์๋ฅผ ๋ค์ด, ๋ฌธ์ ๋ฅผ ๋ง์ด ํผ ์ฌ๋์ด ๋ฌธ์ ๋ฅผ ๋ ์ ๋ง์ถ๋๊ฐ?, ์ข๋ ์์ฃผ ๋์ค๋ ํ๊ทธ์ ๋ฌธ์ ์ ์ ๋ต๋ฅ ์ด ๋์๊ฐ?, ๋ฌธํญ์ ํธ๋๋ฐ ๊ฑธ๋ฆฐ ์๊ฐ๊ณผ ์ ๋ต๋ฅ ์ ๊ด๊ณ๋ ์ด๋ ํ๊ฐ?
๋ฌธํญ์ ๋ ๋ง์ด ํผ ํ์์ด ๋ฌธ์ ๋ฅผ ๋ ์๋ง์ถ๋ ๊ฒฝํฅ์ด ์๋ค.
๋ฌธํญ์ ํ์๋ก ํ ํ์์ ์ ๋ต๋ฅ ์ด ๋์ด๋๋ ๊ฒฝํฅ์ด ์๋๊ฐ?์ ๋ํ ๊ทธ๋ํ์ด๋ค. ์ฃผ๋ก ์ด๋ฐ์ ์ ํผ ํ์์ ์ ์ ๊ฐ์ํ๋ฉฐ, ๋ฐ๋์ ๊ฒฝ์ฐ ์ ์ ์ฆ๊ฐํ๋ค.
์ ๋ฐ์ ์ผ๋ก ์ฆ๊ฐํ๋ ์ถ์ธ์ด๋ค.
์ด์ธ์๋ ๊ฐ์ ์ํ์ง๋ ํ๊ทธ์ ๋ฌธ์ ๋ฅผ ์ฐ๋ฌ์ ํ๋ฉด ์ ๋ต๋ฅ ์ด ์ค๋ฅด๋๊ฐ? ๋ฑ์ ์๊ฐํด๋ณผ ์ ์๋ค.
Hands on EDA
[Lab. ]
Sequence ๋ชจ๋ธ๋ง
์ ํ๋ฐ์ดํฐ์๋ Titanic ์ฒ๋ผ Time๊ณผ ๊ด๊ณ์๋ Non-Sequential Data์, Transaction์ฒ๋ผ ์๊ฐ์ ์์๊ฐ ์กด์ฌํ๋ Sequential Data๊ฐ ์กด์ฌํ๋ค.
์ด๋, Sequential Data๋ฅผ Time์ ํตํฉํ๊ณ ํน์ feature์ ๋ง์ถฐ ์ง๊ณํ๊ฑฐ๋ ๊ทธ๋๋ก ๋์ฑ๋ก ์ถ๊ฐ feature๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ผ๋ก Feature Engineering์ด ๊ฐ๋ฅํ๋ค.
์๋ฅผ ๋ค์ด, ๋ฌธ์ , ์ํ, ๋๋ ์ฌ๋ ๋ณ๋ก ์ง๊ณํ ๋ค, ์ ๋ต ํ๋ฅ feature๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
์ด๋ฌํ feature๋ค์ hyperparameter ์ฒ๋ผ ์ถ๊ฐ, ์ญ์ ๋ฅผ ํตํด ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ์ธํ ์ ์๋ค.
์ด๋, ๋จ์ํ ์ด๋ฒคํธ์ ํ ๋จ์๋ก ๊ฐ์๋ฅผ ์ธ์ง ์๊ณ , aggregation ๊ธฐ์ค์ ์ค์ฌ์ผ๋ก split ํด์ผ๋๋ค.
๊ทธ ์ดํ, feature์ hyperparameter๋ฅผ ๋ฐ๊ฟ๊ฐ๋ฉด์ ์ฑ๋ฅ์ ์ฐจ์ด๋ฅผ ์์๋ณด๋ฉฐ feature๋ฅผ ๊ฒฐ์ ํ๋ค.
import torch
importh torch.nn as nn
# Size: [batch_size, seq_len, input_size or num_of_features]
input = torch.randn(3, 5, 4)
lstm = nn.LSTM(input_size=4, hidden_size=2, batch_first=True)
output, h = lstm(input)
output.size() # => torch.Size([3, 5, 2]), batch_size, seq_len, hidden_size)
LSTM ๊ตฌ์กฐ์ Sequece input์ ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฃจ์ด์ง๋ค.
batch size(dataset chunk ํ ํฌ๊ธฐ), seq_len(sequence์ ๊ธธ์ด), input_size(4 ์ฐจ์ embedding) or num_of_features์ 3์ฐจ์ ๋ฒกํฐ๊ฐ ๋ค์ด๊ฐ ๋ค,
batch_size, seq_len, hiddensize(hyperparameter)์ output์ด ๋์จ๋ค.
feature์ ์์ ๋ฐ๋ผ input size๊ฐ ๋ณํ๋ ์์๋ฅผ ๋ณด์๋ฉด ์์ ๊ฐ๋ค.
config = BertConfig(
3, # vocab_size, not used
hidden_size = 4, num_attention_heads=1
)
# Size: [batch_size, seq_len, input_size]
input = torch.randn(3, 5, 4)
# Size: [batch_size, seq_len]
mask = torch.randn(3, 5)
transformer = BertModel(config)
encoded_layers = transformer(inputs_embeds=input, attention_mask=mask)
sequence_output = encoded_layers[0]
sequence_output.size() #=> torch.Size([batch_size, seq_len, input_size])
Transformer์ input๊ณผ output ๋ํ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ง๋ง, masking์ ์ฐจ์์ด 1์ฐจ์ ์ ๋ค.
Transformer + ์ฐ์ํ, ๋ฒ์ฃผํ ์กฐํฉ์ input์ ๊ฒฝ์ฐ, embedding layer์ ์ค์ ์ ๋ฐ๋ผ input size๊ฐ ๋ค๋ฅด๋ค.
๋ฒ์ฃผํ์ ์ฐ์ํ๊ณผ ๋ค๋ฅด๊ฒ ์ธ์ฝ๋ฉ์ ํตํด vector๋ฅผ ๋ฝ์๋ด์ผ ํ๋ค.
Embedding์ ์ผ์ข ์ Lookup Table์ ๋ง๋๋ ๊ฒ์ผ๋ก, ์ด Lookup Table ๋ํ ํ์ต์ ํตํด ๊ฒฐ์ ๋๋ค.
์ด๋ฐ์์ผ๋ก Embedding๋ ๊ฐ๋ค์ concat๋์ด hidden_size๋ฅผ ๋ง๋ ๋ค.
์ด๋ concat๋๋ feature๋ค์ ์ฐจ์์ด Linear๋ฅผ ํตํด hidden size์ ๋ง๊ฒ ์ค์ด๋ ๋ค.
DKT์ ๊ฒฝ์ฐ, Transformer๊ตฌ์กฐ๋ฅผ ํ์ฉ ์ ๋ณดํต, ์ฌ์ฉ์ ๋จ์๋ก Sequence๋ฅผ ์์ฑํ ๋ค, ๊ฐ๊ฐ train input์ผ๋ก ๋ฃ์ด์ค๋ค.
DKT์ ๊ฒฝ์ฐ ๋ง์ง๋ง ๋ฌธ์ ์ ์ ๋ต์ฌ๋ถ๋ฅผ ๋ง์ถ๋ Task ์ด๋ฏ๋ก ๋ณดํต Padding์ ์์ ์ถ๊ฐํ์ฌ ๋ท๋ถ๋ถ์ ๋ง์ถ๋ค.
Sequence Data ๋ฌธ์ ์ ์์ ๋ง๋ Transformer Architecture ์ค๊ณ
Transformer ๊ตฌ์กฐ๋ ๋ค์ํ Sequence ๋ฐ์ดํฐ์์ ๊ฐ์ ์ ๋ณด์ด์ง๋ง, ๋ง์ ์์ ๋ฐ์ดํฐ์ ์ฐ์ฐ๋์ ์๊ตฌํ๋ฉฐ, ์ข ์ข ์ํฉ์ ๋ง๊ฒ ๋ณํํด์ ์ฌ์ฉํ๊ฑฐ๋, ์์ ๋ค๋ฅธ ๋ชจ๋ธ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์๋ค.
inductive bias : ํน์ ๋ชฉ์ ์ ๋ง๊ฒ ์ค๊ณ๋ ๋ชจ๋ธ๋ค(CNN, RNN)์ ๊ฒฝ์ฐ input์ ํํ์ ๋ฐ๋ผ bias๊ฐ ์๊ธด๋ค, ์ฆ, ์ ์ ํ์ง ๋ชปํ input์ ๊ฒฝ์ฐ ์ฑ๋ฅ์ด ๋์๋ค.(CNN์ Sequential input์ ๋ฃ์ด์ค๋ค๋๊ฐ)
Transfomer์ ๊ฒฝ์ฐ, inductive bias๊ฐ ์กด์ฌํ์ง ์์ง๋ง, ๊ทธ๋งํผ ๋ฐ์ดํฐ๊ฐ ๋ง์ด ํ์ํ๋ค.
์ด๋ฌํ Transformer๋ฅผ ๊ฐ์กฐํ๊ธฐ ์ํด Trasformer architecture์ ๋ณํ์ ์์๋ณด์.
Data Science Bowl
3~5์ธ ๋ค์ ๊ธฐ์ด์ํ ํ์ต์ ์ํด ๊ฐ๋ ์ ์ ํํ ๋ฐฐ์ ๋ ์ง ๋ง์ถ๋ ๊ฒ์ด ๋ํ์ ๋ชฉํ
๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก ์์ผ๋ก ์ด๋ป๊ฒ ํ์ง class 4(๋ฐ๋ก ๋ง์ถค, ํ๋ฒ ํ๋ฆฌ๊ณ ๋ง์ถค, ์ฌ๋ฌ๋ฒ ํ๋ฆฌ๊ณ ๋ง์ถค, ๋ชป๋ง์ถค)๊ฐ๋ฅผ ํตํด ์์ธก
ํ์ต ์งํ ์๊ฐ, ํ์ต ์ข ๋ฅ(์์๋ฌผ, ๊ฒ์, ํ๋, ํ๊ฐ ๋ฑ), ๊ฒ์ํ๋ ์ด ์ธ๊ณ๊ด๊ณผ ์ฌ์ฉ ์ ๋ณด ๋ฑ์ด ๊ธฐ๋ก๋์ด ์ฃผ์ด์ง๋ค.
์ด ๋, Transformer ๊ตฌ์กฐ๊ฐ ๋๋ฆฌ ์ฌ์ฉ๋์ง ์๋ ์์ ์ด์๊ณ , ์์๊ณผ ๋ฐ์ดํฐ์์ด ํ์ ๋์ด์์์ง๋ง, ํ ์ ์ ๊ฐ Transformer-Encoder ๋ชจ๋ธ์ธ BERT๋ก 3์๋ฅผ ์ฐจ์ง ํ์์ผ๋ฉฐ,
- ์๋ก ๋ค๋ฅธ ๋ฒ์ฃผํ/์ฐ์ํ ๋ฐ์ดํฐ๋ค์ ์ด๋ป๊ฒ ์๋ฒ ๋ฉ ํ๋๊ฐ,
- BERT๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ๋๊ฐ
๊ฐ ์ฃผ์์ ์ด์๋ค.
์๋ก ๋ค๋ฅธ ๋ฒ์ฃผํ/์ฐ์ํ Emedding์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ํตํ์ฌ ์๋ฒ ๋ฉ ํ์ผ๋ฉฐ,
์์ ๊ฐ์ด Transformer ๊ตฌ์กฐ๋ฅผ ๊น๊ฒ ์์ ๋ง์ง๋ง Transformer ๊ตฌ์กฐ์ output ๊ฐ์ softmaxํ์ฌ classification ํ๋ค.
์ด๋ ๋ง์ง๋ง layer ๋ถ๋ถ ๋ง์ง๋ง Trnasformer๋ฅผ ์ ์ธํ ์ฐํ๊ฒ ์น ํด์ง Transfomer ๊ตฌ์กฐ์ output์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ Loss์ ์ํด Backpropagation์ ์ ๋ฐ์ดํธ ๋์ง ์๋๋ค.
Riid!
ํ ์ต ์ํ์ ๋๋นํ์ฌ ๊ณต๋ถํ ํ์๋ค์ ํ์ต ๊ณผ์ ์ ๋ชจ์๋ ๋ฐ์ดํฐ๋ก, ์ต์ข
์ ์ผ๋ก ํ ํ์์ด ๋ง์ง๋ง์ ํผ ๋ฌธํญ์ ๋ง์ถ์ง ํ๋ฆฌ์ง ๋ง์ถ๋ ๋ํ์ด๋ฉฐ, i-Scream ๋ฐ์ดํฐ์ ๋งค์ฐ ํก์ฌํ๋ค.
๋ค๋ง ๋ฐ์ดํฐ์
์ด ์์ฃผ ๋ง์ผ๋ฉฐ, ๊ฐ์๋ฅผ ๋ณด๋ interaction ๋ฐ์ดํฐ์ ๋จ์ํ ๋ต์ ๋ง์ท๋๊ฐ ์๋๊ฐ๊ฐ ์๋, ์ฌ์ฉ์๊ฐ ์ด๋ค ๋ต์ ๋๋๊ฐ์ ์ค๋ต ์ ๋ฆฌ๋ฅผ ํ๋์ง๋ ํฌํจ๋์ด ์์.
์ด๋, ๋๋ฌด ๋ฐ์ดํฐ๊ฐ ๋ง์์, ์๋ฒ ๋ฉ๋ 2๊ฐ์ Sequence๋ฅผ ํ๋๋ก ์ด์ด ๋ถ์ธ ํ, Sequence์ ๊ธธ์ด๋ฅผ ๋ฐ์ผ๋ก ์ค์ด๋ ๋์ , ํ๋์ ์๋ฒ ๋ฉ ์ฐจ์์ 2๋ฐฐ๋ก ๋๋ ค ํ์ต์์ผ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ค์
Predicting Molecular Properties
๋ถ์์ ์ฌ๋ฌ ์ ๋ณด๋ค์ ํตํด ์์ ๊ฐ ๊ฒฐํฉ ์์๋ฅผ ์ฐพ๋ ๋ํ
๋ถ์๋ด ์์ ๊ฐ ๊ฒฐํฉ ์ ๋ณด, ์์ ๊ฐ ๊ฐ๋ฆผ๋ง ํจ๊ณผ, ๋ถ์์ ์๋์ง ์ํ, ๋ถ์ ๋ด ์์์ ์ ํ ์ํ, ๊ฒฐํฉ ์์ ์ธ๋ถ ์ ๋ณด ๋ฑ์ด ๋ฐ์ดํฐ๋ก ์ฃผ์ด์ง
LGBM์ด๋ Grpah NN์ ํตํด ์ ๊ทผํ ํ๋ ๋ง์
๋ถ์ ๋ณ๋ก ๊ฐ๋ฅํ ์์ ์กฐํฉ๋ค์ ๋ํด ๋ชจ๋ scalar_coupling_constant๋ฅผ ๊ตฌํด์ผ ํ๋ฏ๋ก, ์์น๊ฐ ์ค์ํ์ง ์์ Sequence Data๋ก ๋ณผ ์ ์์ผ๋ฉฐ, ํ ๋ถ์๋ฅผ Total Sequence, ์์ ์์ ํ๋์ Sequence๋ก ๋ณธ๋ค๋ฉด, ์ ๊ทธ๋ฆผ ์ฒ๋ผ ์์ ์ ์์๋ ๋ค๋ฅด์ง๋ง ๊ฒฐ๊ณผ๊ฐ ๋๊ฐ์ด ๋์์ผํจ
Sequence ์์์ ๋ชจ๋ token์ด ๋ค๋ฅธ ๋ชจ๋ token์ ์ฐธ์กฐํ๋ฉฐ, Positional Embedding์ ํตํด ์์น์ ๋ณด๋ฅผ ๋ฐ์ํ๋ ๋ฐฉ์์ธ Transformer ๊ตฌ์กฐ๊ฐ ์ ์ ํ๋ค.
- ์ฆ, ์์น ๊ด๊ณ๊ฐ ์๊ด์์ผ๋ฏ๋ก Positional Embedding์ ์์ฃผ๋ฉด ๋จ (Permutation Invariant Transformer)
์ด๋, ๋ถ์ ๋ณ๋ก ์์์์ด 135๊ฐ ์ด๋ฏ๋ก Sequence Length๋ ์ด 135๊ฐ SC(Scaling constant)์ด๋ฉฐ,
๋ ์์์ ์ ๋ณด๋ค๊ณผ ๋ ์ฌ์ด์ ๊ด๊ณ์ ๋ณด ๊น์ง ์๋ฒ ๋ฉ ํ์ฌ, ๊ฐ ์์์ ์ ํ, ์์น, ์์ ๋ฒํธ, ์์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ, ์์ ๊ฒฐํฉ ์ข ๋ฅ๊ฐ embedding๋ vector๋ฅผ input์ผ๋ก ์ฌ์ฉ
์ต์ข ์ ์ผ๋ก ์์ธกํด์ผํ๋ scaling constant(SC)๊ฐ Fc, sd, pso, dso์ ํฉ์ผ๋ก ์ด๋ฃจ์ด ์ ธ์์ผ๋ฏ๋ก, SC๋ฅผ ์์ธกํ๋ Transformer์ Fc, sd, pso, dso๋ฅผ ๊ฐ๊ฐ ์์ธกํ๋ ๋ ์ข ๋ฅ์ ๊ฒฐ๊ณผ์ ํ๊ท ์ ํตํ์ฌ ์์ธก์ผ๋ก ์ ์ถ
Mechanisms of Actions (MoA)
์ฝ๋ฌผ ํฌ์ฌ์, ์ด๋ค ํํ ๋ฐ์์ด ์ผ์ด๋๋์ง ์์ธกํ๋ ๋ํ๋ก, ํฌ์ฌํ ์ฝ๋ฌผ์ ์ข ๋ฅ, ์, ์๊ฐ, ์ฝ๋ฌผ ํฉ์ฑ๋ฐฉ์, ํฌ์ฌ ๋ฐ์ ์ฌ๋์ ์ ์ ์ ๋ฐํ ์ข ๋ฅ(772 features), ์ธํฌ ์์กด ๋ฅ๋ ฅ(cell viability) ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํจ.
Sequence๋ก ๋ฌถ์ ์ ์๋ ๋ฐ์ดํฐ๊ฐ ์๊ณ , Feature ์๊ฐ ๋๋ฌด ๋ง๊ณ , ์์ธก ํด์ผํ class์ ์๊ฐ 207๊ฐ ์์ ๋นํด, ๋ฐ์ดํฐ๋ 2๋ง 3์ฒ๊ฐ ๋ฐ์ ์กด์ฌํ์ง ์์, Transformer ๊ตฌ์กฐ๊ฐ ์ ์๋ํ์ง ์์๋ค๊ณ ํจ.
์ด๋ฅผ ์ํด ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ CNN ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค.
- ๋ค์์ Feature๋ฅผ ๊ฐ์ง ์ ์ ์ ๋ณด์ ์ธํฌ ์์กด ์ ๋ณด๋ฅผ PCA(Principal component analysis)๋ฅผ ํตํด 50์ฐจ์, 15์ฐจ์์ ๋ฒกํฐ๋ก ๋ง๋ฆ
- ๊ธฐ์กด์ feature์ concatenateํ์ฌ ์ถ๊ฐ์ ์ธ feature๋ก ์์ฑ
- ์ ๊ฒฐ๊ณผ๋ฅผ Linear์ ํต๊ณผ์์ผ ๋ ํฐ ์ฐจ์์ 1์ฐจ์ ๋ฒกํฐ๋ก ๋ณํ,
- Linear feature ordering์ ํตํ์ฌ ์ฐจ์์ ๋๋ ค์ฃผ์ด, ํ์ฉ๊ฐ๋ฅํ ์ถฉ๋ถํ Pixel์ ์์ ์์ฑ,
- ์์ฑ๋ ๋ฐ์ดํฐ ์์์ feature๋ฅผ ์ต์ ์ ์ ๋ ฌ์ ํ์ตํ๋ ํจ๊ณผ
- ๊ฐ ๋ฒกํฐ์ ์์๊ฐ ๊ฐ์ง๋ ์๋ฏธ๋ฅผ ๋์ผํ๊ฒ ๋ง๋ฆ
- ์ด๋ฅผ ์งง์ ๊ธธ์ด์ ์ฌ๋ฌ ์ฑ๋์ ๊ฐ์ง๋ 1D ๋ฐ์ดํฐ๋ก ๋ณํ
- ์ด ๋ฐ์ดํฐ๋ฅผ Conv1D Architecture์ ํต๊ณผ์์ผ ์ต์ข
๊ฒฐ๊ณผ ์์ฑ
- ์ด๋, ์ปค๋ ์ฌ์ด์ฆ๋ n X embedding size ์ธ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. (๋ท ๋ถ๋ถ์ด embedding size๊ฐ ์๋๋ฉด ํ feature์ ์ผ๋ถ embedding ๋ง ๊ฐ์ ธ๊ฐ๋ฏ๋ก)
์ ์ฑ๋ฅ์ด ๋จ์ผ ๋ชจ๋ธ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข์๋ค.
Kaggle Riiid Competition Winnerโs Solution ํ์
Feature Engineering
๊ณตํต์ ์ธ FE
Feature Engineering์ ์ ๊ทผ ๋ฐฉ๋ฒ์๋ 2๊ฐ์ง๊ฐ ์๋ค.
- Bottom-Up
Data ๊ธฐ๋ฐ ๋ฐฉ์,
1) EDA๋ฅผ ํตํด ํน์ง์ ์ดํผ๊ณ ,
2) ํด๋น ํน์ง์ Test Data๋ฅผ ํตํด ๊ฒ์ฆ ๋ค,
3) ์ด๋ฅผ ํตํด ์๋ก์ด feature๋ฅผ ๋ง๋ค์ด ๋ด๊ณ , CV(Cross Validation) ์์น์ ํ์ธ
- Time, group์ ๋ฐ๋ฅธ K-fold Validation์ ์ํํด๋ณด๊ณ , ์ค๋ฅด์ง ์์๋ ๊น์ง(ํ๋ฆฌ์ง ์์๋ ๊น์ง) ์๋.
4) model ์์ฑํ ํ, hyperparameter๋ฅผ ์ฐพ๋ ๋ฐฉ์
์๋ฅผ ๋ค์ด, ์ ๊ท๋ถํฌ์ ์ผ๋ถ ๋ค๋ฅธ ์ง์ ์ ์ฐพ์, ํด๋น ๋ถ๋ถ์ feature๋ก ์์ฑ
- Top-Down
๊ฐ์ค(Hypothesis), domain ์ง์ ๊ธฐ๋ฐ ์ปจ์คํ ๋ฐฉ๋ฒ๋ก (Logical thinking)
๊ฐ์ค-๊ตฌํ-๊ฒ์ฆ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ,
Feature Extraction ์,
1) ๋ฐ์ดํฐ์ ๋ํ ์ง๋ฌธ & ๊ฐ์ค
2) ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ๊ณ , ๋ณํํ๊ณ , ๋ชจ๋ธ๋งํ์ฌ ๊ฐ์ค์ ๋ํ ๋ต์ ํ์(๊ตฌํ-์ฑ๋ฅํ๊ฐ)
3) ์ฐพ๋ ๊ณผ์ ์์ ๋ฐฐ์ด ๊ฒ๋ค์ ํ ๋๋ก, ๋ค์ ๊ฐ์ค์ ๋ค๋ฌ๊ณ ๋ ๋ค๋ฅธ ๊ฐ์ค ์์ฑ
์ ๋ ๋ฐฉ์์ ๊ฐ์ด ์ฌ์ฉํ๋๊ฒ์ด Best,
์ดํ, ์ ํ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ, Feature์ Numerical, Categorical ์ข ๋ฅ๋ฅผ ๊ตฌ๋ถํ ํ, ๊ฐ ์ข ๋ฅ์ ํน์ง์ ๋ฐ๋ฅธ EDA๋ฅผ ํด๋ณธ๋ค.
์๋ฅผ ๋ค์ด, ์ซ์ํ์ ๊ฒฝ์ฐ, ํ๊ท , ๋ฒ์, ์ฒจ๋ ๋ฑ์ ์์๋ณด๋ฉฐ,
๋ฒ์ฃผํ์ ๊ฒฝ์ฐ, Missing value, value ๋ณ Count, percent ์ต๋น๋ ๊ฐ ๋ฑ์ ์์๋ณด์.
Target๊ณผ์ ์๊ด๊ด๊ณ๋ฅผ Bar plot, hsit plot ๋ฑ์ ๊ทธ๋ ค ์์๋ณผ ์ ์๋ค.
Riiid์ ๊ฒฝ์ฐ
1) ๋ฌธํญ์ ํธ๋ ํจํด์ผ๋ก..
์ด์ ์ ํผ ๋ฌธ์ ์ธ๊ฐ?, ํน์ ์ ๋ต์ ํ ๋ฒํธ๋ก ์ฐ์๋๊ฐ?๋ฅผ ์ ์ ์๋ค.
์์ฝ๊ฒ๋ i-Scream ๋ฐ์ดํฐ๋ ์ ํ์ง์ ๋ํ ์ ๋ณด๊ฐ ์์.
2) ์ฌ์ฉ์๊ฐ ๋ฌธํญ์ ํธ๋ ๋ฐ ๊ฑธ๋ฆฐ ํ๊ท ์๊ฐ์ผ๋กโฆ
์ค๋ ๊ฑธ๋ ธ์ ๊ฒฝ์ฐ, ๋ง์ถ ํ์์ ํ๊ท ์๊ฐ๊ณผ ํ๋ฆฐ ํ์์ ํ๊ท ์๊ฐ์ Feature๋ก ์ฃผ์ด ํ์ฉํ ์ ์๋ค.
3) ์ฌ์ฉ์ ์ ๋ต๋ฅ ์ถ์ด๋กโฆ
์ต๊ทผ ์ ๋ต๋ฅ ๋ก, ์์ผ๋ก ๋ฌธํญ๋ค์ ์ ๋ต ์ฌ๋ถ๋ฅผ ๊ตฌํ ์ ์๋ค.
- ์ต๊ทผ ์ ๋ต๋ฅ ์ด ๋ฎ์์ง๋ฉด, ํ์ฌ ํธ๋ ๋ฌธํญ๋ค์ ์ ๋ชจ๋ฅธ๋ค๋ ์๋ฏธ์ด๋ฏ๋ก, ๋ง์ฐฌ๊ฐ์ง๋ก ์ค์ด๋ค ๊ฒ์ด๋ค.
4) ์ด๋ฏธ ํผ ๋ฌธ์ ๊ฐ ๋ค์ ๋ฑ์ฅํ๋ ๊ฒฝ์ฐโฆ
๋ง์ท๊ฑฐ๋, ํ๋ ธ์ด๋ ๋ค์ ๋ณต์ตํ์ ํ๋ฅ ์ด ์์ผ๋ฏ๋ก, ์ ๋ต๋ฅ ์ด ์ฌ๋ผ๊ฐ ์ ์์.
5) ๋ฌธํญ, ์ํ์ง, ํ๊ทธ์ ํ๊ท ์ ๋ต๋ฅ ๋ก โฆ
์ฌ์ด ๋ฌธํญ, ์ํ์ง, ํ๊ทธ์ ๊ฒฝ์ฐ ์ ๋ต๋ฅ ์ด ์ฌ๋ผ๊ฐ ์ ์๋ค.
๋ํ, ์ฌ์ฉ์๊ฐ ํธ๋ ๋ฌธ์ ์ ๋ํ ์ ๋ณด(๋ฌธํญ์ ์ ๋ต๋ฅ , ๋ฌธํญ์ด ๊ฐ์ง ํ๊ทธ์ ์ ๋ต๋ฅ )๊ฐ ๋ง์ ์๋ก ํ์ฉ ํ๊ธฐ ์ฝ๋ค.
-
๋ฌธํญ-ํ๊ทธ ์ ๋ณด ์์ content2vec,
- ์ฌ์ฉ์-๋ฌธํญ ์ ๋ณด๋ก SVD, LDA, item2vec
- ๋ฌธํญ์ ํน์งํํ๋ IRT, ELO
๋ฑ์ implicit ํ ์ ๋ณด๋ฅผ ํ์ฉํ ์ ์๋ค.
Data Leakage
Feature๋ฅผ ๋ฃ์ด์ ๊ฒฐ๊ณผ๊ฐ ์ข๊ฒ ๋์ค๋ฉด ์ ์ฉํด๋ ๋๋ ๊ฒ์ผ๊น?
ํด๋น ๋ฌธํญ์ ํ๊ท ์ ๋ต๋ฅ Feature๋ฅผ ์๊ฐํด๋ณด์.
ํ๊ท ์ ๋ต๋ฅ ์ validation์ด๋, test dataset์ ์ ์ธํ๊ณ , ๊ณ์ฐํ๊ฒ ๋๋ค.
์ฆ, ์ ์ฒด ๋ฐ์ดํฐ์ ์ ์ ๋ต๋ฅ ์ ์ค์ ์ ๋ต๋ฅ ๊ณผ ๋ค๋ฅผ ์ ๋ ์๋ค.
๊ณผ๊ฑฐ ํ์ ์์๋ ์๋ฅผ ๋ค์ด, 5์ 1์ผ ~ 8์ผ ๋ฐ์ดํฐ๋ train dataset, 8์ผ๋ถํฐ ~10์ผ ๋ฐ์ดํฐ๋ validation set, 11์ผ ๋ถํฐ 15์ผ ๊น์ง๋ test dataset์ผ๋ก ์ฃผ๋ ๋ฑ, ์๊ฐ์ ๊ณ ๋ คํ์ง ์๊ณ ์ฃผ์ด ์ฌ๋ฐ๋ฅด์ง ๋ชปํ ๊ฒฐ๊ณผ๋ฅผ ์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ค. (Inductive bias ๋ฌธ์ ?)
ํ์ง๋ง ์ต๊ทผ์๋ time series api๋ฅผ ์ด์ฉํด, inference ์, ํ row๊ฐ ์งํ๋ ๋๋ง๋ค, updateํ๋ฏ๋ก ๋ฌธ์ ๊ฐ ์๋ค.
๋ค์ํ ๋ฐฉ๋ฒ์ ํตํ ๋ฌธํญ ๊ณต์ ์ Feature ๋ฝ์๋ด๊ธฐ
์ถ์ฒ ์์คํ ์์ ๋ง์ด ์ฌ์ฉ๋๋ Matrix Factorization ๋ฐฉ์์ผ๋ก ์ฌ์ฉ์์ ๋ฒกํฐ์ ๋ฌธํญ์ ๋ฒกํฐ๋ฅผ ๋ง๋ค ์ ์์. (์ต๊ทผ์๋ Factorization Machine์ ๋ง์ด ์ฌ์ฉํจ.)
Riid, i-Scream ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ, ๋ฌธ์ ๋ฅผ ํผ ์ฌ์ฉ์์ ์ฌ์ฉ์๊ฐ ํผ ๋ฌธํญ์ ํตํด user-item ํ๋ ฌ์ ๋ง๋ค์ด ์งํ ๊ฐ๋ฅ.
ํน์ ์ ์ฌํ ๋ฐฉ๋ฒ์ผ๋ก ์ ํ๋์ํ์์ Singular Value Decomposition (SVD)๋ฅผ ํ์ฉํ ์ ์์.
๋์ด๋์ ์ด๋ก ์ธ ELO, IRT(Item Response Theory) ๋ํ ํ์ฉ ๊ฐ๋ฅํ๋ค.
์ด๋ ํ์๊ณผ ๋ฌธํญ ๋ณ๋ก ๊ณ ์ ํ ํน์ฑ์ด ์๋ค๋ ๊ฐ์ ์ ํ๋ ์ด๋ก ์ด๋ค.
-
ํ์์ ์ ์ฌ๋ฅ๋ ฅ์ด ์๊ณ , ๊ฐ ๋ฌธํญ์ ํ์์ ์ ์ฌ ๋ฅ๋ ฅ์ ๋ฐ์ ๋ฌธํญ์ ๋ง์ถ ํ๋ฅ ์ ๋ฐํํ๋ ๊ณ ์ ํจ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ๊ฐ์ .
-
๋ง์ฝ ํ์์ ์ ์ฌ๋ฅ๋ ฅ๊ณผ ๋ฌธํญ ๋ณ ๋ชจ์๋ฅผ ์๋ค๋ฉด, ์ ์ฒด ํ์์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๋ง์ถ ํ๋ฅ ์ ๋ชจ๋ ์ ์ ์๋ค๋ ์ด๋ก .
์ด๋, ๋ฌธํญ์ด ๊ฐ์ง ๊ณ ์ ํจ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋จ.
\(\phi(\theta;\beta)=c+\frac{1-c}{1+e^{-(\theta-\beta)}}\\
\phi : ํ์์\ ๊ณ ์ \ ๋ฅ๋ ฅ,\ \beta:\ ๋ฌธํญ\ ๋ณ\ ํจ์์\ ๋ชจ์,\\
c:\ ๋ฌด์์๋ก\ ์ฐ์\ ์\ ๋ง์ถ\ ํ๋ฅ (์ฌ์ง์ ๋ค\ ์, 0.25)\)
IRT(Item Response Theory)์์๋ ์ฌ๊ธฐ์ ๋ ๋ง์ ๊ฐ์ ์ ๋ฃ์ด ๋ฌธํญ ๋ณ ํจ์๋ฅผ ๋ค์ํ๊ฒ ๋ง๋ค ์ ์์.
Riiid ์์๋ ๊ฐ๋จํ๊ฒ $\theta$์ $\beta$๋ฅผ ๊ฐ๋จํ๊ฒ ์ถ์ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์๋ ์๋ค.
- ์ ์ฒด ํ์์ $\theta$์ ์ ์ฒด ๋ฌธํญ์ $\beta$๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
- ์๋ ์์์ ๋ง์ถฐ์ $\theta$์ $\beta$๋ฅผ ์ ๋ฐ์ดํฐ, (correct๋ 0/1์ binary ์ ๋ต ์ฌ๋ถ)
- ์ด ๊ณผ์ ์ ์ ์ฒด ๋ฐ์ดํฐ์ ๋ํด ๋ฐ๋ณตํด ์ต์ข ๊ฐ์ ์ฐพ์
- ๊ตฌํ ์ด ๊ฐ๋ค์ ํตํด test ๋ฐ์ดํฐ ๋ด์ ํ์ ๋ณ ๋ฌธํญ์ ๋ํ ์ ๋ต๋ฅ ์ ๊ตฌํจ.
Continuous Embedding
์ผ๋ฐ์ ์ผ๋ก ์ฐ์ํ ๋ฐ์ดํฐ๋ ์๋ฒ ๋ฉ ๋ฐ์ดํฐ์ ๋ฌ๋ฆฌ Embedding ํ์ง ์๊ณ ์ง์ด๋ฃ๋๋ค.
๋ฒ์ฃผํ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ, ์๋ฒ ๋ฉ ํ๋ ฌ์ ํ ์ด์ ์ฌ์ฉํ๋ ํํ์ด๋ฉฐ, ์ฐ์ํ์ ๊ทธ๋ด ์ ์์ผ๋ฏ๋ก, ์๋ฒ ๋ฉ ๋์ , ์ฃผ์ด์ง ์ฐ์ํ ๋ฐ์ดํฐ ๊ฐ์ ๊ฐ์ค์ ๋ ๋๊ณ , ๊ทธ ์ฃผ๋ณ ๊ฐ๋ค์ ๋ ์์ ๊ฐ์ค์ ์ฃผ์ด, ์ด ์๋ฒ ๋ฉ ํ๋ ฌ์ ํน์ ์ด๋ค์ ๊ฐ์คํฉํ ๋ฒกํฐ๋ฅผ ์๋ฒ ๋ฉ์ผ๋ก ์ฌ์ฉํจ.
์๋ฅผ ๋ค์ด 1~100๊น์ง ์๋ฒ ๋ฉ ํด ๋์๋ค, 50์ ์๋ฒ ๋ฉํ๋ ค ํ ๋, (50์ ์๋ฒ ๋ฉ๊ฐ*0.45) + (49์ ์๋ฒ ๋ฉ๊ฐ*0.18)+ (51์ ์๋ฒ ๋ฉ๊ฐ*0.18)+(48์ ์๋ฒ ๋ฉ๊ฐ*0.09)+(52์ ์๋ฒ ๋ฉ๊ฐ*0.9) โฆ๋๋ต์ ์ธ ์ ๊ท๋ถํฌ๋ฅผ ํตํ์ฌ ์ฌ์ฉํ๋ค.
Last Query Transformer RNN
์ผ๋ฐ์ ์ผ๋ก,
- LGBM, DNN ๊ฐ์ Machine Learing์ ๊ฒฝ์ฐ,
- ๋ง์ Feature Engineering์ ํตํด, ๋ค๋์ Feature๋ฅผ ํ์๋ก ํ๊ณ , ์ ์๋ฏธํ ๊ฒ์ ์ฐพ์๋ด์ผ ํ๋ค.
- Transformer ๊ฐ์ Deep Learning์ ๊ฒฝ์ฐ,
- ์์์ Feature๋ฅผ ์ฐพ์์ฃผ๋ฏ๋ก, FE๋ฅผ ์ ๊ฒ ์ฌ์ฉํ๊ณ ์์ฃผ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ๋ก ํ๊ณ , sequence์ ๊ธธ์ด์ ์ ๊ณฑ์ ๋น๋กํ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ฏ๋ก ๋ถ๋ด์ค๋ฝ๋ค.
- Tabular data(์ ํ ๋ฐ์ดํฐ)์์๋ ์ฌ์ ํ FE๊ฐ ๋ง์ด ํ์, ๋ณดํต์ ๊ฒฝ์ฐ์๋ FE๋ฅผ ํตํด ์ฑ๋ฅ์ ์ฌ๋ฆด ์ ์์.
Resolving deficits
Riid์ 1๋ฑ ์๋ฃจ์ ์ธ Last Query Transformer RNN์, ์ ๋ ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๋ชจ๋ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ผ๋ก 1๋ฑ์ ์ฐจ์ง.
ํน์ง์ผ๋ก,
-
๋ค์์ Feature๋ฅผ ์ฌ์ฉํ์ง ์์, ๋์ sequence ๊ธธ์ด๋ฅผ ๋๋ฆผ(์๊ฐ ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ๋ ๋ฌธ์ ๋ฅผ ์๋๋ก ํด๊ฒฐ).
- 5๊ฐ์ feature ๋ง ์ฌ์ฉ, ๋ค๋ฅธ ์์๊ถ ๋ชจ๋ธ์ ๊ฒฝ์ฐ 70~80๊ฐ ์ฌ์ฉ
-
๋ง์ง๋ง Query๋ง ์ฌ์ฉํ์ฌ ์๊ฐ ๋ณต์ก๋๋ฅผ ๋ฎ์ถค
- ์ผ๋ฐ์ ์ผ๋ก $n \times m$ ํ๋ ฌ๊ณผ $m \times l$ ํ๋ ฌ์ ๊ณฑ์ ๋ํ ์๊ฐ ๋ณต์ก๋๋ $O(nml)$์ด๋ค.
- Transformer์์ Query, Key, Value์ ๋ํ ํ๋ ฌ Q, K, V๊ฐ ๊ฐ๊ฐ (L, d)๋ก ์ฃผ์ด์ ธ ์๊ณ , ์ฐ๋ฆฌ๊ฐ ๊ณ์ฐํ๋ Attention Score์ ๊ณ์ฐ์์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์๊ฐ ๋ณต์ก๋๊ฐ $O(L^2d)$๋ก ๋ณํ๋ค.
- ์ถ๊ฐ์ ์ผ๋ก ๋ง์ง๋ง Query๋ง ์ฌ์ฉํ๋ค๋ฉด, Q ํ๋ ฌ์ ์ฐจ์์ด (L, d)์์ (1, d)๋ก ์ค์ด๋ ๋ค.
- ์ฆ, ์ต์ข ์ ์ผ๋ก $O(Ld)$๋ก ์ค์ด๋ ๋ค.
-
๋ฌธ์ ๊ฐ ํน์ง์ Transformer๋ก ํ์ ํ๊ณ , ์ผ๋ จ์ Sequece ์ฌ์ด ํน์ง๋ค์ LSTM์ ํ์ฉํด ๋ฝ์๋ธ ๋ค, ๋ง์ง๋ง DNN์ ํตํด Sequence ๋ณ ์ ๋ต์ ์์ธก
- Positional embedding๊ณผ look-ahead mask๋ฅผ ์ ์ธํ์ฌ ์์์ ๊ด๊ณ์์ด ์ ๋ ฅ ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ ํ๊ฒ ํจ
- ๊ทธ ๋ค, Sequential ํน์ฑ ํ์ ์ ์ํด LSTM ํ์ฉ
- ์ด๋ฅผ ํตํด, Encoder ์(=Layer ์)์ Sequence length๋ฅผ ์ฆ๊ฐ์์ผ ์ฑ๋ฅ์ด ํฅ์ ๋จ.
- BERT ๋ชจ๋ธ์ ๋นํด 3๋ฐฐ ์ด์์ sequence length๋ฅผ ๊ฐ์ง(512 vs 1728)
ML Pipeline
[DKT-8]ML_Pipeline.ipynb ์ฐธ์กฐ
Model Serving
๋ชจ๋ธ ์๋น์ ์ข ๋ฅ
On-device Serving
Cloud-based Serving
์น์๋ฒ๋ฅผ ํ์ฉํ ๋ชจ๋ธ ์๋น
HTTP ํต์
์น ์๋ฒ ๊ตฌ์ถ
MLflow๋ฅผ ํ์ฉํ ๋ชจ๋ธ ์๋น
MLflow
์์ ์์คํ
End to End Project
์ค์ ํ์ ๊ณผ Competition์ ๋น๊ต
๋ฌธ์ ์ ์ 3์์
input(Data_X, DataType)
Output(Data_Y, ์์ธกํด์ผ ํ ๊ฐ)
Metric(ํ๊ฐ ์งํ)
Workflow
Workflow๋?
์ํฌ ํ๋ก์ฐ ๊ด๋ฆฌ
Apache Airflow๋ฅผ ํ์ฉํ ์ํฌ ํ๋ก์ฐ ๊ด๋ฆฌ
Airflow๋ Workflow๋ฅผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์์ฑ, ์์ฝ ๋ฐ ๋ชจ๋ํฐ๋งํ๋ ํ๋ซํผ์ผ๋ก, python์์ด์ฉ ํ ์ํฌ ํ๋ก์ฐ ๊ด๋ฆฌ ํด์ด๋ค.
- Airbnb -> Apache ๋ก ํ๋ก์ ํธ ๋์ด๊ฐ
Airflow๋ ํฌ๊ฒ
Webserver, Scheduler, Worker, Meta DB๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
ํ ์ด ํ๋ก์ ํธ ์๊ฐ
_articles/AI/Structured_Data/DKT ๊ธฐ๋ณธ.md