52
Optimizing Search Engines using Clickthrough Data Thosrsten Joachims 2002

Optimizing Search

Embed Size (px)

Citation preview

Page 1: Optimizing Search

Optimizing Search Engines using

Clickthrough Data

Thosrsten Joachims

2002

Page 2: Optimizing Search

Introdução

O que o usuário realmente quer quando ele acessa um

mecanismo de busca?

Page 3: Optimizing Search
Page 4: Optimizing Search

Introdução

O que o usuário realmente quer quando ele acessa um

mecanismo de busca?

Page 5: Optimizing Search

Introdução

Log file

Page 6: Optimizing Search

Clickthrough Data in Search Engines

(q, r, c)

q – consulta

r – ranking apresentado para o usuário

c – conjunto de links que o usuário clicou

Exemplo:

q = “data mining”

Page 7: Optimizing Search
Page 8: Optimizing Search
Page 9: Optimizing Search

Clickthrough Data in Search Engines

Os cliques podem ser gravados com o mínimo de

overhead

Não compromete a funcionalidade e utilidade do sistema

Não tem nenhum overhead para o usuário

Servidor de proxy

Resultado da

busca,

query_id = 5

Servidor de

proxy

Http-location

Página alvo

query_id

url

Page 10: Optimizing Search

Clickthrough Data in Search Engines

Um link clicado não pode ser considerado de relevância absoluta

Os usuários não clicam de forma aleatória, mas fazem uma escolha (um pouco) informada

O usuário clica em um link se este for relevante para q

É menos provável que o usuário clique em um link rankeado mais baixo, independente da sua relevância

Os usuários geralmente observam os 10 primeiros links

Page 11: Optimizing Search

Clickthrough Data in Search Engines

O que pode então ser usado e analisado?

link 1

link 3

link 4

link 5

link 6

link 7

link 2

Page 12: Optimizing Search

Clickthrough Data in Search Engines

O que pode então ser usado e analisado?

Os links 1, 3 e 7 não podem ser considerados com relevância

absoluta

O link 3 é preferível ao link 2

O link 7 é mais relevante que os links 2, 4, 5 e 6

Os cliques informam julgamentos de relevância parciais e

relativos

Page 13: Optimizing Search

A framework for learning of retrieval

functions

Problema de recuperação de informação

Entrada:

uma consulta q e os documentos D = {d1, ..., dm}

Saída:

retornar um ranking r* que ordena os documentos de D de acordo

com sua relevância para a consulta

Page 14: Optimizing Search

A framework for learning of retrieval

functions

Uma função f de recuperação é avaliada pelo quanto rf(q) que ela gera

aproxima do ótimo, r*.

Medida Kendall’s de distância

Considerando dois rankings

ra: d1 < d2 < d3 < d4 < d5

rb: d3 < d2 < d1 < d4 < d5

Se di <r dj, então (di , dj) r

P = 7

Q = 3

T(ra, rb) = 7 – 3 / 7+3 = 0, 4

O objetivo é obter uma função que maximize T(ra, rb)

ra

(d1, d2)

(d1, d3)

(d1, d4)

(d1, d5)

(d2, d3)

(d2, d4)

(d2, d5)

(d3, d4)

(d3, d5)

(d4, d5)

rb

(d3, d2)

(d3, d1)

(d3, d4)

(d3, d5)

(d2, d1)

(d2, d4)

(d2, d5)

(d1, d4)

(d1, d5)

(d4, d5)

ra

(d1, d2)

(d1, d3)

(d1, d4)

(d1, d5)

(d2, d3)

(d2, d4)

(d2, d5)

(d3, d4)

(d3, d5)

(d4, d5)

rb

(d3, d2)

(d3, d1)

(d3, d4)

(d3, d5)

(d2, d1)

(d2, d4)

(d2, d5)

(d1, d4)

(d1, d5)

(d4, d5)

Page 15: Optimizing Search

A framework for learning of retrieval

functions

Problema de aprendizagem de uma função de ranking

