임베딩 기반 의도 분류기에 자가학습 키워드 붙이기
키워드 매칭 우선 + 임베딩 유사도 폴백 분류기에, 오분류 사례에서 키워드를 자동 등록하는 자가학습 레이어를 붙였다
임베딩 기반 의도 분류기에 자가학습 키워드 붙이기
임베딩 기반 의도 분류기에 자가학습 키워드 붙이기
임베딩 유사도만으로 의도를 분류했는데 오분류가 계속 나왔다. 오분류 사례에서 키워드를 뽑아 다음 분류에 쓰도록 했다.
1. 서론 (Introduction)
- 문제/상황 (Problem): 코사인 유사도 기반 임베딩 분류는 도메인 외 표현에 취약했다. 명확한 키워드 신호가 있는데도 임베딩 유사도만으로 판단하다 오분류하는 사례가 있었다.
- 목적 (Purpose): 부분문자열 우선 매칭과 임베딩 폴백을 계층으로 쌓고, 오분류 사례에서 키워드를 자동으로 학습해 다음부터는 1계층에서 잡히게 한다.
- 대상 (Target Audience): LLM 게이트웨이나 에이전트에서 의도 분류를 쓰는 개발자.
2. 방법 및 과정 (Methods & Process)
- 배경 조사 및 데이터 (Data Collection): 오분류 사례를 보니 “웹 검색”, “최신 정보”, “오늘” 같은 명확한 신호가 있는데도 임베딩 유사도만으로 판단해 놓치는 경우가 있었다. 이 신호들을 규칙으로 먼저 잡으면 임베딩 호출 자체를 줄일 수 있다는 가설을 세웠다.
- 접근 방법 (Approach Methods):
- [방법 1]: 1계층 키워드 매칭. 등록된 키워드가 입력 텍스트에 부분문자열로 포함되면 즉시 해당 의도로 분류한다. 빠르고 확실하다.
- [방법 2]: 2계층 임베딩 폴백. 키워드 매칭이 실패하면 (실제 임베딩 모델 대신 단어 해시 기반 목 벡터로) 의도별 대표 문장과 코사인 유사도를 비교해 가장 유사한 의도를 고른다.
- 분석 및 해결 프로세스 (Analysis Flow):
- 도구/기술: 해시 기반 목 임베딩(실제 모델 자리 표시), 코사인 유사도, 부분문자열 매칭.
- 주요 단계: 입력 텍스트 $\rightarrow$ 1계층 키워드 매칭 시도 $\rightarrow$ (미스 시) 2계층 임베딩 유사도 분류 $\rightarrow$ 정답과 다르면 오분류로 기록 $\rightarrow$ 텍스트에서 가장 긴 단어를 키워드로 뽑아 1계층에 등록(간단한 TF-IDF 대용 휴리스틱).
- 결과 도출 및 검증: “오늘 날씨 어때”가 학습 전에는 “어때”가 small_talk 예시와 겹쳐 임베딩 폴백에서 web_search 대신 small_talk로 오분류됐다.
learn(text, "web_search")를 호출하니 텍스트에서 가장 긴 단어(“날씨”)가 키워드로 등록됐고, 재분류하니 1계층 키워드 매칭으로 곧바로 web_search가 나왔다.
3. 결과 (Results)
- 분석 결과 요약: 한 건의 오분류 사례를 학습시켜 같은 입력이 다음부터는 1계층 키워드 매칭으로 즉시 올바르게 분류되는 것을 확인했다. 이 PoC는 단일 사례 학습 흐름만 구현했고, 정확도 개선폭이나 임베딩 폴백 의존도 감소율 같은 정량 수치는 아직 측정하지 않았다.
4. 인사이트 및 액션 (Insights & Action)
- 인사이트 (Insight): 규칙이 빠르고 임베딩이 일반화한다. 계층으로 쌓으면 속도와 정확도를 같이 잡을 여지가 있다. 오분류 학습 흐름 자체는 간단한 휴리스틱(가장 긴 단어를 키워드로)만으로도 만들 수 있었다.
- 실행 방안 (Action Plan): 실제 서비스에 붙이기 전에, 이 학습 흐름을 여러 오분류 사례에 반복 적용했을 때 정확도가 실제로 오르는지, 임베딩 폴백 호출이 줄어드는지를 데이터로 측정해야 한다.
- 한 줄 결론 (Key Takeaway): 오분류 사례에서 키워드를 자동 등록하는 학습 루프의 최소 골격을 만들었다. 샘플 코드
- 다음 스텝 (Next Step): 지금은 오분류당 “가장 긴 단어” 하나만 키워드로 등록한다. 조사·관형사 같은 너무 일반적인 단어가 뽑히면 오히려 오탐을 늘릴 수 있어, 등록 전 키워드 변별력을 검증하는 필터와 실제 임베딩 모델 연결이 다음 과제다.
This post is licensed under CC BY 4.0 by the author.