1. 서론
텍스트 분류는 자연어 처리(Natural Language Processing) 분야에서 오랜 시간 연구되어 온 중요한 문제 중 하나로, 감성 분석, 스팸 문서 필터링, 뉴스 기사 분류 등 다양한 분야에서 활용되어 해왔다. 이러한 텍스트 분류 기술은 과거에는 주로 TF-IDF(Term Frequency-Inverse Document Frequency)와 같은 희소 벡터(sparse vector) 기반의 특징 값(feature)을 활용하여, SVM(Support Vector Machine) 등의 전통적인 머신 러닝의 분류 알고리즘을 적용하는 방식으로 진행되었다. 특징 값 추출에 있어 중요한 역할을 했던 TF-IDF는 품사태거, 스테밍, 불용어 제거 등의 전처리 과정 거친 후의 토큰들을 대상으로 통계적 빈도와 가중치를 기반으로 했으나, 텍스트의 의미적 맥락을 충분히 반영하지 못하는 한계가 있었다. 한 문서 내의 단어의 빈도와 단어가 포함된 문서 수를 기반으로 하는 이러한 희소 표현은 다차원 공간에서 높은 차원을 가지면서도 대부분이 0으로 채워지는 고차원의 희소 행렬을 생성하게 되어, 정확한 분류 성능을 위해서 전처리 단계 및 특징 값 추출 등에 많은 시간이 필요했다.
최근 NLP 분야에서는 트랜스포머(transformer) 모델, 특히 BERT(Bidirectional Encoder Representations from Transformers)와 같은 사전 학습(pre-trained)된 임베딩 모델의 등장으로 텍스트 표현 방식에 혁신적인 변화가 일어났다. 기존의 통계 기반 방법론과 달리, 이들 모델은 텍스트의 문맥적 의미를 반영한 밀집 벡터(dense vector)를 생성함으로써 텍스트의 복잡한 의미 구조를 보다 잘 이해할 수 있게 되었다. 이러한 발전은 텍스트 분류뿐만 아니라 유사 텍스트 검색(similarity search), RAG(Retrieval-Augmented Generation) 등 다양한 자연어 처리 태스크에 걸쳐 성능 향상을 가져왔다. 특히, 밀집 벡터로 변환된 텍스트 임베딩은 0값이 제거되기 때문에 보다 더 정확하게 유사 텍스트의 검색이 가능하고, 이를 활용하여 분류 및 군집 분석 등의 자연어 처리 태스크에 적용이 가능하게 되었다.
본 논문에서는 최신 트랜스포머 기반 임베딩 모델이 생성한 밀집 벡터를 활용하여, 전통적인 머신러닝 알고리즘인 SVM 을 포함한 몇 가지 분류 알고리즘을 다시 적용하여 분류 작업에 있어 임베딩 모델의효과를 실험하였다. 실험을 통해 밀집 벡터표현을 사용한 전통적 머신러닝 알고리즘의 성능을 분석하고, 비교하였다.
본 논문은 2장에서 관련 연구를 기술하고, 3장에서는 밀집 벡터를 생성하는 임베딩 모델에 대해 소개한다. 4장에서는 실험 방법 및 결과를 기술하고, 5장에서 결론을 맺는다.
2. 관련 연구
본 장에서는 기존의 희소 벡터 표현을 활용한 분류 기술에 관한 연구와 최근 활발하게 연구되어 오고 있는 임베딩 모델에 관해 기술한다.
[1]은 텍스트 감정 분석을 위한 모델로서 TF-IDF와 '다음 단어 부정' 방식을 결합하여 성능을 향상시켰다. SVM을 비롯한 여러 텍스트 마이닝 알고리즘을 비교한 결과, SVM이 가장 높은 성능을 보였습니다. 이 방법은 기존 감정 분류 모델에 비해 정확도를 크게 개선했다. [2]는 네트워크 공격 탐지를 위해 SVM과 Decision Tree 알고리즘을 비교했다. 특히, Chi-Square와 같은 특징 값 선택 기법을 활용하여 성능을 최적화했다. SVM은 높은 정확도를 보였으며, Decision Tree는 특정 상황에서 더 효율적임을 확인했다. [3]은 TF-IDF와 chi-square를 사용하여 아랍어 텍스트 분류 모델을 개발했다. SVM과 Decision Tree를 포함한 다양한 머신러닝 알고리즘을 적용한 결과, TF-IDF와 Chi-Square 결합이 텍스트 분류 성능을 크게 향상시켰다. [4]는 주어진 데이터의 분류 문제 있어서 Chi-Square를 특징 값으로 선택했을 때와 그렇지 않았을 때의 분류 성능을 비교했다. Chi-Square를 사용하기 전에 SVM과 Naive Bayes에서 각각 85.56%, 85.19%의 성능을 보였으며, Chi-Square를 사용한 후에는 SVM과 Naive Bayes에서 각각 83.86%, 87.09%의 성능을 보였다. 논문에서는 Chi-Square를 특징 값으로 사용하고 Naive Bayer를 분류 알고리즘으로 사용했을 때 가장 높은 성능을 보였다. [5]는 텍스트 분류에서 가장 높은 정확도를 가져오는 부스트 모델을 찾는 것을 목표로 하며, 이를 SVM 과 다른 모델인 Naive Bayes, Random Forest, Decision Tree 및 k-NN과 비교하였다. 텍스트 분류 및 처리를 위해 계획된 시스템은 SVM을 적용하며, 결과는 주요 역할에 의해 결정됐다. 구현에 사용된 기계 학습 알고리즘과 BBC 뉴스 데이터셋을 기반으로 했을 때, SVM이 더 나은 정확도와 결과를 제공한다는 것을 보여주었다. [6]은 다단계 대조 학습을 통해 학습된 범용 텍스트 임베딩 모델인 GTE(General-purpose Text Embedding)를 제안했다. GTEbase는 1억 1천만 개의 비교적 적은 파라미터 수로도 OpenAI의 임베딩 API와 10배 더 큰 모델을 능가하는 성과를 보였다. 특히 프로그래밍 언어에 대한 추가 미세 조정 없이 코드 검색에서도 우수한 성능을 발휘해, 다양한 NLP 및 코드 관련 작업에서 뛰어난 효율성을 제공한다. [7]에서는 1,000번 미만의 훈련 단계로 고품질 텍스트 임베딩을 얻는 새로운 방법을 제안했다. 기존 방법들은 수십억 개의 약한 감독하에 이루어진 텍스트 쌍을 사용한 다단계 중간 사전 학습 후, 소수의 레이블이 있는 데이터 셋으로 미세 조정을 하는 경우가 많지만, 논문의 방법은 복잡한 학습 파이프라인을 구축하거나 과제의 다양성과 언어 범위에 제약을 받는 수작업으로 수집된 데이터 셋에 의존할 필요가 없음을 보여주었다. 논문에서는 독점적인 LLM을 활용해 93개 언어에 걸쳐 수십만 개의 텍스트 임베딩 작업에 대한 다양한 합성 데이터를 생성했다. 그런 다음, 표준 대조 손실(contrastive loss)을 사용해 합성 데이터로 공개된 디코더 전용 LLM을 미세 조정한다. 실험 결과, 레이블이 있는 데이터를 사용하지 않고도 매우 경쟁력 있는 텍스트 임베딩 벤치마크에서 강력한 성능을 달성함을 보여주었다.[8]은 임베딩 모델의 튜닝 방법에 관한 논문으로 질의어에 대해 GPT에서 나온 답변과 RAG에서 나온 답변을 활용하여 질의어,답변 관계의 학습을 통해 임베딩 모델을 튜닝했다.
[9]는 BGE-M3 임베딩 모델을 설명하는 논문으로, 기존 임베딩 모델과의 차별성을 설명했다. 차별점으로 다양한 언어를 지원하고, 장문의 텍스트를 허용하며 dense vector, multi-vector, sparse vector를 지원하는 점을 소개했다. [10]은 BERT와 RoBERTa에 대해 소개했다. 두 방법에서는 의미적 텍스트 유사성에서 높은 성능을 보이지만 계산 비용이 크다는 것을 설명했다. 논문에서 제안하는 방법인 Sentence-BERT는 Siamese 네트워크를 사용해 빠르고 효율적인 문장 임베딩을 제공한다. 아울러, BERT의 성능을 유지하면서도 유사한 문장을 훨씬 빠르게 찾을 수 있게 해준다고 설명한다. [11]에서는 SimCSE를 제안했다. 이는 간단한 대조 학습 프레임워크로, 문장 임베딩 성능을 크게 향상 시켰다. SimCSE는 의미적 텍스트 유사성 작업에서 이전 방법보다 비지도 학습에서는 4.2%, 지도 학습에서는 2.2% 개선된 성과를 기록했다. 또한, 대조 학습의 목표는 임베딩 공간을 더 균일하게 정규화하며, 지도 신호가 있을 때 긍정적인 쌍을 더 잘 정렬하는 데 기여했다.
3. 임베딩 모델
본 장에서는 밀집 벡터 표현을 위해 사용되는 임베딩 모델에 대해 설명하고, 임베딩 모델에서 사용되는 Bi-Encoder에 대해 설명한다.
임베딩 모델은 자연어 처리(NLP)나 추천 시스템, 이미지 처리 등 다양한 인공지능 분야에서 사용되는 모델로, 데이터를 고차원에서 저차원으로 변환하여 컴퓨터가 더 효율적으로 이해할 수 있도록 돕는다. 임베딩은 특히, 벡터로 데이터를 표현하는데, 이 벡터는 비슷한 의미를 가진 데이터들이 벡터 공간 상에서 가까운 위치에 놓이게 하고, 서로 다른 데이터는 멀리에 놓이게 한다. 본 논문에서 머신 러닝 분류 알고리즘의 특징 값으로 사용한 텍스트 임베딩은 문장이나 단어를 n차원의 벡터값으로 변환하고, 이러한 수치 값을 사용하여 각각의 분류 알고리즘에 적용한다. 이를 통해, 텍스트 임베딩은 다음과 같은 역할을 수행한다. 첫째, 단어, 문장 또는 문서간의 의미적 유사성을 학습하여 유사한 의미를 가진 텍스트들이 벡터 공간에 가까운 위치에 오도록 배치한다. 둘째, 고차원으로 표현된 문장의 모든 단어에 대해 n개의 정해진 벡터로 압축함으로써 저차원으로 축소한다. 셋째, 임베딩 계산 시에 단어 또는 문장의 문맥을 반영하여 텍스트를 벡터로 변환하기 때문에 단어, 문장의 의미를 보다 정확하게 해석할 수 있다.
이러한 임베딩 모델의 구조를 살펴보면, [그림 1]과 같은 Bi-Encoder 구조를 갖는다. Bi-Encoder는 두 개의 입력 텍스트를 독립적인 벡터로 변환하여 이들의 유사성을 비교하는 방법을 사용하는 모델 아키텍처이다. 작동 방식을 살펴 보면, 두 개의 문장은 독립적으로 동일한 인코더 모델을 통과함으로써 임베딩 된다. 이 인코더는 주로 트랜스포머 기반 모델(예: BERT, RoBERTa 등)을 사용한다. 중요한 점은 두 입력이 함께 처리되지 않고, 각각 별도의 벡터로 변환된다는 점이다. 두 개의 독립적으로 임베딩된 벡터는 코사인 유사도(Cosine Similarity) 또는 유클리드 거리(Euclidean Distance)와 같은 거리 계산 방법으로 비교되어, 두 벡터의 유사도가 계산된다. 이 유사도 값은 두 입력 데이터(문장, 질문-답변, 문서 등)가 얼마나 비슷한지를 나타낸다. 아울러, 벡터 값은 유사도 계산 이외에 전통적인 머신 러닝 알고리즘의 특징 값으로 사용되어 목적하는 문제의 해결을 위해 중간 과정으로 사용될 수도 있다. Bi-Encoder의 장점으로는 대량의 텍스트 데이터에 대해 미리 임베딩 값을 계산해두고 실시간으로 유사도 값을 계산할 수 있어 대규모 검색 시스템 등에 활용될 수 있다. 다만, 두 개의 입력이 독립적으로 임베딩 되기 때문에, 문장 간의 상호작용이나 문맥적인 정보가 충분히 반영되지 않을 수 있다. 이는 두 문장 사이에 더 복잡한 관계가 있을 경우, 해당 정보를 충분히 포착하지 못할 수 있다는 부분이다. 이럴 경우에는, cross-encoder 방식의 모델이 필요한 부분이다. 이는 검색의 재랭킹 구조에서 많이 사용되어오고 있는 방법 중 하나이다.