Entrada:

Distribuição conhecida Pr(q,r*) de consultas e rankings alvo

numa coleção de documentos D com m documentos

Saída

Aprender uma função de recuperação f(q) para o qual é

esperado o Kendall’s T máximo

Page 16: Optimizing Search

An SVM algorithm for learning of ranking

functions

Entrada

Dada uma amostra de treinamento S, de tamanho n, contendo

seus rankings alvos r*

Saída

Função ranking f que maximize

Page 17: Optimizing Search

Classificador SVM

Dado um conjunto de k amostras

(x1, c1),…(xk,ck),

onde xi são vetores de n

dimensões e ci é a classe (1 ou -1)

das amostras

Encontrar o hiperplano

determinado pelo vetor

e o escalar b tal que:

Qualquer amostra xi da classe ci =

1 satisfaça w. xi + b >= 1

Qualquer amostra xi da classe ci =

-1 satisfaça w.xi + b <= -1

w

Page 18: Optimizing Search

Classificador SVM B

1

b11

b12

w

w x + b = 0

w x + b w x + b = 1

= -1

Page 19: Optimizing Search

Classificador SVM

Como o é encontrado?

A partir das restrições impostas pelas amostras de

treinamento

w

A B Classe

2 3 1

1 4 -1

1 5 1

3 7 -1 173

151

141

132

21

21

21

21

bww

bww

bww

bww

Page 20: Optimizing Search

Como usar o classificador SVM para classificar uma

amostra x ?

=

1 b se 1

