1. Centro de Informática – Universidade Federal da Paraíba
Ordenação e Recuperação de Dados
Aula 7: Modelo de Espaço Vetorial
Prof. Alexandre Duarte - http://alexandre.ci.ufpb.br
1 1
2. Matriz de incidências Termo-Documento
Anthony Julius The Hamlet Othello Macbeth
and Caesar Tempest ...
Cleopatra
ANTHONY 1 1 0 0 0 1
BRUTUS 1 1 0 1 0 0
CAESAR 1 1 0 1 1 1
CALPURNIA 0 1 0 0 0 0
CLEOPATRA 1 0 0 0 0 0
MERCY 1 0 1 1 1 1
WORSER 1 0 1 1 1 0
...
Cada documento é representado por um vetor binário ∈ {0, 1}|V|.
2
3. Matriz de incidências Termo-Documento
Anthony Julius The Hamlet Othello Macbeth
and Caesar Tempest ...
Cleopatra
ANTHONY 157 73 0 0 0 1
BRUTUS 4 157 0 2 0 0
CAESAR 232 227 0 2 1 0
CALPURNIA 0 10 0 0 0 0
CLEOPATRA 57 0 0 0 0 0
MERCY 2 0 3 8 5 8
WORSER 2 0 1 1 1 5
...
Agora cada documento é representado por um vetor de contagem
∈ N|V|.
3
5. Peso idf
A frequência de termo em documentos dft é definida como o
número de documentos em que o termo t ocorre.
Definimos o peso idf de um termo t como segue:
idf é uma medida de quão informativo é um determinado
termo.
5
6. Peso tf-idf
O peso tf-idf de um termo é o produto de seus pesos tf e idf.
6
7. Binário → Contagem → Matriz de Pesos
Anthony Julius The Hamlet Othello Macbeth
and Caesar Tempest ...
Cleopatra
ANTHONY 5.25 3.18 0.0 0.0 0.0 0.35
BRUTUS 1.21 6.10 0.0 1.0 0.0 0.0
CAESAR 8.59 2.54 0.0 1.51 0.25 0.0
CALPURNIA 0.0 1.54 0.0 0.0 0.0 0.0
CLEOPATRA 2.85 0.0 0.0 0.0 0.0 0.0
MERCY 1.51 0.0 1.90 0.12 5.25 0.88
WORSER 1.37 0.0 0.11 4.15 0.25 1.95
...
Cada documento é agora representado por um vetor de números
reais com os pesos tf-idf dos seus termos
7
8. Documentos como vetores
Cada documento é agora representado por um vetor ∈R|V|
de números reais com os pesos tf-idf de cada um de seus
termos.
Temos então um espaço vetorial |V|-dimensional.
Os termos são os eixos desse espaço vetorial.
Os documentos são pontos ou vetores neste espaço.
Dimensões muito grandes: dezenas de milhões quando se
aplica a pesquisa na Web
Cada vetor é muito esparso – a maioria das entradas é
zero.
8
9. Consultas como vetores
Ideia chave 1: fazer o mesmo para as consultas: representá-
las como vetores neste espaço multi-dimensional
Ideia chave 2: Classificar os documentos de acordo com sua
proximidade com a consulta
proximidade = similaridade
Relembrando: Estamos fazendo isso porque queremos fugir
das limitações do modelo booleano.
Ao invés disso: queremos classificar melhor documentos
relevantes em relação a documentos não-relevantes
9
10. Como formalizamos similaridade em um
espaço vetorial?
Primeiro corte: distância entre dois pontos
( distância entre os pontos extremos dos dois vetores)
Distância Euclidiana?
Utilizar a Distância Euclideana é uma má ideia . . .
. . . Porque resulta em valores muito grandes para vetores
de diferentes comprimentos.
10
11. Porque distância é uma má ideia
A Distância Euclidiana entre a consulta li e o documento é muito
grande apesar de ambos terem uma distribuição similar de termos
11
12. Usar o ângulo ao invés da distância
Classificar os documentos de acordo com o seu ângulo em
relação à consulta
Experimento: escolha um documento d e duplique seu
conteúdo. Chame esse documento de d′.
Apesar de d’ ter o dobro do tamanho de d, eles
representam “semanticamente” o mesmo conteúdo.
O ângulo entre os dois documentos é 0, correspondendo a
similaridade máxima . . .
. . . mas a distância Euclidiana entre os dois pode ser muito
grande.
12
13. De ângulos para cossenos
As duas noções a seguir são equivalentes.
Classificar os documentos de acordo com o ângulo entre a
consulta e o documento em ordem crescente
Classificar os documentos de acordo com o cosseno
(consulta,documento) em ordem decrescente
O cosseno é uma função decrescente de um ângulo no
intervalo [0◦, 180◦]
13
15. Similaridade do cosseno entre consulta e
documento
qi é o peso tf-idf do termo i da consulta.
di é o peso tf-idf de cada termo i do documento
| | e | | são os comprimentos dos vetores e
Esta é a similaridade do cosseno entre e
15
16. Cosseno de vetores normalizados
Para vetores normalizados, o cosseno é equivalente ao
produto escalar.
(se e foram normalizados em relação ao seu
comprimento).
16
18. Cosseno: Exemplo
frequencia de termos (contagem)
O quão similar são termo SaS PaP WH
esses romances? AFFECTION 115 58 20
• SaS: Sense and JEALOUS 10 7 11
Sensibility GOSSIP 2 0 6
• PaP: Pride and WUTHERING 0 0 38
Prejudice
• WH: Wuthering
Heights
18
19. Cosseno: Exemplo
frequencia de termos (contagem) ponderação das frequências por log
termo SaS PaP WH termo SaS PaP WH
AFFECTION 115 58 20 AFFECTION 3.06 2.76 2.30
JEALOUS 10 7 11 JEALOUS 2.0 1.85 2.04
GOSSIP 2 0 6 GOSSIP 1.30 0 1.78
WUTHERING 0 0 38 WUTHERING 0 0 2.58
(Para simplificar o exemplo, não estou calculando o peso idf)
19
20. Cosseno: Exemplo
ponderação das frequências por log normalização de coseno
termo SaS PaP WH termo SaS PaP WH
AFFECTION 3.06 2.76 2.30 AFFECTION 0.789 0.832 0.524
JEALOUS 2.0 1.85 2.04 JEALOUS 0.515 0.555 0.465
GOSSIP 1.30 0 1.78 GOSSIP 0.335 0.0 0.405
WUTHERING 0 0 2.58 WUTHERING 0.0 0.0 0.588
cos(SaS,PaP) ≈
0.789 ∗ 0.832 + 0.515 ∗ 0.555 + 0.335 ∗ 0.0 + 0.0 ∗ 0.0 ≈ 0.94.
cos(SaS,WH) ≈ 0.79
cos(PaP,WH) ≈ 0.69
20
21. Sumário: recuperação com classificação
utilizando o modelo do espaço vetorial
Representar a consulta como um vetor de pesos tf-idf
Representar cada documento como um vetor de pesos tf-idf
Calcular a similiradade do cosseno entre o vetor da consulta e
os vetores de cada documento na coleção
Classifique os documentos de acordo com a consulta
Retorne os primeiros K (ex., K = 10) documentos para o
usuário
21