(그림 1) Bi-Encoder 구조[12]
4. 실험
본 장에서는 본 논문에서 수행한 실험 환경 및 실험 결과에 대해 설명한다.
4.1 실험 환경 및 수행
본 논문에서는 [그림 2]처럼 spam/ham 메일 데이터를 대상으로 ①Feature Engineering을 수행하고, ②Training, ③Classification을 수행한다.

(그림 2) 실험 구조
①의 과정에서는 전통적인 TFIDF와 5개의 임베딩 모델[13,14,15,16,17]을 통해서 텍스트 문장에 대해서 벡터 형태로 변환하고, ②,③과정을 통해 학습 및 분류를 수행한다.
본 논문에서 사용한 데이터셋[18]은 spam/ham 메일 데이터로써 [표 1]과 같은 특징을 갖는다.
<표 1> 데이터셋 특징

Feature Engineering 단계에서는 TFIDF를 사용한희소 벡터 값과 다섯 종류의 임베딩 모델을 사용한밀집 벡터 형태로 변환하였다. 본 논문에서 사용한 임베딩 모델은 [표 2]와 같다.
<표 2> 실험시 사용한 임베딩 모델

임베딩 모델의 출력 벡터 크기는 [표 3]과 같다.
<표 3> 임베딩 모델별 출력 벡터 크기

