ai

[기술면접] 감정인식을 어떻게 할까요?

becky(지은) 2025. 1. 6. 18:33

이미 파인튜닝된 언어모델을 가지고, 감정을 분류하는 과정을 단계적으로 설명하겠습니다.


1. 텍스트 입력 처리

입력된 자연어 문장을 언어모델이 이해할 수 있는 형태로 변환합니다.

  • 토크나이징
  • 숫자 id로 변환
  • 패딩 및 어텐션 마스크 처리

2. 모델 입력 및 통과

변환된 입력 데이터를 BERT와 같은 모델에 전달
transformer에서 입력한 문장 내의 단어들의 문맥정보를 학습하고 최종 특징 벡터를 생성합니다.

  • 임베딩 레이어에서 입력데이터가 토큰 임베딩, 위치 임베딩, 세그먼트 임베딩으로  변환
  • Transformer 인코더에서 attention 매커니즘을 사용해서 각 단어가 문맥적으로 다른 단어와 어떻게 연관되는 지 학습한다
  • 트랜스포머 모델(ex. bert, gpt)는 기본적으로 특징 추출기 역할을 합니다. 
  • 마지막 인코딩 레이어에서 [CLS] 벡터를 가져온다.
    • 여기서, [CLS] 벡터는 문장 전체의 의미를 담고 있다.

 

3. 트랜스포머 모델 위의 헤드에 통과 => 결과 출력

[CLS] 벡터를 트랜스포머 모델 위의 헤드에 통과 시킵니다.
이 벡터 자체에는 감정 분석이나 번역 등 구체적인 작업에 바로 사용될 수 없습니다.
그래서, 트랜스 포머 모델 위에 특정 작업을 위한 모듈인 '헤드'를 추가해 결과를 만들어 냅니다.

이 헤드는 완결 연결층, 소프트 맥스 등으로 구성되어 있습니다.

  • 완전 연결층(Dense Layer)는 트랜스 포머의 출력 벡터를 입력받아 저차원 벡터로 전환
    ex) [CLS] 벡터 크기 -> 감정 레이블의 갯수
  • 소프트맥스 함수에 통과시켜 각 감정 클래스(예: 긍정, 부정, 중립)에 대한 확률 분포를 얻습니다.