1. BERT Embedding 방식의 필요성
- one-hot encoding embedding 방식 : text를 벡터로 바꿔주지만 단어간 유사도를 측정하기 어렵고, 희귀 단어, 이름, 숫자나 단어장에 없는 단어에 대한 학습에 어려움이 존재
- 이로 인해 OOV (out of vocabulary) 문제 발생
- 사전에 training 하지 않은 label이 input으로 들어올 경우 OOV 문제로 예측을 정상적으로 하지 못하는 현상
- 따라서 미등록 단어 (OOV) 문제에 대해 해결하고자 embedding 방식을 변경할 필요가 있었음.
2. BERT Embedding 방식?
- 구글에서 개발한 NLP 사전 훈련 기술이며, 특정 분야에 국한된 기술이 아니라 모든 자연어 처리 분야에서 좋은 성능을 내는 범용 Language Model임
- Word Piece 임베딩 방식 : 자주 등장하는 sub-word는 그 자체 단위가 되고, 자주 등장하지 않는 단어(rare word)는 sub-word로 쪼개짐.
- Word Piece 임베딩은 모든 언어에 적용 가능하며, sub-word 단위로 단어를 분절. OOV 처리에 효과적이고 정확도 상승효과도 있음.
- 단어장에 없는 단어, 희귀 단어 등이 label 값으로 등장하여도 사전에 훈련했던 단어장을 참조하여 유사한 단어 묶음을 조회해 예측 가능
(ex: phone number name → smartphone numbers name 예측 가능)
3. Beam Search 알고리즘의 필요성
- 모델이 달라지지 않는 한 계속 같은 값을 예측함
ex) "test"라는 단어를 예측하도록 훈련시켰다면 계속 "test" 값만 예측함.
이유 : 특정 문자 다음에 오는 문자를 확률이 가장 높은 글자를 매번 선택하기 때문 (greedy 방식)
4. Beam-Search?
- Beam-Search : 매 스탭마다 beam 갯수만큼 후보를 유지하면서 서치를 하는 방식
- 모든 후보가 <eos>로 마무리될 때까지 가장 확률이 높은 K개의 후보군을 유지함.
- 따라서 형식에 맞는 다양한 값 생성이 가능함 (ex: 예측값 2020-07-28 외에 2020-07-30, 2020-07-29 으로 예측 가능)
5. BERT 상세보기
- BERT(Bidirectional Encoder Representations from Transformers)
- 18년 10월에 논문이 공개된 구글의 새로운 Language Representation Model임.
- NLP의 11개 테스크에 최고 성능을 기록함
- text = "Here is the sentence I want embeddings for."
['[CLS]', 'here', 'is', 'the', 'sentence', 'i', 'want', 'em', '##bed', '##ding', '##s', 'for', '.', '[SEP]']
. original word가 subword로 쪼개짐
. "##bed"는 어떤 단어의 일부, subword라는 뜻. 독립적인 단어 "bed"랑 다르다는 것을 보여주기 위해
. 전체 단어가 BERT vocab에 없으면 subword로 쪼갬 (vocab에서 찾을 때까지 쪼갬). 끝까지 못 찾으면 철자 하나씩까지 쪼갬
'개발레시피 > └ 머신러닝' 카테고리의 다른 글
Generator based AI (0) | 2020.12.16 |
---|---|
Object Detection (0) | 2020.09.04 |
[딥러닝] 로지스틱 회귀: 참 거짓의 판단 장치 (0) | 2018.12.26 |
[딥러닝] 경사 하강법 (오차 수정하기) (0) | 2018.12.24 |
[딥러닝] 선형 회귀 (0) | 2018.12.24 |
Comments