1 b se 1 ) ( classe x

x w

x w

Classificador SVM

Page 21: Optimizing Search

An SVM algorithm for learning of ranking

functions

é o vetor ajustado pelo classificador.

(q,d) é o mapeamento das características da consulta q

e o documento d

O número de palavras que os dois compartilham no domínio

ou no resumo do link

O tamanho da URL em caracteres

Diversas outras

w

Page 22: Optimizing Search

An SVM algorithm for learning of ranking

functions

Na abordagem proposta, o vai ser calculado a partir

das seguintes restrições

w

Page 23: Optimizing Search

An SVM algorithm for learning of ranking

functions

(1, 2, 3, 4)

Page 24: Optimizing Search

An SVM algorithm for learning of ranking

functions

(2, 3, 1, 4)

Page 25: Optimizing Search
Page 26: Optimizing Search

An SVM algorithm for learning of ranking

functions

Page 27: Optimizing Search

An SVM algorithm for learning of ranking

functions

A função aprendida poderá sempre ser representada

como uma combinação linear do vetor de características.

É possível a utilização de Kernels e extender o Ranking

SVM para uma função de recuperação não linear.

*wf

Page 28: Optimizing Search

An SVM algorithm for learning of ranking

functions

O será usado para rankear o conjunto de documentos

para uma nova consulta q.

Nesse caso é suficiente ordenar os documentos pelo seu

valor de:

*wf

Page 29: Optimizing Search

An SVM algorithm for learning of ranking

functions

O r* de uma consulta q não está disponível.

A partir dos cliques é possível obter r’ r*

Assim, os r’ obtidos serão a base de treinamento do

Ranking SVM

Page 30: Optimizing Search

Experimentos

Experiment Setup: Meta-Search

Striver

É facil de implementar enquanto cobre uma grande coleção de

documentos

Os mecanismos de consulta básica fornecem uma base para

comparação

Funcionamento

A consulta do usuário no Striver é repassada para o Google, Msn

Search, Excite, Altavista e Hotbot

Os resultados retornados são analisados e os top 100 links sugeridos

são extraídos, a união dos links compõem o conjunto de candidatos V

O ranking é feito a partir da função aprendida, e os top-50 são

apresentados para o usuário

Page 31: Optimizing Search

Experimentos

É necessário comparar as diferentes funções de

recuperação:

Apresenta-se dois rankings. Os rankings A e B são combinados

em um ranking C

O top n links do C contem o top ka links de A e top kb links

de B, com ka-kb <=1.

Se o usuário examinar os links de C de cima para baixo, em

qualquer ponto ele vê quase igualmente a mesma quantidade

de links de A e B.

Page 32: Optimizing Search
Page 33: Optimizing Search

Experimentos

O usuário clicou em 3 links que participam do ranking A,

contra somente 1 do ranking b.

Se um usuário não tem nenhuma preferência sobre A ou

B, espera-se que ele clique de forma igual entre os dois

rankings.

Uma vez que o usuário clica em mais links de A, se

conclui que os links do ranking A são melhores do que os

de B para essa consulta.

Page 34: Optimizing Search

Experimentos

Offline Experiment

Verificar que o Ranking SVM aprende uma função de

recuperação usando feedback parcial dos dados de

clique.

Coleta de dados

Consultas feitas pelo autor em outubro de 2001.

O Striver apresenta os resultados de Google e

MSNSearch usando o método de combinação

apresentado.

112 consultas.

Page 35: Optimizing Search

Experimentos

Mapeamento das características Rank em outros mecanismos de pesquisa

Rank_X: 100 minus rank in X {google, msn, altavista, hotbot, excite} dividido por 100 (minimum 0)

Top1_X: Rankead #1 in X (binario 0 1)

Top10_X : Ranked in top 10 (binario 0 1)

Query / Content Match Query_url_cosine: coseno entre url-words e query (range [0,1])

Query_abstract_cosine: coseno entre title-words and query

Domain_name_in_query: query contem domain-name from url (binario)

Popularity-Atributos url_length: tamanho da url em caracters dividido por 30

Domain_X: dominio X de URL

Abstract_contains_home: palavra “home” aparece na URL ou titulo

url_contains_tilde: url contem “~”

url_X: url X como um atomo.

Page 36: Optimizing Search

Experimentos

Extração de pares de preferências

Adição de 50 restrições foram adicionadas para cada documento clicado

Não se usou Kernel

C = {0.001, 0.003, 0.005, 0.01}

Gráfico

Eixo x: número de consultas de treinamento

Eixo y: porcentagem de restrições que não são cobertas no banco de teste

Page 37: Optimizing Search

Experimentos

Page 38: Optimizing Search

Experimentos

Interactive Online Experiment

Mostrar se a função aprendida provê qualidade

Coleta de Dados

31 de outubro a 20 de novembro de 2001

Striver disponibilizado para um grupo de 20 usuários

Pesquisadores e estudantes da AI unit na University of Dortmundo

Coletou-se 260 consultas de treinamento (com no mínimo um clique).

Treinamento do Ranking SVM usando o mesmo (q,d)

A função aprendida foi implementada no Striver e usada para rankear o

conjunto de candidatos V.

Durante o período de avaliação que durou até 2 de dezembro, a função

aprendida é comparada com:

Google

MSNSearch

Toprank

Page 39: Optimizing Search

Experimentos

A comparação é feita usando o método de combinação já

apresentado

O ranking da função aprendida é apresentado em

combinação com cada um dos três baseline ranking

selecionados randomicamente.

A tabela mostra quantas consultas o usuário clicou mais

ou menos no resultado da função aprendida (learned)

Page 40: Optimizing Search

Experimentos

Tie apresenta quantas vezes a quantidade de clicks nas

consultas dos dois rankings combinados foram iguais, ou

quando não houve cliques.

Conclusão: a função de recuperação é melhor que o

Google para esse grupo de usuários.

Page 41: Optimizing Search

Analysis of the learned function

Uma vez que o Ranking SVM aprende uma função linear,

pode-se analisar a função estudando os pesos aprendidos.

A tabela 3 apresenta os pesos de algumas características,

em particular, aquela com o maior peso absoluto.

Uma característica com maior peso positivo indica que o

documento com essa característica devem ser rankeados

mais alto.

Page 42: Optimizing Search
Page 43: Optimizing Search

Discussões

Foco na adequação de recuperação de informação para pequenos grupos homogêneos, no lugar de grandes grupos heterogêneos

O que é um bom tamanho de grupo de usuário e como podem tais grupos serem determinados?

Claramente, existe um contraste entre a quantidade de dados de treinamento e homogeneidade máxima.

É possível usar algoritmos de clusterização para encontrar grupos de usuários homogêneos?

Além disso, pode dados de clique também ser usado para adaptar um mecanismo de busca não para um grupo de usuário, mas para propriedades de uma coleção particular de documentos?

Page 44: Optimizing Search

SVM rank

http://www.cs.cornell.edu/People/tj/svm_light/svm_rank.html

Módulo de aprendizagem

Dados de treinamento (train.dat)

Arquivo de modelo (model.dat)

Parâmetro C (valor de penalização)

svm_rank_learn -c 3 example3/train.dat example3/model

Dados de treinamento

1A>1B, 1A>1C, 1A>1D, 1B>1C, 1B>1D

# query 1 3 qid:1 1:1 2:1 3:0 4:0.2 5:0 # 1A

2 qid:1 1:0 2:0 3:1 4:0.1 5:1 # 1B

1 qid:1 1:0 2:1 3:0 4:0.4 5:0 # 1C

1 qid:1 1:0 2:0 3:1 4:0.3 5:0 # 1D

Page 45: Optimizing Search

SVM rank

Svm_rank_learn

Page 46: Optimizing Search

SVM_rank

Model SVM-light Version V6.20

0 # kernel type

3 # kernel parameter -d

1 # kernel parameter -g

1 # kernel parameter -s

1 # kernel parameter -r

empty# kernel parameter -u

6 # highest feature index

7 # number of training documents

2 # number of support vectors plus 1

0 # threshold b, each following line is a SV (starting with alpha*y)

1 1:1.5231243 2:-0.064747944 3:-0.52312434 4:-0.18499486 5:0.95375079 #

Page 47: Optimizing Search

SVM_rank

Módulo de predição

svm_rank_classify test.dat model.txt predicoes.txt

Test.dat

Predição.txt

4 qid:4 1:1 2:0 3:0 4:0.2 5:1

3 qid:4 1:1 2:1 3:0 4:0.3 5:0

2 qid:4 1:0 2:0 3:0 4:0.2 5:1

1 qid:4 1:0 2:0 3:1 4:0.2 5:0

2.43987615

1.40287793

0.91675182

-0.56012331

Page 48: Optimizing Search

Letor

http://research.microsoft.com/en-us/um/beijing/projects/letor/

Learning to Rank for Information Retrieval

Website desenvolvido para facilitar pesquisas em Learning To Rank.

É um benchmark que contém características padrões, julgamentos de

relevância, particionamento de dados, ferramentas de avaliação.

Dados coletados de sites governamentais e da área da saúde.

Estrutura de entrada idêntica ao do SVM_Rank

Medidas de performance:

NDCG@k: Normalized Discount Cumulative Gain

Medida de avaliação das top k posições da lista rankeada usando múltiplos níveis de julgamento de

relevância.

Page 49: Optimizing Search

Letor

Page 50: Optimizing Search

Letor

Page 51: Optimizing Search

Referências

T. Joachims, Optimizing Search Engines Using Clickthrough Data,

Proceedings of the ACM Conference on Knowledge Discovery

and Data Mining (KDD), ACM, 2002.

SVMrank - Support Vector Machine for Ranking, disponível em:

http://www.cs.cornell.edu/People/tj/svm_light/svm_rank.html

LETOR: Learning to Rank for Information Retrieval, disponível

em: http://research.microsoft.com/en-

us/um/beijing/projects/letor/event.aspx

Qin, t. Liu, TY., Li, Hang. LETOR: A Benchmark Collection for

Research on Learning to Rank for Information Retrieval.

De Amo, S., Slides Classificador SVM, disponível em:

http://www.deamo.prof.ufu.br/arquivos/ClassificadorSVM.ppt

Page 52: Optimizing Search

Obrigada!