자연어 처리 Flashcards
NLP
[정의] 인간의 언어 현상을 기계적으로 분석 컴퓨터가 이해하고 다시 인간이 이해 가능한 언어로 표현하는 기술
[특징] 언어, 문장처리(STT, TTS), 다국어 처리
[기술요소]
1. NLP : 음성인식 (STT, OCR, TA), 음성 합성(TTS, 렌더링, 시각화), 자연어 소통(인간,기계) / 형태소 분석, 구문 분석, 의미 분석, 담론 분석 형구의담
2. NLU : 자연어 → 기계어 / 임베딩(Word Embedding), 문장분류(Sentence Classification), Seq2Seq, Word2Vec, One-hot Encoding
3. NLG : 기계어 → 자연어 / 담화 생성(Discourse Generation), 문장 계획(Sentence Planning), 어휘 선택(Lexical 선택)
4. 대화 관리 : MRC(Machine Reading Comprehension), 형태소 DB, 머신러닝(RNN,LSTM)
[상세절차] 입력(음성) → 필터링(LMS, Gaussian) → 특징 추출(Frame Shift) → PCM(A/D 변환, Digitalization) → 의미인식(데이터모델링, RNN) → 상황인식(패턴매칭, HMM) → 판단/정답도출(CV, 혼동행렬) → TTS
[활용]
- (음성비서) 모바일 음성비서, 홈어시스턴트
- (자연어 번역) NMT, SMT(자동 통역, 번역)
* BERT, RoBERTa, GPT-3, Turing-NLG
NLU
[정의] 인간의 언어 이해 방법을 모방하여 형태소 분석, 구문분석, 의미역 인식 등을 수행하는 자연어 이해 기술
[프로세스] (전처와 형태워 구의역 상무대)
1. 전처리 : 문장부호 전처리
2. 어휘 이해 : 형태소분석, 어휘(워드)인식
3. 문장 이해 : 구문분석, 의미역 인식
4. 문맥 이해 : 상호참조 해결, 무형대용어 복원
[기술]
1. 워드임베딩 : 자연어를 벡터화 ( Word2Vec,CBOW,Skip-gram)
2. 문장 분류 : 문장의 K개의 카테고리 중 하나로 분류 (RNN,LSTM,GRU)
3. seq2seq : 다른 형태의 자연어 문장으로 리턴 (Attention, Encode/Decode)
4. MRC : 주어진 Contex 학습 후 질의에 대한 답변 추론 (Pointer Network, Match-LSTM)
NLG
[정의] 인간의 의사소통 방식을 모방한 개념그룹 생성, 후보집합생성, 논조조정 기반 자연어 생성 기술
[절차] (개그표 후조선)
1. 표현생성 : 개념 그룹 생성 → 자연어 표현 생성
2. 표현 맵핑/선택 : 후보 검색 → 논조조정 → 표현 비교/선택
[기술요소] (지코디스)
- Knowledge Base : 도메인별 지식베이스
- Communicative Goal : 의도된 청중, 텍스트의 논조/뉘앙스 조정
- Discourse Planner : 특정입력을 받아 그에 대한 적절한 내용을 지식베이스에서 선택 구조화(담화/대화기반)
- Surface Realizer : 생성된 구문의 자연스러운 처리(기능언어삽입,구문의 올바른 정리,단어순서,규칙적용)
자연어 처리 기술의 매커니즘 변화
*자연어 처리(NLP)의 성능 향상을 위해 RNN을 제거하고, Attention을 기반한 Transformer 등장
*Attention 자연어 처리의 주된 문제였던 정보 손실(Context Vacer),기울기 소실을 해결
One-Hot Encoding
[정의] 범주형 데이터를 수치형으로 변환 위해 하나의 데이터만 1, 나머지는 0으로 변환하는 벡터 표현식
[특징] 원핫 벡터 (표현하고 싶은 단어의 인덱스에 1부여), 학습데이터 전처리, 출력 데이터 변환(sofmax 통한 오류 역전파 활용)
[사례] red [0,0,1], blue [0,1,0], green [0,0,1]
Softmax 함수
[정의] 출력값을 0~1 사이로 모두 정규화하며 출력 값들의 총합은 항상 1이 되는 특성을 가진 함수
[사례] 바지(0.01), 치마(0.4), 티셔츠(0.59)
[특징]
- 정규화 : 0~1까지의 확률분포를 가지며, 확률의 총합은 1
- 출력층 분류 : 출력층의 데이터 분류를 위해 많이 사용
Word2Vec
[리드] 신경망 학습 기반
[정의] 단어간 유사성 가중치 부여 벡터화 통한 문맥 학습 및 예측 최적화 가능 워드임베딩 기법
[모델 아키텍처]
- CBOW : 원본 컨텍스트 단어들로부터 타겟 단어들을 예측 / Input, Projection, Output Layer로 구성
- Skin Gram : 타겟 단어들로부터 원본 컨텍스트 단어들을 역으로 추측
TF-IDF
[정의] 정보검색과 텍스트 마이닝에서 이용하는 가중치로 어떤 단어가 특정 문서내에서 얼마나 중요한지를 나타내는 통계적 수치
- TF : 특정 단어가 문서 내에서 얼마나 자주 등장하는지 나타내는 값, 높을수록 중요
- IDF : DF(문서 빈도)의 역수를 취한 값, 높을수록 중요
[산출방식]
- TF : 불린빈도, 로그 스케일 빈도, 증가 빈도
- IDF : 특정 단어 t가 모든 문서에 다 등장하는 흔한 단어라면 TF-IDF를 낮춰주려는 값
NER
[정의] 미리 정해둔 사람,회사,장소,시간,단위 등에 해당하는 단어를 문서에서 인식하여 추출 분류하는 기법
[개체명 종류] : 인명, 지명, 기관명, 시간등으로 분류
[활용] 정보 추출, 자연어 처리, 정보 검색, 챗봇
* NER위해서 Word Embedding 선행 필요
워드 임베딩
[정의] 단어간 유사도 및 중요도 파악을 위해 단어를 저차원의 실수 벡터로 매핑하여 의도적으로 비슷한 단어를 가깝게 배치하는 자연어 처리 모델 기술
[역할] 단어/문장 간 관련도 계산, 의미적/문법적 정보 함축, 전이 학습
[구성방식] 백오브워즈, 언어모델, 분포가정
[기술종류]
- 백오브워즈 : TF-IDF, Deep Averaging Network
- 언어모델 : n-Gram LM, Masked LM
- 분포가정 : PMI, Word2Vec(CBOW, Skip-gram)
Seq2Seq
[정의] 기계번역, 문장생성등에서 활용위해 인코더,디코더, 문맥 벡터를 기반 한 문장 변환 모델
[특징] Encoder-Decoder 모델
[원리]
1. Encoder가 출발어 문장을 인코딩 → 문장을 고정 길이 벡터로 인코딩 (Context 벡터)
2. LSTM을 이용해 시계열 데이터를 h라는 은닉 상태 벡터로 변환(RNN, GRU도 이용 가능)
3. Decoder에서 LSTM 계층이 벡터 h를 입력 받고 복호화한 문장의 단어를 한 개씩 순차적으로 출력
* seq2seq에서 사용되는 모든 단어들은 워드 임베디등을 통해 벡터로 표현된 임베딩 벡터
[한계점]
- 장기 기억 : 문장 또는 time-step이 길어질수록 압축 성능이 떨어지는 한계
- 정보 손실 : 하나의 고정된 크기의 벡터에 모든 정보 압축, 정보 손실 발생
* 입력 문장이 긴 상황에서 한계점을 보정하기 위해서 중요한 단어에 집중하는 어텐션 기법 등장
[차별화] 자연어 처리 기술의 매커니즘 변화
- RNN → Seq2Seq → Attention → Transformer(BEFT, GPT-3)
* 전이학습은 자연어처리 분야에서 많은 기여, GTP, BERT, XLNet, ALBERT, T5등의 알고리즘등으로 발전중
어텐션 모델
[리드] 특정 정보에 집중
[정의] 필요한 정보에만 주목하여 그 정보로부터 시계열 변환을 수행하는 문장 번역 NLP 기술
[구성]
- Encoder : fully connected layer(2차원 벡터->1차원 배열로 평탄화), Softmax function(정규화), Attention Weight (노드 가중치)
- Dedocer : Start(시작점의 기준), End(종료시점의 기준), Teacher Forcing(예측이 잘못된 경우, 실제값을 입력 방법)
* 디코더에서 출력 단어 예측시 매 시점(time step)마다 인코더의 전체 입력 문장을 참조하여 예측단어와 연관 단어 부분을 집중하는 문장 번역 NLP 기술
[절차]
1. 어텐션 스코어 도출 : St를 전치하고 각 은닉 상태와 내적 수행(결과는 스칼라 값)
2. 어텐션 분포 도출 : Softmax 결과값은 어텐션 가중치로 이용 (가중치 합은 1)
3. 어텐션 값 도출 : 각 인코더의 가중치, 은닉상태 가중치 합산 및 값 도출 (어텐션 값과 은닉상태 연결)
4. 어텐션 출력 : 새로운 벡터를 출력층의 입력으로 사용 (예측벡터 도출)
* Seq2Seq의 Attention을 기반으로 인코더/디코더 방식의 Transformer 자연어 처리 언어모델 등장
트랜스포머
[정의] RNN을 탈피하고 seq2seq의 인코더-디코더 모델과 셀프 어텐션 구조만으로 구현한 자연어 처리 모델
[구성요소]
1. 인코더/디코더
- Multi-Head Attention : Self Attention을 여러번 수행하여 독자적으로 계산
- Masked Multi-Head Attention : 마스크를 적용한 Attention
2. Input/Output
- Input/Output Embedding : 입/출력시 소스 시퀀스의 input embedding와 positional encoding결합
- Output Probabilities : 정답에 해당하는 단어의 확률값을 높이는 방식
3. 신경망
- Feed Forward : 입력층, 은닉층, 출력층
- Add : 블록과 블록 사이 잔차 연결 통한 계산
- Norm : 미니배치 인스턴스별 평균을 표준젼차로 나눠 정규화 수행
* Transformer 모델을 활용한 BERT, GPT3, T5등이 존재
BERT
[리드] 사전 훈련 기반 양방향 자연어 처리 모델
[정의] Transfomer 모델의 Encoder 부분만으로 양방향 학습 및 Pre-Trained하여 성능을 향상시킨 자언어 처리 언어 모델
[특징] RNN 문제점 개선, fine-tunning 통한 빠른 모델 생성
[구성요소]
- BERT 구조 : Transformer, Multi head Self Attention, Feedforward(Self Attention을 균등하게 섞음)
- 입력값 : Token Embedding, Segment Embedding, Position Embedding
- 학습 알고리즘 : Pre-Training, fine-tunning(전이학습)
BERT vs GPT-3
-개발주체:Google/OpenAI
-모델구조:트랜스포머의 Encoder 만 사용/트랜스포머의 Decoder만 사용
-주요특징:fine tuning/few shot Learning
-핵심기능:문장의 의미 추출/문장생성
-사례:어제 카페 갔었어 ㅁ 사람 많더라/어제 카페 갔었어 거기 사람 많더라