데이터과학/자연어처리 22

[자연어처리[Metric] BLEU score : bilingual Evaluation Understudy

BLEU BLEU(bilingual Evaluation Understudy) score는 input과 output이 모두 sequence로 이루어져 있는 경우 사용하는 지표로서 machine translation과 같은 generation task에 주로 사용됩니다. $$BLEU = min(1,{output\,length(예측\,문장)\over reference\,length(정답\,문장)})(\prod_{i=1}^4precision_i)^{1\over 4}$$ \((\prod_{i=1}^4precision_i)^{1\over 4}\)은 정답 문장과 예측 문장 사이에 n-gram(1~4)이 겹치는 정도의 기하평균 입니다. Clipping 이 때, 하나의 단어가 예측문장에 여러번 등장하여 중복계산될 수 있..

[자연어처리][paper review] Seq2Seq : Sequence to Sequence Learning with Neural Networks

DNN DNN(deep neural network)은 비선형구조와 병렬계산을 통하여 다양한 분야에서 SOTA를 달성하기 시작하였습니다. 하지만 고정된 차원의 input과 output을 필요로 하는 일반적인 DNN의 구조는 길이가 고정되지 않은 입, 출력을 필요로 하는 실제 문제들에 DNN을 적용하는데 있어 제약으로 작용하였습니다. RNN RNN은 시퀀스를 처리할 수 있는 DNN의 generalization version 입니다. RNN은 입력 시퀀스 \((x_1,...,x_T)\)를 출력 시퀀스 \((y_1,...,y_T)\)로 매핑할 수 있습니다. $$h_t = sigmoid(W^{h\mathbf{x}}x_t + W^{hh}h_{t-1})$$ $$y_t = W^{\mathbf{y}h}h_t$$ Time..

[자연어처리][paper review] NNLM : A Neural Probabilistic Language Model

본 논문을 통해 처음 소개된 NNLM(Neural Network Language Model)은 word2vec의 기초가 되는 논문으로 2003년 발표되었습니다. count based word representation이 많이 사용되면 당시, language modeling을 어렵게 하던 가장 큰 요소는 바로 차원의 저주 "curse of dimensionality" 였습니다. bag of words 혹은 one-hot encoding과 같이 하나의 단어를 하나의 discrete random variable으로 나타내는 경우에, 문장을 모델링하기 위해서는 vocabulary size V 만큼의 joint distribution을 고려해야 하는 상황이 발생하게 됩니다. 특히 예를들어, 10개의 연속된 단어로..

[자연어처리][paper review] FastText: Enriching Word Vectors with Subword Information

FastText는 2017년 Facebook AI research 팀에서 발표한 논문으로, 제목 그대로 subword information을 사용하여 word representation의 품질을 enriching 하는 방법을 제시합니다. word2vec를 시작으로 unlabeled corpora를 사용하여 학습한 Continuous word representation은 많은 NLP task에 유용하게 사용되고 있습니다. 이러한 모델들은 하나의 단어에 distinct한 vector를 할당합니다. 이러한 embedding 방법은 단어를 형성하는 morphology(형태소)를 고려하지 않기 때문에 매우 큰 vocabulary 혹은 매우 rare한 단어를 위한 좋은 방법이 아닐 수 도 있습니다. 특히 터키어, ..

[자연어처리][paper review] GloVe: Global Vectors for Word Representation

tf-idf, word2vec와 같은 Sementic vector space 모델들은 실수 벡터로서 각각의 단어를 표현합니다. $$V^{류현진} = [0.98,1.0,0.01,1,....,1]$$ $$V^{김태균} = [0.01,0.95,1,0.1,....,0.5]$$ 그리고 이러한 vector representation은 information retrieval, document classification, QA 등 다양한 task에 입력으로서 활용됩니다. 다양한 vector representation 품질을 평가하기 위하여 기존에는 단순 scalar 비교 관점인 단어간의 distance,angle 을 활용하였습니다. 하지만, Word2vec의 등장 이후에는 아래 예시와 같이 word pair의 anal..