LSTM 스팸 분류 모델

전술하였듯, ML보다는 DL이 일반적으로 성능이 좋으나, 문장들을 학습하는 경우에는 오래된 입력값이 희석되는 문제가 있다.

이를 보완하기 위해서 LSTM이라는 이전 입력값을 별도의 게이트로 관리하는 알고리즘이 있다.

이 알고리즘을 이용하여, 스팸 csv 파일을 분류하는 모델을 생성한다.

N-gram과 return_sequences의 이해

N-gram 학습 방식 (데이터 전처리)

문장을 여러 개의 짧은 조각으로 잘라내어 데이터 샘플 자체를 증강하고, 모델이 국소적인 문맥을 학습하도록 하는 방법이다.

전통적인 텍스트 분류 모델(SVM, 나이브 베이즈)의 입력 데이터로 사용된다. 데이터셋이 작을 때 데이터 증강 목적으로 RNN 모델의 학습 샘플 수를 늘려주는 데 효과적이다.

return_sequences=False (모델 구조)

LSTM이 문장 전체를 처리한 후, 문맥을 요약한 최종 벡터 하나만 다음 레이어로 전달하는 방식이다.

스팸 탐지, 감정 분석과 같이 문장 전체에 대한 단일 분류 결과가 필요한 경우 가장 일반적이고 효율적이다.

문장 임베딩(Sentence Embedding)과 같이 문장 전체를 하나의 고정된 벡터로 변환하는 데 사용된다.

return_sequences=True (모델 구조)

LSTM이 문장 내 모든 단어(타임스텝)에 대한 출력 벡터를 모두 다음 레이어로 전달하는 방식이다.

심층 RNN 모델과 같이 여러 층의 LSTM을 쌓아 더 복잡한 문맥을 학습할 때 사용된다.

기계 번역, 챗봇 등 입력 시퀀스로부터 새로운 출력 시퀀스를 생성하는 모델에 필수적이다.

어텐션 메커니즘과 같은 고급 신경망 구조에 활용된다.

n-gram 방식과 return_sequences=True의 유사성

n-gram 방식은 문장을 여러 개의 물리적으로 분리된 학습 샘플로 잘라내는 데이터 전처리 단계이다.