통계 기반
데이터의 통계적 속성(출현 빈도 등)을 수학적으로 계산하여 텍스트의 특징을 추출하는 전통적인 방식이다. 단어의 의미나 문맥보다는 빈도 패턴에 의존한다.
기법/알고리즘
TF-IDF
- Term Frequency-Inverse Document Frequency
자연어 처리에서 텍스트 데이터의 특징을 추출하는 데 사용되는 통계적인 방법
-
단어의 중요성을 계산하여 문서 내에서 해당 단어의 상대적인 가중치를 나타낸다
-
TF-IDF는 각 단어의 TF와 IDF를 곱하여 문서 내에서의 상대적인 중요도를 계산합니다. 이를 통해 각 문서를 벡터로 표현하고, 단어의 빈도와 문서 간의 관계를 수치화할 수 있습니다. 이러한 TF-IDF 벡터는 자연어 처리 작업에서 문서 유사도 측정, 검색 엔진, 텍스트 분류 등에 사용됩니다.
-
단어의 등장 빈도와 문서의 희소성을 고려하여 중요한 단어를 강조하는 효과를 가지며, 자연어 처리에서 널리 사용되는 기법 중 하나입니다.
- Term Frequency (TF)
1개의 문서 내에서 특정 단어의 출현 빈도
문서 내에서 단어가 나타나는 빈도를 나타냅니다. 각 문서에서 각 단어의 등장 빈도를 계산합니다. 일반적으로 문서 내에서 자주 등장하는 단어는 해당 문서의 주제와 관련이 깊을 가능성이 높습니다.
- Inverse Document Frequency (IDF)
특정 단어가 전체 문서에 등장하는 정도
전체 문서 집합에서 단어의 희소성을 나타냅니다. 단어가 많은 문서에서는 해당 단어의 중요성이 낮다고 판단하고, 단어가 적은 문서에서는 해당 단어의 중요성이 높다고 판단합니다. IDF는 전체 문서 집합에서 해당 단어가 등장하는 문서의 수에 반비례하는 가중치를 부여합니다.
신경망 기반
인공신경망(Artificial Neural Networks)을 훈련시켜 단어의 의미, 문맥, 문장 구조 등을 스스로 학습하고 벡터 공간에 표현하는 현대적인 방식이다.
기법/알고리즘
RNN
어텐션
단어 임베딩
단어를 벡터로 표현하는 방법 중 하나
- 거리를 기반으로 벡터로 표현
- 단어의 분산 표현을 학습하는 알고리즘
단어의 의미와 관련된 특성을 벡터 공간상의 위치로 표현
- 유사한 의미를 가진 단어들이 가까이 위치하도록 함
- 이를 통해 자연어 처리 작업에 활용
- 단어 간의 의미적 유사성을 계산
- 단어 간의 관계를 파악
- 단어 임베딩을 활용한 다양한 자연어 처리 작업에 응용
대규모의 텍스트 데이터를 사용하여 학습
- 학습된 모델을 통해 단어 간의 유사도를 계산
- 단어들의 의미적 관계를 파악하는 등의 작업을 수행
등장 빈도 수가 적은 단어(rare word)에 대해서는 임베딩의 정확도가 높지 않다는 단점.
아키텍처
seq2seq (RNN 혹은 RNN+어텐션)
- 인코더와 디코더를 활용하여 한 문장을 다른 문장으로 번역하는 모델
- 입력과 출력의 길이가 달라도 변환이 가능
- 긴 문장에서 정보의 손실이 발생
초기 RNN 기반의 seq2seq 아키텍처는 인코더가 모든 입력 시퀀스의 정보를 고정된 길이의 컨텍스트 벡터(Context Vector)로 압축하면서 긴 문장에서 정보 손실(병목 현상)이 발생하는 치명적인 단점이 있었다.
이를 해결하기 위해 고안된 것이 어텐션이다. 디코더가 매 시점 단어를 생성할 때마다 입력 시퀀스 전체를 다시 참조하되, 현재 출력해야 할 단어와 연관성이 높은 입력 단어에 더 높은 확률(가중치)을 주어 ‘집중(Attention)‘하게 만드는 수학적 기법이다.
transformer
트랜스포머는 어텐션 메커니즘의 효율성을 극대화한 결과물이다. 순차적으로 데이터를 연산해야 하는 RNN의 구조적 한계를 완전히 배제하고, 오직 어텐션(구체적으로 자기 주의인 Self-Attention과 Multi-Head Attention)만으로 문장 내 단어 간의 전역적 의존성(Global Dependencies)을 병렬적으로 계산해낸 아키텍처다.
결과적으로 어텐션은 seq2seq를 보조하는 기법(알고리즘)으로 출발하여, 트랜스포머에 이르러서는 모델의 뼈대 자체를 구성하는 핵심 연산 원리로 발전했다.
모델/방법론
word2vec (단어 임베딩의 한 종류)
CBOW
- Continuous Bag-of-Words
앞, 뒤 단어로 주어진 단어를 유추
문맥에 있는 주변 단어들을 입력으로 사용하여 중심 단어를 예측하는 방식으로 학습을 진행
Skip-gram
중심단어에서 주변단어 예측
중심 단어를 입력으로 사용하여 주변 단어들을 예측하는 방식으로 학습을 진행