Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado...

33
Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais informações Máquinas de suporte vetorial e sua aplicação na detecção de spam Antonio Carlos dos Santos Orientador: Paulo J. S. Silva (IME-USP) Universidade de São Paulo Instituto de Matemática e Estatística Departamento de Ciência da Computação MAC499 Trabalho de Formatura Supervisionado 2005 Antonio Carlos dos Santos Máquinas de suporte vetorial

Transcript of Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado...

Page 1: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Máquinas de suporte vetorial e sua aplicaçãona detecção de spam

Antonio Carlos dos SantosOrientador: Paulo J. S. Silva (IME-USP)

Universidade de São PauloInstituto de Matemática e Estatística

Departamento de Ciência da Computação

MAC499 Trabalho de Formatura Supervisionado 2005

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 2: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Conteúdo

1 MotivaçãoImportância da detecção de spam

2 Aprendizado ComputacionalConceitos

3 Máquinas de suporte vetorialDados linearmente separáveisDados não-linearmente separáveis

4 Aplicação na detecção de spam

5 BCC

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 3: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Importância da detecção de spam

Informações sobre spams

Spams (Stupid Pointless Annoying Messages): e-mailsindesejados que as pessoas recebem.

31 milhões de e-mails enviados diariamente em 2004[Sfr05]

12,4 milhões eram spams [Sfr05]

Perdas mundiais chegarão a US$50 bilhões em 2005,principalmente devido à queda de produtividade dosfuncionários [Fer05]

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 4: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Importância da detecção de spam

Informações sobre spams

Spams (Stupid Pointless Annoying Messages): e-mailsindesejados que as pessoas recebem.

31 milhões de e-mails enviados diariamente em 2004[Sfr05]

12,4 milhões eram spams [Sfr05]

Perdas mundiais chegarão a US$50 bilhões em 2005,principalmente devido à queda de produtividade dosfuncionários [Fer05]

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 5: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Importância da detecção de spam

Informações sobre spams

Spams (Stupid Pointless Annoying Messages): e-mailsindesejados que as pessoas recebem.

31 milhões de e-mails enviados diariamente em 2004[Sfr05]

12,4 milhões eram spams [Sfr05]

Perdas mundiais chegarão a US$50 bilhões em 2005,principalmente devido à queda de produtividade dosfuncionários [Fer05]

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 6: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Importância da detecção de spam

Informações sobre spams

Spams (Stupid Pointless Annoying Messages): e-mailsindesejados que as pessoas recebem.

31 milhões de e-mails enviados diariamente em 2004[Sfr05]

12,4 milhões eram spams [Sfr05]

Perdas mundiais chegarão a US$50 bilhões em 2005,principalmente devido à queda de produtividade dosfuncionários [Fer05]

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 7: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Importância da detecção de spam

Problemas com spams

Tempo gasto analisando mensagens para decidir se éspam ou não

Risco de apagar mensagens que não são spams

Prejuízo por vírus e outros programas maliciosos

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 8: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Importância da detecção de spam

Pergunta:

Por que não fazemos um programa para classificarautomaticamente os spams?Dificuldades:

Caracterizar um spamAcompanhar o surgimento de novos formatos de spam

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 9: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Importância da detecção de spam

Pergunta:

Por que não fazemos um programa para classificarautomaticamente os spams?Dificuldades:

Caracterizar um spamAcompanhar o surgimento de novos formatos de spam

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 10: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Importância da detecção de spam

Idéia

Criarmos um programa que classifique as mensagenscomo spam ou não através da análise prévia de algumasmensagens (exemplos) que já tenham sido analisadas,semelhante a como aprendemos a fazer algumas tarefas

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 11: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Conceitos

Conceitos

Mundo real: conjunto no qual estamos interessados

Dado ou exemplo: elemento do mundo real

Máquina de aprendizado: dispositivo (um programa) capazde analisar dados do mundo real e classificá-los (darrótulos a eles).

Conceito: a classificação correta dos dados que amáquina tenta aprender

