EH_dream

딥러닝 학습 정리 : 텍스트 벡터화 기법 정리_25.06.20 본문

딥러닝

딥러닝 학습 정리 : 텍스트 벡터화 기법 정리_25.06.20

Song EH. 2025. 6. 20. 17:42

오늘은 이번주에 학습했던 텍스트를 벡터화하는 기법에 대해서 정리를 해보겠습니다.

우선 딥러닝에서 텍스트를 벡터화를 하는 이유는 딥러닝 모델이 문자를 직접 처리할 수 없기 때문에 해주는 전처리 과정이라고 이해하면 쉽다. 딥러닝은 수치(숫자)로만 입력받아 연산을 하기 때문에 벡터화를 통해 숫자 형태로 바꿀 수 있다.

 

딥러닝은 기본적으로 행렬 곱, 합성 함수, 경사하강법, 오차 역전파 등 전부 수학 연산으로 작동하게 되는데 이걸 위해 텍스트를 벡터 - 1차원 배열 또는 행렬 (2차원) 으로 바꿔주어야 학습이 가능하다. 또한 단어가 그냥 인덱스만 가지고 있다면 의미를 담지 못하기 때문에 이를 벡터화 기법으로 단어 의미를 수치적으로 표현하는 방법을 제공하며 딥러닝은 텍스트에서 패턴을 가지고 숫자 벡터 간 연관성으로 학습을 하기 때문이다.

 

딥러닝에서 벡터화는 단순 변환이 아니라 텍스트의 의미와 구조를 수치화해 학습이 가능하도록 만드는 핵심 과정이라고 할 수 있고 이 과정을 통해 모델은 텍스트의 문맥, 의미, 관계를 수학적으로 학습할 수 있게 된다.

 

나는 이 벡터화 기법들에대해 조금 더 조사를 진행했고 이를 표로 정리해 보았다.

 

 

* 임베딩이란 ?

텍스트는 사람이 보기에는 의미가 있지만 딥러닝 모델에겐 그저 문자열이기 때문에 임베딩은 이걸 유사한 의미의 단어는 가까운 위치의 벡터로, 다른 의미의 단어는 먼 벡터로 표현을 해준다.

 

위 기법들은 데이터나 분류 목적별로 정리를 해볼 수 있는데 먼저 이진분류와 다중분류에 대해서 정리해볼 수 있다.

우선 분류 문제의 유형으로 Label이 어떤 구조로 되어 있느냐에 따라서 다르게 나뉘며 총 세개의 유형으로 나눌 수 있다.

 

1. 이진 분류 (Binary Classification)

정답이 두 가지 클래스 중 하나인 경우 0 또는 1 , 참 또는 거짓 , 긍정 또는 부정 등 두가지 선택지만 있는 문제를 이진분류라고하며 스팸이메일, 암 진단 결과가 악성인지 양성인지, 리뷰가 긍정인지 부정인지가 이진분류를 사용하는 예시로 볼 수 있다.

출력방식은 함수 설정시 sigmoid를 사용하며 출력노드는 1개로 0~1의 확률로 나오며 0.5 이상인 경우 클래스 1로 간주한다.

 

2. 다중 분류 (Multiclass Classification)

정답이 세 개 이상 중에서 하나인 문제로 하나의 샘플은 오직 하나의 클래스에만 속하는것이 다중 분류이다. 예를 들어 손글씨 숫자 분류 0~9 중 하나인경우, 뉴스 기사 카테고리 분류, 동물의 종류 분류 하는것들이 다중 분류에 속하는것이며 출력방식은 클래스 수 만큼으로 10개의 클래스라면 10개의 노드로 사용시 마지막 층 활성화 함수는 softmax로 설정해야한다. 예측은 확률 값 중 가장 높은 것 하나를 선택한다.

 

3. 다중 라벨 분류 (Multilable Classification)

하나의 샘플이 여러 클래스에 동시에 속할 수 있는 문제로 정답 (Label)이 여러 개일 수 있습니다. 영화 장르를 분류하지만 하나의 영화가 액션, SF, 드라마 장르를 동시에 가질 수 있거나 뉴스 기사를 분류시 정치 와 경제 둘다 해당되는 경우 등이 이에 속하게 됩니다. 출력 노드는 클래스 수 만큼으로 마지막 층 활성화 함수는 sigmoid를 사용하며 각 노드마다 0 또는 1로 개별 판단을 하게 됩니다. 다중 이진 분류 처럼 처리할 수 있습니다.

 

데이터에 따라 선택 기준을 둘수도 있으며 이는 표로 간단하게 설명해두겠습니다.

 

데이터 유형 추천 벡터화
문서 단어 빈도 분석 (간단한 뉴스 / 이메일 등) TF-IDF, BoW
긴 문장, 의미 분석이 필요한경우 Word2Vec, GloVe, FastText
문장 구조 중요 ( 순서나 문맥) RNN/CNN + Embedding Layer, BERT
도메인 특화 텍스트 ( 의학이나 벌률 등 ) FastText (형태소), 자체 Word2Vec 훈련
저용량이거나 빠른 모델을 원할 때 TF-IDF, BoW + 간단한 모델

 

 

많은 벡터화 방식을 한번 더 정리해보니 잘 정리가 안되던 부분들도 정리가 되는 부분이 있었지만 조금 아쉬운건 각 벡터가 어떤 방식으로 벡터화를 시키는지 좀 더 글로 정리해보는 연습을 해보는게 좋을 것 같다. 나는 인지능력이 좋은 편이라는 말을 들은적이 있는데 말의 의미를 분석하고 재구성 하는 능력이 좋다고 했지만 사실 내 머릿속에서 이해하는 방식이 나만의 방식으로 만들어서 구체화 시켜야하는 느낌이 많이 들었다 다음에는 좀 더 어떻게 학습을 하면서 인사이트를 얻었는지 어떤 부분에서 학습에 이해를 하기 시작했는지를 정리해보면서 블로그를 써봐야겠다는 생각을 했다. 

 

오늘의 학습 끝 :)