한국어 언어 모델 학습 및 다중 과제 튜닝 - (1강)인공지능과 자연어 처리

newbie·2021년 9월 27일
0

강의 소개

이제 본격적으로 자연어처리 공부를 시작해보겠습니다! 🥰
인공지능이 발전함에 따라 자연어와 관련된 여러 Task들을 해결할 수 있게 되었습니다.
이번 강의에는 인공지능의 발전이 어떻게 자연어 처리 분야에 영향을 주고 발전하게 되었는지 알아봅니다.
또한 앞으로의 과정을 위해 배경지식이 될 수 있는 자연어처리의 기초에 대해서 소개합니다.
그리고 ‘언어모델’의 개념이 어떻게 탄생하게 됐는지 살펴보겠습니다.

Further Reading

Further Questions

  • Embedding이 잘 되었는지, 안되었는지를 평가할 수 있는 방법은 무엇이 있을까요?
    • WordSim353
    • Spearman's correlation
    • Analogy test
  • Vanilar Transformer는 어떤 문제가 있고, 이걸 어떻게 극복할 수 있 을까요?
    • Longformer
    • Linformer
    • Reformer

Content

  • 인공지능의 탄생과 자연어처리
    • 자연어처리 소개
    • 자연어처리의 응용분야
    • 자연어 단어 임베딩
  • 딥러닝 기반의 자연어처리와 언어모델
    • 언어모델
    • Seq2seq
    • attention
    • self-attention

인공지능의 탄생과 자연어처리

자연어처리 소개

  • 인공지능 : 인간의 지능이 가지는 학습,추리,적응,논증 따위의 기능을 갖춘 컴퓨터 시스템
  • 콜로서스(1943) 컴퓨터 개발
  • 이미테이션 게임(튜링 테스트,1950)
    • 기계가 지능이 있는지 판별하는 실험
    • 인간이 보기에 인간같으면 그 시스템은 인간에 준하는 지능을 갖췄다고 간주
    • 자연어처리의 시작!
  • AI 황금기(1956-1974) : 자연어 연구가 폭발적으로 관심

자연어처리의 응용분야

챗봇 기준에서 소통 방식!

  • 인간의 자연어처리
    • 화자는 자연어 형태로 객체를 인코딩
    • 메세지 전송
    • 청자는 자연어를 객체로 디코딩
  • 컴퓨터의 자연어 처리
    • Encoder는 벡터 형태로 자연어 인코딩
    • 메세지 전송
    • Decoder는 벡터를 자연어로 디코딩
  • 즉, 자연어를 컴퓨터가 이해가능하도록 인코딩을 잘 할 수 있으면, 컴퓨터는 디코딩을 통해서 무엇이든 할 수 있음!!

자연어처리에서는 다양한 application이 존재하지만, 대부분 주어진 inputs에서 특정 token을 분류하고 이것을 바탕으로 진행된다. 따라서 대부분의 자연어처리는 분류 문제를 바탕으로 한다.

자연어 단어 임베딩

  1. 우선 분류를 위해 데이터를 수학적으로 표현을 해야 하므로, 분류 대상의 특징(feature)를 파악 : feature extraction
  2. 특징(feature)를 기준으로 분류 대상을 그래프 위에 표현 가능, 이때 분류 대상들의 경계를 수학적으로 나눌 수 있음(classification)
    => 즉, 인코딩만 잘 되면 이 결과를 바탕으로 어떤 application도 수행 가능
  • 과거에는 사람이 직접 feature를 분류했지만, 복잡한 문제에서는 불가능!
  • 따라서 컴퓨터가 스스로 특징을 찾고(feature extraction), 스스로 분류(classification)하는 것이 기계학습의 핵심!!

자연어를 좌표평면(벡터화)에 표현하는 다양한 방법!

  • word2vec : 단어의 의미를 다차공 공간에 벡터화 하는 방식
    • 주변단어와 중심단어의 관계를 학습(skip-gram, CBOW)
    • pros - 단어간 유사도 측정 및 관계 파악에 용이(벡터 연산을 통해 추론 가능)
    • cons - subword info 무시(서울시와 서울은 다른 단어로 인식) 및 OOV에서 적용 불가
  • FastText : word2vec과 유사하나, n-gram으로 나누어서 학습!
    • word를 n-gram으로 분리 후 모든 n-gram vector의 평균으로 word vector 획득
    • pros - 오탈자, OOV, 등장획수가 적은 단어에 매우 강함!(word2vec의 약점)
  • 단, word2vec이나 Fasttext는 주변단어만을 고려했기에 동형어, 다의어 등에 대해선 매우 취약함(context independence)

딥러닝 기반의 자연어처리와 언어모델

언어모델

  • 자연어의 법칙을 컴퓨터로 모사한 모델!
  • 주어진 단어들로부터 다음에 등장할 단어의 확률을 예측하는 방식으로 학습
  • 다음 단어를 잘 예측하는 모델은 언어의 특성 및 문맥을 잘 학습한 언어모델

** 다양한 언어 모델

  • markov기반 model - n-gram 기반으로 다음 단어를 예측
    • 딥러닝 기반의 언어모델은 해당 확률을 최대로 하도록 네트워크 학습
  • RNN model : 이전 timestep의 정보와 현재 input을 기반으로 다음 단어를 예측

Seq2Seq

  • encoder layer : rnn 구조를 통해 context vector 획득
  • decoder layer : 획득한 context vector 기반으로 출력을 예측
  • rnn계열 model의 문제점
    • rnn은 sequence 길이가 길어질수록 과거에 나온 정보 소실량이 증가!
    • 고정된 context vector에 긴 sequence에 대한 정보를 함축하기 어려움
    • 중요하지 않은 token도 영향을 미침

Attention

  • attention의 모티브는 중요한 feature는 가중치(attention weight)를 부여하여 더 고려하는 것!
  • 단, encoder/decoder 성능은 매우 향상됐지만, 여전히 rnn architecture를 encoder에 사용하므로, 순차적 연산으로 인해 연산 속도가 매우 느림!

self-attention

  • auto-regressive 구조를 없애고, 모든 토큰을 연결! => Transformer
profile
DL, NLP Engineer to be....

0개의 댓글