강의 소개
이제 본격적으로 자연어처리 공부를 시작해보겠습니다! 🥰
인공지능이 발전함에 따라 자연어와 관련된 여러 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) : 자연어 연구가 폭발적으로 관심
- 대표적 ELIZA(1966) 챗봇 - 심리상담사 역할, 최초의 대화형 챗봇
자연어처리의 응용분야
챗봇 기준에서 소통 방식!
- 인간의 자연어처리
- 화자는 자연어 형태로 객체를 인코딩
- 메세지 전송
- 청자는 자연어를 객체로 디코딩
- 컴퓨터의 자연어 처리
- Encoder는 벡터 형태로 자연어 인코딩
- 메세지 전송
- Decoder는 벡터를 자연어로 디코딩
- 즉, 자연어를 컴퓨터가 이해가능하도록 인코딩을 잘 할 수 있으면, 컴퓨터는 디코딩을 통해서 무엇이든 할 수 있음!!
자연어처리에서는 다양한 application이 존재하지만, 대부분 주어진 inputs에서 특정 token을 분류하고 이것을 바탕으로 진행된다. 따라서 대부분의 자연어처리는 분류 문제를 바탕으로 한다.
자연어 단어 임베딩
- 우선 분류를 위해 데이터를 수학적으로 표현을 해야 하므로, 분류 대상의 특징(feature)를 파악 : feature extraction
- 특징(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