
(조건부확률과 베이즈의 사고) 스팸메일 필터는 어떻게 배워가는가? — 베이즈 갱신
규칙 목록 대신 확률로 배우는 필터
초기의 스팸 필터는 “무료”, “당첨” 같은 단어가 들어 있으면 차단하는 규칙 목록이었다. 스패머들은 금방 철자를 바꾸었고, 규칙은 끝없이 늘어났다. 2002년 프로그래머 폴 그레이엄은 다른 길을 제안했다. 메일 속 단어들이 스팸일 확률을 베이즈 정리로 계산하고, 사용자가 스팸을 표시할 때마다 그 확률을 갱신하자는 것이다. 이 방식을 나이브 베이즈(naive Bayes) 필터라고 부른다. 여기서 핵심은 규칙이 고정되지 않고 증거가 들어올수록 믿음이 바뀌는 것이다.
단어 하나로 믿음을 바꾸기
메일이 스팸일 사전확률을 50%라고 하자. 어떤 단어 “무료”가 스팸에는 80%의 확률로 나타나고, 정상 메일에는 10%만 나타난다고 가정한다. 메일에 “무료”가 들어 있다면 베이즈 정리에 따라
\[P(\text{스팸}\mid\text{무료})=\frac{P(\text{무료}\mid\text{스팸})P(\text{스팸})}{P(\text{무료}\mid\text{스팸})P(\text{스팸})+P(\text{무료}\mid\text{정상})P(\text{정상})}=\frac{0.8\times0.5}{0.8\times0.5+0.1\times0.5}\approx88.9\%\]
이다. 메일 한 통에 단어 하나가 들어왔을 뿐인데 스팸일 확률이 50%에서 89%로 뛴다. 이 새로운 값이 다음 단어를 계산할 때의 출발점, 곧 새로운 사전확률이 된다.
단어마다 얼마나 무게가 있는가
모든 단어가 같은 힘을 갖지는 않는다. 어떤 단어는 스팸에서만 자주 나오고, 어떤 단어는 정상 메일에서도 흔하다. 필터는 각 단어가 스팸과 정상 메일을 얼마나 잘 구분하는지를 데이터에서 배운다. 아래 그림은 같은 사전확률에서 단어마다 다른 힘을 가진다는 점을 보여준다.

학습은 곧 갱신이다
필터는 사용자가 스팸을 표시하거나 정상 메일을 구출할 때마다 각 단어의 확률을 조금씩 고친다. 이것은 베이즈 갱신의 전형적인 모습이다. 새로운 증거가 들어올 때마다 사전확률을 사후확률로 바꾸고, 그 사후확률이 다음 판단의 출발점이 된다. 그래서 스패머가 새로운 단어를 써도, 사용자의 몇 번의 표시만으로 필터는 빠르게 따라잡는다.
- 사전확률을 먼저 적어라. 증거를 보기 전 믿음이 출발점이다.
- 증거가 각 가설에서 얼마나 자주 나타나는지 비교하라. 우도 \(P(\text{증거}\mid\text{가설})\)의 차이가 갱신의 힘이다.
- 사후확률을 다음 단계의 사전확률로 써라. 증거가 여러 개일 때 이 과정을 반복하면 된다.
- 독립 가정을 의심하라. 나이브 베이즈는 단어들이 독립이라고 가정하므로, 실제로 함께 나타나는 단어들은 힘을 과대평가할 수 있다.
더 깊이: 베이즈 규칙
강의노트 〈수리통계학 1. 확률론 — 베이즈 규칙〉은 \(P(A\mid B)=P(B\mid A)P(A)/P(B)\)와 전확률 법칙을 결합한 베이즈 규칙을 소개한다. 오늘 스팸 필터의 계산은 이 규칙을 증거 하나씩에 반복 적용한 것이다. 앞선 두 편에서 본 조건의 방향 문제가 여기서 실제 기계의 학습 과정이 된다.
SDV 관점: 데이터는 한 번 분석하고 끝나지 않는다
베이즈 갱신은 요약과 추론(1~2단계)을 넘어, 데이터가 쌓일수록 판단이 나아지는 구조를 설계하는 일이다. SDV(통계적 데이터 가치화) 관점에서 스팸 필터는 좋은 사례다. 한 번 만든 규칙은 환경이 바뀌면 쓸모가 없어지지만, 확률을 갱신하는 구조는 새로운 증거를 흡수하며 가치를 유지한다. 데이터 분석의 가치는 보고서 한 장이 아니라, 새 데이터가 들어올 때 판단을 고쳐 가는 절차에 있다. 그 절차를 설계하는 것이 AI 시대에 통계학자가 맡을 일이다. (SDV(데이터 가치화))
결론: 믿음은 증거를 만나면 바뀌어야 한다
나는 학생들에게 스팸 필터를 떠올리라고 말한다. 필터는 규칙을 외운 것이 아니라 메일을 받을 때마다 “이제 얼마나 스팸 같은가”를 다시 계산한다. 베이즈 갱신은 그 계산을 한 줄의 원칙으로 정리한다. 처음의 믿음은 출발점일 뿐이고, 증거가 믿음을 바꿀 때 비로소 배움이 일어난다.
- Paul Graham, A Plan for Spam (2002) — paulgraham.com/spam.html
- 앞의 계산 예시(단어별 출현 비율)는 설명을 위한 가상의 숫자다.