해당 글은 제로베이스데이터스쿨 학습자료를 참고하여 작성되었습니다
Natural Language Processing
- 컴퓨터가 인간의 언어를 이해, 생성, 조작할 수 있도록 해주는 인공 지능(AI)의 한 분야
- Attention 기법을 활용하여 CNN, RNN을 사용하지 않는 자연어 처리 모델
- GPT : Transformer의 Decoder를 아키텍처를 활용
- BERT : Transformer의 Encoder를 아키텍처를 활용
이미지 vs 자연어
이미지 데이터 특징
- 이미지 안의 의미있는 정보는 위치에 무관
- Convolution 연산은 위치에 무관한 지역적인 정보를 추출하기 좋은 연산
자연어 데이터 특징
- 문장을 구성하고 있는 단어들의 위치가 변해서는 안됨(ex. English)
- 단어들 간의 관계가 중요하고 하나의 단어만 바뀌거나 추가되어도 전혀 다른 의미(context) 를 가질 수 있음
- 문장이 갖고 있는 문맥을 알고리즘이 이해할 수 있게 하는 것이 어렵다.
자연어 데이터의 토큰화
- 무엇을 근거로 토큰화를 할 것인지가 문제이다
- Character
- Word
- 경우의 수가 너무 많음
- 신조어, 반어법 등의 문제
- 요약
- Hugging face 와 같은 대중적인 공유 라이브러리가 존재하기 전까지 연구
자들이 각각 토큰화를 임의로 진행 했음
- 이에 따라서 모델을 다운받아 실행시킬 경우 전혀 다른 결과가 나타남
- 즉, 자연어 에서의 토큰처리 과정에 대해 아는 것은 매우 중요함
자연어 처리 Task
- 하나의 문장을 여러 개로 나누고 나눈 토큰들의 결합분포로 문장에 대해서 확률을 계산
문장 감정 분석
ex. 맛있는 사과를 먹었다
기계어 번역 & Question answering
ex. 나는 사과를 먹었다 -> I ate an apple
마스크 필링
ex . 나는 X 먹었다 -> X에 들어갈 수 있는 적절한 단어 찾기
Text Metrics
- BLEU(Bilingual Evaluation Understudy)
- 모델이 번역한 것과 사람이 번역한 것의 유사도 측정으로 성능판단
- 번역된 단어를 n개 단위로 점검(n-gram based precision)
- Rouge(Recall Oriented Understudy of Gisting Evalutaion)
- METEOR(Metric for Evaluation of Translation with Explicit ORdering)
- Human based measure
자연어 처리 모델 기존 연구들
기존 연구
- 문장의 문맥을 하나의 벡터로 표현하기 위해서 인코딩
- 문맥을 알아내는 Enocder를 학습했다면 감정분석, 기계어번역, QA 등에 적용 가능
- 문장은 순서를 가지고 있으므로 문장의 처음부터 끝까지 순차적으로 입력해서 최종 벡터 생성(RNN)
- 하지만, 중요 단어들이 초반부에 있다면 정보를 소실할 가능성이 있다
현재 연구
- 각각의 단어에 Attention을 부여
- ex. "나" -> I, "apple" -> "사과"
- Attention Score
요약
기존 연구 : 자연어 데이터의 순차적인 특성을 고려
현재 연구 : 문장마다 중요도를 계산하는 Attention 모듈 사용