- Tokenization
- corpus를 의미 있는 단위인 token으로 나누기
- 구두점, 특수문자 단순히 제외하면 안됨 - Lemmatization & Stemming
- Lemmatization : 표제어 추출 (뿌리 단어 찾기, am → be)
- Stemming : 어간 추출 (going → go) - Language Model
- 단어 sequence에 확률을 부여하는 모델로, 이전 단어들 주어졌을 때 다음 단어 예측하는 모델 - n-gram
- 통계적 언어 모델에서 앞의 n개 단어 보고 확률 계산 - BoW (Bag of Words)
- 단어 순서를 고려하지 않고 출현 빈도만 고려 - TF-IDF
- DTM : 문서별 단어 빈도를 행렬로 표현
- tf(d,t) : 특정 문서 d에서 특정 단어 t가 나오는 횟수
- df(t) : 특정 단어 t가 등장한 문서 횟수
- idf(d,t) = log(n/(1+df(t)) : 문서 수 많아질수록 idf 값 커지는 것 막고자 로그 사용 & 분모 0 막고자 +1 - 임베딩
- 자연어를 기계가 알아들을 수 있게 vector화
- 단어, 문장 사이 유사도 계산 / 의미, 문법적 정보 도출 / transfer learning
- 행렬 분해 기반 : GloVe, Swivel / 예측 기반 : Word2Vec, FastText, BERT, ELMo, GPT / 토픽 기반 : LDA - Word2Vec
- CBOW : 주변 문맥 단어 통해 타깃 단어 맞추는 과정 학습
- Skip-gram : 타깃 단어로 주변 문맥 단어 맞추는 과정 학습
- Positive / Negative sample 만들어 input은 (target, context by n-gram)이며 output은 Positive sample 여부
- 로그확률 평균 식을 최대화하는 방식으로 학습 - FastText
- Word2Vec에서 단어 대신 문자 단위로 n-gram 수행 - Topic Modeling
- LSA : 특이값 분해로 행렬 차원 수 줄이는 워드 임베딩 방식
- LDA : 디레클레 분포 변수에 의해 잠재 정보를 알아내 문서별 주제를 알아내는 확률 모형 - Glove
- 말뭉치 전체에 대해 학습하기 어려운 Word2Vec의 단점과 단어간 유사도 측정을 하기 어려운 LSA의 단점을 보완
- 단어 벡터 간 유사도를 측정하면서 말뭉치 전체에 대한 통계량 잘 반영하도록
- 단어-문맥 행렬 분해 - Swivel
- Glove에서 PMI 행렬 분해
- PMI (점별 상호 정보량) : 상관성 수치화, 두 단어가 같이 등장하는 정도 수치화 - ELMo
- transfer learning을 NLP에 접목
- fine tuning : pre-train 뒤 downstream task에 적용
- 문자 단위 CNN으로 단어 내 문자들 사이 의미, 문법적 관계 도출
→ 양방향 LSTM layer로 단어 사이 의미, 문법적 관계 도출
→ ELMo layer로 출력 벡터 가중합하여 학습 손실 최소화 방향으로 업데이트 - Scaled Dot-Product Attention
- Attention(Q,K,V) = softmax(QK^T/sqrt(d_k))V
- 내적으로 유사도 구함 / 쿼리 및 키 단어 일치하는 attention / 키 행렬 차원 수 제곱근으로 나눠 스케일 맞춤 - Transformer Network
- Multi-Head Attention : Scaled Dot-Product Attention 여러 번 수행
- Position-wise Feed Forward : Multi-Head에 선형변환 2번 적용 - BERT
- 양방향 학습
- pre-train task : 마스크 언어 모델 + NSP(다음 문장 여부 맞추기)
- token embedding : 입력 token 자체 / segment embedding : 문장 첫번째인지 두번째인지 / position embedding : 입력 문장 절대적 위치
반응형
'REVIEW > INTERN+INTERVIEW' 카테고리의 다른 글
[ML] 머신러닝 기초 (for 기술면접 대비) (0) | 2020.06.25 |
---|---|
[CS] Python 기초 (for 기술면접 대비) (2) | 2020.06.25 |
[CS] 자료구조 (for 기술면접 대비) (0) | 2020.06.25 |
[INTERVIEW] 엔씨소프트 2020 Summer Intern 면접 준비 (10) | 2020.06.16 |
[INTERVIEW] 네이버 NLP 직군 인턴 면접 후기 (0) | 2020.02.25 |