6. Batchify : 사전 생성 및 word2index 맵핑 수행, 효율화를 위한 전/후처리
Token 평균 길이에 따른 성격과 특징 :"토큰 길이에 따른 Trade-off가 존재"
짧을 수록 : Vocabulary 크기 감소 → 희소성 문제 감소 OoV가 줄어듬 Sequence의 길이가 길어짐 → 모델의 부담 증가
길 수록 : Vocabulary 크기 증가 → 희소성 문제 증대 OoV가 늘어남 Sequence의 길이가 짧아짐 → 모델의 부담 감소
OoV가 미치는 영향
입력 데이터에 OoV가 발생할 경우 <UNK> 토큰으로 치환하여 모델에 입력한다.
이전 단어들을 기반으로 다음 단어를 예측하는 task(NLG)에서 치명적이다.
이상적인 Token 길이의 형태
빈도가 높을 경우는 하나의 Token으로 치환
빈도가 낮을 경우 더 잘게 쪼개어 각각 빈도가 높은 Token으로 치환
Subword :"단어보다 더 작은 의미 단위"
한국어 단어를 예로 들면 "집중"은 集(모을 집) + 中(가운데 중)
영어 단어를 예로 들면 "Concentrate"는 con(together) + centr(center) + ate(make)
그러나 Subword 단위까지 분절하기 위해서는 언어별 subword 사전을 사용하거나
통계적으로 Segementation을 수행할 수 있다. (아래에서 소개하는 BPE 알고리즘)
Byte Pair Encoding (BPE) 알고리즘 :"압축 알고리즘을 활용하여 subword segmentation"
학습 코퍼스를 활용하여 BPE 모델을 학습 후, 학습/테스트 코퍼스에 적용하는 방식
BPE를 통해 OoV를 없앨 수 있어서 성능상 매우 큰 이점으로 작용
❗주의사항❗ : 한국어의 경우 작성자에 따라 띄어쓰기가 제멋대로인 경우가 많으므로 normalization 없이 바로 subword segmentation을 적용하는 것은 위험하다. → 형태소 분석기를 통한 tokenization을 진행한 후 subword segmentation을 진행하면 좋다.