Naigive Bayes 스팸 필터링

Naive Bayes spam filtering

Naigive Bayes 분류자는 전자 메일필터링일반적인 통계 기법입니다.일반적으로 텍스트 분류에서 일반적으로 사용되는 방법인 전자 메일 스팸을 식별하기 위해 단어 가방 기능을 사용합니다.

Naigive Bayes 분류자는 토큰(일반적으로 단어 또는 때로는 다른 것)의 사용을 스팸 및 비스팸 전자 메일과 관련지어 Bayes의 정리를 사용하여 전자 메일이 스팸인지 아닌지를 계산합니다.

Naigive Bayes 스팸 필터링은 스팸을 처리하기 위한 기본 기술로, 개별 사용자의 이메일 요구에 맞게 스스로 조정하여 사용자가 일반적으로 수용할 수 있는 잘못된 긍정 스팸 탐지율을 낮춥니다.이것은 스팸 필터링을 하는 가장 오래된 방법 중 하나로 1990년대에 뿌리를 두고 있습니다.

역사

베이지안 알고리즘은 1996년부터 이메일 필터링에 사용되었습니다.순진한 베이지안 필터는 나중에야 인기를 끌었지만, 원치 않는 [1]이메일의 증가하는 문제를 해결하기 위해 1998년에 여러 개의 프로그램이 출시되었습니다.베이지안 스팸 필터링에 관한 최초의 학술적 출판물은 [2]1998년 Sahami 등이었다.그 작업은 곧 상용 스팸 [citation needed]필터에 배치되었습니다.

기본 기술의 변형은 많은 연구 작업 및 상용 소프트웨어 제품에 [3]구현되어 왔다.많은 최신 메일 클라이언트는 베이지안 스팸 필터링을 구현합니다.사용자는 별도의 전자 메일 필터링 프로그램을 설치할 수도 있습니다.DSPAM, SpamAssin,[4] SpamBayes,[5] BogofilterASSP 등의 서버 측 전자 메일 필터는 베이지안 스팸 필터링 기술을 사용하며, 이 기능은 메일 서버 소프트웨어 자체에 포함되어 있는 경우가 있습니다.CRM114는 베이지안필터로서 자주 언급되고 있습니다만, 실가동시에 Bayes 필터를 사용하는 것을 목적으로 하고 있지 않습니다.단,[6] 참조용으로 「unigram」기능이 포함되어 있습니다.

과정

특정 단어는 스팸 전자 메일 및 합법적인 전자 메일에서 발생할 가능성이 있습니다.예를 들어 대부분의 이메일 사용자는 스팸 메일에서 "Viagra"라는 단어를 자주 접하지만 다른 이메일에서는 거의 볼 수 없습니다.필터는 이러한 가능성을 미리 알지 못하며, 먼저 필터가 이러한 가능성을 축적할 수 있도록 훈련해야 합니다.필터를 교육하려면 사용자가 새 전자 메일이 스팸인지 여부를 수동으로 지정해야 합니다.각 교육용 전자 메일의 모든 단어에 대해 필터는 각 단어가 스팸 또는 데이터베이스의 합법적인 전자 메일에 표시될 가능성을 조정합니다.예를 들어, 베이지안 스팸 필터는 일반적으로 "Viagra" 및 "Refinance"라는 단어에 대해서는 매우 높은 스팸 확률을 학습하지만, 친구나 가족의 이름 등 합법적인 이메일에서만 볼 수 있는 단어에 대해서는 매우 낮은 스팸 확률을 학습합니다.

교육 후에는 특정 단어 세트가 포함된 전자 메일이 두 범주에 속할 확률을 계산하기 위해 확률(우도 함수라고도 함)이라는 단어를 사용합니다.전자 메일의 각 단어는 전자 메일의 스팸 가능성 또는 가장 흥미로운 단어에 기여합니다.이 기여는 사후 확률이라고 불리며 베이즈의 정리를 사용하여 계산된다.그런 다음 전자 메일의 스팸 확률이 전자 메일의 모든 단어에 대해 계산되며, 합계가 특정 임계값(95%)을 초과하면 필터가 전자 메일을 스팸으로 표시합니다.

