데이터과학 28

[자연어처리][paper review] Attention : Neural machine translation by jointly learning to align and translate

본 논문은 2014년 발표된 논문으로 당시 Seq2Seq Machine translation은 RNN,LSTM,GRU 기반의 encoder-decoder 구조가 주를 이루고 있었습니다. encoder-decoder 구조는 \((x_1,...,x_T)\rightarrow v \rightarrow(y_1,...,y_T)\)의 순서로 encoder를 통하여 input sequence를 고정된 길이의 벡터로 바꾸고, 다시 decoder를 통하여 고정된 길이의 벡터를 translation 결과로 output하는 구조입니다. 무엇보다 장점은 가변 길이의 input과 output에 적용 가능하다는 것 입니다. 하지만 이러한 장점에도 고정된 길이의 벡터 \(v\)를 사용하는 부분은 모델의 bottleneck이 됩니다...

[자연어처리[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한 단어를 위한 좋은 방법이 아닐 수 도 있습니다. 특히 터키어, ..