Escolar Documentos
Profissional Documentos
Cultura Documentos
PROGRAMA DE PÓS-GRADUAÇÃO EM
ENGENHARIA ELÉTRICA E COMPUTAÇÃO
São Paulo
2017
UNIVERSIDADE PRESBITERIANA MACKENZIE
PROGRAMA DE PÓS-GRADUAÇÃO EM
ENGENHARIA ELÉTRICA E COMPUTAÇÃO
São Paulo
2017
P232 Paris, Bruno Mendonça
Learning to Rank: combinaçăo de algoritmos aplicando stacking e análise dos
resultados / Bruno Mendonça Paris.
80 f.: il. ; 30 cm
CDD 006.6
Agradeço especialmente ao meu orientador prof. Dr. Nizam Omar por ajudar a
direcionar e guiar esse trabalho ao sucesso, com sua sabedoria da pesquisa cientı́fica
adquirida durante anos.
A minha esposa e famı́lia agradeço também pela compreensão e apoio durante esses
anos de construção desse trabalho.
Por fim, agradeço ao Dr. Thiago Salles pela ajuda na idealização do tema dessa
pesquisa e conhecimento profundo nesse assunto.
i
RESUMO
i
ABSTRACT
With the growth of the amount of information available in recent years, which will
continue to grow due to the increase in users, devices and information shared over the
internet, accessing the desired information should be done in a quick way so it is not spent
too much time looking for what you want. A search in engines like Google, Yahoo, Bing is
expected that the first results bring the desired information. An area that aims to bring
relevant documents to the user is known as Information Retrieval and can be aided by
Learning to Rank algorithms, which applies machine learning to try to bring important
documents to users in the best possible ordering. This work aims to verify a way to get
an even better ordering of documents, using a technique of combining algorithms known
as Stacking. To do so, it will used the RankLib tool, part of Lemur Project, developed in
the Java language that contains several Learning to Rank algorithms, and the datasets
from a base maintained by Microsoft Research Group known as LETOR.
i
Sumário
1 Introdução 1
1.1 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Organização do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Recuperação de Informação 6
2.1 Modelos Clássicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Modelo Booleano . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.2 Modelo Vetorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.3 Modelo Probabilı́stico . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 O Conceito Relevância para Recuperação de Informação . . . . . . . . . . 15
4 Técnicas de Ensemble 26
4.1 Bagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Boosting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Stacking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5 Learning to Rank 32
5.1 Definição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 Features (Caracterı́sticas) . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3 Pointwise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3.1 Regressão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.2 Classificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3.3 Regressão Ordinal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.4 Pairwise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.4.1 RankNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.4.2 RankBoost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.5 Listwise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.5.1 ListNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.5.2 LambdaMART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6 Experimentos 49
6.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7 Conclusão 62
7.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Referências Bibliográficas 69
Lista de Tabelas
1 Representação do documento em forma de Vetor . . . . . . . . . . . . . . . 10
2 Coleções de Teste para Algoritmos de Recuperação de Informação . . . . . 18
3 Documentos relevantes de acordo com a posição . . . . . . . . . . . . . . . 21
4 Valores da Precisão em n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5 Documentos e Informações para o cálculo do MRR . . . . . . . . . . . . . 23
6 Resultados base dos algoritmos Learning to Rank . . . . . . . . . . . . . . 55
7 Resultados do Stacking para o conjunto de treinamento MQ2008 . . . . . . 56
8 Resultados do Stacking para o conjunto de treinamento MQ2007 . . . . . . 57
9 Resultados utilizando votação para combinar os algoritmos . . . . . . . . . 58
10 Melhores resultados do Stacking para o conjunto de treinamento MQ2008 . 59
11 Melhores resultados do Stacking para o conjunto de treinamento MQ2007 . 60
Lista de Figuras
1 Aumento da quantidade de informação disponı́vel (JAMES, 2014) . . . . . 1
2 Processo durante a Recuperação de Informação (TAKAO, 2001) p.12 . . . 7
3 Comportamento do modelo Booleano (BARTH, 2013) p.250 . . . . . . . . 9
4 Remoção de Stop-Words (PASSARIN, 2005) p.22 . . . . . . . . . . . . . . 11
5 Exemplo de Stemming (PASSARIN, 2005) p.23 . . . . . . . . . . . . . . . 11
6 Ângulo θ formado pela representação vetorial do documento e da consulta
(FERREIRA, 2011) p.23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7 Precisão x Cobertura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8 Processo para combinar predições de Redes Neurais (OPITZ; MACLIN,
1999) p.171 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
9 Processo de amostragem do conjunto de treinamento para Bagging (OPITZ;
MACLIN, 1999) p.173 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
10 Superfı́cie de separação de dados utilizando Bagging (ZHOU, 2012) p.50 . . 28
11 Processo de amostragem do conjunto de treinamento para Boosting (OPITZ;
MACLIN, 1999) p.173 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
12 Superfı́cie de separação de dados utilizando Boosting (ZHOU, 2012) p.30 . 30
13 Stacking de modelos de aprendizagem . . . . . . . . . . . . . . . . . . . . . 31
14 Processo utilizado na Recuperação de Informação Tradicional (HANG,
2011) p.1854 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
15 Processo utilizado na RI utilizando Learning to Rank (LIU et al., 2009) p.239 34
16 Abordagem Pointwise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
17 Função de perda quadrática (LIU, 2011) p.34 . . . . . . . . . . . . . . . . 40
18 Função de perda hinge para o algoritmo SVM (LIU, 2011) p.36 . . . . . . 42
19 Abordagem Pairwise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
20 Abordagem Listwise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
21 Stacking de rankers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
22 Formato do arquivo de treinamento do algoritmo L2R . . . . . . . . . . . . 53
23 Formato do arquivo de treinamento para o ranker de Nı́vel 2 . . . . . . . . 54
24 Novo vetor de caracterı́sticas para o ranker de Nı́vel 2 . . . . . . . . . . . . 54
25 Evolução da medida NDCG após stacking para a base de dados MQ2008 . 60
26 Evolução da medida NDCG após stacking para a base de dados MQ2007 . 61
1 Introdução
Haja vista a quantidade de informação existente e que somente tende a aumentar, de-
1
senvolver técnicas que sejam capazes de encontrar a informação desejada rapidamente é
de extrema importância e é alvo de estudo nesse trabalho. Para isso, existem os métodos
clássicos (modelo booleano e vetorial), semelhança de documentos através de medidas
como TFIDF ou BM25, Learning to Hash (WANG et al., 2016), técnica atual para en-
contrar informações semelhantes em grandes bases de dados, como áudios, imagens e
vı́deos.
Outro método e o qual é foco desse trabalho é conhecido como Learning to Rank,
que utiliza os conceitos de aprendizagem de máquina ao problema de Recuperação de
Informação, a fim de obter uma lista de objetos ranqueados na melhor ordem possı́vel
perante uma certa consulta. É essencial também compreender quais algoritmos existem,
sua história, entender as diferenças e saber combiná-los, a fim de poder criar um algoritmo
que obtenha resultados melhores de acordo com as métricas do Capı́tulo 3.
Por fim, não apenas utilizar algoritmos isoladamente, mas saber combiná-los, técnica
conhecida por Ensemble, vem demonstrando bons resultados na capacidade de predição de
modelos de aprendizagem de máquina. Dentre os principais método, a serem apresentados
no Capı́tulo 4, um chamou atenção durante uma competição promovida pelo Netflix a fim
de predizer uma lista de filmes que um usuário possivelmente iria gostar baseado em filmes
vistos ou curtidos previamente. Esse método, conhecido por Stacking e que visa utilizar
a predição de diferentes algoritmos como entrada para outro algoritmo, foi utilizado pelos
dois primeiros colocados Koren (2009) e Sill et al. (2009) da competição, evidenciando
sua aplicabilidade em situações reais e que pode acarretar bons resultados. Campos et al.
(2017) ao combinar (utilizando stacking) diferentes algoritmos de classificação de texto
baseados em Random Forests também obteve melhores resultados (17%), considerando-se
a medida F, do que cada algoritmo se observado individualmente.
1.1 Justificativa
2
Se isso não for feito, ficará cada vez mais difı́cil encontrar a informação por mais que ela
exista.
• Perda de vendas devido aos clientes não encontrarem a informação desejada sobre
o produto ou serviço oferecido;
Outra área ainda que se beneficia da tecnologia por do Learning to Rank são os sites
de Comércio Eletrônico e de Conteúdo. Amatriain (2013) mostra a importância do uso
dessas técnicas por parte da empresa Netflix a fim de sugerir conteúdo personalizado
ou ainda quando (WESTON; YEE; WEISS, 2013) mostra a sua aplicabilidade e bons
resultados para recomendar vı́deos no Youtube. Saber recomendar produtos ou vı́deos
corretamente farão com que os usuários comprem mais ou fiquem mais tempo utilizando
o serviço fornecido, ocasionando mais vendas ou que atraiam mais anúncios direcionados
aos usuários.
Tem-se ainda outra aplicabilidade da área mostrada por Le et al. (2016) em que
evidenciou o uso de Learning to Rank ao propor uma técnica de encontrar partes do
código ordenadas por relevância que possam ser a causa raiz de uma certa falha em um
software, podendo diminuir o tempo e energia gasta ao procurar o motivo em todo o
3
código. Dehghani et al. (2015) ainda mostra a eficácia ao usar algoritmo de Learning
to Rank para integrar diferentes fontes de conhecimento e poder indexar uma grande
quantidade de documentos relacionados à polı́tica para fácil recuperação posteriormente.
Em segundo lugar, o tema dessa pesquisa é aplicado na prática por buscadores, tais
como, Bing, Yahoo. Esse buscadores são acessados por milhões de pessoas diariamente, o
que confirma que as técnicas que serão apresentadas em breve e que são utilizadas por esses
buscadores funcionam se utilizadas corretamente. Logo, conhecer a teoria sobre Learning
to Rank é de extrema importância para saber aplicar os algoritmos corretamente.
1.2 Objetivo
4
1.3 Organização do trabalho
Por fim, no Capı́tulo 7 são apresentados sugestões para trabalhos futuros com base
nos resultados alcançados e uma conclusão dessa dissertação.
5
2 Recuperação de Informação
Já para Manning et al. (2008), e de uma maneira mais simples de compreender,
Recuperação de Informação significa encontrar material (usualmente documentos) que
estão em uma natureza não estruturada (normalmente texto) que satisfaz uma necessidade
de informação em grande coleções (normalmente gravadas em computadores).
• O usuário precisa de uma informação e irá fazer uma pesquisa no sistema traduzindo
sua necessidade ;
• O sistema de Recuperação tem ciência de todos documentos, uma vez que estão
armazenados utilizando alguma técnica de representação, tentando assim encontrar
aqueles que são pertinentes à pesquisa;
6
No SRI, o usuário irá entrar com um texto em linguagem natural, nem sempre bem
escritos ou que claramente informe a necessidade da procura, e o sistema irá devolver os
documentos relevantes. Ser capaz de receber consultas não estruturadas ou com erros e
mesmo assim localizar os documentos relevantes é importante, pois demonstra que o sis-
tema foi capaz de compreender um texto (a consulta) e localizar documentos relacionados
em meio a um grande volume de dados (BAEZA-YATES; RIBEIRO-NETO, 1999).
• R(q,d) é uma função de ordenação capaz de definir a ordem dos documentos com
relação à consulta
7
A quantidade de informação presente e disponı́vel às pessoas está em constante cresci-
mento, seja a informação em formato visual, textual ou de áudio. Ser capaz de recuperar a
informação desejada será cada vez mais demandado e, por tal motivo, estudar e continuar
melhorando as técnicas e algoritmos da área da Recuperação de Informação será sempre
importante.
Nessa seção serão abordados alguns dos diversos modelos de Recuperação de In-
formação existentes, aprofundando-se um pouco sobre três deles e de uso mais difun-
dido, Booleano, Vetorial e Probabilı́stico, e uma breve citação de outros modelos também
considerados clássicos para referência.
8
Os termos dos documentos a serem procurados estão previamente indexados e as
buscas são feitas por meio de textos as quais contém expressões lógicas (AND, OR, NOT )
(FERREIRA, 2011). A Figura 3 mostra esse caso, em que se a consulta fosse sobre o
termo t1 e t2, a resposta seria a área cinza, já se fosse apenas sobre o termo t2, seria a
parte cinza e o lado direita da figura, enquanto que se fosse apenas sobre o termo t1, a
resposta seria a parte cinza e o lado esquerdo da figura.
Logo, o resultado para uma dada consulta são os documentos cujo conteúdo satisfazem
essa expressão lógica (query) informada pelo usuário. Esses documentos recuperados são
analisados simplesmente se satisfazem ou não a consulta do usuário, ocasionando que
não exista uma prioridade de documentos entre eles, como se todos fossem igualmente
relevantes.
Pode-se dizer, conforme Takao (2001) que esse modelo tem como resposta 0 ou 1,
exclusivo, para uma certa consulta. Assim, a similaridade entre um documento e uma
certa consulta é 1, caso o documento seja relevante, ou seja, a expressão da consulta existe
nesse documento. Ou então a similaridade é 0, caso a expressão da consulta não exista.
Esse modelo, encontrado inicialmente em Salton (1971), Salton e Lesk (1968) e Sal-
ton, Wong e Yang (1975) está relacionado a comparar documentos na forma vetorial com
9
as consultas que também estão na forma vetorial, em um espaço n-dimensional, sendo n
a quantidade de palavras existentes e não filtradas, podendo assim verificar quais docu-
mentos são mais semelhantes à consulta, através da distância do cosseno, a ser visto em
breve, e assim retornar apenas esses documentos para avaliação do usuário (FERREIRA,
2011).
A transformação do texto em sua forma vetorial é essencial para esse Modelo, a fim
de que documentos na forma textual possam ser analisados, estruturados em vetores e
passı́veis de futuras buscas e comparações entre si. O vetor resultante dessa transformação,
representado na Tabela 1, possui diversas colunas (letra a), as quais são as palavras
contidas no documento e cujo valor (letra p) de cada coluna é o peso ou importância
daquela palavra perante ao documento (BARION; LAGO, 2015).
• a1 a2 ... an
d p1 p2 ... pn
• Análise Léxica: Serão identificadas as palavras do texto que poderão fazer parte
do vetor. Os delimitadores utilizados nessa fase são os espaços, quebras de linha
ou tabulações. A princı́pio cada palavra, incluindo preposições, conjunções, será
separada e considerada para a próxima etapa (BARION; LAGO, 2015).
• Remoção de Stopwords: nessa fase ocorre a remoção de palavras que não apresentam
relevância para o vetor uma vez que não são representativas perante o documento,
permitindo assim que o vetor contenha apenas palavras que agreguem valor e re-
almente representem o documento. Essas palavras removidas normalmente são os
artigos, preposições, interjeições e conjunções. Existem ainda outras palavras que
também são removidas por aparecerem muito frequentemente em documentos. Logo,
nessa fase normalmente os documentos são comparados com um dicionário a fim de
encontrar as palavras que devem ser removidas. A remoção dos stopwords ajuda a
10
diminuir o espaço de armazenamento melhorando assim o desempenho dos algorit-
mos de Mineração de Textos (BARION; LAGO, 2015). Na Figura 4 é ilustrado o
processo de remoção de stopwords.
11
reduzir o número de palavras a serem analisadas e ajudar o usuário a encontrar a
informação desejada. Nessa fase também pode-se identificar certos erros gramati-
cais mas que sejam comuns dado um certo domı́nio. Caso estejam sendo analisados
documentos provenientes das redes sociais, certos erros gramaticais existirão e serão
frequentes, tais como escrever certos caracteres repetidos. Logo, é possı́vel também
normalizar os textos com base nessas informações especı́ficas a um domı́nio. Para
exemplificar a utilização, tenha como exemplo um documento que contenha a pala-
vra ONG e outro que contenha o termo “Organização não Governamental”. Ambas
palavras têm o mesmo significado e espera-se que esta relação esteja disponı́vel no
thesaurus para que quando ocorra a transformação do texto em vetor ambos do-
cumentos, com relação a essa palavra em especı́fico, possuam o mesmo atributo
(RONCERO, 2010).
Após essas etapas, já é possı́vel identificar todas as colunas do vetor que represen-
tará cada documento. Falta ainda saber qual será o peso ou importância de cada um
desses atributos e, para isso, existem as seguintes métricas: (MATSUBARA; MARTINS;
MONARD, 2003) (MORAIS; AMBRóSIO, 2007):
N
T F IDF = ftd × log( ) (1)
nt
12
mais similares a essa consulta. Quanto mais perto estiverem os vetores que representam o
documento e a consulta, menor será o ângulo θ, ilustrado na Figura 6, e consequentemente
mais importante será esse documento com relação à consulta (FERREIRA, 2011).
Conforme Ferreira (2011), a similaridade entre o documento e a consulta pode ser ob-
tida através da medida conhecida como Similaridade do Cosseno e calculada pela Equação
2:
→·→
d q
Sim(d, q) = cos(θ) = (2)
→ × →
d q
onde:
Dado que a maneira utilizada para representar os documentos é a mesma para todos
documentos, permite assim comparar similaridade de documentos e entre documentos e
a consulta, o que permite retornar os documentos ao usuário utilizando um certo ranking
(TAKAO, 2001).
Dada a teoria simples e coerente por trás desse modelo, permite-se o seu uso amplo e,
consequentemente, o desenvolvimento de soluções que tratam a indexação de documentos
13
e sua consequente recuperação, como é o caso do software Lucene (BARTH, 2013).
Para cada consulta, assume que existe um grupo de documentos R que responde
perfeitamente uma consulta q. Assim, os documentos desse conjuntos são relevantes à
consulta, enquanto que aqueles que não estão presentes, R, não são relevantes.
Assim, para uma consulta q, o modelo probabilı́stico assinala uma similaridade para
cada documento dj existente (ALMEIDA, 2007). Essa similaridade é calculada conforme
a Equação 3:
P (R|dj )
sim(dj , q) = (3)
P (R|dj )
14
com o modelo probabilı́stico (ROBERTSON; WALKER, 1999) (ROBERTSON et al.,
1995). Essa métrica e outras serão aprofundadas na Seção 5.2.
• Vickery (1959a) e Vickery (1959b): apresenta uma distinção entre a relevância re-
ferente a um certo assunto, que se refere ao que o Sistema de Recuperação de
Informação diz ser relevante, e relevância ao usuário, que refere-se aquilo que o
usuário realmente necessita;
• Rees e Schultz (1967): estudo que mostra a dificuldade em acreditar-se nas re-
levâncias apontadas para os documentos e que podem ser afetadas por mais de 40
variáveis;
Mizzaro (1998) explica com detalhes em seu artigo a importância da relevância para
sistemas de busca e diz que a relevância pode ser estudada através de suas 4 dimensões.
15
• Documento: entidade fı́sica que o usuário vai obter do sistema;
• Informação: entidade (não fı́sica) que o usuário recebe e cria quando lendo o docu-
mento;
A terceira está referente com a questão tempo, em que a RIR pode variar com o
passar do tempo ou que um documento que antes era a informação requisitada pode não
ser mais para a mesma consulta. Esse dinamismo ilustra um comportamento comum e
que acontece com sistemas de Recuperação de Informação.
Por fim, a quarta dimensão são os componentes de uma busca, que seria a decom-
posição das entidades das duas primeiras dimensões:
• Contexto: tudo que não está relacionado ao tópico ou tarefa mas que influencia nos
resultados, como por exemplo documentos já conhecidos e que não são relevantes
ao resultado;
16
A ideia de relevância está como ponto de importância e preocupação nos modelos
de implementação dos Sistemas de Recuperação de Informação. Ser capaz de anotar e
saber quais documentos os usuários consideram relevantes irá ajudar a obter um melhor
ranking dos documentos durante as buscas feitas pelo usuário. Como melhorar e ser
capaz de sempre devolver os documentos na melhor ordem possı́vel será estudado durante
o Capı́tulo 5.
17
3 Avaliando Sistemas de Recuperação de Informação
A fim de avaliar esses algoritmos e obter as métricas, usam-se coleções de dados para
teste de uma maneira padronizada, conforme a Tabela 2, possuindo as seguintes colunas
(BARTH, 2013):
• Consulta: diversas consultas reais que usuários irão fazer ao sistema de Recuperação
de Informação;
3.1 Precisão
18
(BAEZA-YATES; RIBEIRO-NETO, 1999).
T
n(relevantes recuperados)
P recisao = (4)
n(recuperados)
Nesse caso, a precisão seria de 40%, pois 2 documentos relevantes foram recuperados
dentre os 5 documentos recuperados para a consulta.
3.2 Cobertura
T
n(relevantes recuperados)
cobertura = (5)
n(relevantes)
19
Figura 7: Precisão x Cobertura
3.3 Medida F
Um sistema que retorna sempre todos documentos possı́veis terá garantia de possuir
100% de cobertura, mas com uma baixa precisão. Já um sistema que retorna somente
um documento, há chances de ter uma alta precisão, mas uma baixa cobertura, já que
retorna apenas um documento.
Dessa maneira, existe a Medida F que é responsável por uma média harmônica entre
a precisão e a cobertura (MANNING et al., 2008), segundo a Equação 6.
2 × (precisao × cobertura)
F = (6)
precisao + cobertura
Utilizando os mesmos exemplos da seção 3.1, a medida F nesse caso seria 0.5, pois F
= 2 × (0.4 × 0.6667) / (0.4 + 0.6667).
3.4 Precisão em n
20
Para o cálculo da Precisão em n, utiliza-se a Equação 7:
r
P @n = (7)
n
Suponha-se que para uma dada consulta, os 5 primeiros documentos retornados são
os especificados na Tabela 3.
Para esse caso especı́fico, tem-se que a Precisão em n para esses documentos recupe-
rados são os valores da Tabela 4.
Precisão em n Valor
P@1 1
P@2 1
P@3 2/3
P@4 2/4
P@5 3/5
A média dos Valores da Precisão Média, em inglês Mean Average Precision (MAP),
tem como objetivo sumarizar os valores da Precisão em N depois que cada documento
relevante foi recuperado para cada uma das consultas. Esta métrica é uma das mais
utilizadas quando deseja-se uma métrica com relação a várias consultas (AGICHTEIN;
BRILL; DUMAIS, 2006).
21
Sendo rq o número total de documentos relevantes para uma certa consulta, N o nu-
mero total de documentos recuperados na consulta e rel(n) uma função binária cujo valor
é 1 caso o documento em questão seja relevante e 0 caso contrário. Assim, primeiramente
define-se a Precisão Média, em inglês Average Precision (AP), a qual visa obter a média
dos valores P@n para uma consulta especı́fica tendo-se como base apenas os documentos
relevantes (BARTH, 2013), é calculado pela Equação 8:
PN
n=1 P @n × rel(n)
AP = (8)
rq
Mean Reciprocal Rank (MRR) é uma medida utilizada para o caso em que o foco é
uma única resposta correta (BARTH, 2013), ou com relação ao contexto de Recuperação
de Informação, em que o foco é um único documento tido como correto com relação a
uma certa consulta.
PN 1
i=1 pi
M RR = (9)
N
22
Tenha como base a Tabela 5:
Para esse exemplo, o valor de MRR seria 0.61, conforme o cálculo abaixo:
1 + 1/2 + 1/3
M RR = = 0.61
3
Essa medida tem duas vantagens com relação às outras medidas. Primeiramente, como
dito anteriormente, ela pode ser obtida dos casos em que existem graus de relevância para
os documentos e não somente resultados binários de relevância (sim ou não). A segunda
vantagem está relacionada com o fato de priorizar os documentos retornados no começo,
o que as outras medidas não diferenciam (WANG et al., 2013).
• Documentos que estão nas primeiras posições são mais importantes para o usuário
• Quanto mais para o fim da lista o documento estiver, menos importante ele será, já
que será difı́cil para o usuário acessá-lo.
23
A fim de melhor compreender o cálculo do NDCG, este será dividido em três etapas.
G = { 3, 2, 3, 0, 0, 1, 2, 2, 3, 0, ... }
G[i],
se i = 1
CG[i] = (10)
CG[i − 1] + G[i] se i > 1
CG[i],
se i < b
DCG[i] = (11)
DCG[i − 1] + G[i]/ log i se i ≥ b
b
24
DCG = { 3, 5, 6.89, 6.89, 6.89, 7.28, 7.99, 8.66, 9.61, 9.61, ... }
Por exemplo, se o valor ideal de DCGi for { 3, 6, 7.89, 8.89, 9.75, 10.52, 10.88, 11.21,
11.53, 11.83 ... }, e utilizando o valor de DCG obtido anteriormente, tem-se NDCG:
NDCG = { 1, 0.83, 0.87, 0.77, 0.70, 0.69, 0.73, 0.77, 0.83, 0.81, ... }
3.8 Acurácia
Normalmente a maioria dos documentos podem ser considerados não relevantes para
uma certa consulta, ou seja, apenas uma pequena parcela satisfaz a consulta do usuário.
Assim sendo, um sistema que sempre informe os documentos com a classe não relevante,
teria uma grande acurácia, afinal estaria predizendo corretamente a classe para uma
grande quantidade de documentos e, consequentemente, teria uma grande acurácia. Con-
tudo, os documentos relevantes não teriam sido recuperados, ocasiando uma falsa idéia
que o sistema tenha uma boa capacidade de predição (VECHTOMOVA, 2009).
25
4 Técnicas de Ensemble
Neste Capı́tulo será apresentado um conceito conhecido por Ensemble. Uma vez que
esse trabalho tem como objetivo avaliar se ao combinar diferentes algoritmos Learning to
Rank é possı́vel obter um algoritmo que consigo retornar documentos mais relevantes a
pesquisa e em melhores posições, é necessário conhecer como é feita essa combinação, as
diferentes maneiras e principalmente o método conhecido por Stacking.
Um processo usual de Ensemble acontece de acordo com a figura 8. Cada uma das
26
Redes Neurais (network 1 até network N), que poderiam ser substituidas por outro tipo
de classificador, é treinada com o mesmo conjunto de treinamento. Então, o resultado de
cada um desses classificadores é combinado para produzir um resultado final (ensemble
output), sendo que pode ser combinado através de votação simples, ou seja, a classe que
teve mais votos é eleita a classe correta a ser predita (BREIMAN, 1996).
Figura 8: Processo para combinar predições de Redes Neurais (OPITZ; MACLIN, 1999)
p.171
A seguir serão apresentados três métodos da literatura que visam combinar diferentes
modelos de aprendizagem de máquina: Bagging, Boosting e Stacking.
4.1 Bagging
Bagging é um método de Ensemble criado por Breiman (1996), acrônimo para bootstrap
aggregating, que visa reduzir a variância, obtendo-se um modelo com melhor qualidade
de predição, ou seja, fazer com que o modelo a ser criado não seja especı́fico ao conjunto
de treinamento. Um dos fatos que chamou a atenção para esse método foi a sua simpli-
cidade de implementação e, posteriormente comprovado por Büchlmann e Yu (2002) que
realmente melhora a capacidade de predição para algoritmos de regressão ou árvores de
classificação.
27
No primeiro caso tem-se uma amostra de 8 números, porém os números 4 e 5 não estão
presentes enquanto os números 3 e 7 estão repetidos. Dessa maneira, para cada modelo
espera-se ter um erro maior do que se fosse usado todos os dados disponı́veis, porém, se
combinados, normalmente produzem menos erros do que cada um dos modelos individuais.
Esse processo repete-se t vezes e após ter-se t modelos criados com diferentes con-
juntos de treinamento, calcula-se uma votação para eleger a classe mais predita, caso for
um modelo de classificação, ou uma média de valores, caso o modelo for de regressão.
Na Figura 10a existe um único modelo criado tentando-se encontrar uma fronteira de se-
paração entre os dois diferentes dados. Já na Figura 10c existem os t diferentes modelos
criados utilizando partes aleatórias do conjuntos de treinamento e, por fim, na Figura 10b
o modelo final de Bagging que foi possı́vel ser encontrado.
Figura 10: Superfı́cie de separação de dados utilizando Bagging (ZHOU, 2012) p.50
28
4.2 Boosting
Boosting é uma técnica que consiste em criar diversos modelos fracos, porém que se
combinados, serão capazes de ter uma predição melhor do que qualquer um dos modelos
individuais. Esse método foi primeiramente encontrado em Schapire (1990) e Freund,
Schapire et al. (1996), em que se cria uma série de modelos onde o conjunto de treinamento
de cada modelo é escolhido baseado no resultado da etapa anterior. Logo, é importante
salientar que esse método não é paralelizável, uma vez que o modelo posterior é dependente
do anterior, diferentemente do que acontece no Bagging.
Isso acontece porque exemplos que foram preditos corretamente durante um treina-
mento têm menos chances de serem escolhidos para as próximas etapas, uma vez que
foca-se nos exemplos difı́ceis de serem preditos corretamente. Assim, diferentemente de
Bagging, o conjunto de treinamento é dependente da etapa anterior. Na Figura 11 tem-se
o seguinte conjunto de treinamento inicial: 1,2,3,4,5,6,7 e 8. Porém, considerando-se que
o exemplo 1 é o mais difı́cil a se predizer corretamente, ele passa a ocorrer mais frequen-
temente nas próximas iterações, a fim de tentar criar um modelo que seja capaz de lidar
com esse exemplo. Assim como no Bagging, o resultado final também pode ser escolhido
através de uma votação majoritária.
29
Figura 12: Superfı́cie de separação de dados utilizando Boosting (ZHOU, 2012) p.30
4.3 Stacking
Stacking é um método criado por Wolpert (1992) que visa criar um novo modelo que
seja capaz de combinar diferentes modelos. Ou seja, ao invés de utilizar uma votação
para definir qual a predição correta, nesse caso deve ser realizado um treinamento de um
algoritmo com o objetivo de realizar essa tarefa. Os modelos que serão combinados são
conhecidos por Modelos de Nı́vel 1, enquanto que o modelo que irá realizar a combinação
é conhecido por Modelo de Nı́vel 2 ou meta-learner.
30
Figura 13: Stacking de modelos de aprendizagem
31
5 Learning to Rank
Nos últimos anos, cada vez mais técnicas de aprendizagem de máquina vêm sendo usa-
das para resolver o problema de ranking, principalmente aplicadas à área de Recuperação
32
de Informação e impulsionadas pelas buscas frequentes na Internet. Assim, técnicas capa-
zes de criar automaticamente a função de ranking f(q,d), empregando diversas informações
importantes de um documento como o PageRank, textos da consulta no tı́tulo, links e
outros vêm sendo estudadas (HANG, 2011) (LIU et al., 2009).
5.1 Definição
• Seja D o conjunto de documentos di,1 ,di,2 , ...., dni que estão associados a consulta qi
• Seja Y o conjunto de graus de relevância y1 ,y2 ...., yl , cujos valores vão de 1 até l,
sendo que l l - 1 ... 1, uma vez que indica uma maior relevância perante
a consulta
33
Learning to Rank é S = (φ(q, d), y), ou seja, um grau de relevância é associado para
cada um dos vetores de caracterı́sticas associados a todos pares de documento-consulta
previamente coletados. Logo, o objetivo será treinar um modelo, função h, que seja capaz
de produzir uma nota (score) dado um novo par de documento-consulta, ou melhor, de
um vetor de caracterı́sticas obtido a partir desse par documento-consulta.
Por fim, com esses graus de relevância será possı́vel ordenar os documentos e retorná-
los assim ao usuário do Sistema de Recuperação de Informação na melhor ordenação
possı́vel, processo este ilustrado na Figura 15.
Figura 15: Processo utilizado na RI utilizando Learning to Rank (LIU et al., 2009) p.239
Li (2014) diz que existem autores que definem Learning to Rank não apenas como
algoritmos de aprendizagem de máquina destinados ao problema de ranking, mas prefe-
rem aprofundar a definição e dividir em dois tópicos, a criação do ranking e a agregação
de ranking, em que ambos podem ser supervisionados e não supervisionados. É impor-
tante reforçar que nesta pesquisa considera-se a definição de Learning to Rank conforme
34
apresentada Seção 5.1, ou seja, algoritmos de aprendizagem de máquina supervisionados.
Uma função de custo (L) é associada para cada um dos diferentes tipos de algorit-
mos existentes, sendo que o objetivo é sempre minimizá-la. Essa função L irá avaliar
o resultado predito pela função F e penalizar os resultados retornados pelo modelo de
Learning do Rank que estiverem na posição incorreta, procurando sempre penalizar mais
aqueles resultados que deveriam estar no começo da lista retornada porém estão no fim
ou vice-versa (HANG, 2011).
Coletar dados de treinamento é um dos pontos mais importantes para qualquer algo-
ritmo de aprendizagem de máquina e não seria diferente para os algoritmos de Learning
to Rank. Basicamente existem dois métodos de coleta quando está sendo tratado mais
sobre o aspecto de Recuperação de Informação.
35
Em Joachims e Radlinski (2007) é explorado a fundo esse método em que essa pre-
ferência de pares (um documento mais importante que outro) é aprofundada, assim como
outras medidas que ajudam a dar mais informação ao conjunto de treinamento. Por exem-
plo, um documento não clicado indica que este não está relacionado a consulta. Ou ainda
um encadeamento de consultas, em que ao usuário ir refinando (adicionando termos) a
sua consulta, os documentos que aparecem na subsequentes consulta (mais refinada) e não
nas primeiras indicam um documento faltante e que também pode ser utilizado para ter
mais conteúdo nos dados de treinamento. Essa ideia deu origem a um tipo de algoritmo
Learning to Rank que será explorada mais a fundo na Seção 5.4.
Já em Alcântara et al. (2010), o autor explora o uso das informações de clique no
SRI, mas cria uma metodologia para analisar os logs e também de ser capaz de extrair
caracterı́sticas que vão ser utilizadas no processo de aprendizagem de máquina a fim de
obter um melhor ranqueamento durante a fase de testes.
36
uma consulta q contendo os termos q1 ,q2 , ...., qn , a métrica BM25 relativa a um documento
d é definida pela Equação 13:
n
X tf (qi , d)(k1 + 1)
BM 25(d, q) = IDF (qi ) |D|
(13)
i=1 tf (qi , d) + k1 (1 − b + b avgdl )
• d é uma taxa de amortização usualmente setada com o valor de 0.85 segundo Brin
e Page (1998) e que indica a probabilidade de um usuário simplesmente sair de um
documento e buscar outro
A medida HITS, criada por Kleinberg (1999) e utilizada para uma Recuperação de
Informação na Web principalmente, busca medir a importância de um documento perante
a uma coleção de documentos. Kleinberg propõe duas medidas a um certo documento.
37
A primeira, conhecida por autoridade, são os documentos detentores da sabedoria de
algum assunto, em que isso é medido através da quantidade de documentos que apontam
para esse documento autoridade. A outra medida é conhecida por hubs, que são aqueles
documentos que interligam os documentos autoridade e cujo valor pode ser obtido através
da quantidade de documentos autoridade que são mencionados.
Por fim, um outro grupo de caracterı́sticas, chamada de hı́bridas, são baseadas tanto
no conteúdo dos documentos quanto aos hyperlinks, que podem ser a propagação de
relevância baseada em hyperlink e a propagação de relevância baseada no sitemap (LIU
et al., 2007).
É importante salientar que as caracterı́sticas que devem ser extraı́das são dependen-
tes de onde o método Learning to Rank será utilizado, ou seja, dependendo do caso de
uso em questão, diferentes caracterı́sticas, podendo-se ou não utilizar as apresentadas
anteriormente.
5.3 Pointwise
A abordagem Pointwise visa ser capaz de extrair um valor de ranking para cada
um dos documentos que se deseja retornar ao usuário, sendo possı́vel assim retorná-los
na melhor ordem possı́vel. Logo, de acordo com a Figura 16, o algoritmo irá receber n
documentos relativos a uma consulta q e a saı́da será um grau de relevância para cada uma
desses documentos, podendo assim ordená-los e retorná-los ao usuário com esta ordenação
ótima.
38
Figura 16: Abordagem Pointwise
5.3.1 Regressão
O modelo a ser construı́do será capaz de devolver um número real, o qual irá indicar
o quão relevante um documento é perante a uma consulta feita pelo usuário.
Cossock e Zhang (2006) aplicou essa técnica da seguinte maneira. Dado x = {xj }m
j=1
associadas a cada uma desses documentos, podendo ser uma relevância baseada em ordem
(diferentes nı́veis).
O objetivo é então encontrar uma função f capaz de predizer a relevância dos docu-
mentos. Para isso, deve-se minimizar uma função de perda, nesse caso a seguinte função
L de perda quadrática:
De acordo com a Figura 17, pode-se ver que o único caso em que se tem perda
mı́nima é quando a saı́da da função de perda é exatamente igual ao valor esperado. Ou
39
seja, somente terá perda 0 se a função f for capaz de predizer o valor 1 para o caso de um
documento ser relevante. Mesmo que o valor predito seja 2, ter-se-á uma perda, o que na
prática não é muito realı́stico.
40
Algorithm 1: Algoritmo Random Forests
Input: D= (x1 ,r1 ), ..., (xn ,rn ) , K: 0 < K ≤ f, M > 0
Output: T(.)
for i ← 1 to M do
Dt ← amostra(D)
ht ← CriaArvoreDeDecisao(Dt , K)
end
1
PM
T (.) ← M 1 ht (.)
return T (.)
5.3.2 Classificação
Dado x = {xj }m m
j=1 são os documentos associados a uma certa consulta q e y = {yj }j=1
são as relevâncias binárias associadas a cada uma desses documentos, em que +1 indica
um documento relevante e -1 um documento não relevante. Assim, o objetivo do algoritmo
SVM é minimizar a Equação 16 (LIU, 2011).
n mi
1 X X (i)
min k w k2 +λ ξj
2 i=1 j=1
(i) (i) (i)
s.t. wT xj ≤ −1 + ξj , se yj = 0, (16)
(i) (i) (i)
wT xj ≥ 1 − ξj , se yj = 1,
(i)
ξj ≥ 0, j = 1, ...., m(i) , i = 1, ....., n.
(i) (i)
em que xj é o j-ésimo documento, yj é a relevância para esse documento para uma
consulta, m(i) é a quantidade de documentos associado com consulta e w é o vetor normal
ao hiperplano ótimo que separa os dados.
(i)
A constante ξj está relacionada com o fato do documento ter sido classificado ou não
para a classe correta. Nesse algoritmo, a função de perda é a hinge, do inglês dobradiça
devido a imagem que essa função possui, conforme a Figura 18. Nota-se que para qualquer
valor maior que +1 que o modelo predizer, sendo que a classe deveria ser +1, não terá
41
(i)
perda nenhuma. Caso contrário, a perda será ξj , o que é a margem suave do SVM.
Figura 18: Função de perda hinge para o algoritmo SVM (LIU, 2011) p.36
Essa técnica é muito similar tanto com a classificação quanto a regressão. Esse algo-
ritmo recebe como entrada um vetor de features, retornando como saı́da uma valor que
é uma nota ou relevância, que normalmente possui uma ordenação entre seus possı́veis
valores como, por exemplo, ruim, médio, bom e muito bom.
Assim, o modelo consiste em uma função f(x) capaz de predizer um número real dado
um vetor de entrada. Esse número predito y é então utilizado para saber em qual das
possı́veis classes esse vetor pertence analisando vários thresholds que delimitam cada uma
dessas classes possı́veis (HANG, 2011).
42
5.4 Pairwise
Logo, o objetivo será classificar pares de documentos informando qual é mais impor-
tante para uma devida consulta. Um conjunto de dados de treinamento será coletado
contendo diversos pares de documentos, informando qual documento de um par é mais
relevante a consulta e na sequência minimizar a quantidade de prioridades erradas pre-
ditas, uma vez que se todas prioridades de documentos forem corretamente identificadas,
então um ranking perfeito para a consulta em questão será encontrada (LIU, 2011).
Esse processo é ilustrado na Figura 19 onde dada uma lista de n documentos (x)
referentes a uma certa consulta q, o algoritmo será capaz de informar baseado em pares
de documentos qual é mais relevante, sendo que +1 significa mais relevante e -1 significa
menos relevante.
Nessa categoria tem-se dois algoritmos famosos, RankNet (BURGES et al., 2005) e
RankBoost (FREUND et al., 2003) que serão explicados a seguir.
43
5.4.1 RankNet
RankNet é um método criado por Burges et al. (2005) que visa solucionar o problema
de ranking utilizando técnicas de Redes Neurais. Para isso, tem-se como conjunto de
treinamento pares de documentos (xi , xj ), relacionados a uma consulta q, e sua prioridade,
indicando se xi é mais importante que xj ou o inverso, para um total de n documentos,
em que i,j = 1, 2, ...., n.
A rede neural do algoritmo proposto por Burges et al. (2005) é formada por duas
camadas, sendo que a função de custo utilizada para saber quão longe o resultado obtido
está do esperado é a Entropia Cruzada, definida de acordo com a Equação 17.
sendo que:
• oij = f(xi ) - f(xj ), em que f indica um número real dado um certo documento x
eoij
• Pij é modelado utilizando a função logı́stica Pij = 1+eoij
Além disso, para ajustar os pesos dos neurônios é utilizado o método de back-propagation,
calculando o gradiente descendente para saber o quanto cada neurônio contribuiu com o
valor de saı́da, para assim ser ajustado de acordo.
5.4.2 RankBoost
44
O algoritmo é criado iterativamente e por etapas t. Em cada etapa, o conjunto D,
o qual contém todos pares de documentos, é submetido ao treinamento, a fim de criar
um weak ranker h. Este por sua vez deve ser escolhido a fim de minimizar a Equação 18,
podendo-se escolher então um peso α, obtido também dessa equação de custo.
X
Zt = Dt (x0 , x1 )exp(αt (ht (x0 ) − ht (x1 ))) (18)
x0 ,x1
Para as próximas etapas, novamente todo conjunto D será considerado, porém priorizando-
se os pares que não foram corretamente ranqueados pelo ranker h. Assim, outro weak
ranker h será criado e outro peso α descoberto. O ranker final H será uma combinação
baseada em pesos dos weak rankers h disponı́veis, conforme Equação 19.
T
X
H(x) = αt ht (x) (19)
t=1
5.5 Listwise
45
Durante o treinamento, são necessários um conjunto Q de consultas = {q1 ,...,qm }. Para
cada uma dessas consultas, existe uma lista de documentos D = {d1 ,...,dn }. Além disso,
para cada um desses documentos da lista existe um grau de relevância Y = {y1 ,...,yn }
indicando o quão relacionado um documento é para uma dada consulta q. Um vetor de
caracterı́sticas x então é criado a partir de uma função φ(q, d). Dessa maneira, tem-se
as instâncias de treinamento para o método listwise, consistindo do par (xi ,yi ) para cada
combinação entre consulta q e documento d existente (CAO et al., 2007).
k
X
L(yi , zi ) (20)
1
Os algoritmos desse método podem ser divididos em dois grupos. O primeiro utiliza
como função de custo alguma das medidas apresentadas no Capı́tulo 3. O outro grupo
de algoritmos são aqueles em que as funções de custo não estão relacionadas com essas
medidas, mas sim com a diferença entre a lista predita com aquela existente na base de
conhecimento (LIU et al., 2009).
5.5.1 ListNet
Algoritmo introduzido por Cao et al. (2007) que implementa redes neurais para so-
lucionar o problema de Learning to Rank. Esse método é muito similar ao algoritmo
RankNet apresentado na Seção 5.4.1, uma vez que também é baseado em um modelo
de Redes Neurais, utilizando a entropia cruzada (Equação 21) como função de custo e
o método do gradiente descendente para minimizar a entropia cruzada, em que y indica
probabilidade referente ao conjunto de treinamento e z indica a probabilidade referente à
relevância produzida pelo modelo.
X
L(y (i) , z (i) ) = − Py(i) (g)log(Pz(i) (g)) (21)
∀g∈lk
46
Como diferença, tem-se que o método ListNet utiliza a abordagem listwise, já que a
lista de documentos como um todo será considerada durante o treinamento, ou seja, não
se busca descobrir relações de prioridade de pares de documentos mas, sim, uma lista
ótima ordenada.
k
Y exp(sj )
Ps (lk (j1 , j2 , ..., jk )) = Pt t (22)
t=1 i=1 sjt
5.5.2 LambdaMART
LambdaRank por sua vez é um algoritmo pairwise que foi concebido após análises
feitas sobre o algoritmo RankNet. Notou-se que erá possı́vel utilizar na função de custo
medidas que são utilizadas para avaliar algoritmos de ranking como, por exemplo, NDCG.
Dessa maneira, o gradiente indica para onde pares de documentos devem ser movidos,
após o ranqueamento, a fim de otimizar essa nova função de custo, agora considerando a
medida NDCG.
47
pelo algoritmo MART com o objetivo de otimizar a medida escolhida (BURGES, 2010).
48
6 Experimentos
Nesse trabalho de pesquisa serão efetuados alguns experimentos para avaliar a pro-
posta da dissertação que, ao realizar-se o Stacking de algoritmos Learning to Rank, irá
ou não ocasionar uma melhoria na qualidade do ranking dos documentos retornados,
comparando-se os resultados das métricas NDCG e MAP obtidas com os resultados cor-
respondentes de cada algoritmo individualmente. É importante mencionar que essa dis-
sertação não tem como objetivo considerar se o tempo para realizar todo o treinamento de
um Ensemble via Stacking é elevado ou não, contudo observa-se que é um método que pode
ser paralelizável, pois o treinamento dos diversos rankers necessários são independentes,
o que poderá ser feito no futuro para diminuir tempo de treinamento supervisionado.
6.1 Metodologia
Para cada um dos algoritmos acima mencionados, parâmetros especı́ficos podem ser
configurados a fim de que o modelo a ser construı́do seja melhor adaptado ao conjunto
de treinamento em questão. Para o algoritmo Random Forests configurou-se o número de
árvores utilizadas (nBag) e a porcentagem de caracterı́sticas utilizada (featureRate) em
cada árvore. Com relação ao algoritmo RankBoost, foi configurado o número de iterações
1
https://sourceforge.net/p/lemur/wiki/RankLib/
49
(nIteration) para criar os rankers fracos e o limite na quantidade de valores (threshold ) do
vetor de caracterı́sticas que pode ser utilizada durante o treinamento. Para o algoritmo
ListNet foi configurado a quantidade de épocas (nEpoch) e a taxa de aprendizado (learnin-
gRate) durante o treinamento da Rede Neural. No algoritmo RankNet foi configurado a
quantidade de nós na camada escondida (nNodes) e também a quantidade de épocas (nE-
poch). Por fim, para o algoritmo LambdaMART, configurou-se a quantidade de árvores
utilizadas (nTrees) e o número máximo de folhas permitidas nessa árvore (nLeaves).
50
Os valores acima para cada parâmetro foram escolhidos em uma fase de testes, sempre
utilizando um conjunto de dados de validação para garantir que não ocorresse overfitting
durante o processo de treinamento. Dessa maneira, foram escolhidos valores que resultas-
sem em medidas mais elevadas ao mesmo tempo que o algoritmo não ficasse especializado
no conjunto de treinamento.
Para realizar o treinamento dos modelos de Learning to Rank acima, são necessários
dados de treinamento e para isso serão utilizados os que estão disponı́veis no LETOR
(LEarning TO Rank)2 , mais precisamente o conjunto MQ2007 e MQ2008 no formato de
aprendizagem supervisionada. Essa é uma base mantida pela Microsoft Research Group,
que contém datasets para serem utilizadas na pesquisa da área Learning to Rank (L2R).
O conjunto MQ2007 contém por volta de 1700 consultas e o conjunto MQ2008 por volta
de 800 consultas.
Para aplicar a técnica de stacking ilustrada na Figura 21, serão criados até 15 rankers
de Nı́vel 1, dependendo da configuração atual, os quais irão predizer um possı́vel ranking
para os dados do conjunto de treinamento. Utilizando então os dados preditos dos rankers
de Nı́vel 1 e os rankings corretos como saı́da prevista será criado um novo ranker Rx de
Nı́vel 2 em que se espera que obtenha um ranking de melhor qualidade ao analisar-se os
resultados das métricas NDCG e MAP do que qualquer ranker individual de Nı́vel 1.
2
https://www.microsoft.com/en-us/research/project/letor-learning-rank-information-retrieval/
51
Figura 21: Stacking de rankers
52
Figura 22: Formato do arquivo de treinamento do algoritmo L2R
53
Figura 23: Formato do arquivo de treinamento para o ranker de Nı́vel 2
Para criar esse novo vetor de caracterı́sticas é utilizada, conforme Figura 24, a saı́da
de cada um dos algoritmos selecionados e apresentados anteriormente. Dado uma linha
do arquivo de treinamento, cada algoritmo têm como saı́da um número real (ilustrado na
Figura 24 como Saı́da Rn , em que n é a quantidade de rankers Nı́vel 1) com o qual é
possı́vel obter uma ordenação ótima para cada um dos documentos com relação a uma
certa consulta. Esse número real é especı́fico para cada algoritmo em que, por exemplo,
para os algoritmos que utilizam Redes Neurais seria o processamento do vetor de entrada
utilizando todos os pesos sinápticos descobertos durante a fase de treinamento para as
camadas escondidas.
Por fim, após realizar o treinamento dos rankers de Nı́vel 2, o objetivo será comparar
o resultado das medidas MAP e NDCG com os valores obtidos individualmente para cada
54
um dos algoritmos utilizados durante o Stacking e encontrados na Tabela 6, a fim de
verificar se houve ou não uma melhoria na qualidade do ranking. Nessa tabela, para cada
Algoritmo Rn e um certo conjunto de treinamento (coluna Dataset), as medidas MAP e
NDCG desde a posição 1 até a posição 10 foram anotadas.
Na sequência foi comparado, se seria melhor ou não utilizar uma técnica simples de
combinação de algoritmos como, por exemplo, votação, em que o documento escolhido
para cada posição é aquele que teve mais votos pelos algoritmos participantes.
Algoritmo Dataset MAP NDCG@1 NDCG@2 NDCG@3 NDCG@4 NDCG@5 NDCG@6 NDCG@7 NDCG@8 NDCG@9 NDCG@10
R1 MQ2008 0,4288 0,3418 0,3311 0,3553 0,3704 0,3944 0,4177 0,4309 0,4407 0,4423 0,4449
R2 MQ2008 0,4381 0,3248 0,3405 0,3733 0,3831 0,4031 0,4265 0,4353 0,4439 0,4473 0,4513
R3 MQ2008 0,4308 0,3333 0,3365 0,3692 0,3869 0,3972 0,4229 0,4329 0,4397 0,4428 0,4474
R1 MQ2007 0,4531 0,3854 0,3776 0,3826 0,388 0,3914 0,3983 0,4065 0,4119 0,4177 0,4221
R2 MQ2007 0,4566 0,3786 0,3735 0,3836 0,3894 0,3967 0,4035 0,4061 0,412 0,4169 0,4256
R3 MQ2007 0,4521 0,3677 0,3616 0,3768 0,3848 0,3869 0,3932 0,3984 0,4085 0,4172 0,4234
R4 MQ2008 0,4341 0,3461 0,3433 0,3596 0,3863 0,4081 0,4284 0,44 0,4436 0,4478 0,453
R5 MQ2008 0,4371 0,3355 0,3417 0,3622 0,3839 0,4043 0,4253 0,4396 0,4454 0,4493 0,4519
R6 MQ2008 0,4347 0,3439 0,3417 0,3667 0,3847 0,4039 0,4284 0,4397 0,4438 0,4482 0,4504
R4 MQ2007 0,4602 0,3835 0,3932 0,4036 0,4095 0,4136 0,4176 0,418 0,4222 0,4261 0,428
R5 MQ2007 0,4565 0,3776 0,3893 0,3993 0,4065 0,4127 0,4137 0,4149 0,4181 0,4219 0,4269
R6 MQ2007 0,4557 0,3815 0,393 0,4009 0,4056 0,4089 0,4122 0,4128 0,4167 0,4216 0,4269
R7 MQ2008 0,4181 0,3291 0,3274 0,3468 0,3664 0,3848 0,4012 0,4128 0,4231 0,4247 0,4301
R8 MQ2008 0,4193 0,3312 0,3265 0,3446 0,3626 0,3858 0,4012 0,4105 0,4223 0,4249 0,4295
R9 MQ2008 0,419 0,3291 0,3302 0,3485 0,3684 0,3881 0,4059 0,4138 0,4242 0,4264 0,4312
R7 MQ2007 0,4421 0,3854 0,3585 0,3606 0,3734 0,3824 0,389 0,3977 0,4032 0,4076 0,4128
R8 MQ2007 0,4426 0,3786 0,3619 0,365 0,3719 0,3818 0,3869 0,3959 0,4031 0,4109 0,4154
R9 MQ2007 0,4406 0,3815 0,3591 0,3632 0,3701 0,3808 0,3897 0,3949 0,4001 0,4055 0,4103
R10 MQ2008 0,4153 0,3312 0,3347 0,3541 0,3688 0,3853 0,4003 0,4177 0,4247 0,4269 0,4292
R11 MQ2008 0,413 0,3185 0,3295 0,3511 0,366 0,3782 0,4003 0,4109 0,4204 0,4267 0,4319
R12 MQ2008 0,4103 0,2994 0,3058 0,3397 0,3656 0,3802 0,3988 0,4096 0,419 0,4247 0,429
R10 MQ2007 0,4344 0,3677 0,3631 0,3657 0,3704 0,3798 0,3859 0,3926 0,4 0,4029 0,4101
R11 MQ2007 0,4364 0,3609 0,3644 0,3639 0,3724 0,3755 0,3832 0,3907 0,3975 0,4037 0,4113
R12 MQ2007 0,4345 0,3687 0,3617 0,3631 0,3682 0,3797 0,3844 0,3886 0,3966 0,4022 0,4094
R13 MQ2008 0,4372 0,3461 0,3628 0,3765 0,3945 0,4137 0,4335 0,4438 0,449 0,4524 0,456
R14 MQ2008 0,4386 0,3376 0,3567 0,3876 0,4067 0,4242 0,4372 0,4461 0,4499 0,4538 0,4582
R15 MQ2008 0,4121 0,2994 0,3071 0,3452 0,3691 0,3852 0,4076 0,4152 0,4245 0,4272 0,4286
R13 MQ2007 0,462 0,3982 0,3952 0,4027 0,4072 0,4121 0,4153 0,4205 0,4286 0,4331 0,4351
R14 MQ2007 0,4631 0,413 0,4104 0,4079 0,4144 0,4185 0,4195 0,4246 0,4283 0,4338 0,4376
R15 MQ2007 0,4629 0,4002 0,4074 0,3999 0,409 0,4142 0,4156 0,419 0,4263 0,4319 0,4352
6.2 Resultados
55
resultados e obtendo-se as medidas da aplicação das métricas MAP e NDCG até a posição
10, foi possı́vel construir a Tabela 7, em que foi destacado os três casos que obtiveram os
melhores resultados para as métricas MAP e NDCG.
Algoritmo Nı́vel 1 Algoritmo Nı́vel 2 MAP NDCG@1 NDCG@2 NDCG@3 NDCG@4 NDCG@5 NDCG@6 NDCG@7 NDCG@8 NDCG@9 NDCG@10
Todos R1 0,4348 0,3418 0,346 0,3688 0,3938 0,4137 0,4307 0,4416 0,4484 0,4502 0,4535
Todos R2 0,4351 0,3376 0,3432 0,3686 0,3852 0,4078 0,4284 0,4358 0,4399 0,4452 0,4491
Todos R3 0,4312 0,3227 0,3554 0,3794 0,3921 0,4148 0,4265 0,4436 0,4468 0,4523 0,4555
Todos R4 0,4046 0,31 0,3316 0,352 0,3683 0,3844 0,4032 0,4144 0,4259 0,4321 0,436
Todos R5 0,4008 0,31 0,3268 0,3485 0,3633 0,3809 0,3984 0,4135 0,4232 0,4284 0,4337
Todos R6 0,3988 0,3057 0,3234 0,3391 0,3584 0,3827 0,3942 0,4133 0,42 0,4272 0,4307
Todos R10 0,4369 0,3418 0,3555 0,3727 0,3885 0,4097 0,4289 0,4376 0,4456 0,4489 0,455
Todos R11 0,4455 0,3524 0,3657 0,3871 0,4117 0,4318 0,4431 0,4489 0,4538 0,4589 0,4623
Todos R12 0,4434 0,3588 0,3654 0,3846 0,4129 0,4289 0,4435 0,451 0,4558 0,4588 0,4634
Todos R7 0,4461 0,3673 0,3627 0,3761 0,3967 0,4136 0,4361 0,4449 0,4523 0,456 0,458
Todos R8 0,4394 0,3461 0,3623 0,3744 0,3915 0,414 0,4337 0,4458 0,4496 0,452 0,456
Todos R9 0,4439 0,3652 0,3655 0,3824 0,4095 0,4266 0,4425 0,4498 0,456 0,4594 0,463
Todos R13 0,4277 0,3333 0,3651 0,3835 0,4008 0,4199 0,4279 0,4372 0,4445 0,4494 0,4532
Todos R14 0,433 0,3482 0,3629 0,3915 0,4015 0,4201 0,43 0,4394 0,4476 0,4527 0,4557
Todos R15 0,4209 0,3439 0,3621 0,3842 0,3881 0,4084 0,422 0,4339 0,4419 0,4466 0,4499
Todos, exceto RankBoost R1 0,4367 0,3291 0,3458 0,3721 0,3973 0,4162 0,4323 0,4431 0,4483 0,45 0,4542
Todos, exceto RankBoost R2 0,4351 0,3227 0,3489 0,3706 0,3915 0,4118 0,434 0,4391 0,4436 0,4497 0,455
Todos, exceto RankBoost R3 0,431 0,3227 0,3554 0,3794 0,3926 0,4152 0,4259 0,4436 0,4468 0,4523 0,4541
Todos, exceto Random Forests R4 0,4317 0,3418 0,3553 0,3854 0,4031 0,423 0,4333 0,4413 0,4475 0,4521 0,4579
Todos, exceto Random Forests R5 0,4323 0,3312 0,3578 0,388 0,4018 0,4195 0,4305 0,4382 0,4454 0,4491 0,4549
Todos, exceto Random Forests R6 0,4286 0,3291 0,3472 0,3831 0,3946 0,4123 0,428 0,4334 0,4395 0,4454 0,4507
Todos, exceto ListNet R10 0,4351 0,3291 0,3595 0,3863 0,4025 0,4193 0,4341 0,4421 0,4465 0,451 0,4547
Todos, exceto ListNet R11 0,447 0,3652 0,3688 0,3896 0,4126 0,4324 0,4456 0,4532 0,457 0,4606 0,4647
Todos, exceto ListNet R12 0,4393 0,3397 0,3545 0,3787 0,4085 0,4271 0,4409 0,447 0,4494 0,4531 0,4591
Todos, exceto RankNet R7 0,4398 0,3461 0,3642 0,3802 0,3971 0,4144 0,4316 0,443 0,4495 0,4518 0,4556
Todos, exceto RankNet R8 0,4437 0,3524 0,3613 0,3836 0,4078 0,4273 0,4424 0,4491 0,4544 0,4574 0,4625
Todos, exceto RankNet R9 0,4442 0,3694 0,3674 0,3868 0,4078 0,429 0,4433 0,4526 0,4569 0,46 0,463
Todos, exceto LambdaMART R13 0,4251 0,3376 0,3504 0,3656 0,3821 0,3979 0,4227 0,4338 0,4398 0,4436 0,4446
Todos, exceto LambdaMART R14 0,416 0,2972 0,3405 0,3554 0,3706 0,3844 0,401 0,4141 0,4247 0,4344 0,439
Todos, exceto LambdaMART R15 0,4157 0,3185 0,3382 0,3556 0,3703 0,3881 0,4052 0,4225 0,4299 0,435 0,4415
Todos, exceto R1 R1 0,4348 0,3418 0,346 0,3688 0,3938 0,4137 0,4307 0,4416 0,4484 0,4502 0,4535
Todos, exceto R2 R2 0,4353 0,3227 0,3489 0,3706 0,391 0,4118 0,4362 0,4403 0,4437 0,4502 0,4552
Todos, exceto R3 R3 0,4312 0,3227 0,3554 0,3794 0,3921 0,4148 0,4265 0,4436 0,4468 0,4523 0,4555
Todos, exceto R4 R4 0,4056 0,31 0,3287 0,3407 0,367 0,3844 0,404 0,418 0,4207 0,4318 0,4366
Todos, exceto R5 R5 0,4021 0,3079 0,3192 0,348 0,3673 0,3846 0,4013 0,4141 0,4222 0,4289 0,4351
Todos, exceto R6 R6 0,3984 0,2845 0,3169 0,3353 0,3608 0,3803 0,389 0,4116 0,4177 0,4233 0,4279
Todos, exceto R10 R10 0,4399 0,3461 0,356 0,3833 0,4074 0,4276 0,4408 0,447 0,4495 0,4538 0,4582
Todos, exceto R11 R11 0,4385 0,3397 0,3512 0,3783 0,4069 0,4249 0,4398 0,4457 0,4481 0,4522 0,4563
Todos, exceto R12 R12 0,4423 0,3567 0,3594 0,3836 0,4015 0,4244 0,4413 0,4474 0,4559 0,4584 0,4608
Todos, exceto R7 R7 0,4431 0,3609 0,3655 0,382 0,404 0,4251 0,4415 0,4503 0,455 0,4582 0,4611
Todos, exceto R8 R8 0,4437 0,3715 0,3687 0,3841 0,4044 0,4267 0,4433 0,45 0,4563 0,4602 0,4627
Todos, exceto R9 R9 0,4438 0,3609 0,3639 0,3817 0,4077 0,4259 0,4422 0,4502 0,4553 0,4586 0,4613
Todos, exceto R13 R13 0,4425 0,3291 0,3484 0,369 0,3913 0,4131 0,4255 0,4346 0,4393 0,4422 0,4458
Todos, exceto R14 R14 0,4317 0,3439 0,3478 0,3764 0,3849 0,4007 0,4201 0,4331 0,4474 0,452 0,4566
Todos, exceto R15 R15 0,4306 0,3439 0,3698 0,3837 0,4049 0,414 0,4259 0,4375 0,4444 0,4494 0,4505
56
Algoritmo Nı́vel 1 Algoritmo Nı́vel 2 MAP NDCG@1 NDCG@2 NDCG@3 NDCG@4 NDCG@5 NDCG@6 NDCG@7 NDCG@8 NDCG@9 NDCG@10
Todos R1 0,4624 0,4031 0,4069 0,4128 0,4157 0,4153 0,4208 0,4246 0,4277 0,4341 0,4377
Todos R2 0,4569 0,4022 0,397 0,4043 0,406 0,4131 0,4158 0,4174 0,4206 0,4271 0,4307
Todos R3 0,4609 0,411 0,3987 0,4065 0,4079 0,4132 0,4146 0,4159 0,4191 0,4277 0,4329
Todos R4 0,4396 0,3864 0,3779 0,3759 0,3814 0,3845 0,3881 0,3956 0,4022 0,406 0,4116
Todos R5 0,437 0,3756 0,3721 0,3734 0,3761 0,3779 0,3832 0,3909 0,3969 0,4024 0,4075
Todos R6 0,4367 0,3756 0,3701 0,3692 0,3752 0,3794 0,3854 0,3909 0,3982 0,4025 0,4085
Todos R10 0,4646 0,4012 0,4027 0,3994 0,4095 0,4164 0,421 0,4239 0,4304 0,4347 0,4418
Todos R11 0,4645 0,3972 0,4009 0,4003 0,4073 0,4174 0,4229 0,4253 0,4286 0,4342 0,4413
Todos R12 0,4656 0,3972 0,4006 0,3997 0,4074 0,4194 0,4228 0,4261 0,4302 0,434 0,4417
Todos R7 0,4657 0,3953 0,3992 0,3986 0,4075 0,419 0,4237 0,4244 0,4292 0,4342 0,4416
Todos R8 0,4657 0,3943 0,3996 0,3999 0,4072 0,4185 0,4231 0,4248 0,4282 0,4337 0,4408
Todos R9 0,4651 0,4002 0,4032 0,4004 0,4073 0,419 0,4239 0,4251 0,4294 0,4341 0,4417
Todos R13 0,458 0,3992 0,403 0,4109 0,4111 0,4095 0,4103 0,4139 0,4198 0,4283 0,4326
Todos R14 0,4545 0,4041 0,397 0,3971 0,3988 0,3993 0,4051 0,4092 0,4141 0,4187 0,4265
Todos R15 0,4528 0,3825 0,3888 0,3952 0,3976 0,3983 0,4031 0,4067 0,4123 0,4168 0,4228
Todos, exceto RankBoost R1 0,4624 0,4031 0,4069 0,4128 0,4157 0,4153 0,4208 0,4246 0,4277 0,4341 0,4377
Todos, exceto RankBoost R2 0,4569 0,4022 0,397 0,4043 0,406 0,4131 0,4158 0,4174 0,4206 0,4271 0,4307
Todos, exceto RankBoost R3 0,4609 0,411 0,3987 0,4065 0,4079 0,4132 0,4146 0,4159 0,4191 0,4277 0,4329
Todos, exceto Random Forests R4 0,4553 0,409 0,3964 0,3957 0,3956 0,4007 0,4075 0,4081 0,4139 0,4194 0,4261
Todos, exceto Random Forests R5 0,4526 0,4012 0,3941 0,3881 0,3938 0,3994 0,4024 0,4054 0,4116 0,4163 0,4232
Todos, exceto Random Forests R6 0,4515 0,3884 0,3904 0,388 0,3911 0,396 0,4023 0,4045 0,409 0,414 0,4222
Todos, exceto ListNet R10 0,4649 0,3982 0,3998 0,3974 0,408 0,4162 0,4201 0,4243 0,4297 0,4327 0,4399
Todos, exceto ListNet R11 0,4659 0,4002 0,4031 0,4011 0,4078 0,4175 0,4246 0,4267 0,4293 0,4342 0,4423
Todos, exceto ListNet R12 0,4647 0,3982 0,4007 0,3968 0,4065 0,4165 0,4226 0,4252 0,429 0,4327 0,4413
Todos, exceto RankNet R7 0,4659 0,3943 0,4001 0,3999 0,4075 0,4189 0,4239 0,4247 0,4286 0,4338 0,4411
Todos, exceto RankNet R8 0,4655 0,3933 0,3975 0,3994 0,4068 0,4183 0,4227 0,4242 0,4276 0,4334 0,4408
Todos, exceto RankNet R9 0,4659 0,3943 0,4001 0,3999 0,4075 0,4186 0,4237 0,4249 0,4286 0,4338 0,4413
Todos, exceto LambdaMART R13 0,4531 0,3864 0,3847 0,3919 0,4031 0,4074 0,4099 0,4095 0,4121 0,4177 0,4236
Todos, exceto LambdaMART R14 0,4528 0,409 0,3958 0,4003 0,4013 0,4031 0,4048 0,4094 0,4132 0,4204 0,4247
Todos, exceto LambdaMART R15 0,4542 0,41 0,395 0,3952 0,3943 0,399 0,4061 0,4088 0,4153 0,421 0,4268
Todos, exceto R1 R1 0,4624 0,4031 0,4069 0,4128 0,4157 0,4153 0,4208 0,4246 0,4277 0,4341 0,4377
Todos, exceto R2 R2 0,4569 0,4022 0,397 0,4043 0,406 0,4131 0,4158 0,4174 0,4206 0,4271 0,4307
Todos, exceto R3 R3 0,4609 0,411 0,3987 0,4065 0,4079 0,4132 0,4146 0,4159 0,4191 0,4277 0,4329
Todos, exceto R4 R4 0,4388 0,3786 0,3733 0,3685 0,3777 0,3835 0,3896 0,3969 0,4009 0,404 0,4086
Todos, exceto R5 R5 0,4384 0,3736 0,3732 0,3713 0,3781 0,382 0,3869 0,3914 0,3983 0,4064 0,4081
Todos, exceto R6 R6 0,4398 0,3815 0,3727 0,3748 0,3798 0,385 0,392 0,3957 0,4016 0,4055 0,4101
Todos, exceto R10 R10 0,4661 0,4051 0,4009 0,4016 0,4101 0,4186 0,4237 0,426 0,4318 0,434 0,4404
Todos, exceto R11 R11 0,4659 0,4002 0,4031 0,4011 0,4079 0,4183 0,424 0,4271 0,4297 0,4355 0,4428
Todos, exceto R12 R12 0,4654 0,4051 0,4017 0,4026 0,4092 0,4204 0,4238 0,4254 0,4297 0,4342 0,4406
Todos, exceto R7 R7 0,465 0,3972 0,4032 0,4006 0,4068 0,419 0,4239 0,4248 0,4281 0,4338 0,4411
Todos, exceto R8 R8 0,4659 0,3953 0,4003 0,3987 0,4078 0,4187 0,4239 0,4244 0,4293 0,4341 0,4414
Todos, exceto R9 R9 0,4658 0,3943 0,4001 0,3999 0,4073 0,419 0,4233 0,4247 0,4283 0,4337 0,441
Todos, exceto R13 R13 0,458 0,3992 0,403 0,4109 0,4111 0,4095 0,4103 0,4139 0,4198 0,4283 0,4326
Todos, exceto R14 R14 0,4523 0,41 0,4008 0,3951 0,3952 0,4002 0,4055 0,4105 0,4146 0,42 0,4277
Todos, exceto R15 R15 0,4531 0,3884 0,3876 0,3896 0,3911 0,4016 0,4056 0,4072 0,4122 0,4179 0,4229
Comparando-se agora esses resultados com os resultados de uma votação simples para
definir qual documento é o escolhido para cada posição, encontrados na Tabela 9, em que
novamente os três casos que apresentaras os melhores resultados para a métrica MAP e
NDCG foram destacados. No caso da votação simples, o documento que foi apontando
mais vezes para uma certa posição foi escolhido. Assim, verificou-se qual documento teve
mais votos para a primeira posição, segunda posição, etc e escolheu para cada posição
aquele com mais votos.
57
Algoritmo a Combinar Conjunto de Dados MAP NDCG@1 NDCG@2 NDCG@3 NDCG@4 NDCG@5 NDCG@6 NDCG@7 NDCG@8 NDCG@9 NDCG@10
Todos MQ2008 0,4357 0,3397 0,3408 0,3685 0,3883 0,4044 0,425 0,4342 0,4412 0,4428 0,4476
Todos, exceto RankBoost MQ2008 0,4227 0,3291 0,3359 0,3474 0,3708 0,3847 0,4103 0,4179 0,4257 0,4302 0,4345
Todos, exceto Random Forests MQ2008 0,4273 0,3185 0,3264 0,3582 0,3785 0,3889 0,4119 0,4205 0,4302 0,4313 0,4366
Todos, exceto ListNet MQ2008 0,4359 0,3439 0,3426 0,3682 0,3916 0,4086 0,427 0,4347 0,4414 0,4437 0,4491
Todos, exceto RankNet MQ2008 0,4342 0,3418 0,3418 0,3742 0,3933 0,4031 0,4245 0,4369 0,4426 0,4451 0,4477
Todos, exceto LambdaMART MQ2008 0,4283 0,3248 0,3329 0,3587 0,3746 0,3891 0,4081 0,4208 0,4296 0,4329 0,439
Todos, exceto R1 MQ2008 0,4337 0,3397 0,3416 0,3628 0,3874 0,3972 0,4181 0,4291 0,4351 0,4384 0,4429
Todos, exceto R2 MQ2008 0,4293 0,3397 0,3338 0,3603 0,3785 0,392 0,4174 0,4267 0,4334 0,4363 0,4409
Todos, exceto R3 MQ2008 0,4287 0,3397 0,3384 0,3618 0,3796 0,3966 0,4176 0,426 0,4349 0,4365 0,4412
Todos, exceto R4 MQ2008 0,4358 0,3418 0,3425 0,3669 0,3885 0,4011 0,4212 0,4318 0,4411 0,4431 0,4481
Todos, exceto R5 MQ2008 0,4325 0,3397 0,3419 0,3643 0,3839 0,3984 0,4192 0,4287 0,439 0,4409 0,4458
Todos, exceto R6 MQ2008 0,432 0,3397 0,3385 0,3615 0,3871 0,3994 0,4187 0,4292 0,4392 0,4401 0,4456
Todos, exceto R10 MQ2008 0,4353 0,3418 0,3385 0,3666 0,3871 0,4035 0,4248 0,4331 0,44 0,4427 0,4479
Todos, exceto R11 MQ2008 0,4353 0,3418 0,3366 0,3703 0,3879 0,4048 0,4237 0,4328 0,4406 0,4428 0,4484
Todos, exceto R12 MQ2008 0,4379 0,3439 0,3463 0,3742 0,3911 0,4057 0,4273 0,4351 0,4425 0,4443 0,4487
Todos, exceto R7 MQ2008 0,4358 0,3439 0,3379 0,3732 0,3912 0,4025 0,4248 0,4362 0,4413 0,444 0,4485
Todos, exceto R8 MQ2008 0,4374 0,3439 0,3419 0,374 0,392 0,4033 0,4259 0,437 0,4421 0,4446 0,4491
Todos, exceto R9 MQ2008 0,4368 0,3418 0,3406 0,3741 0,3912 0,404 0,4258 0,437 0,4421 0,4443 0,4488
Todos, exceto R13 MQ2008 0,4337 0,3355 0,3386 0,3625 0,3835 0,401 0,4195 0,4289 0,4347 0,4375 0,4434
Todos, exceto R14 MQ2008 0,433 0,3355 0,3378 0,3632 0,3843 0,3964 0,4214 0,4308 0,4379 0,4415 0,4468
Todos, exceto R15 MQ2008 0,4343 0,3418 0,3396 0,3641 0,3833 0,3991 0,4213 0,4304 0,4385 0,4408 0,4465
Todos MQ2007 0,4524 0,3864 0,3779 0,3889 0,3981 0,4055 0,4086 0,4125 0,4177 0,4224 0,4276
Todos, exceto RankBoost MQ2007 0,4529 0,3943 0,3842 0,3875 0,3969 0,4055 0,4105 0,413 0,4175 0,423 0,4277
Todos, exceto Random Forests MQ2007 0,4517 0,3805 0,3698 0,3759 0,385 0,395 0,3993 0,4069 0,4134 0,419 0,426
Todos, exceto ListNet MQ2007 0,4609 0,3854 0,387 0,3985 0,4065 0,413 0,4142 0,4177 0,4217 0,4269 0,4317
Todos, exceto RankNet MQ2007 0,4546 0,3864 0,3899 0,3999 0,4052 0,4084 0,4096 0,4129 0,4177 0,4254 0,4301
Todos, exceto LambdaMART MQ2007 0,45 0,3864 0,3735 0,3848 0,3935 0,3977 0,4017 0,4059 0,4141 0,4182 0,4239
Todos, exceto R1 MQ2007 0,4533 0,3874 0,3776 0,3839 0,395 0,4049 0,4071 0,4123 0,4176 0,4241 0,4288
Todos, exceto R2 MQ2007 0,4545 0,3845 0,38 0,3877 0,3996 0,4069 0,4098 0,4141 0,4197 0,4257 0,4304
Todos, exceto R3 MQ2007 0,455 0,3894 0,3812 0,3871 0,3972 0,4068 0,4107 0,4136 0,4179 0,4241 0,4291
Todos, exceto R4 MQ2007 0,4535 0,3904 0,383 0,3866 0,3933 0,4016 0,4027 0,4098 0,4171 0,4231 0,4296
Todos, exceto R5 MQ2007 0,4557 0,3904 0,384 0,3908 0,3984 0,406 0,409 0,4146 0,4218 0,4268 0,4326
Todos, exceto R6 MQ2007 0,4563 0,3884 0,3823 0,3918 0,3985 0,4065 0,4084 0,4133 0,4201 0,4252 0,4319
Todos, exceto R10 MQ2007 0,4577 0,3854 0,3811 0,3923 0,4017 0,4084 0,4097 0,4142 0,4214 0,4269 0,4309
Todos, exceto R11 MQ2007 0,4579 0,3845 0,3804 0,3916 0,4009 0,4091 0,4123 0,4159 0,4216 0,4266 0,4324
Todos, exceto R12 MQ2007 0,4569 0,3845 0,3815 0,3938 0,4024 0,408 0,4112 0,4142 0,4201 0,4267 0,4306
Todos, exceto R7 MQ2007 0,4562 0,3815 0,3795 0,3893 0,398 0,404 0,4079 0,4128 0,4172 0,4245 0,4318
Todos, exceto R8 MQ2007 0,4555 0,3884 0,3828 0,393 0,4022 0,406 0,4099 0,4144 0,4197 0,4248 0,4289
Todos, exceto R9 MQ2007 0,4552 0,3815 0,3793 0,3891 0,3971 0,4039 0,4062 0,4117 0,4177 0,424 0,431
Todos, exceto R13 MQ2007 0,4538 0,3913 0,3805 0,3885 0,3987 0,4068 0,408 0,4123 0,4185 0,4232 0,4287
Todos, exceto R14 MQ2007 0,4543 0,3884 0,378 0,3889 0,3985 0,4055 0,4089 0,4124 0,4191 0,4237 0,4291
Todos, exceto R15 MQ2007 0,4547 0,3904 0,3797 0,3872 0,3972 0,4035 0,4066 0,4125 0,4188 0,4231 0,4294
Além disso, esses algoritmos se analisados isoladamente, conforme Tabela 6, são os que
apresentam os piores resultados, evidenciando que na arquitetura de Stacking proposta
esses algoritmos apresentaram uma melhoria considerável na qualidade do ranking.
58
Para o conjunto de dados MQ2008, houve um ganho de 1,92% com relação a medida
MAP e um ganho de 1,42% para a medida NDCG se comparadas com o melhor resultado
dos algoritmos individualmente. Se comparados com um método simples de combinação
(votação), existe um ganho de 2,08% para a medida MAP e um ganho de 3,47% para a
medida NDCG.
Já para o conjunto de dados MQ2007, houve um ganho menor da medida MAP,
apenas 0,65% e de 1,19% para a medida NDCG se comparada com o melhor resultado
dos algoritmos individualmente. Se analisados contra a votação simples, a medida MAP
obteve um ganho 1,13% de e a medida NDCG um ganho de 2,36%.
Algoritmo Nı́vel 1 Algoritmo Nı́vel 2 NDCG@1 NDCG@2 NDCG@3 NDCG@4 NDCG@5 NDCG@6 NDCG@7 NDCG@8 NDCG@9 NDCG@10
Todos R12 Resultado 1 0,3588 0,3654 0,3846 0,4129 0,4289 0,4435 0,451 0,4558 0,4588 0,4634
Todos R9 Resultado 2 0,3652 0,3655 0,3824 0,4095 0,4266 0,4425 0,4498 0,456 0,4594 0,463
Todos, exceto ListNet R11 Resultado 3 0,3652 0,3688 0,3896 0,4126 0,4324 0,4456 0,4532 0,457 0,4606 0,4647
Todos, exceto RankNet R9 Resultado 4 0,3694 0,3674 0,3868 0,4078 0,429 0,4433 0,4526 0,4569 0,46 0,463
59
0.46
0.44
0.42
Valor
0.4
0.38 Resultado 1
Resultado 2
0.36 Resultado 3
Resultado 4
0.34 Melhor Algoritmo Isolado
1 2 3 4 5 6 7 8 9 10
NDCG@
Figura 25: Evolução da medida NDCG após stacking para a base de dados MQ2008
Agora verificando a evolução da medida NDCG para a base de dados MQ2007, verifica-
se de acordo com a Figura 26 que o melhor algoritmo isolado de acordo com a Tabela
6 obteve melhor resultado nas primeiras posições enquanto que os melhores algoritmos
construı́dos a partir do stacking da Tabela 8 e sumarizados na Tabela 11 foram obter uma
melhor medida NDCG apenas nas últimas posições.
Algoritmo Nı́vel 1 Algoritmo Nı́vel 2 NDCG@1 NDCG@2 NDCG@3 NDCG@4 NDCG@5 NDCG@6 NDCG@7 NDCG@8 NDCG@9 NDCG@10
Todos R10 Resultado 1 0,4012 0,4027 0,3994 0,4095 0,4164 0,421 0,4239 0,4304 0,4347 0,4418
Todos, exceto ListNet R11 Resultado 2 0,4002 0,4031 0,4011 0,4078 0,4175 0,4246 0,4267 0,4293 0,4342 0,4423
Todos, exceto R11 R11 Resultado 3 0,4002 0,4031 0,4011 0,4079 0,4183 0,424 0,4271 0,4297 0,4355 0,4428
60
0.44
0.43
Valor
0.42
0.41 Resultado 1
Resultado 2
Resultado 3
0.4 Melhor Algoritmo Isolado
1 2 3 4 5 6 7 8 9 10
NDCG@
Figura 26: Evolução da medida NDCG após stacking para a base de dados MQ2007
61
7 Conclusão
O principal resultado dessa pesquisa foi mostrar que a técnica de Ensemble conhecida
por Stacking pode melhorar, mesmo que pouco em alguns cenários, as medidas obtidas
com as métricas NDCG e MAP dos modelos Learning to Rank. Além disso, mostrou-se
como aplicar a técnica de Stacking para esses algoritmos, que é através dos valores de
saı́da que cada um deles apresentam quando treinados. Por fim, evidenciou que essa
técnica é superior se comparada com técnicas simples de combinação, como votação por
exemplo.
Logo, sempre que necessário ter-se um algoritmo de Learning to Rank com uma alta
qualidade de ranking de acordo com as métricas NDCG e MAP, pode-se utilizar Stacking.
Caso a melhora das métricas ocorra nas primeiras posições, cenário similar ao apresentado
com o conjunto de treinamento MQ2008, pode-se usar esse algoritmo obtido através de
Stacking em um sistema de recomendação de produtos, em que os usuários desejam ter
acesso rapidamente aos produtos que te interessam. Ou ainda, se a melhora ocorrer pela
posição 10, o que aconteceu para o conjunto de treinamento MQ2007, pode ser aplicado em
um sistema de recuperação de informação, em que o usuário está acostumado a procurar
em uma primeira página de busca, e que normalmente contém por volta de 10 a 15
documentos.
Essa pesquisa apresentou pontos que podem encaminhar alguns trabalhos futuros:
• Entender o motivo das Redes Neurais serem os algoritmos que obtiveram melhor
resultado para rankers de Nı́vel 2.
62
Referências Bibliográficas
BRIN, S.; PAGE, L. The anatomy of a large-scale hypertextual web search engine.
Computer networks and ISDN systems, Elsevier, v. 30, n. 1, p. 107–117, 1998.
BURGES, C. et al. Learning to rank using gradient descent. In: ACM. Proceedings of
the 22nd international conference on Machine learning. [S.l.], 2005. p. 89–96.
63
BURGES, C. J. From ranknet to lambdarank to lambdamart: An overview. Learning,
v. 11, n. 23-581, p. 81, 2010.
BURGES, C. J.; RAGNO, R.; LE, Q. V. Learning to rank with nonsmooth cost
functions. In: NIPS. [S.l.: s.n.], 2006. v. 6, p. 193–200.
CAMPOS, R. et al. Stacking bagged and boosted forests for effective automated
classification. In: ACM. Proceedings of the 40th International ACM SIGIR Conference
on Research and Development in Information Retrieval. [S.l.], 2017. p. 105–114.
CAO, Z. et al. Learning to rank: from pairwise approach to listwise approach. In: ACM.
Proceedings of the 24th international conference on Machine learning. [S.l.], 2007. p.
129–136.
CRAMMER, K.; SINGER, Y. et al. Pranking with ranking. In: Nips. [S.l.: s.n.], 2001.
v. 14, p. 641–647.
64
FERREIRA, F. R. S. Avaliação da qualidade do uso de wavelets para recuperação,
classificação e agrupamento da informação textual. Tese (Doutorado) — Universidade
Federal do Rio de Janeiro, 2011.
FREUND, Y.; SCHAPIRE, R. E. et al. Experiments with a new boosting algorithm. In:
Icml. [S.l.: s.n.], 1996. v. 96, p. 148–156.
JOACHIMS, T.; RADLINSKI, F. Search engines that learn from implicit feedback.
IEEE Computer, v. 40, n. 8, p. 34–40, 2007.
65
KANAAN, G. et al. Comparison between ad-hoc retrieval and filtering retrieval using
arabic documents. International Journal of Computer Processing of Oriental Languages,
World Scientific, v. 17, n. 03, p. 181–199, 2004.
KOREN, Y. The bellkor solution to the netflix grand prize. Netflix prize documentation,
v. 81, p. 1–10, 2009.
LE, T.-D. B. et al. A learning-to-rank based fault localization approach using likely
invariants. In: ACM. Proceedings of the 25th International Symposium on Software
Testing and Analysis. [S.l.], 2016. p. 177–188.
LI, H. Learning to rank for information retrieval and natural language processing.
Synthesis Lectures on Human Language Technologies, Morgan & Claypool Publishers,
v. 7, n. 3, p. 1–121, 2014.
LIU, T.-Y. Learning to rank for information retrieval. [S.l.]: Springer Science & Business
Media, 2011.
LIU, T.-Y. et al. Learning to rank for information retrieval. Foundations and Trends R
in Information Retrieval, Now Publishers, Inc., v. 3, n. 3, p. 225–331, 2009.
LIU, T.-Y. et al. Letor: Benchmark dataset for research on learning to rank for
information retrieval. In: Proceedings of SIGIR 2007 workshop on learning to rank for
information retrieval. [S.l.: s.n.], 2007. p. 3–10.
66
MARTINS, B.; CALADO, P. Learning to rank for geographic information retrieval. In:
ACM. Proceedings of the 6th Workshop on Geographic Information Retrieval. [S.l.], 2010.
p. 21.
QIN, T.; LIU, T.-Y. Introducing letor 4.0 datasets. arXiv preprint arXiv:1306.2597,
2013.
67
ROBERTSON, S. E.; JONES, K. S. Relevance weighting of search terms. Journal of the
American Society for Information science, Wiley Online Library, v. 27, n. 3, p. 129–146,
1976.
SALTON, G.; WONG, A.; YANG, C.-S. A vector space model for automatic indexing.
Communications of the ACM, ACM, v. 18, n. 11, p. 613–620, 1975.
SHASHUA, A.; LEVIN, A. Ranking with large margin principle: Two approaches.
Advances in neural information processing systems, MIT; 1998, p. 961–968, 2003.
SHI, Z.; KEUNG, J.; SONG, Q. An empirical study of bm25 and bm25f based feature
location techniques. In: ACM. Proceedings of the International Workshop on Innovative
Software Development Methodologies and Practices. [S.l.], 2014. p. 106–114.
68
TAKAO, E. L. Análise comparativa dos modelos e sistemas probabilı́sticos em recuperação
de informação em bases textuais. Dissertação (Mestrado) — Universidade Federal de
Santa Catarina, Florianópolis, SC, 2001.
WANG, Y. et al. A theoretical analysis of ndcg type ranking measures. arXiv preprint
arXiv:1304.6480, 2013.
WESTON, J.; YEE, H.; WEISS, R. J. Learning to rank recommendations with the
k-order statistic loss. In: ACM. Proceedings of the 7th ACM conference on Recommender
systems. [S.l.], 2013. p. 245–248.
ZHOU, Z.-H. Ensemble methods: foundations and algorithms. [S.l.]: CRC press, 2012.
69