Training과 Classification 단계에서는 SVM, LightGBM, XGBoost, RandomForest를 사용하여 10-fold cross validation을 통해 평가를 진행했다. 아울러, Feature Engineering 단계와 10-fold cross validation 수행시 각 알고리즘별 수행 시간을 [표 4][표 5]와 같이 측정하였다. 수행 환경은 Google Colab에서 유료로 제공하는 A100 40GB 환경이었다.
<표 4> 특징 값 추출 방법별 수행 시간

<표 5> 알고리즘별 10-fold CV 수행 시간

.4.2 실험 결과
본 절에서는 실험 결과에 대해 설명한다. 특징 값 추출 방법으로 TFIDF를 사용하고, 분류 알고리즘으로 LGBM을 사용했을 때, F-Score 0.942로 가장 높은 성능을 보였다[그림3].

(그림 3) TFIDF를 활용한 각 알고리즘별 평가
특징 값 추출 방법으로 1번 임베딩 모델을 사용하고, 분류 알고리즘으로 SVM을 사용했을 때, F-Score 0.967로 가장 높은 성능을 보였다[그림4].

(그림 4) 1번 모델을 활용한 각 알고리즘별 평가
특징 값 추출 방법으로 2번 임베딩 모델을 사용하고, 분류 알고리즘으로 SVM을 사용했을 때, F-Score 0.94로 가장 높은 성능을 보였다[그림5].