다른 스팸 필터링 기술과 마찬가지로 스팸으로 표시된 전자 메일은 자동으로 "정크" 전자 메일 폴더로 이동하거나 완전히 삭제할 수 있습니다.일부 소프트웨어는 사용자가 소프트웨어 결정을 검토할 수 있는 기간을 정의하는 검역 메커니즘을 구현합니다.

초기 훈련은 일반적으로 소프트웨어의 잘못된 판단(허위 긍정 또는 잘못된 부정)이 확인되면 개선될 수 있습니다.이를 통해 소프트웨어는 끊임없이 진화하는 스팸의 특성에 동적으로 적응할 수 있습니다.

일부 스팸 필터는 베이지안 스팸 필터링의 결과와 기타 휴리스틱스(내용에 대한 사전 정의된 규칙, 메시지의 엔벨로프 보기 등)의 결과를 결합하여 필터링 정확도가 더욱 높아지지만 때로는 적응성을 희생하기도 합니다.

수학적 기초

베이지안 이메일 필터는 Bayes의 정리를 이용한다.Bayes의 정리는 스팸의 맥락에서 여러 번 사용됩니다.

  • 처음에 이 메시지에 특정 단어가 표시되는 것을 알고 메시지가 스팸일 가능성을 계산합니다.
  • 두 번째, 모든 단어(또는 관련 부분 집합)를 고려하여 메시지가 스팸일 확률을 계산합니다.
  • 가끔은 희귀한 단어들을 다루기 위해 세 번째 시도하기도 합니다.

지정된 단어가 포함된 메시지가 스팸일 가능성 계산

의심스러운 메시지에 "replica"라는 단어가 포함되어 있다고 가정해 봅시다.이메일 수신에 익숙한 대부분의 사람들은 이 메시지가 스팸일 가능성이 높다는 것을 알고 있다. 더 정확히 말하면 유명 브랜드의 시계를 위조해서 팔자는 제안이다.그러나 스팸 탐지 소프트웨어는 이러한 사실을 "알고" 있지 않습니다. 가능한 것은 확률을 계산하는 것뿐입니다.

소프트웨어에 의해 사용되는 공식은 베이즈의 정리로부터 도출된다.

여기서:

  • Pr( W) { style ( S) 、메시지가 스팸일 가능성입니다.리플리카라는 단어가 포함되어 있습니다.
  • ( ) \ \ ( )는 특정 메시지가 스팸일 전체 확률입니다.
  • ( S) \ ( W S)는 스팸 메시지에 "replica"라는 단어가 표시될 확률입니다.
  • () ( \\ ( H)는 특정 메시지가 스팸이 아닐 전체 확률입니다 ('ham').
  • ( ) \ style \( W H)는 햄메시지에 리플리카라는 단어가 표시될 확률입니다.

(전체 데모는 Bayes의 정리#참조해 주세요.확장형식)

단어의 스팸성

통계에[7] 따르면 현재 스팸 메시지가 발송될 확률은 최소한 80%입니다.

단, 대부분의 베이지안 스팸 검출 소프트웨어에서는 수신 메시지가 햄이 아닌 스팸일 가능성이 우선시되지 않는다고 가정하고 두 경우 모두 50%의 [citation needed]확률을 갖는 것으로 간주합니다.

이 가설을 사용하는 필터는, 「편견이 없다」라고 하는 것으로, 착신 메일에 대한 편견이 없는 것을 의미합니다.이 가정에 의해 일반적인 공식을 다음과 같이 단순화할 수 있다.

이는 기능적으로 "스팸 메시지에 "리플리카"라는 단어가 나타나는 비율(%)을 묻는 것과 같습니다.

이 양을 "복제" 단어의 "스팸성"(또는 "스팸성")이라고 하며 계산할 수 있습니다.이 공식에서 사용되는 Pr (W S 학습 단계에서 스팸으로 식별되는 메시지에 "replica"가 포함된 메시지의 빈도에 근사한 값입니다.로 Pr( H) \ ( W H 는 학습 단계 중에 햄으로 식별되는 메시지에 "replica"가 포함된 메시지의 빈도에 근사치입니다.이러한 근사치를 이해하기 위해서는 학습된 메시지 세트가 충분히 크고 대표적일 필요가 있습니다.또한 학습된 메시지 세트는 스팸과 햄 사이의 재분할에 관한 50% 가설, 즉 스팸과 햄의 데이터 세트가 같은 [8]크기라는 가설을 따르는 것이 좋습니다.

물론 메시지가 스팸인지 햄인지를 "replica"라는 단어의 존재만으로 판단하는 것은 오류가 발생하기 쉬우며, 따라서 베이지안 스팸 소프트웨어는 여러 단어를 검토하고 스팸성을 결합하여 메시지의 전체 스팸 가능성을 판단하려고 합니다.

개별 확률의 결합

대부분의 베이지안 스팸 필터링 알고리즘은 메시지에 표시되는 단어가 독립적인 이벤트인 경우에만 (확률론적 관점에서) 엄격하게 유효한 공식에 기초합니다.이 조건은 일반적으로 충족되지 않지만(예를 들어, 영어와 같은 자연 언어에서 형용사를 찾을 확률은 명사를 가질 확률에 영향을 받는다), 특히 개별 단어 간의 통계적 상관관계가 알려져 있지 않기 때문에 유용한 이상화이다.이를 바탕으로 베이즈의 정리로부터 다음과 같은 공식을 도출할 수 있다.

여기서:

  • p는 의심스러운 메시지가 스팸일 확률입니다.
  • 1 }})은 메시지가 스팸인 경우 첫 번째 단어(예를 들어 "replica")가 표시될 p입니다.
  • 2 }})는 메시지가 스팸인 경우 두 번째 단어(예를 들어 "watch")가 표시될 p입니다.
  • 기타...

