먼저 이 내용은 책 ‘(비즈니스 인텔리전스를 위한) 데이터 마이닝’에서 발췌한 것임을 밝힙니다.
(비즈니스 인텔리전스를 위한) 데이터 마이닝 저자 | GALIT SHMUELI, NITIN R. PATEL, PETER C. BRUCE 역자 | 조재희, 조성배, 이성임 | 이앤비플러스 | 2012.06.18 원제 | Data mining for business intelligence : concepts, techniques, and applications in Microsoft Office E |
스팸 필터링
스팸 필터링은 아마도 데이터 마이닝의 가장 널리 알려진 응용일 것이다. 많은 부분 자연어 어휘를 기반으로 한 스팸 필터링은 오직 범주형 변수만을 사용하는 나이브 베이즈 분류기에 기본적으로 잘 맞는다. 대부분의 스팸필터가 이 방법에 기반하고 있는데, 다음과 같이 작동한다.
- 사람이 대규모의 전자우편을 검토하여 ‘스팸’이나 ‘비스팸’으로 분류하고, 거기에서 동일한 수(대규모)의 스팸 전자우편과 비스팸 전자우편을 선택한다. 이것이 학습 데이터가 된다.
- 이러한 전자우편들은 수천 개의 단어로 구성되어 있고, 각 단어에 대해서 스팸 클래스에서 나타나는 빈도와 비스팸 클래스에서 나타나는 빈도를 계산한다. 이 빈도를 추정확률로 변환한다(즉, 만일 ‘무료’라는 단어가 1,000개의 스팸 전자우편 중 500개에서 나타나고, 1,000개의 비스팸 전자우편 중 100개에서만 나타난다면, 스팸 전자우편이 ‘무료’라는 단어를 포함할 확률은 0.5이고, 비스팸 전자우편이 ‘무료’라는 단어를 포함할 확률은 0.1이다).
- 스팸이나 비스팸으로 분류될 필요가 있는 새로운 메시지에 ‘무료’라는 단어만이 있다면, ‘무료’가 나왔을 때 메시지가 스팸일 베이지안 사후확률이 0.5/(0.5+0.1), 즉 5/6이기 때문에 해당 메시지를 스팸으로 분류할 것이다.
- 물론, 훨씬 더 많은 단어들을 고려할 것이다. 그러한 각 단어에 대해서 단계2에서 설명한 확률을 계산하고 서로 곱하고, 수식 8.3을 사용하여 클래스에 속할 나이브 베이즈 확률을 결정한다. 단순한 버전에서 클래스 멤버십(스팸이나 비스팸)은 확률이 더 큰 것으로 결정된다.
- 좀더 유연한 해석에서 ‘스팸’ 확률은 사용자가 기준 임계값을 설정(하고 변경) 할 수 있는 점수로 취급되어, 이 값보다 큰 것은 모두 스팸으로 분류된다.
- 사용자들은 수신되는 메시지를 스팸이나 비스팸으로 분류하고 그것들을 학습 데이터베이스에 추가함으로써 개인적인 학습 데이터베이스를 구축할 여지가 있다. 한 사람의 스팸은 다른 사람에게는 중요한 것일 수도 있다.
‘나이브’ 단순화를 해도 이것은 엄청난 계산상의 부담임이 명백하다. 스팸 필터는 이제 두 레벨로 보통 작동하는데, (개인의 컴퓨터로는 결코 도달하지 못하도록 일부 스팸을 가로채는) 서버 레벨과 (사용자가 검토할 여지가 있는) 개인용 컴퓨터 레벨이다. 스패머들 또한 랜덤하게 선택된 무관한 단어들의 시퀀스를 포함시킴으로써 어휘기반 베이지안 접근방식을 ‘우회’ 할 수 있는 방법을 찾았다. 이러한 단어들은 랜덤하게 선택되었기 때문에 비스팸에서보다 스팸에서 체계적으로 좀더 널리 퍼질 가능성이 적어져서, “비아그라”나 “무료”와 같은 핵심 스팸 단어의 효과를 희석시킨다. 이러한 이유에서 정교한 스팸 분류기들은 메시지의 링크수나 주제라인의 어휘, “From:” 전자우편 주소가 실존하는지(속임방지)의 결정, HTML과 영상의 사용, 발송지의 동적이나 정적 IP 주소 등(후자로 갈수록 더 비싸고 신속하게 알아낼 수 없음)과 같이 어휘이외의 다른 요소에 근거한 변수들을 포함시키고 있다.