(그림 5) 2번 모델을 활용한 각 알고리즘별 평가
특징 값 추출 방법으로 3번 임베딩 모델을 사용하고, 분류 알고리즘으로 SVM을 사용했을 때, F-Score 0.967로 가장 높은 성능을 보였다[그림6].

(그림 6) 3번 모델을 활용한 각 알고리즘별 평가
특징 값 추출 방법으로 4번 임베딩 모델을 사용하고, 분류 알고리즘으로 SVM을 사용했을 때, F-Score 0.962로 가장 높은 성능을 보였다[그림7].

(그림 7) 4번 모델을 활용한 각 알고리즘별 평가
특징 값 추출 방법으로 5번 임베딩 모델을 사용하고, 분류 알고리즘으로 SVM을 사용했을 때, F-Score 0.963으로 가장 높은 성능을 보였다[그림8].

(그림 8) 5번 모델을 활용한 각 알고리즘별 평가
분류 알고리즘으로 SVM을 사용하고, 1번 모델과 3번모델을 특징 값 추출 방법으로 사용했을 때 F-Score가 0.967으로 가장 높은 점수를 보였다. 과거에 임베딩 모델이 출현하기 전에는 SVM과 TFIDF를 사용하여 텍스트 분류 연구를 진행했었는데, 본 논문에서 임베딩 모델을 사용했을 때의 성능을 비교하고자 SVM+TFIDF를 사용한 실험도 같이 수행했다. 그 결과, SVM+TFIDF 보다 SVM과 임베딩 모델을 사용했을때, F-Score를 기준으로 2.6%의 향상이 있었음을 알 수 있었다.
각 분류 알고리즘을 기준으로 6개의 특징 값 추출 방법을 사용했을 때의 F-Score의 평균 값과, 각 알고리즘별 검증 시간을 정리해보면 [표 9]와 같다. [표9]를 통해 SVM에서 6 가지의 특징 값 추출 방법을 사용했을 때 평균 F-Score 값이 가장 높았으며, LightGBM에서는 수행시간이 가장 빨랐음을 알 수 있었다.
<표 10>알고리즘별 F-Score 및 수행 시간

