텍스트 클러스터링과 토픽 모델링

텍스트 클러스터링

텍스트를 내용, 의미, 관계를 기반으로 비슷한 것끼리 그룹으로 모으는 것 구조적이지 않은 대용량의 텍스트를 효과적으로 분류할 뿐만 아니라 데이터 분석을 빠르게 수행하도록 도와줌.

텍스트 클러스터링은 크게 3개의 단계와 알고리즘으로 구성 됨.

1. 임베딩 모델

말그대로 텍스트 데이터를 임베딩으로 바꾸는 것. 의미적으로 비슷한 문서를 찾아야 하기 때문에 의미 유사도 작업에 최적화 된 임베딩 모델을 선택하는 것이 특히 중요하다.

2. 차원 축소 모델

임베딩 모델을 통해서 데이터들을 임베딩 했을때, 고차원 데이터일 수록 다각도의 클러스티링이 이루어짐.

이렇게 되면 해당 데이터에서 의미 있는 클러스터를 찾는 것이 어려워진다.

이 과정에서 고차원 공간의 데이터를 저차원 표현으로 압축함으로써 자원 축소 모델을 사용한다.

(요역해보면 1단계에서 많이 널부러진 데이터들을 간단히 압축하는 느낌?)

하지만 고차원 데이터를 저차원 데이터로 완벽하게 치환하지 못한다는 문제점이 있음. 항상 정보가 손실 됨.. 둘 사이의 절충점이 필요하다.

3. 클러스터링 모델

축소된 임베딩들을 클러스터링한다. 이 과정에서 k-means 과 같은 센트로이드 기반 알고리즘을 선택함.

임베딩 과정을 거치면 데이터들을 지도 위의 점처럼 나타낼 수 있다고 했는데, 이 점들의 평균 위치를 묶음의 대표 지점으로 삼는 걸 의미함.

하지만 이마저도 평균 위치가 묶음 전체를 잘 대표한다는 의미는 아님.

데이터들이 갈고리 모양으로 이루어져있다면, 그 문서들의 평균 위치는 데이터가 없는 가운데에 놓일 수 있다.

그래서 나오는게 밀도기반 모델인 HDBSCAN인데, 점들이 어디쪽에 모여있는지를 기준으로 클러스터를 나눔.

토픽 모델링

토픽 모델링은 말그대로 '주제' 별로 나눈다고 생각하면 된다. 예를 들어서 고객들 리뷰 중에

“카드 결제가 계속 실패해요.”
“결제할 때 오류가 나요.”
“글씨가 작아서 읽기 어려워요.”
“글자 크기를 조절하고 싶어요.”

이런 리뷰들이 있다고 가정해보자.

여기서 한단계 클러스터링을 거치면

묶음A는 결제, 묶음B는 글자로 나눌 수 있다.

이처럼 문서들에 숨어있는 주제들을 발견해서, 사람이 해석할 수 있게 나타내는 것이 토픽 모델링이다.

이 과정에서 BERTopic 이 사용되는데, 유사한 텍스트 클러스터를 활용하여 다양한 종류의 토픽 표현을 추출하는 토픽 모델링 기법이다.

BERTopic은

  1. 임베딩
  2. 차원 축소
  3. 클러스터링
  4. 묶인 문서들의 단어를 BoW로 집계
    • 여기서 BoW는 Bag of Words의 약자로, 어떤 단어가 몇번 나왔는지 세는 기법
  5. c-TF-IDF로 대표 단어를 찾기
    • BoW는 단순히 단어의 빈도를 세는 기법이므로, 그 안에서도 이 묶음의 특징을 보여주는 단어는 어떤건지 계산해야함. 그 계산 방식임

c-TF-IDF

c는 클러스터, TF는 Term Frequency (단어의 빈도), IDF(inverse document frequency) 역문서 빈도

예를 들어서 위의 리뷰 예시에서 '앱'이라는 단어가 계속 등장했다고 가정해보자. '앱'이라는 단어는 BoW 방식으로는 굉장히 많은 수치로 잡히겠지만 어느 묶음에서나 나올 수 있는 단어이므로 특성이 있지는 않다.

위의 c-TF-IDF를 통해서 너무 흔한 단어의 영향력을 낮추는 방식이다.

위의 방식을 통해서 토픽 모델링을 했다고해도 끝나는건 아니다.

단어 빈도가 높다고 정말 토픽별로 잘 나뉘어졌다고 보장할 수 없다.

최종적으로 뽑힌 토픽들이

오류, 발생, 카드, 결제, 실패

라면 위의 단어들을 다시 순위를 매기는 rerank(리랭크) 과정을 거친다. (왕중왕전 느낌..)

이 과정에서 필요한 것이 표현 모델이다.

표현 모델은 크게 3가지로 나뉜다.

KeyBERTInspired

대표 문서와 후보 단어의 의미 유사성을 이용해 단어를 고른다. 즉 위에 뽑힌 단어들을 모아서 또 임베딩으로 비교한다.

위의 c-TF-IDF는 단어가 얼마나 자주, 얼마나 특징적으로 등장했는지 평가하는거라면, KeyBERTInspired는 그 후보 단어가 대표 문서들의 내용과 의미가 얼마나 잘맞는지로 평가한다.

MMR

MMR은 의미가 비슷한 어만 반복되지 않도록 다양성을 고려해 선택하는 방식이다.

자동차, 차량, 승용차, 연비, 안전성

토픽 모델링을 통해 해당 키워드들이 나왔다면, 자동차와 차량은 서로 비슷한 의미를 내포하므로 차량에는 낮은 점수를 준다.

KeyBERTInspired이 내용과 잘 맞는지를 본다면, MMR은 내용과 잘 맞으면서 이전에 뽑았던 키워드들과 겹치는지까지 본다.

LLM

LLM은 LLM을 활용하여 대표 문서와 단어들을 읽고, 실제 모델에게 이름을 지어달라고 부탁하는 것이다.

이전의 KeyBERTInspired·MMR과는 다르게 모델 자체에게 작업을 해달라고 요청하는 방식이다. 이를 통해 아예 새로운 문구를 만들어 볼 수 있다.