본문 바로가기
BoostCamp AI Tech - U Stage

BoostCamp AI Tech - Day16

by getamped 2021. 2. 15.

1. NLP(Natural language Processing : 자연어 처리)

 

자연어처리는 딥러닝을 베이스로한 모델과 작업들을 포함한다.

- Low-level parsing

-> Tokenization, stemming

- Word and phrase level

-> Named entity recongition(NER), part-of-speech(POS) tagging, noun-phrase chunking, dependency parsing,

coreference resolution

- Sentence level

-> Sentiment analysis, machine translation

- Multi-sentence and paragraph level

-> Entailment prediction, question answering, dialog systems, summarization

 

 

2. Word Embedding

 

자연어의 각 단어들을 특정한 차원으로 이뤄진 공간 상의 한 벡터 또는 좌표를 나타내는 기술이다. Word Embedding의 기본 아이디어는 사전에 특정한 차원을 정의를 내리고 학습이 된 이후 학습 데이터에서 나타난 단어의 최적의 좌푯값 또는 벡터로 출력을 하는 데, 비슷한 의미를 가진 단어들을 특정 차원의 공간 상 비슷한 좌표에 mapping을 함으로써 단어들의 의미상 유사도를 반영하는 것이다.

예를 들면, A라는 좌표를 'cat(고양이)'이라는 단어로 할당하고, B라는 좌표에 'kitty(아기 고양이)'라는 단어로 할당한다고 가정하면, 이 둘은 유사한 의미를 갖기 때문에 두 좌표의 거리는 짧다. 그러나, 'hamburger(햄버거)'라는 단어는 'cat'이나 'kitty'와 같은 유사성이 떨어지기 때문에, 긴 거릿값을 갖게된다.

 

Word Embedding의 학습 방법에는 다음과 같다.

 

2.1 Word2Vec

 

같은 문장에서 나타난 인접한 단어들 사이에 의미가 비슷할 것이란 가정하에 좌표공간의 비슷한 위치로 mapping 시키는 알고리즘이다. 한 단어가 주변의 등장하는 단어들을 통해 그 의미를 알 수 있다는 것에 착안하여, 주어진 학습 데이터를 바탕으로 그 한단어의 주변에 나타나는 그런 단어들의 확률 분포를 예측하게 된다.

 

- 학습 방법

먼저, 주어진 학습데이터가 "I study math"가 있다고 하자. Word2Vec에서는 주어진 학습데이터를 tokenizer하는 과정을 수행한다. 그렇게 tokenizer한 unique한 단어들을 모아서 사전(dictionary)을 구축하게 된다. 그리하여 사전 Vocabulary 와 차원이 동일한 One-Hot 벡터가 생성된다. 그 다음, Sliding Window 기법을 통해 앞,뒤의 Word의 쌍을 만든다. 예를 들면, window size가 3인 상황, 즉, 한 단어를 기준으로 앞뒤로 한쌍으로 형성할 때는 "I study math"에서 I라는 단어를 중심단어를 했을 때, 나타날 수 있는 단어쌍이 (I, Study)이 된다. window의 pivot을 오른쪽으로 옮기면, 중심단어는 study가 되는 데, 이 때 구성된 단더 쌍은 (study,I) , (study, math)가 된다. 이를 반복하여 word 데이터쌍이 모두 구성될 것이다. 이를 바탕으로 위 그림처럼 2개의 레이어를 가진 Nueral Network가 형성될 것이다. 이 때, 입력과 출력이 Vocabulary의 차원수와 동일하기 때문에 이에 필요한 노드 수는 3개가 된다. 또한, hidden layer의 노드 수는 사용자가 정하는 hyper parameter 로써 word-embedding을 수행하는 좌표공간의 차원 수와 동일한 값으로 설정된다. 이 예제에서는 embedding dimesion을 2로 놓으면, 입출력 노드는 3차원으로 구성되고, hidden-layer는 2개의 노드로 형성될 것이다. 

'BoostCamp AI Tech - U Stage' 카테고리의 다른 글

BoostCamp AI Tech - Day24  (0) 2021.02.25
BoostCamp AI Tech - Day23  (0) 2021.02.24
BoostCamp AI Tech - Day15  (0) 2021.02.05
BoostCamp AI Tech - Day14  (0) 2021.02.04
BoostCamp AI Tech - Day13  (0) 2021.02.04

댓글