5. 결론
본 논문에서는 텍스트 분류 문제에서 희소 벡터 값과 밀집 벡터 값을 각각 전통적인 머신러닝 알고리즘에서 사용했을 때, 성능 차이를 비교했다. 실험 데이터셋으로는 이메일 스팸/비스팸 데이터셋을 사용하였고, 5가지의 임베딩 모델과 4가지 분류 알고리즘으로 10 폴드 교차 검증(10-fold cross validation)으로 검증하였다. 실험 결과에서 SVM에 희소 벡터(TFIDF)를 사용했을 때 보다, SVM에 밀집 벡터(임베딩 값)를 사용했을 때, F-Score 기준으로 2.6%의 향상이 있었다. 결과를 통해, 임베딩 모델을 통한 밀집 벡터 값의 사용은 효과가 있었음을 알 수 있었다.
향후 연구에서는 다양한 데이터 셋을 활용하여 결과의 검증이 필요하다.
References
- B. Das and S. Chakraborty, "An Improved Text Sentiment Classification Model Using TF-IDF and Next Word Negation", arXiv preprint arXiv:1806.06407, January 2018.
- A. Thakka and ,R. Lohiya, "Attack classification using feature selection techniques: a comparative study", Journal of Ambient Intelligence Humanized Computing, Vol. 12, No.4, pp.1249–1266. 2021. https://doi.org/10.1007/s12652-020-02167-9
- I. Jamaleddyn and M. Biniz, "Contribution to Arabic Text Classification Using Machine Learning Techniques", Lecture Notes in Business Information Processing, vol 416. pp.18-32, 2021. https://doi.org/10.1007/978-3-030-76508-8_2
- S. Rosidin, Muljono, G. Fajar Shidik, A. Zainul Fanani, F. Al Zami and Purwanto, "Improvement with Chi Square Selection Feature using Supervised Machine Learning Approach on Covid-19 Data", 2021 International Seminar on Application for Technology of Information and Communication, pp. 32-36, 2021.
- T. Hai, Z. Jincheng, Z., Shirin Abolfath, A. Oluwabukola A., L. Mingjiang, U. Ikpenmosa and I. Celestine, "Evaluation of Text Classification Using Support Vector Machine Compare with Naive Bayes, Random Forest Decision Tree and K-NN", Lecture Notes in Networks ans Systems, vol.735, pp.321-331, 2023. https://doi.org/10.1007/978-3-031-37164-6_23
- Z. Li, X. Zhang, Y. Zhang, D. Long, P. Xie, M. Zhang, "Towards General Text Embeddings with Multi-stage Contrastive Learning", arXiv preprint arXiv:2308.03281, August 2023.
- L. Wang, N. Yang, X. Huang, L. Yang, R. Majumder and F. Wei,"Improving Text Embeddings with Large Language Models", arXiv preprint arXiv:2401.00368, May 2024.
- I. O. William, and M. Altamimi, "Text Embedding Implementation Using Retrieval Augmented Generation (RAG) Model Combined With Large Language Model", International Journal of Advanced Natural Sciences and Engineering Researches, Vol. 8 No. 4, pp. 637-645, May. 2024
- J. Chen, S. Xiao, P. Zhang, K. Luo, D. Lian, and Z. Liu, "BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation", arXiv preprint arXiv:2402.03216, June 2024.
- N. Reimers, I. Gurevych,"Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks", arXiv preprint arXiv:1908.10084, August 2019.
- T. Gao, X. Yao, and D. Chen, "SimCSE: Simple Contrastive Learning of Sentence Embeddings", arXiv preprint arXiv:2104.08821, May. 2022.
- https://www.sbert.net/examples/applications/cross–encoder/README.html.
- https://huggingface.co/sentence-transformers/paraphrase-multilingual-mpnet-base-v2.
- https://huggingface.co/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2.
- https://huggingface.co/BAAI/bge-m3.
- https://huggingface.co/sentence-transformers/all–mpnet-base-v2.
- https://huggingface.co/beademiguelperez/sentence–transformers-multilingual-e5-small.
- https://www.kaggle.com/datasets/jackksoncsie/spam-email-dataset.