딥러닝/자연어 처리
-
언어모델(Language Model)은 문장 자체의 출현 확률을 예측하거나, 이전 단어들이 주어졌을 때 다음 단어를 예측하기 위한 모델이다. 많은 문장들을 수집하여, 단어와 단어 사이의 출현 빈도를 통해 확률을 계산한다. 궁극적인 목표는 우리가 일상 생활에서 사용하는 언어의 문장 분포를 정확하게 모델링 하는 것이다. 한국어의 어려움 한국어는 단어의 어순이 중요하지 않고, 생략도 가능하기 때문에 단어와 단어 사이의 확률을 계산하는 것이 어렵다. ex) 나는 버스를 타고 학교에 갑니다. ex) 버스를 타고 나는 학교에 갑니다. ex) (나는) 버스를 타고 학교에 갑니다. 언어모델은 주어진 코퍼스 문장들의 likelihood를 최대화하는 파라미터를 찾아내, 주어진 코퍼스를 기반으로 문장들에 대한 확률 분포 함..
[Language Model] n-gram언어모델(Language Model)은 문장 자체의 출현 확률을 예측하거나, 이전 단어들이 주어졌을 때 다음 단어를 예측하기 위한 모델이다. 많은 문장들을 수집하여, 단어와 단어 사이의 출현 빈도를 통해 확률을 계산한다. 궁극적인 목표는 우리가 일상 생활에서 사용하는 언어의 문장 분포를 정확하게 모델링 하는 것이다. 한국어의 어려움 한국어는 단어의 어순이 중요하지 않고, 생략도 가능하기 때문에 단어와 단어 사이의 확률을 계산하는 것이 어렵다. ex) 나는 버스를 타고 학교에 갑니다. ex) 버스를 타고 나는 학교에 갑니다. ex) (나는) 버스를 타고 학교에 갑니다. 언어모델은 주어진 코퍼스 문장들의 likelihood를 최대화하는 파라미터를 찾아내, 주어진 코퍼스를 기반으로 문장들에 대한 확률 분포 함..
2022.07.01 -
RNN은 이전 hidden state을 통해 time-step의 정보를 가공하여 다음 time-step의 계산에 반영하는 구조이다. RNN을 이용한 Text Classification은 Many to One 형태이다. Non-autoregressive task이므로 Bidirectional RNN을 사용할 것이다. 작성할 모델 구조는 아래와 같다. Feed forward step One-hot vector을 입력받아 Embedding layer에 넣어준다. Embedding vector을 RNN에 input으로 넣는다. RNN의 output중 마지막 time-step 값을 softmax layer에 통과시켜 각 클래스별 확률값을 얻는다.
Text Classification using RNNRNN은 이전 hidden state을 통해 time-step의 정보를 가공하여 다음 time-step의 계산에 반영하는 구조이다. RNN을 이용한 Text Classification은 Many to One 형태이다. Non-autoregressive task이므로 Bidirectional RNN을 사용할 것이다. 작성할 모델 구조는 아래와 같다. Feed forward step One-hot vector을 입력받아 Embedding layer에 넣어준다. Embedding vector을 RNN에 input으로 넣는다. RNN의 output중 마지막 time-step 값을 softmax layer에 통과시켜 각 클래스별 확률값을 얻는다.
2022.06.28 -
Skip-gram등을 통해 계산하여 fix된 Word Embedding Vector를 네트워크에 넣어주게 되면 해당 알고리즘의 objective에 최적화된 representation을 넣어주는 것이지 기계번역 같은 task에 최적화된 representation을 넣어주는 것이 아니게 된다. 또한 딥러닝은 end-to-end solution을 만드는 것이므로 단어 임베딩이 최종 목표인 경우는 거의 없다. 따라서 Word embedding vector을 활용하여 서비스를 만드는 일은 거의 없다. 따라서 One-hot Vector 자체를(단어 자체를) Embedding Layer에 input으로 넣어주어 task에 맞는 dense rerpesentation으로 변환한다. 즉, N개의 단어가 있다면 N+@ 차원..
[WordEmbedding] Embedding LayerSkip-gram등을 통해 계산하여 fix된 Word Embedding Vector를 네트워크에 넣어주게 되면 해당 알고리즘의 objective에 최적화된 representation을 넣어주는 것이지 기계번역 같은 task에 최적화된 representation을 넣어주는 것이 아니게 된다. 또한 딥러닝은 end-to-end solution을 만드는 것이므로 단어 임베딩이 최종 목표인 경우는 거의 없다. 따라서 Word embedding vector을 활용하여 서비스를 만드는 일은 거의 없다. 따라서 One-hot Vector 자체를(단어 자체를) Embedding Layer에 input으로 넣어주어 task에 맞는 dense rerpesentation으로 변환한다. 즉, N개의 단어가 있다면 N+@ 차원..
2022.06.28 -
Word2Vec 주변(context window)에 같은 단어가 나타나는 단어일 수록 비슷한 벡터 값을 가져야 한다는 아이디어 Word2vec의 모델은 Continuous Bag Of Word(CBOW)와 Skip-Gram이 있다. CBOW는 주변 단어를 통해 주어진 단어를 예측한다. Skip-gram은 현재 단어를 통해 주변 단어를 예측한다. CBOW보다 성능이 좋아 더 많이 사용된다. "Skip-gram" Window 크기가 2인 경우 학습은 아래 과정을 거친다. 1. 중심 단어는 NLP이고 윈도우 크기가 2이므로 중심 단어 앞 뒤로 2개씩 봐야하지만 중심단어 기준 앞에 단어가 존재하지 않으므로 is와 the만 학습에 사용한다. 중심단어를 NLP로 놓고, 주변단어 is를 정답으로 설정하여 학습하고, ..
[WordEmbedding] Word2Vec & Glove & FastTextWord2Vec 주변(context window)에 같은 단어가 나타나는 단어일 수록 비슷한 벡터 값을 가져야 한다는 아이디어 Word2vec의 모델은 Continuous Bag Of Word(CBOW)와 Skip-Gram이 있다. CBOW는 주변 단어를 통해 주어진 단어를 예측한다. Skip-gram은 현재 단어를 통해 주변 단어를 예측한다. CBOW보다 성능이 좋아 더 많이 사용된다. "Skip-gram" Window 크기가 2인 경우 학습은 아래 과정을 거친다. 1. 중심 단어는 NLP이고 윈도우 크기가 2이므로 중심 단어 앞 뒤로 2개씩 봐야하지만 중심단어 기준 앞에 단어가 존재하지 않으므로 is와 the만 학습에 사용한다. 중심단어를 NLP로 놓고, 주변단어 is를 정답으로 설정하여 학습하고, ..
2022.06.28 -
Word Embedding이 필요한 이유: "Word는 Discrete / not continuous한 형태" 단어는 계층적 의미 구조를 지니고 있기 때문에 단어 사이의 유사성을 지니고 있다. 그러나 컴퓨터 상에서 단어가 One-hot Encoding으로 표현된 값은 유사도를 표현할 수 없다. 따라서 단어의 유사도를 표현하기 위해 단어를 연속적인 값으로 표현(Embedding)하고자 하였다. feature는 샘플을 잘 설명하는/수치화 할 수 있는 특징이다. Neural Network는 x와 y 사이의 관계를 학습하는 과정에서 x의 feature을 추출하는 방법을 학습한다. 그렇다면 단어의 feature vector는 어떻게 나타낼 수 있을까? Traditional Methods "Data-Driven M..
[WordEmbedding] 딥러닝 이전의 단어 임베딩Word Embedding이 필요한 이유: "Word는 Discrete / not continuous한 형태" 단어는 계층적 의미 구조를 지니고 있기 때문에 단어 사이의 유사성을 지니고 있다. 그러나 컴퓨터 상에서 단어가 One-hot Encoding으로 표현된 값은 유사도를 표현할 수 없다. 따라서 단어의 유사도를 표현하기 위해 단어를 연속적인 값으로 표현(Embedding)하고자 하였다. feature는 샘플을 잘 설명하는/수치화 할 수 있는 특징이다. Neural Network는 x와 y 사이의 관계를 학습하는 과정에서 x의 feature을 추출하는 방법을 학습한다. 그렇다면 단어의 feature vector는 어떻게 나타낼 수 있을까? Traditional Methods "Data-Driven M..
2022.06.28 -
Preprocessing Workflow 1. 코퍼스 수집 : 구입,외주,크롤링 2. 정제 : Task에 따른 노이즈 제거, 인코딩 변환 (3. 레이블링 : Task에 따른 문장 or 단어마다 labeling 수행) 4. Tokenization : 형태소 분석기 활용하여 분절 수행 (5. Subword Segmentation : 단어보다 더 작은 의미 추가 분절 수행) 6. Batchify : 사전 생성 및 word2index 맵핑 수행, 효율화를 위한 전/후처리 1~5번 과정에서 전처리를 진행하였다. 전처리가 다 된 후에는 이제 모델에 넣기 위한 처리가 필요하다. Split Train/Valid/Test data set 단어를 index로 mapping하기 위해 train set을 기반으로 어휘 사전 ..
NLP_Preprocessing : 6)Batchify with torchtextPreprocessing Workflow 1. 코퍼스 수집 : 구입,외주,크롤링 2. 정제 : Task에 따른 노이즈 제거, 인코딩 변환 (3. 레이블링 : Task에 따른 문장 or 단어마다 labeling 수행) 4. Tokenization : 형태소 분석기 활용하여 분절 수행 (5. Subword Segmentation : 단어보다 더 작은 의미 추가 분절 수행) 6. Batchify : 사전 생성 및 word2index 맵핑 수행, 효율화를 위한 전/후처리 1~5번 과정에서 전처리를 진행하였다. 전처리가 다 된 후에는 이제 모델에 넣기 위한 처리가 필요하다. Split Train/Valid/Test data set 단어를 index로 mapping하기 위해 train set을 기반으로 어휘 사전 ..
2022.06.28 -
tokenized된 문장을 복원(detokenization)하여 사람이 읽기 좋은 형태로 만들어 주어야 할 필요가 있다. 따라서 Detokenization은 자연어 생성 task에 필요한 작업이다. Tokenization 1. 영어 원문 There's currently over a thousand TED Talks on the TED website. 2. tokenization 수행한 뒤, 기존의 띄어쓰기와 tokenization에 의해 수행된 공백과의 구분을 위해 ▁(U+2581) 을 원래의 공백 위치에 삽입한다. ▁There 's ▁currently ▁over ▁a ▁thousand ▁TED ▁Talks ▁on ▁the ▁TED ▁website . 3. subword segmentation 수행한 뒤..
NLP_Preprocessing : +)Detokenizationtokenized된 문장을 복원(detokenization)하여 사람이 읽기 좋은 형태로 만들어 주어야 할 필요가 있다. 따라서 Detokenization은 자연어 생성 task에 필요한 작업이다. Tokenization 1. 영어 원문 There's currently over a thousand TED Talks on the TED website. 2. tokenization 수행한 뒤, 기존의 띄어쓰기와 tokenization에 의해 수행된 공백과의 구분을 위해 ▁(U+2581) 을 원래의 공백 위치에 삽입한다. ▁There 's ▁currently ▁over ▁a ▁thousand ▁TED ▁Talks ▁on ▁the ▁TED ▁website . 3. subword segmentation 수행한 뒤..
2022.06.27 -
Preprocessing Workflow 1. 코퍼스 수집 : 구입,외주,크롤링 2. 정제 : Task에 따른 노이즈 제거, 인코딩 변환 (3. 레이블링 : Task에 따른 문장 or 단어마다 labeling 수행) 4. Tokenization : 형태소 분석기 활용하여 분절 수행 (5. Subword Segmentation : 단어보다 더 작은 의미 추가 분절 수행) 6. Batchify : 사전 생성 및 word2index 맵핑 수행, 효율화를 위한 전/후처리 Token 평균 길이에 따른 성격과 특징 : "토큰 길이에 따른 Trade-off가 존재" 짧을 수록 : Vocabulary 크기 감소 → 희소성 문제 감소 OoV가 줄어듬 Sequence의 길이가 길어짐 → 모델의 부담 증가 길 수록 : Vo..
NLP_Preprocessing : 5)Subword SegmentationPreprocessing Workflow 1. 코퍼스 수집 : 구입,외주,크롤링 2. 정제 : Task에 따른 노이즈 제거, 인코딩 변환 (3. 레이블링 : Task에 따른 문장 or 단어마다 labeling 수행) 4. Tokenization : 형태소 분석기 활용하여 분절 수행 (5. Subword Segmentation : 단어보다 더 작은 의미 추가 분절 수행) 6. Batchify : 사전 생성 및 word2index 맵핑 수행, 효율화를 위한 전/후처리 Token 평균 길이에 따른 성격과 특징 : "토큰 길이에 따른 Trade-off가 존재" 짧을 수록 : Vocabulary 크기 감소 → 희소성 문제 감소 OoV가 줄어듬 Sequence의 길이가 길어짐 → 모델의 부담 증가 길 수록 : Vo..
2022.06.27