일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- huggingface
- Transformers
- multi-head attention
- BELU
- KLUE-RE
- BoostCamp
- fine-tuning
- FSML
- beam search
- pytorch
- NLP
- KLUE
- Conversation System
- scaled dot-product attention
- Transformer
- bert
- boj
- Chatbot
- Eliza
- 취업
- Relation Extraction
- BLEU Score
- layer normalization
- Dialogue System
- Prompt Tuning with Rules for Text Classification
- 백준
- ai-tech
- text classification
- MT-DNN
- GPT-1
Archives
- Today
- Total
dukim's blog
[WK06-Day025][21.09.06.Mon] Level-2 NLP U-Stage 시작, Intro to NLP, BoW, W2V 본문
Boostcamp AI Tech 2th
[WK06-Day025][21.09.06.Mon] Level-2 NLP U-Stage 시작, Intro to NLP, BoW, W2V
eliza.dukim 2021. 9. 6. 23:21Intro
- Level 2 - NLP Domain 첫 날
- 팀 빌딩 : 11조 SmilingFace
학습 내용
Intro to NLP
관련 학문 분야
- Natural Language Processing
- 주요 컨퍼런스: ACL, EMNLP, NAACL
- 처리 수준에 따라
- Low-level parsing
- Tokenization, Stemming
- Word and phrase level:
- NER, POS tagging, Noun-Phrase Chunking, Dependency Parsing, Coreference Resolution
- Sentence level:
- Sentiment Analysis, Machine Translation
- Multi-sentence and paragraph level
- Entailment prediction, Question Answering, Dialogue Systems, Summarization
- Low-level parsing
- Text mining
- 주요 컨퍼런스: KDD, The WebConf(WWW), WSD, CIKM, ICWSM
- Text 또는 Document data로부터 유용한 정보 추출
- 문서 군집화(e.g. topic modeling)
- 사회과학과 연관된 연구주제
- Information retrieval
- 주요 컨퍼런스: SIGIR, WSDM, CIKM, RecSys
- 사회과학과 연관된 연구주제
Bag-of-Words
- 각 단어를 one-hot 벡터로 표현
- 문장 또는 문서는 각 단어 벡터의 단순 합으로 표현
- 단어와 단어 사이의 의미관계 표현 불가(어떤 단어 쌍이든지 거리는 $\sqrt{2}$, 코사인 유사도는 0)
NaiveBayes Classifier
- MAP(Maximum A Posteriori): 각 클래스에 대하여 사후확률을 최대화 하는 클래스로 분류
- 문서를 d, 클래스를 c라 할 때, 문서 d가 주어졌을 때 이것이 클래스 c로 분류될 확률 $C_{MAP} = \rm{argmax}_{c \in C} P(c|d)$을 바로 알 수 없음
- 따라서 파악 가능한 확률로 바꾸어 계산하기 위해 베이즈 정리를 이용해 $\rm{argmax}_{c \in C} \frac{P(d|c)P(c)}{P(d)}$로 나타낸다.
- 위 식에서 분모는 상수이므로 최대값 탐색에는 무시해도 되는 값. 따라서 $\rm{argmax}_{c \in C} P(d|c)P(c)$로 간소화하여 나타낼 수 있다.
- 참고: MAP vs. MLE: https://process-mining.tistory.com/126
- 각 문서 d가 단어 w로 구성이 된다고 할 때 어떤 문서가 클래스 c로 분류될 확률은 조건부 독립 가정하에 단순히(naive) 각 문서 내 단어들의 등장확률의 곱으로 표현할 수 있음
- $P(d|c)P(c) = P(w_1, ..., w_n | c)P(c) \rightarrow P(c)\prod_{w_{i} \in W} P(w_i | c)$
Word Embedding: Word2Vec, GloVe
Word Embedding
- 단어들을 특정한 차원 상의 한 점으로 나타내는 기술
- 이 자체가 ML/DL 기술, 텍스트 데이터셋을 학습데이터로 주고, 좌표 공간의 차원 수를 지정하면, 해당 차원 상에서 나타난 최적의 벡터를 얻게됨
- 비슷한 의미의 단어가 좌표 공간 상에 비슷한 위치의 점으로 매핑되게 하여 단어 간의 의미상 유사도를 잘 반영한 임베딩을 얻게 함
- 의미를 잘 반영한 벡터를 학습해두면 이후 다른 태스크에서 성능을 올릴 수 있는 여건을 제공하게 됨
Word2Vec
- WordEmbedding 학습 방법 중 가장 유명한 방법 중 하나
- 단어 자체의 의미를 파악하는 태스크, 또는 자연어를 단어 단위의 벡터로 나타내어 태스크의 입력으로 제공하는 형태로 활용
- 가정: "You shall know a word by the compay it keeps" -J.R. Firth 1957
- 학습 데이터를 바탕으로 특정 단어 주변에 나타나는 단어들의 확률 분포를 예측하게 됨
- 학습 데이터셋 구성(CBOW 기준 설명)
- e.g. "I study math" 문장 하나만으로 이뤄진 학습 셋
- Window size 3: 앞 뒤로 1개 단어씩만을 봄 (input, target) -> (I, study), (study, I), (study, math)
- e.g. "I study math" 문장 하나만으로 이뤄진 학습 셋
- input layer에서 입력 단어에 해당하는 vector 값이 output layer의 타겟 단어에 해당하는 vector의 값과 유사해지도록 학습됨(둘의 내적한 결과가 가장 큰 값을 갖도록 학습함)
- [시각화 예시](https://roxin.github.io/wevi/
- [시각화 예시](https://roxin.github.io/wevi/
- 최종 embedding vector의 선정은 input layer와 output layer 둘 중 어느 쪽을 선택해도 상관 없지만 일반적으로 input layer에서 선택
- 특징
- 단어간의 의미론적 관계를 학습(e.g. vec[queen] - vec[king] = vec[woman] - vec[man])
- example : 김원재님 블로그
- Word Intrusion Detection
- 여러 단어들이 주어져있을 때, 이 중 나머지 단어와 의미가 가장 상이한 단어를 찾아내는 task
- 각 단어별로 나머지 단어와의 Euclidian Distance를 계산하여 평균을 낸 후, 그 값이 가장 큰 단어를 선택함
- e.g. math shopping reading science <- shopping이 가장 무관한 단어
- 활용
- 기계 번역에서는 단어들 간에 서로 같은 의미를 가지는 단어들의 임베딩 벡터가 서로 정합(align)될 수 있도록 하여 번역 성능을 높여줌
- 감정 분석에서도 각 단어들의 긍부정의 의미를 보다 용이하게 파악할 수 있도록하는 벡터 표현형을 제공
GloVe: Global Vectors for Word Representation
- Word2Vec과의 차이점
- 각 입력 및 출력 단어 쌍들에 대해서, 학습 데이터에서 그 두 단어가 한 윈도우 내에서 동시에 등장한 빈도를 사전에 계산하고, 아래 수식에서 입력워드의 임베딩 벡터 $u_i$, 그리고 출력워드의 임베딩 벡터 $v_j$ 간의 내적값이, 두 단어가 한 윈도우에서 얼마나 동시에 등장하는가에 대한 확률값에 로그를 씌운 값 $log P_{ij}$에 가까워지도록 하는 새로운 형태의 loss function을 사용
- (Word2Vec은 특정 입출력쌍이 자주 등장하는 경우(e.g. (study, math) 쌍)에, 이런 데이터 샘플이 자연스럽게 빈번하게 학습됨으로써, 둘의 내적값이 커지도록 학습)
- 단어 쌍의 내적값의 Ground Truth로써 단어 쌍의 등장 확률을 사용하므로 중복되는 계산을 줄여주어 학습이 W2V에 비해 빠르게 진행되며 보다 적은 데이터에 대해 잘 동작
- 또한 GloVe 모델은 선형대수의 관점에서 추천시스템에서 많이 활용되는 알고리즘인 co-occurrence matrix의 lower rank matrix factorization task로도 이해할 수 있다.
- 중요한 것은 Word2Vec과 GloVe 모두 주어진 학습데이터를 기반으로 word embedding을 학습하는 알고리즘이고, 실제 적용시 성능도 유사하게 나온다는 것
과제 수행 과정 / 결과물
- 필수 과제 1 : spacy와 KoNLPy의 mecab 각각의 라이브러리의 함수를 사용하면 금방 풀리는 문제
- 안영진 캠퍼님의 팁 :
en
모델은 spacy version 3.0이후 deprecated.en_core_web_sm
을 사용한다. "영어(en)", "사용목적(core)", "훈련 데이터셋 출처(web)", "모델 크기(small)"을 의미.import spacy nlp = spacy.load('en_core_web_sm')
- 선택 과제 1 : 그대로 실행해도 test accuracy 92%는 넘긴다. 그러나 좀 더 다양한 방법을 개인적으로 시도해볼 것
피어세션
- 파이팅 넘치는 이유경 멘토님과의 멘토링 킥오프, 관심 분야의 연구를 하고 계신 분께 멘토링을 받게되어 기쁘다.
- 멘토링과 피어세션 때 어떤 내용을 나누면 좋을 지에 대해서 이야기를 나누었다.
- DST(Dialogue State Tracking)과 Transformer 서베이 논문을 다루기로 결정하고, 기타 취업 및 대학원 진학 관련 정보 또한 공유하기로 하였다.
회고
- 새로운 팀과의 새로운 과정에서의 첫 날. 이것 저것 팀 빌딩을 하다보니 순식간에 지나갔다.
- 이전 기수 캠퍼들의 특강이 있었다. 취업에 너무 목메거나 점수에 연연하지 말고, 적합한 태도와 실력을 갖춘 사람이 되어있으면 기회는 저절로 따라온다는 것이 핵심.
'Boostcamp AI Tech 2th' 카테고리의 다른 글
[WK06-Day027][21.09.08.Wed] Seq2seq with Attention, Beam Search and BLEU Score (0) | 2021.09.09 |
---|---|
[WK06-Day026][21.09.07.Tue] RNN, LSTM, GRU, 필수과제 1, 2, 3 (0) | 2021.09.09 |
[WK05] P-Stage level 1 마스크 이미지 분류 대회 도전기 (0) | 2021.09.06 |
[WK04] P-Stage level 1 - 이미지 분류 1주차 (0) | 2021.08.28 |
[WK03-Day014][21.08.20.Fri] Multi-GPU, Hyperparameter Tuning, PyTorch Troubleshooting (0) | 2021.08.20 |
Comments