Hipótese: cada uma das possíveis classificações que amáquina faz sobre os dados

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 12: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Conceitos

Objetivo

Fazer com que a máquina de aprendizado gere umahipótese que melhor aproxima o conceito desejado

Para isso, devemos treinar a máquina de aprendizado comexemplos já classificados corretamente

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 13: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Conceitos

Fases

1 Treinamento: definir o padrão de classificação2 Teste: classificar novos dados

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 14: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Máquinas de suporte vetorialApresentação

Desenvolvidas principalmente por V. Vapnik, usam idéiasde aprendizado estatísticoTêm algumas vantagens sobre outros métodos declassificação

Sem mínimos locaisFase de testes é rápida

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 15: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Máquinas de suporte vetorial

Sejam l dados de treinamento (amostras), cada um formadopor um vetor x i ∈ Rd e um rótulo yi ∈ {−1, 1}

Os dados possuem uma distribuição de probabilidadeP(X , Y ) desconhecida e são independentes eidenticamente distribuídos

Mas iremos supor que os rótulos são fixos

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 16: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Máquinas de suporte vetorial

Sejam l dados de treinamento (amostras), cada um formadopor um vetor x i ∈ Rd e um rótulo yi ∈ {−1, 1}

Os dados possuem uma distribuição de probabilidadeP(X , Y ) desconhecida e são independentes eidenticamente distribuídos

Mas iremos supor que os rótulos são fixos

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 17: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Máquinas de suporte vetorial

Sejam l dados de treinamento (amostras), cada um formadopor um vetor x i ∈ Rd e um rótulo yi ∈ {−1, 1}

Os dados possuem uma distribuição de probabilidadeP(X , Y ) desconhecida e são independentes eidenticamente distribuídos

Mas iremos supor que os rótulos são fixos

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 18: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Modelos

Dados linearmente separáveis

Dados não-linearmente separáveis

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 19: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Hiperplano separador

Um hiperplano em Rd que separa as amostras positivas(yi = +1) das negativas (yi = −1)

〈w , x 〉+ b = 0 é uma equação para este hiperplano|b|‖w ‖ é a distância perpendicular do hiperplano da origem

d+ será a menor distância dos pontos classificados comopositivos ao hiperplano e d− será a menor distância dospontos classificados como negativos ao hiperplano

Definiremos a margem por (d+ + d−)

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 20: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Exemplo

u u u

u

u u

eee e

ee�����d−

�����d+

@@

@@

@@

@@

@@

@@

@@@

-

6

Hiperplano separador

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 21: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Mudando a escala entre |b| e ‖w ‖, teremos:

〈x i , w 〉+ b ≥ +1 se yi = +1〈x i , w 〉+ b ≤ −1 se yi = −1

}i = 1, . . . , l .

Podemos combinar as duas restrições em uma só:

yi(〈x i , w 〉+ b)− 1 ≥ 0 i = 1, . . . , l .

Vetores suporte: dados de treinamento para os quais éválida a igualdade nas restrições acima

A margem será 2‖w ‖

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 22: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Exemplo

t t t

t

t ttd

dd ddd

f

fff

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

@@

��

����

�Margem

-

6

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 23: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Objetivo

Máquinas de suporte vetorial procuram maximizar amargem do hiperplano separador

Portanto, temos o seguinte problema:

max 2/‖w ‖s.a yi(〈x i , w 〉+ b)− 1 ≥ 0 i = 1, . . . , l .

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 24: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Objetivo

Máquinas de suporte vetorial procuram maximizar amargem do hiperplano separador

Portanto, temos o seguinte problema:

max 2/‖w ‖s.a yi(〈x i , w 〉+ b)− 1 ≥ 0 i = 1, . . . , l .

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 25: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Problema

Sendo ‖w ‖ ≥ 0, o problema é equivalente a:

min ‖w ‖2/2s.a yi(〈x i , w 〉+ b)− 1 ≥ 0 i = 1, . . . , l .

