NLP (Natural Language Processing)

yoonene·2021년 12월 8일
0

ML/DL

목록 보기
1/17

자연어 처리는

  • 문서 요약 - 워드클라우드, 동시 출현 그래프 등..
    -> 그냥 툴 써라.
  • 감성 분석
  • 언어 번역
  • 언어 생성

등으로 점점 발전할수록 툴화하기 어려움.

목차

  • Embedding + RNN/LSTM
  • Pretrained Model
  • Natural Language Generation

Embedding

: 기계가 처리할 수 있는 숫자의 나열인 벡터로 바꾸는 것

Embedding이 걸어온 길..
Term-Frequency -(높을수록 의미없는 단어)-> TF-IDF -(순서가 없잖니)-> One-Hot Encoding -(차원이 너무 크잖니)-> 워드 임베딩 -(문맥 파악 더 잘하는 거)-> 문장 임베딩

* Word Embedding

: 단어 사이의 유사도를 계산하여 새로운 차원으로 변환하여 유사한 단어끼리 가까운 벡터를 주는 것

기계가 단어끼리 유사한지 어케 아느냐
: "앞뒤 단어"를 보면 알 수 있다.
1) 일단 One-Hot Encoding 함
2) 단어와 그 앞뒤 단어 그리고 각자 해당하는 원핫인코딩값을 딥러닝의 입력으로 줌
=> 원하는 차원의 vector로 출력해줌

딥러닝
: word2vec, Glove 등이 있고 hidden layer는 1개

결론
word2vec 등 워드 임베딩을 통해 임베딩한 벡터값을 모델의 입력으로 사용하면 성능이 훨씬 잘 나옴.
단어와 단어 사이의 유사도를 표현하는 것은 큰 의미가 있음

RNN / LSTM

RNN

  • 시간성
  • 가변길이
  • 문맥 의존성

이 세 가지를 갖추기 위해 나온 순환 신경망

RNN의 구조

  • 입력층, 은닉층, 출력층을 가짐.
  • 은닉층이 순환에지를 가짐 => 위의 조건을 모두 처리할 수 있음.
  • 자기 회귀 모델임. (auto-regressive)
  • t 순간에는 t-1의 영향을 가장 크게 받고 멀리 있을수록 덜 받음. (장기 의존성 문제)
  • 디자인하기 나름이라 여러 가지 구조를 가짐.

LSTM

  • RNN의 장기 의존성 문제를 해결
    - 해결 방법 2가지 : LSTM , Attention
  • 메모리셀에 정보를 저장하고 개폐를 조절하여 필요한 순간에 정보를 전달
    - 개폐 정도도 학습으로 알아내야 하기 때문에 계산할 것이 많음

+) 위 두 모델은 시계열 데이터를 위한 model 이므로 언어에 집중한 Language Model들에 대해 알아보겠음.

Pretrained Model

Language Model의 큰 특징
: 문장 단위 임베딩
=> 문맥을 더 잘 파악하여 동음이의어에 대해 다른 벡터값을 할당할 수 있음. (단어 임베딩은 같은 값으로)

  • ELMo
  • GPT
  • BERT

ELMo

  • Embedding from Language Model
  • 2018년 초
  • Transfer Learning을 자연어 처리에 접목하면 성능이 좋아진다는 사실을 발견
  • 문장을 기본 단위로 임베딩한 최초 (?)
  • 내 모델 + ELMo 모델
  • 3가지 layer로 구성됨
  • 단방향 학습

세 가지 Layer로 구성

  • 첫 번째 layer: 문자 단위 컨볼루션 신경망 (임베딩)
    - 문자 단위인 이유: 문법 추출
    • 단어의 시작에 , 끝에 태그를 붙임
  • 두 번째 layer: Bidirectional-LSTM 사용하여 학습 (Pre-training)
    - 단어 하나씩 슬라이딩해가며 그 다음 단어가 무엇인지 맞추는 방식을 반복하여 학습 (단방향)
    - Bi-LSTM을 사용하여 최대한 문맥을 파악하려고 함
  • 세 번째 layer: ELMo Layer, 사용자의 데이터를 학습 (다운스트림 태스크 학습)

GPT (Generative Pretrained Transformer)

  • 2018년
  • GPT + 추가적인 코드 + Fine-tuning ~ 뭔 말인지 몰겠음
  • 단방향
  • 자기 회귀 모델 (auto-regressive model)
  • Attention을 사용한 Transformer Network의 Decoder를 사용 (?)

BERT

  • Bidirectional Encoder Representation
  • 2018년
  • BERT + Fine-tuning (다운스트림 작업) 쨌든 사용자가 할 일도 제일 적음
  • 양방향 => 문맥 파악에 좋음. (언어 생성 성능은 떨어짐)
  • 엄청나게 큰 parameters를 학습함
    => BOLD: BERT의 성능이 갑인 이유
  • 자기 인코딩 모델
  • Attention을 사용한 Transformer Network의 Encoder를 사용

자세한 것은 다음에 Attention 이후로 설명할 예정

profile
NLP Researcher / Information Retrieval / Search

0개의 댓글