개인 스터디/NLP
-
어텐션 매커니즘(Attention Mechanism)개인 스터디/NLP 2020. 7. 20. 15:33
"운동장에 공이 있다"는 말을 들을 때, 모든 말이 똑같이 중요해 보이지는 않을 것입니다. "운동장", "공이"는 다른 단어들보다 더 중요해 보입니다. 실제로 많은 문장에서 단어들이 갖는 중요도는 서로 많이 다릅니다. 더욱이 번역 과제에서, 번역된 문장의 각 부분은 번역 전 문장의 서로 다른 단어들에 의존합니다. 그런데 Seq2Seq 모델에서는 이런 특성을 반영하지 않고, 모든 단어를 똑같이 취급해 문맥 벡터(context vector)를 생성합니다. 어탠션 매커니즘에서는 디코더 네트워크가 각 순간에 전체 입력 문장을 확인하도록 하여, 각 순간마다 입력 단어들의 중요도를 산정합니다. 1. Bahdanau et al. NMT model Seq2Seq 모델은 입력 시퀀스를 인코딩하는 인코더와, 문맥 벡터를 ..
-
시퀀스 투 시퀀스(Seq2Seq) 모델개인 스터디/NLP 2020. 7. 17. 13:55
일반적인 인공 신경망을 사용한 자연어 처리 과제는 단어 표현이나 라벨링처럼 단일한 출력값을 만들어냅니다. 하지만 많은 자연어 처리 과제는 가변적인 길이의 순차적인 출력값(sequential output)을 결과로써 요구합니다. 예컨대 다음과 같은 과제들이 있습니다. 번역: 특정한 언어로 쓰인 문장을 입력값으로 받아 다른 언어로 쓰인 같은 문장을 출력하는 것 대화: 문장이나 질문을 입력값으로 받아 그에 반응하는 것 요약: 긴 글을 입력값으로 받아 그에 대한 요약을 출력하는 것 여기에서는 이런 유형의 문제들을 딥 러닝 기반으로 다룰 수 있는 seqence-to-sequence 모델을 살펴보도록 하겠다. 1. Seq2Seq 이전의 접근법 과거에는 확률적 모델에 기반해 번역 시스템을 만들었습니다. 번역 모델(t..
-
단어 임베딩 -2: Iteration based methods (Word2Vec, FastText)개인 스터디/NLP 2020. 7. 1. 19:29
앞서의 원핫 인코딩 모델이나 윈도우 기반 co-occurence 모델은 모두 커다란 데이터셋에 대한 전체적인 정보를 살펴보고 단어를 벡터로 변환했습니다. Iteration based 방법은 이와는 조금 다르게, 한 iteration마다 해당 컨텍스트에 단어가 등장할 확률을 점차 학습해나가는 모델입니다. 만들고자 하는 언어 모델은 "나는 친구와 과자를 먹었다"와 같은 유효한 문장에 높은 확률을 주고, "고양이 임베딩은 필통이다"와 같은 문장에는 낮은 확률을 주는 모델입니다. $n$개의 단어로 이루어진 문장 $s$의 확률을 문장에 사용된 단어들, $w_1, \ldots, w_n$을 이용해 다음과 같이 정의할 수 있습니다. $P(s) = P(w_1, w_2, \ldots, w_n)$ 1. Unigram Mod..
-
단어 임베딩 -1: 원핫 임베딩, SVD기반 임베딩개인 스터디/NLP 2020. 6. 30. 11:07
자연어를 컴퓨터에서 처리하기 위해서는 우선 자연어 단어를 컴퓨터가 이해할 수 있는 단위인 숫자로 바꾸는 과정이 필요합니다. 1. One-hot encoding 원 핫 인코딩은 단어를 벡터로 인코딩하는 가장 간단한 방법입니다. 원 핫 인코딩을 위해서는 우선 문서에 등장하는 모든 단어를 모아 단어 사전(vocabulary)를 작성합니다. 만약 가지고 있는 문서가 "나는 사탕보다 초콜릿이 좋다" 라면 ["나", "는", "사탕", "보다", "초콜릿", "이", "좋다"]와 같은 단어 사전을 가지게 될 것입니다. 원 핫 인코딩은 이 단어들을 오직 0과 1로 이루어진 벡터로 변환합니다. 각 벡터에서는 1이 단 한 번 등장하며, 서로 다른 단어가 임베딩된 벡터에서는 서로 다른 위치에 1이 등장하게 됩니다. 문서를..