A função Lagrangeana associada é:

LP(w , b,α) =‖w ‖2

2−

l∑i=1

αiyi(〈x i , w 〉+ b) +l∑

i=1

αi

αi ≥ 0, i = 1, . . . , l .

em que α é o vetor dos multipilicadores de Lagrange

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 26: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Problema dual

A partir das condições KKT, temos o seguinte problemadual equivalente:

max LD(α) =l∑

i=1

αi − 12

l∑i,j=1

αiαjyiyj〈x i , x j 〉

s.a αi ≥ 0 i = 1, . . . , l .

no qual os dados de treinamento só aparecem comoprodutos internos.

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 27: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Classificação de novos dados

Após termos treinado a máquina, como sabemos a classede um novo dado?

Basta ver em qual lado do hiperplano o dado está:

sgn(〈w , x 〉+ b) = sgn

(l∑

i=1

αiyi〈x i , x 〉

)

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 28: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Dados linearmente separáveisDados não-linearmente separáveis

Dados não-linearmente separáveis

Para dados não linearmente separáveis, nós introduzimosuma variável de folga ξi ≥ 0 na função objetivo para cadadado de treinamento, de forma a penalizar a violação dasrestrições do problema originalNovo problema:

min ‖w ‖2

2 + Cl∑

i=1

ξi

s.a yi(〈x i , w 〉+ b)− 1 + ξi ≥ 0 i = 1, . . . , lξi ≥ 0 i = 1, . . . , l ,

em que C e k são parâmetros escolhidos pelo usuário edeterminam a importância dos erros de classificação feitospelo algoritmo.

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 29: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Aplicação na detecção de spam

O estudo foi baseado principalmente no artigo SupportVector Machines for Spam Categorization [HWV99]

Característica: uma palavra de um e-mail

A cada mensagem, teremos um vetor de características xassociado, formado por palavras de um dicionário geradopela análise de todas as mensagens.

Apenas palavras que aparecem em pelo menos 3 e-mailsdiferentes

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 30: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Abordagens

Frequência da palavra: número que cada palavra dodicionário ocorre no texto

Representação binária: se cada palavra ocorre ou não notexto

Foram usadas todas as palavras ao invés de selecionarmosapenas algumas

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 31: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

BCC

Disciplinas importantes:

MAC0122 Princípios de Desenvolvimento de Algoritmos

MAC0338 Análise de Algoritmos

MAC0315 Programação Linear

MAC0300 Métodos Numéricos de Álgebra Linear

MAC5732 Aprendizado Computacional

MAT0121 Cálculo Diferencial e Integral II

MAT0139 Álgebra Linear para Computação

MAE0212 Introdução à Probabilidade e à Estatística II

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 32: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Para quem quiser saber mais: I

C. J. C. Burges. A Tutorial on Support Vector Machines forPattern Recognition. Data Mining and KnowledgeDiscovery, 2:121-167, 1998.

N. Cristianini and J. Shawe-Taylor. An Introduction toSupport Vector Machines and other kernel-based methods.Cambridge University Press, 2002.

Ferris Research. http://www.ferris.com, Outubro de 2005.

H. Druker, D. Wu, V. N. Vapnik. Support Vector Machinesfor Spam Categorization. IEEE Transactions on NeuralNetworks, 10(5):1048-1054, 1999.

Antonio Carlos dos Santos Máquinas de suporte vetorial

Page 33: Máquinas de suporte vetorial e sua aplicação na detecção ... · Motivação Aprendizado Computacional Máquinas de suporte vetorial Aplicação na detecção de spam BCC Mais

MotivaçãoAprendizado Computacional

Máquinas de suporte vetorialAplicação na detecção de spam

BCCMais informações

Para quem quiser saber mais: II

Spam Filter Review.http://spam-filter-review.toptenreviews.com, Outubro de2005.

V. N. Vapnik. Statistical Learning Theory. John Wiley &Sons, 1998.

Antonio Carlos dos Santos Máquinas de suporte vetorial