이 수식에 근거한 스팸필터링 소프트웨어는 네이비 베이즈 분류자라고 불리기도 합니다.이는 기능 간의 강력한 독립성 가정을 의미하기 때문입니다.결과 p는 보통 지정된 임계값과 비교하여 메시지가 스팸인지 여부를 판단합니다.p가 임계값보다 낮으면 메시지는 햄으로 간주되며 그렇지 않으면 스팸으로 간주됩니다.

개별 확률을 결합하는 공식의 다른 표현

일반적으로 p는 부동소수점 언더플로우 때문에 위의 공식을 사용하여 직접 계산되지 않습니다.대신 다음과 같이 원래 방정식을 다시 쓰는 것으로 로그 도메인에서 p를 계산할 수 있습니다.

양쪽에서 로그 기록:

i [ (1 - i) - p i]{ \eta = \ _ { i =}^{ [ \ ( 1 - _ { i } - \ p _ { i \ right }} 。그러므로,

따라서 결합 확률을 계산하는 대체 공식은 다음과 같습니다.

희귀어 취급

학습 단계에서 단어가 충족되지 않은 경우, 일반 공식과 스팸성 공식 모두에서 분자와 분모는 모두 0입니다.소프트웨어는 정보가 없는 단어를 폐기할 수 있습니다.

보다 일반적으로 학습 단계에서 몇 번밖에 접하지 못한 단어들은 문제를 일으킨다. 왜냐하면 그들이 제공하는 정보를 맹목적으로 신뢰하는 것은 오류이기 때문이다.간단한 해결책은 이러한 신뢰할 수 없는 단어들도 고려하는 것을 피하는 것이다.

Bayes의 정리를 다시 적용하여 주어진 단어("replica")를 포함하는 이메일의 스팸과 햄 사이의 분류가 베타 분포를 갖는 랜덤 변수라고 가정하면 일부 프로그램은 수정된 확률을 사용하기로 결정합니다.

여기서:

  • ( ) ( \ \ ' ( S W) )는 메시지에 특정 단어가 포함되어 있는 것을 알고 있는 스팸 메시지가 될 수정 확률입니다.
  • s는 수신 스팸에 대한 배경 정보에 대한 의 강점입니다.
  • ( ) ( \ \( S)는 수신 메시지가 스팸일 가능성입니다.
  • n은 학습 단계에서 이 단어가 발생한 횟수입니다.
  • ( W )style \( S W)는 이 단어의 스팸성입니다.

(시연:)[9]

이 수정 확률은 조합 공식의 스팸성 대신 사용됩니다.

Pr() ( \ \ ( S)는 수신 이메일에 대해 너무 의심하지 않도록 다시 0.5로 간주할 수 .3은 에 적합한 값입니다. 즉, 학습된 말뭉치는 기본값보다[citation needed] 스팸성 값을 더 신뢰하려면 해당 단어가 포함된 메시지를 3개 이상 포함해야 합니다.

이 수식은 n이 0인 경우(및 스팸성이 정의되지 않은 경우)까지 확장 가능하며, 이 경우 (S ) \ Pr ( )

기타 휴리스틱스

"the", "a", "some" 또는 "is"(영어의 경우)와 같은 "Neutral" 단어 또는 다른 언어의 해당 단어들은 무시해도 됩니다.보다 일반적으로 일부 베이지안 필터링 필터는 0.5 옆에 스팸성이 있는 모든 단어를 무시합니다.이러한 단어들은 적절한 결정에 거의 기여하지 않기 때문입니다.스팸성이 0.0(정당한 메시지의 식별 신호) 또는 1.0(스팸의 식별 신호) 옆에 있는 단어를 고려합니다.를 들어 절대값이 0.5~pI가장 큰 10개의 단어만 검사된 메시지에 저장할 수 있습니다.

특정 단어가 검사된 [10]메시지에 여러 번 표시되는 것을 고려하는 소프트웨어 제품도 있고 그렇지 않은 소프트웨어 제품도 있습니다.

일부 소프트웨어 제품에서는 고립된 자연어 [11]대신 패턴(단어 시퀀스)을 사용합니다.예를 들어, 4단어의 "콘텍스트 창"을 사용하여 "비아그라", "is", "good", "for"의 스팸성을 계산하는 대신 "비아그라가 좋다"의 스팸성을 계산합니다.이 방법은 문맥에 대한 민감도를 높이고 베이시안 노이즈를 더 잘 제거하며 데이터베이스를 더 크게 만듭니다.

혼합 방식

다른 단어에 대한 개별 확률을 결합하는 방법에는 "순진한" 접근법을 사용하는 방법 외에 다른 방법이 있습니다.이러한 방법은 입력 데이터의 통계적 특성에 대한 가정과 다르다.이러한 다른 가설은 개별 확률을 결합하는 근본적으로 다른 공식을 낳습니다.

예를 들어, 개별 확률이 2N 자유도를 갖는 카이 제곱 분포를 따른다고 가정하면 다음 공식을 사용할 수 있습니다.

여기−1 C는 카이 제곱 함수의 역수입니다.

개인의 확률은 마르코프식 판별 기술과 결합될 수도 있다.

논의

이점

베이지안 스팸 필터링의 주요 장점[citation needed] 중 하나는 사용자별로 학습할 수 있다는 것입니다.

사용자가 수신하는 스팸은 온라인 사용자의 활동과 관련된 경우가 많습니다.예를 들어, 사용자가 스팸으로 간주하는 온라인 뉴스레터를 구독하고 있을 수 있습니다.이 온라인 뉴스레터에는 뉴스레터의 이름이나 발신기지 이메일 주소 등 모든 뉴스레터에 공통적인 단어가 포함되어 있을 가능성이 있습니다.베이지안 스팸 필터는 결국 사용자의 특정 패턴을 기반으로 더 높은 확률을 할당합니다.

사용자가 수신하는 정규 전자 메일은 다른 경향이 있습니다.예를 들어, 기업 환경에서는 회사 이름과 고객 또는 고객의 이름이 자주 언급됩니다.필터는 이러한 이름을 포함하는 전자 메일에 더 낮은 스팸 확률을 할당합니다.

확률이라는 단어는 사용자마다 고유하며 필터가 전자 메일을 잘못 분류할 때마다 수정 교육을 통해 시간이 지남에 따라 진화합니다.그 결과, 훈련 후의 베이지안 스팸 필터링의 정확도가 사전 정의된 규칙보다 높은 경우가 많습니다.

특히 합법적인 전자 메일이 스팸으로 잘못 분류되는 잘못된 [citation needed]긍정을 방지할 수 있습니다.예를 들어 전자 메일에 사전 요금 사기 스팸에 자주 사용되는 "Nigeria"라는 단어가 포함된 경우 미리 정의된 규칙 필터가 이를 완전히 거부할 수 있습니다.베이지안 필터는 "Nigeria"라는 단어를 스팸 워드로 표시하지만 일반적으로 합법적인 전자 메일을 나타내는 다른 중요한 워드를 고려합니다.예를 들어, 배우자의 이름은 이메일이 스팸이 아님을 강하게 나타낼 수 있으며, 이는 "Nigeria"라는 단어의 사용을 극복할 수 있습니다.

단점들

구현에 따라 베이지안 스팸 필터링은 베이지안 필터링에 의존하는 스팸 필터의 효과를 떨어뜨리기 위해 스팸 발송자가 사용하는 기술인 베이지안 중독에 취약할 수 있습니다.베이지안 중독을 실천하는 스팸 발송자는 합법적인 텍스트(합법적인 뉴스 또는 문헌 출처에서 가져온)를 대량으로 포함한 이메일을 발송합니다.스팸 발송자 전술에는 일반적으로 스팸과 관련이 없는 무해한 단어를 임의로 삽입하여 전자 메일의 스팸 점수를 줄이고 베이지안 스팸 필터를 통과할 가능성이 높아집니다.그러나 (예를 들어) Paul Graham의 체계에서는 가장 유의한 확률만 사용되므로 텍스트를 스팸과 관련이 없는 단어로 채우는 것이 탐지 확률에 큰 영향을 미치지 않습니다.

스팸에 일반적으로 대량으로 표시되는 단어는 스팸 발송자에 의해 변환될 수도 있습니다.예를 들어 스팸 메시지에서 Viaagra는 Viaagra 또는 V!agra로 대체됩니다.메시지의 수신자는 변경된 단어를 읽을 수 있지만, 이러한 단어들은 베이지안 필터에 의해 더 드물게 만나 학습 과정을 방해한다.일반적으로 이 스팸 기술은 잘 작동하지 않습니다. 왜냐하면 파생된 단어는 일반 [12]단어와 마찬가지로 필터에 의해 인식되기 때문입니다.

베이지안 스팸 필터를 제거하기 위해 사용되는 또 다른 기술은 텍스트를 직접 포함하거나 링크된 그림으로 바꾸는 것입니다.메시지의 전체 텍스트 또는 일부 텍스트는 동일한 텍스트가 "그려진" 그림으로 바뀝니다.스팸 필터는 보통 이 사진을 분석할 수 없습니다.Viagra와 같은 민감한 단어가 포함되어 있습니다.그러나 많은 메일 클라이언트가 보안상의 이유로 링크된 사진의 표시를 비활성화하기 때문에 멀리 있는 사진에 링크를 보내는 스팸 발송자는 더 적은 대상에 도달할 수 있습니다.또, 사진의 사이즈가 같은 텍스트의 사이즈보다 크기 때문에, 스패머는 사진을 포함한 메세지를 직접 송신하기 위해서 더 많은 대역폭을 필요로 합니다.일부 필터는 대부분 그래픽 내용이 포함된 메시지인 경우 스팸으로 판단하는 경향이 있습니다.구글이 지메일 이메일 시스템에서 사용하는 솔루션은 모든 중간 크기에서 큰 크기의 이미지에 대해 OCR(광학식 문자 인식)을 수행하여 안에 [13][14]있는 텍스트를 분석하는 것이다.

베이지안 필터링의 일반적인 응용 프로그램

베이지안 필터링은 스팸 이메일을 식별하는 데 널리 사용되지만, 이 기술은 거의 모든 종류의 데이터를 분류(또는 "클러스터")할 수 있습니다.그것은 과학, 의학 및 공학 분야에서 사용된다.한 예로 AutoClass라는 범용 분류 프로그램이 있습니다. AutoClass는 원래 너무 미묘해서 눈에 띄지 않는 스펙트럼 특성에 따라 항성을 분류하는 데 사용되었습니다.

[15]

참고 항목

레퍼런스

  1. ^ Brunton, Finn (2013). Spam: A Shadow History of the Internet. MIT Press. p. 136. ISBN 9780262018876. Archived from the original on 2019-03-23. Retrieved 2017-09-13.
  2. ^ M. Sahami; S. Dumais; D. Heckerman; E. Horvitz (1998). "A Bayesian approach to filtering junk e-mail" (PDF). AAAI'98 Workshop on Learning for Text Categorization. Archived (PDF) from the original on 2007-09-27. Retrieved 2007-08-15.
  3. ^ "Junk Mail Controls". MozillaZine. November 2009. Archived from the original on 2012-10-23. Retrieved 2010-01-16.
  4. ^ "Installation". Ubuntu manuals. 2010-09-18. Archived from the original on 29 September 2010. Retrieved 2010-09-18. Gary Robinson’s f(x) and combining algorithms, as used in SpamAssassin
  5. ^ "Background Reading". SpamBayes project. 2010-09-18. Archived from the original on 6 September 2010. Retrieved 2010-09-18. Sharpen your pencils, this is the mathematical background (such as it is).* The paper that started the ball rolling: Paul Graham's A Plan for Spam.* Gary Robinson has an interesting essay suggesting some improvements to Graham's original approach.* Gary Robinson's Linux Journal article discussed using the chi squared distribution.
  6. ^ "Archived copy". Archived from the original on 2016-10-07. Retrieved 2016-07-09.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  7. ^ Dylan Mors & Dermot Harnett (2009). "State of Spam, a Monthly Report - Report #33" (PDF). Archived (PDF) from the original on 2009-10-07. Retrieved 2009-12-30.
  8. ^ 프로세스 소프트웨어, 웨이백 머신에 아카이브된 2012-02-06 베이지안 필터링 개요
  9. ^ Gary Robinson (2003). "A statistical approach to the spam problem". Linux Journal. Archived from the original on 2010-10-22. Retrieved 2007-07-19.
  10. ^ Brian Burton (2003). "SpamProbe - Bayesian Spam Filtering Tweaks". Archived from the original on 2012-03-01. Retrieved 2009-01-19.
  11. ^ Jonathan A. Zdziarski (2004). "Bayesian Noise Reduction: Contextual Symmetry Logic Utilizing Pattern Consistency Analysis".[영구 데드링크]
  12. ^ Paul Graham (2002), 2004-04-04 Wayback Machine에서 아카이브된 스팸 대책
  13. ^ "Gmail uses Google's innovative technology to keep spam out of your inbox". Archived from the original on 2015-09-13. Retrieved 2015-09-05.
  14. ^ Zhu, Z.; Jia, Z; Xiao, H; Zhang, G; Liang, H.; Wang, P. (2014). Li, S; Jin, Q; Jiang, X; Park, J (eds.). "A Modified Minimum Risk Bayes and It's Application in Spam". Lecture Notes in Electrical Engineering. Dordrecht: Springer. 269: 2155–2159. doi:10.1007/978-94-007-7618-0_261.
  15. ^ Androutsopoulos, Ion; Paliouras, Georgios; Karkaletsis, Vangelis; Sakkis, Georgios; Spyropoulos, Constantine D.; Stamatopoulos, Panagiotis (2000). Gallinari, P; Rajman, M; Zaragoza, H (eds.). "Learning to Filter Spam E-Mail: A Comparison of a Naive Bayesian and a Memory-Based Approach". 4th European Conference on Principles and Practice of Knowledge Discovery in Databases (PKDD-2000). Lyon, France: Software and Knowledge Engineering Laboratory Institute of Informatics and Telecommunications National Centre for Scientific Research “Demokritos”: 1–13. arXiv:cs/0009009. Bibcode:2000cs........9009A.
  16. ^ Hristea, Florentina T. (2013). The Naïve Bayes Model for Unsupervised Word Sense Disambiguation. London; Berlin: Springer- Verlag Heidelberg Berlin. p. 70. ISBN 978-3-642-33692-8.
  17. ^ Zheng, J.; Tang, Yongchuan (2005). Mira, Jose; Álvarez, Jose R (eds.). "One Generalization of the Naive Bayes to Fuzzy Sets and the Design of the Fuzzy Naive Bayes Classifier". Lecture Notes in Computer Science. Berlin: Springer, Berlin, Heidelberg. 3562: 281. doi:10.1007/11499305_29. ISBN 978-3-540-26319-7. ISSN 0302-9743.