본문 바로가기
AI/딥러닝

[NLP] NLP Tasks , Bag of Words , Word Embedding , GloVe

by 채채씨 2021. 9. 9.
728x90
반응형

 

1. NLP에 포함된 여러가지 Tasks

 

■ Low-level parsing

· Tokenizaion

어떤 문장을 이해하기 위해 단어를 하나의 정보 단위로 볼 때 그 단어를 token이라 하며, 단어 단위로 쪼개는 작업을 tokenizaion이라 함. 문장은 이 token들이 특정 순서로 이루어진 sequence로 볼 수 있음.

· Stemming

'studying, studied', '공부하는, 공부하다, 공부하고'처럼 같은 의미를 갖지만 다른 어미가 붙은 단어들로부터 어근만을 추출하여 의미를 보존

 

■ Word and phrase level

· NER(Named entity recognition)

단일 단어 혹은 여러 단어로 이루어지 고유명사 인식 ex) NewYork Times

· POS(Part-of-speech) Tagging

품사 및 성분을 알아내는 작업

 

■ Sentence level

· Sentiment analysis

감성 분석을 함

ex) I like this movie = 긍정 / I hate this movie = 부정 / This movie was not that bad = 긍정

· Machine translation

주어진 input 문장을 전체적으로 이해한 후 output 문장으로 번역할 때, 각 단어별 번역과 output언어 문법에 적절한 어순을 고려하여 번역

 

■ Multi-sentence and paragraph level

· Entailment prediction

문장 간 양립가능성 예측

· Question answering

질문에 해당하는 키워드를 검색한 후 독해를 통해 정답을 알아내어 제공

· Dialog systems

챗봇과 같이 질의 응답하는 시스템

· Summarization

긴 글을 요약

 

 


 

2. NLP와 관련된 Academic Disciplines

 

■ Text mining: 문서로부터 정보 추출, 문서 클러스터링, 사회과학 분야와 높은 연관성

■ Information retrieval: 정보 검색, 추천 시스템

 

 

 

※ Trends of NLP

 

· Word2Vec, GloVe → RNN family(LSTM, GRU) → Transformer 

· Transfer Learning (limitied GPU resource probelm)

 


 

3. Bag of Words

 

1) Constructing the vocabulary containing unique words

문장에서 중복되는 단어를 제외하여 token을 구성한다.

 

 

2) Encoding unique words to one-hot vectors

one-hot vectors는 이후에 등장하는 word embedding와 대비되는 기법으로 모든 단어 간 유클리드 거리가 루트2이고 내적 혹은 코사인유사도는 0이다. 즉 단어의 의미와 상관없이 모든 단어가 동일한 관계를 가지도록 벡터 공간에 정의된다.

 

 

 

단어들로 구성된 문장 또는 문장으로 구성된 문서의 경우에도 one-hot vectors기법을 적용할 수 있으며, 각 단어 벡터들의 합 또는 각 문장 벡터들의 합을 통해 표현한다.

 

 


 

4. Naive Bayes Classifier

 

Naive Bayes Classifier은 Bag of Words로 나타낸 문서를 정해진 클래스로 분류하는 대표적인 방법이다.

 

어떤 문서 d와 클래스 c를 bayes rule에 적용하면 다음과 같다.

 

 

p(d)는 고정된 상수값이므로 p(d|c)p(c)를 알아내야 한다. 클래스 c가 주어졌을 때 문서 d를 이루는 각 단어 w들이 서로 독립이라면 아래와 같이 표현할 수 있다.

 

 

구체적인 예시를 보자.

 

 

doc1, 2가 CV클래스에 속하고 doc3, 4가 NLP에 속하는 것을 학습한 후, doc5의 클래스를 예측하는 예시이다.

p(d|c)p(c)에서 p(c)를 클래스별로 계산하면 각각 1/2, 1/2이고 p(d|c)를 계산하기 위해 클래스 별로 모든 단어에 대한 확률을 구한다.

 

 

그 후, p(c)와 p(w)들의 곱을 곱하여 최종 확률값이 큰 쪽의 클래스로 분류한다.

 

 


 

5. Word Embedding

Word Embedding이란 비슷한 의미를 가지는 단어를 좌표 공간에서 비슷한 위치에 매핑되도록 함으로써 벡터 표현 시 단어들의 의미상 유사도를 반영하는 기법이다.

 

word embedding 예시

 

 

■ Word2Vec

 

Word2Vec은 Word Embedding을 학습하는 대표적인 방법으로, 어떤 단어의 의미를 그 주변 단어로부터 알 수 있도록 하는 기법이다.

 

· The cat purrs

· This cat hunts mice

 

 

위의 예시로 말하면, cat이라는 의미는 cat이 주었을 때 그 주변 단어들의 확률로 정해진다는 것을 가정한다.

 

 

구체적인 예시를 보자.

 

I study math라는 sentence가 있을 때, window size를 1로 하면 (I, study), (study, I), (study, math), (math, study)을 학습하게 된다. 이 중 (study, math)의 학습을 살펴보자.

 

[예시]

 

[학습 과정]

 

w1과 x의 내적을 잘 보면, one-hot vecotor의 특성으로 인해 input 크기의 column개수를 가지는 w1으로부터 입력 x중 1에 해당하는 위치의 column vector를 추출하는 작업과 같다.

 

w2와 (w1@x)의 내적은 위에서 추출한 w2로부터의 column vector와 연산하게 되는 것을 알 수 있다. 이 때 w2의 row개수도 input의 크기와 같다.

 

최종적으로 softmax를 취하여 얻은 확률값과 ground truth label이 최대한 유사하도록 학습한다. 그렇게 하기 위한 이상적인 상황은 softmax의 input인 logit이 output의 0에 해당하는 원소는 음의 무한대, 1에 해당하는 원소는 양의 무한대일 때이다.

 

핵심은 w2와 (w1@x)를 내적할 때,  output값이 0과 매칭되는 원소는 유사도를 작게하고 1과 매칭되는 원소는 유사도를 크게하는 방향으로 학습하는 것이다.

 


 

■ GloVe (Global Vector for Word Representation)

 

 

(예정)

728x90
반응형

'AI > 딥러닝' 카테고리의 다른 글

[NLP] Beam search decoding , BLEU score  (2) 2021.09.12
[NLP] Seq2seq with Attention  (0) 2021.09.10
[이미지 분류] Modeling  (0) 2021.08.27
[이미지 분류] Data Processing  (0) 2021.08.24
[Pytorch] Dataset , DataLoader  (0) 2021.08.22

댓글