Você está na página 1de 80

UNIVERSIDADE PRESBITERIANA MACKENZIE

PROGRAMA DE PÓS-GRADUAÇÃO EM
ENGENHARIA ELÉTRICA E COMPUTAÇÃO

Bruno Mendonça Paris

Learning to Rank: Combinação de algoritmos


aplicando stacking e análise dos resultados

São Paulo
2017
UNIVERSIDADE PRESBITERIANA MACKENZIE
PROGRAMA DE PÓS-GRADUAÇÃO EM
ENGENHARIA ELÉTRICA E COMPUTAÇÃO

Bruno Mendonça Paris

Learning to Rank: Combinação de algoritmos


aplicando stacking e análise dos resultados

Dissertação de Mestrado apresentada ao Pro-


grama de Pós-Graduação em Engenharia Elétrica
e Computação da Universidade Presbiteriana
Mackenzie como requisito para a obtenção do
tı́tulo de Mestre na área de Engenharia de Com-
putação.

Orientador: Prof. Dr. Nizam Omar

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

Dissertação (Engenharia Elétrica e Computação) - Universidade Presbiteriana


Mackenzie, São Paulo, 2017.
Orientador: Nizam Omar
Bibliografia: f. 63-69

1. Recuperação de informação 2. Ranking 3. Learning to Rank 4. Stacking

CDD 006.6

Bibliotecário Responsável: Maria Gabriela Brandi Teixeira – CRB 8/ 6339


AGRADECIMENTOS

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

Com o crescimento da quantidade de informação disponı́vel nos últimos anos, a qual


irá continuar crescendo devido ao aumento de usuários, dispositivos e informações com-
partilhadas pela internet, acessar a informação desejada deve ser feita de uma maneira
rápida a fim de não se gastar muito tempo procurando o que se deseja. Uma busca em
buscadores como Google, Yahoo, Bing espera-se que os primeiros resultados tragam a in-
formação desejada. Uma área que tem o objetivo de trazer os documentos relevantes para
o usuário é conhecida por Recuperação de Informação e pode ser auxiliada por algoritmos
Learning to Rank, que aplica aprendizagem de máquina para tentar trazer os documentos
importantes aos usuários na melhor ordenação possı́vel. Esse trabalho visa verificar uma
maneira de obter uma ordenação ainda melhor de documentos, empregando uma técnica
de combinar algoritmos conhecida por Stacking. Para isso será utilizada a ferramenta
RankLib, parte de um projeto conhecido por Lemur, desenvolvida na linguagem Java,
que contém diversos algoritmos Learning to Rank, e o conjuntos de dados provenientes de
uma base mantida pela Microsoft Research Group conhecida por LETOR.

Palavras-chave: recuperação de informação, ranking, Learning to Rank, stacking

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.

key-words: information retrieval, ranking, Learning to Rank, stacking

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

3 Avaliando Sistemas de Recuperação de Informação 18


3.1 Precisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Cobertura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3 Medida F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 Precisão em n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5 Média dos Valores da Precisão Média . . . . . . . . . . . . . . . . . . . . . 21
3.6 Mean Reciprocal Rank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.7 Normalized Discounted Cumulative Gain . . . . . . . . . . . . . . . . . . . 23
3.8 Acurácia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

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

A quantidade de informação disponı́vel pela WEB e ambientes privados de empresas


vêm aumentando, seja em forma de documento textual, áudio ou imagens, acontecendo
o mesmo para o número de usuários de computadores, impusionados pelas diferentes
tecnologias e aparelhos disponı́veis. Uma pesquisa realizada pela empresa DOMO, informa
que a cada minuto 2.5 milhões de pessoas compartilham conteúdo, 277 mil tweets são
enviados e 200 milhões de e-mails são trocados, ilustrados na Figura 1 (JAMES, 2014).
Somente em 2012, o Google recebeu em média 2 milhões de consultas por dia. Dois
anos depois, esse valor que duplicou (JAMES, 2014). Em 2013, por exemplo, o Google
processou 20 petabytes de informação por dia (GUNELIUS, 2013).

Figura 1: Aumento da quantidade de informação disponı́vel (JAMES, 2014)

Em meio à grande quantidade de informações disponı́veis, encontrar os documentos


desejados não é uma tarefa fácil, mas que pode ser ajudado se os documentos estiverem
ranqueados de acordo com sua relevância ou importância perante à consulta. Essa tarefa
de ranking acontece em diversas aplicações, como motores de busca na área de recuperação
de informação, em sistemas de recomendação (sugestões de produtos similares em sites de
comércio eletrônico ou ainda sugestões de filmes/seriados em aplicativos de streaming).

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

As informações apresentadas anteriormente evidenciam três pontos importantes que


motivam a pesquisa.

Primeiramente, a quantidade de informação atualmente disponı́vel evidencia que é


necessário estudar e elaborar cada vez técnicas melhores para encontrar o dado necessário.

2
Se isso não for feito, ficará cada vez mais difı́cil encontrar a informação por mais que ela
exista.

Além disso, pode-se apontar também a quantidade de informação existente dentro


das empresas. Os funcionários realizam buscas (enterprise search) nas empresas em que
trabalham, seja no website interno ou externo, a fim de encontrar um texto em formato
eletrônico desejado, o qual pode ser um e-mail, documento, banco de dados ou outra
informação (HAWKING, 2004). Assim como o Google ajuda a encontrar informações pela
Web, a existência de buscadores internamente se faz necessário. Uma pesquisa realizada
pela Feldman e Sherman (2011) aponta que o fato de não encontrar a informação desejada
pode acarretar o seguinte dentro de uma empresa:

• Decisões mal executadas devido à informação errada encontrada;

• Duplicação de esforços devido a diferentes equipes não encontrarem a informação


desejada e estarem trabalhando para realizar a mesma tarefa;

• Perda de vendas devido aos clientes não encontrarem a informação desejada sobre
o produto ou serviço oferecido;

• Perda de produtividade devido aos funcionários não encontrarem rapidamente a


informação desejada na intranet e recorrerem a outros meios para encontrá-la;

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.

Em terceiro lugar, algoritmos de aprendizagem de máquina famosos de diversas áreas


utilizam métodos de Ensemble para obter melhor capacidade de predição como é o caso
do LambaMART, a ser apresentado na Subseção 5.5.2. Assim, para Learning to Rank
não seria diferente e conhecer os resultados de combinar diferentes algoritmos, no caso
utilizando stacking, pode ser importante para o caso de uso a ser aplicado.

Portanto, esses tópicos Learning to Rank e Stacking evidenciam a extrema relevância


dessa tema atual para o cotidiano de usuários comuns e que será aprofundado nessa
dissertação.

1.2 Objetivo

O objetivo dessa pesquisa consiste em realizar um mapeamento do campo teórico


sobre a área de conhecimento de Learning to Rank e seus algoritmos. Não obstante,
deseja-se também verificar se a técnica de Ensemble conhecida por Stacking, se aplicada a
esses algoritmos, pode ocasionar uma melhoria na qualidade do ranking dos documentos
retornados. Para isso serão analisadas duas medidas (NDCG e MAP) de cada algoritmo
individualmente e, na sequência, verificar se essas medidas obterão uma melhoria através
da combinação de modelos individuais (Ensemble). Essas métricas são utilizadas quando
se deseja analisar a qualidade de um ranking obtido através de um algoritmo, desde
quando existem documentos com relevâncias diferentes até quando estes não possuem
distinção, sendo considerados apenas relevantes a uma consulta ou não. Dessa maneira,
será possı́vel identificar futuros campos de pesquisa ou restrições a respeito desse assunto.

4
1.3 Organização do trabalho

No Capı́tulo 2 será abordado a fundo o tema de Recuperação de Informação, conceitos


primordiais e os primeiros tipos, porém ainda usados, de sistemas de Recuperação de
Informação. Por fim, é detalhado também o conceito de relevância, no que se diz respeito
a saber o que é um documento relevante perante a uma consulta, ou seja, aquilo que deve
ser priorizado.

No Capı́tulo 3 é abordado as diferentes maneiras de se avaliar um algoritmo de Recu-


peração de Informação, a fim de que seja possı́vel entender quando um algoritmo possui
melhor performance que outro durante a sessão de Experimentos.

No Capı́tulo 4 serão abordados os diferentes métodos de combinar algoritmos (En-


semble), tais como bagging, boosting e stacking. Esse conhecimento é necessário pois no
próximo capı́tulo tem-se algoritmos que utilizam essas técnicas e durante o Capı́tulo 5
serão realizados experimentos acerca do método stacking.

No Capı́tulo 5 é abordado a fundo o tema de Learning to Rank, os três diferentes tipos


de algoritmos (Pointwise, Pairwise e Listwise) e também o conceito de features, que pode
ser resumido com as caracterı́sticas que são importantes dentro de um texto a fim de que
o algoritmo seja capaz de encontrar documentos relevantes perante a uma certa consulta
e também a ranqueá-los da maneira correta ao apresentar o resultado.

No Capı́tulo 6 serão realizados alguns experimentos a fim de alcançar o objetivo apre-


sentado previamente. Para isso, foram utilizados dois conjuntos de dados famosos da
área de Learning to Rank, conhecido por LETOR. Esses conjuntos são disponibilizados
para que a comunidade cientı́fica possa testar diferentes algoritmos e comparar os resulta-
dos. Além do mais, cinco diferentes algoritmos de diferentes tipos (pointwise, pairwise e
listwise) foram selecionados para que possam ser combinados utilizando stacking em que,
para cada um dos testes a serem realizados, um diferente algoritmo irá receber os dados
do resultado dos outros algoritmos. Assim, será possı́vel descobrir se esse tipo de En-
semble irá ocasionar um algoritmo com melhor performance do que algoritmos analisados
separadamente.

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

Neste Capı́tulo serão apresentados conceitos formais de Recuperação da Informação,


quando surgiu e como evoluiu desde então, abordando os principais modelos clássicos
existente a fim de permitir o usuário encontrar a informação desejada.

Segundo Baeza-Yates e Ribeiro-Neto (1999), o homem vem organizando informações


há muito tempo segundo a fim de poder encontrá-las quando necessário. Criar ı́ndices é
uma técnica antiga porém ainda muito utilizada, podendo ser encontrada em livros ou
em empresas para localizar clientes ou pacientes. As bibliotecas por exemplo utilizam um
sistema muito similar, dado que um grande ı́ndice existe com os nomes de livros e seus
respectivos autores (BAEZA-YATES; RIBEIRO-NETO, 1999).

O termo Recuperação da Informação (RI) surgiu quando Mooers (1951) o definiu:


.”Recuperação de Informação é o nome do processo onde um possı́vel usuário de in-
formação pode converter a sua necessidade de informação em uma lista real de citações
de documentos armazenados que contenham informações úteis a ele...”.

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).

Durante uma consulta a um Sistema de Recuperação de Informação (SRI) a fim de


encontrar um documento pertinente a um problema do usuário, pode-se dizer que os
seguintes passos ocorrerão:

• 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;

• Os documentos relevantes serão retornados ordenados por relevância, ou seja, aque-


les que possuem maior similaridade com a consulta serão retornados primeiro;

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).

A área da Recuperação de Informação tem como objetivo principal localizar docu-


mentos em alguma base de informação, tendo como entrada uma consulta ou texto do
usuário. Os documentos serão recuperados e retornados ao usuário na melhor ordem
possı́vel a fim de que o mesmo facilmente encontre a informação que está procurando,
conforme ilustrado no processo da Figura 2.

Figura 2: Processo durante a Recuperação de Informação (TAKAO, 2001) p.12

Os modelos, segundo Baeza-Yates e Ribeiro-Neto (1999), para RI são compostos por


4 partes D, Q, F, R(q,d):

• D são as representações dos documentos que existem no Sistema de Recuperação de


Informação;

• Q são as consultas ou representações para aquilo que o usuário necessita;

• F é um Sistema de modelagem das representações dos documentos, perguntas e


relacionamentos;

• 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.

Para Baeza-Yates e Ribeiro-Neto (1999), a tarefa do usuário em buscar a informação


desejada pode ser dividida em dois grandes grupos. O primeiro, conhecido por Navegação,
consiste quando não se tem uma consulta especı́fica ao sistema, porém ocorrerá uma
exploração da base de documentos, seja um diretório, sem nenhuma organização, ou
quando se tem hierarquias que dividem os documentos.

O segundo é conhecido por Recuperação e pode ser subdividido em Ad-Hoc e Filtra-


gem. No tipo de sistema em que os documentos são estáticos (quase estáticos) e as queries
(consultas) variam bastante é nomeado Recuperação Ad-Hoc. Ou seja, os usuários vão
interagir com o Sistema de Recuperação de Informação, realizando consultas a fim de
encontrar a informação desejada, em que isso é o que acontece com os sistemas de busca
da Web, por exemplo (KANAAN et al., 2004). Já nos sistemas em que os documentos
variam, em constante adição ou remoção, e as queries (consultas) são estáticas é o que
se chama de Filtragem (TAKAO, 2001), cujo exemplo é o mercado de ações, devido às
grandes variações de dados durante o dia e as consultas fixas (KANAAN et al., 2004).

2.1 Modelos Clássicos

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.

2.1.1 Modelo Booleano

É um modelo simples e com objetivo bem definido, tornando-o de ampla utilização


pelos Sistemas de Recuperação de Informação e baseado na Teoria dos Conjuntos e na
Álgebra de Boole (KURAMOTO, 2002).

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.

Figura 3: Comportamento do modelo Booleano (BARTH, 2013) p.250

Formalmente, segundo Takao (2001), a similaridade nesse modelo está relacionada


ao documento conter a expressão lógica da consulta, sendo considerado assim relevante.
Caso a expressão lógica da consulta não aconteça no documento, este não será considerado
relevante.

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.

2.1.2 Modelo Vetorial

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

Tabela 1: Representação do documento em forma de Vetor

Essa transformação de um documento (texto) para vetor acontece usualmente em 4


etapas (BARION; LAGO, 2015):

• 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.

Figura 4: Remoção de Stop-Words (PASSARIN, 2005) p.22

• Stemming: As palavras do textos serão reduzidas por uma transformação léxica


com o objetivo de encontrar o radical da palavra, em que serão removidos sufixos,
prefixos e normalizadas para o singular. Isso ajudará com que palavras distintas,
porém de significado semelhante (mesma raiz), sejam consideradas iguais durante a
representação do documento em vetor. Nota-se assim que esse processo é dependente
do idioma dos documentos, uma vez que cada lı́ngua trata diferente prefixos, plural,
etc. Como exemplo dessa etapa, mostra-se na Figura 5 o processo de Stemming.

Figura 5: Exemplo de Stemming (PASSARIN, 2005) p.23

• Thesaurus: Representam-se dicionários, acrônimos, abreviações que são relaciona-


dos a um certo domı́nio e aplicados aos documentos em análise com o objetivo de

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):

• Indicação binária: 1 caso ocorra a palavra no documento e 0 caso não ocorra

• Frequência absoluta: normalmente denominada como term frequency (tf) e medida


como a quantidade de vezes que a palavra aparece no documento.

• Frequência relativa: calculado pela divisão entre a frequência absoluta (tf) e o


número de palavras naquele documento.

• TFIDF: também conhecida como term frequency-inverse document frequency, é cal-


culada pela Equação 1, onde ftd é a frequência do termo t no documento d, N é o
número total de documentos e nt é o número de documentos contendo a palavra t:

N
T F IDF = ftd × log( ) (1)
nt

Tendo uma representação vetorial para o documento d e para a consulta q utilizando


as 4 etapas anteriores, é possı́vel então realizar uma busca e identificar os documentos

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).

Figura 6: Ângulo θ formado pela representação vetorial do documento e da consulta


(FERREIRA, 2011) p.23

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:

• : → · → é o produto escalar entre os dois vetores


d q

• : → × → é o produto das distâncias Euclidianas dos dois vetores


d q

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).

2.1.3 Modelo Probabilı́stico

Modelo baseado na Teoria das Probabilidades, inicialmente encontrado em Robertson


(1977) e Robertson e Jones (1976), onde se assume que exista um grupo de documentos
perfeito R que deva ser recuperado para cada consulta q possı́vel.

Segundo Baeza-Yates e Ribeiro-Neto (1999), dado uma consulta (query) e um do-


cumento (d ) existente, esse modelo irá estimar a probabilidade do usuário encontrar o
documento desejado. Essa probabilidade depende somente da consulta e da representação
dos documentos, muitas vezes similares à representação explicada anteriormente.

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, dada uma consulta q e os possı́veis documentos, quando o usuário selecionar


alguns desses documentos, a consulta assim como documentos serão submetidos nova-
mente, a fim de melhorar o resultado. Esse processo é conhecido como Relevance Feedback
e atribui uma relevância baseada em probabilidade (SILVA et al., 2013).

Através do Princı́pio da Ordenação Probabilı́stica, os termos que ocorrem no grupo


de documentos R podem ajudar a encontrar outros documentos relevantes. Esse princı́pio
nos diz que a distribuição dos termos na coleção pode informar a relevância provável de
um documento na consulta (BAEZA-YATES; RIBEIRO-NETO, 1999).

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 )

Existem diversas abordagens para calcular as probabilidades acima mencionadas (AL-


MEIDA, 2007), e uma delas é a métrica BM25, que vem sendo bem sucedida ao ser usada

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.

Assim é possı́vel ordenar os documentos recuperados para uma certa consulta de um


usuário, uma vez que se tem a probabilidade de cada documento ser relevante (BARTH,
2013).

2.2 O Conceito Relevância para Recuperação de Informação

Relevância é o ponto principal nos Sistemas de Recuperação de Informação. O obje-


tivo principal é criar técnicas artificiais que sejam capazes de oferecer ao usuário docu-
mentos pertinentes à sua busca ordenados da melhor forma possı́vel. Essa ordenação é
baseada no ranking que cada documento possui com relação a uma certa query e é objeto
de estudo dessa dissertação (SILVA et al., 2013).

Segundo Mizzaro (1997) muitos pesquisadores estudaram o assunto da relevância,


sendo que é possı́vel citar 3 dos primeiros estudos que ajudaram a entender melhor esse
conceito:

• 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;

• Cuadra (1967) e Cuadra e Katter (1967): encontra 38 variáveis que influenciam a


relevância apontada para documentos, questionando assim a relevância apontada
por humanos;

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.

A primeira seriam os recursos da informação, que possui três partes constituintes:

15
• Documento: entidade fı́sica que o usuário vai obter do sistema;

• Representação: representação do documento, em que pode conter tı́tulo, autor,


bibliografia e outras informação;

• Informação: entidade (não fı́sica) que o usuário recebe e cria quando lendo o docu-
mento;

A segunda dimensão está relacionada com a representação do problema do usuário.


Esse está necessitando de alguma informação e precisa informar ao sistema de Recu-
peração de Informação essa necessidade. Assim, pode-se definir RIR (Real Informação
Requisitada) como sendo a informação que o usuário está precisando. Essa informação
será traduzida ou representada na mente do usuário de uma outra forma, em que se de-
fine outro termo ICR (Informação Compreendida Requisitada). Na sequência, o usuário
irá expressar o ICR em linguagem natural, uma requisição, e por fim realizar uma con-
sulta (conjunto de termos, expressões booleanas) junto ao Sistema de Recuperação de
Informação.

Essa dimensão retrata a dificuldade do usuário em colocar através de palavras o seu


problema, uma vez que podem existir diversas maneiras de expressá-lo os quais nem
sempre trarão os documentos que procura.

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:

• Tópico: assunto de pesquisa do usuário;

• Tarefa: o que o usuário vai fazer com os documentos recuperados;

• 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

Neste Capı́tulo serão apresentadas quais são as maneiras existentes de se analisar


um algoritmo de Recuperação de Informação a fim de verificar se ele está retornando as
informações procuradas pelo usuário, ou seja, se o conjunto de documentos retornado é
relevante ou não para o usuário. O foco nesse caso não é uma resposta exata, mas sim em
verificar se os melhores documentos (mais relacionados a consulta) estão sempre sendo
retornados (BAEZA-YATES; RIBEIRO-NETO, 1999).

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;

• Documento: possı́veis documentos a serem recuperados, podendo estar indexados


por partes (tı́tulo, autor) ou como um texto longo apenas;

• Relevância: grau de relevância de um documento perante uma certa consulta, obtido


conforme um dos dois métodos a serem apresentados na Seção 5.1;

Consulta Documento Relevância


c1 Documento1 1
c1 Documento2 2
c1 Documento3 1
c2 Documento5 0
c2 Documento8 0
c2 Documento19 1

Tabela 2: Coleções de Teste para Algoritmos de Recuperação de Informação

3.1 Precisão

Precisão (precision em inglês) está relacionado com a quantidade de documentos que


foram recuperados corretamente, ou seja, que são relevantes, para uma certa consulta

18
(BAEZA-YATES; RIBEIRO-NETO, 1999).

Formalmente, pode-se definir segundo a Equação 4:

T
n(relevantes recuperados)
P recisao = (4)
n(recuperados)

Exemplificando o cálculo, considera-se que para uma certa consulta, temos:

• documentos recuperados: d1, d2, d3, d4, d5 (ou seja, 5 documentos)

• documentos relevantes para a consulta: d1, d2 e d6

• documentos relevantes e recuperados para a consulta: d1, d2

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

Cobertura (recall em inglês) está relacionado com a quantidade de documentos rele-


vantes recuperados tendo em vista todos documentos relevantes para uma certa consulta
(BAEZA-YATES; RIBEIRO-NETO, 1999).

Formalmente, pode-se definir de acordo com a Equação 5:

T
n(relevantes recuperados)
cobertura = (5)
n(relevantes)

Utilizando o mesmo exemplo de consulta da seção anterior, a cobertura seria de


66,67%, pois recuperou-se 2 documentos relevantes dentre os 3 documentos relevantes
possı́veis. A relação entre os conceitos Precisão e Cobertura pode ser visualizada pela
Figura 7.

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

Segundo a definição de Barth (2013), a Precisão em n (P@n) mede a relevância dos


n primeiros documentos em uma lista ordenada, em que n é o número de documentos
retornados e r é o número de documentos retornados relevantes até a posição 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.

Posição Documento Relevante?


1 sim
2 sim
3 não
4 não
5 sim

Tabela 3: Documentos relevantes de acordo com a posição

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

Tabela 4: Valores da Precisão em n

3.5 Média dos Valores da Precisão Média

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

Tendo-se como base a Tabela 4, com valores de Precisão em n, o valor de AP seria:

(1 × 1) + (1 × 1) + (2/3 × 0) + (2/4 × 0) + (3/5 × 1)


AP = = 0.86
3

Assim, a MAP seria a média dos AP considerando-se todas as consultas realizadas.


Logo, se tivermos 5 consultas, em que a AP de cada uma é {0.9, 0.8, 0.8, 0.5, 0.7}, a
MAP seria:

0.9 + 0.8 + 0.8 + 0.5 + 0.7


M AP = = 0.74
5

3.6 Mean Reciprocal Rank

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.

Sendo N o número total de consultas realizadas, pi a posição correta do documento


(rank ) para a consulta i, a medida MRR é definida como a média do inverso do rank para
todas as consultas realizadas (BURGES; RAGNO; LE, 2006), conforme Equação 9 :

PN 1
i=1 pi
M RR = (9)
N
22
Tenha como base a Tabela 5:

Consulta Resultado Ordenado Documento Correto Posição Correta Reciprocal Rank


c1 doc1 , doc2 doc1 1 1
c2 doc1 , doc2 doc2 2 1/2
c3 doc1 , doc2 , doc3 doc3 3 1/3

Tabela 5: Documentos e Informações para o cálculo do MRR

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

3.7 Normalized Discounted Cumulative Gain

A medida NDCG (Normalized Discounted Cumulative Gain) é uma medida utilizada


quando existem diferentes graus de relevância para os documentos retornados de uma
certa consulta. É o caso em que para uma consulta existiriam documentos com grau de
relevância 0 (nada relacionado com a consulta), 1 (pouco relacionando com a consulta),
2 (relevante à consulta) e 3 (muito relevante à consulta) (BARTH, 2013).

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).

Dada uma lista de documentos retornados de uma consulta, documentos os quais


estão ordenados por grau de relevância, é claro que os seguintes pontos são verdadeiros e
considerados para o cálculo do NDCG (JÄRVELIN; KEKÄLÄINEN, 2002):

• 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.

A primeira consiste em apresentar o Ganho Acumulado (CG). Essa medida é calculada


como a soma das relevâncias desde a posição 1 até a posição atual para todas as posições
do vetor. Considere o seguinte vetor G, que consiste dos documentos retornados para
uma certa consulta, em que o valor para cada posição é o grau de relevância, sendo 0 o
menor valor e 3 o maior possı́vel (JÄRVELIN; KEKÄLÄINEN, 2002):

G = { 3, 2, 3, 0, 0, 1, 2, 2, 3, 0, ... }

Formalmente, CG é definido recursivamente de acordo com a Equação 10, onde G[i]


é o grau de relevância para a posição i (JÄRVELIN; KEKÄLÄINEN, 2002):


G[i],

se i = 1
CG[i] = (10)
CG[i − 1] + G[i] se i > 1

Para o vetor G apresentado anteriormente e considerando-se a Equação 10, terı́amos


o Ganho Acumulado (CG) sendo:

CG = { 3, 5, 8, 8, 8, 9, 11, 13, 16, 16, ... }

A segunda etapa garante o que foi mencionando anteriormente ao informar que os


documentos mais pro fim da lista serão menos importantes. Para isso, uma função que irá
progressivamente diminuir a importância é necessário e será apresentada ao calcular-se o
Ganho Acumulado Descontado (DCG). Sendo b a base do logaritmo, DCG é calculado
recursivamente(JÄRVELIN; KEKÄLÄINEN, 2002) pela Equação 11:


CG[i],

se i < b
DCG[i] = (11)
DCG[i − 1] + G[i]/ log i se i ≥ b

b

Utilizando o vetor G apresentado anteriormente e tendo-se a base do logaritmo b =


2, pode-se obter o Ganho Acumulado Descontado sendo:

24
DCG = { 3, 5, 6.89, 6.89, 6.89, 7.28, 7.99, 8.66, 9.61, 9.61, ... }

Por fim, é possı́vel agora calcular-se o Ganho Acumulado Descontado Normalizado


(NDCG). Tendo-se um vetor I, chamado de Ideal, contendo uma lista de documentos dado
uma certa consulta ordenada da melhor maneira através do grau de relevância, é possı́vel
calcular o DCGi = { i1 , i2 , i3 , i4 , i5 ... }. Tendo-se também os valores de DCG calculados
através dos documentos recuperados e representados como DCGr = { r1 , r2 , r3 , r4 , r5 ...
}, a medida NDCG pode ser calculada dividindo-se cada posição de DCGr por DCGi ,
de acordo com a Equação 12 (JÄRVELIN; KEKÄLÄINEN, 2002):

N DCG = {i1 /r1 , i2 /r2 , i3 /r3 , ...} (12)

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

A acurácia é uma medida muito comum em algoritmos de aprendizagem de máquina,


que consiste em calcular a razão entre a quantidade de predições corretas sobre todas
as predições realizadas. Contudo, por mais que a tarefa da área de Recuperação de
Informação possa ser vista como um problema de classificação de duas classes (relevante
e não relevante), essa não é uma medida muito apropriada para esse cenário.

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.

Algoritmos de aprendizagem de máquina têm como objetivo serem capazes de repre-


sentar pontos do espaço vetorial, representados pelo vetor x, e uma certa classe y, através
de uma função f, tal que y = f(x). Assim, deve-se encontrar uma função h que seja o
mais próximo possı́vel da função y. Porém encontrar essa função h não é uma tarefa fácil
e pode sofrer de dois problemas. O primeiro é o fato da possibilidade de existir muitos
dados de treinamento (x) e consequentemente a função h pode funcionar corretamente
somente para uma parte desse conjunto de dados, ou seja, a função varia com diferentes
dados de treinamento. Um algoritmo que possui esse comportamento é conhecido por ter
alta variância. O segundo problema está relacionado a como estimar a função h, uma vez
que certos algoritmos tendem a fazer alguma suposição sobre como criá-la e, algoritmos
que possuem muitas suposições são conhecidos por terem um alto viés. A fim de tentar
ajudar a combater esses dois problemas, é possı́vel combinar algoritmos utilizando uma
técnica conhecida por Ensemble (DIETTERICH, 2002).

O termo Ensemble consiste em criar um modelo de aprendizagem de máquina (um


classificador por exemplo) que irá combinar as predições de outros modelos. Espera-se
que o resultado desse modelo combinado possua uma melhor capacidade de predição, ou
seja, que possa por exemplo identificar mais classes corretas em um teste do que qualquer
modelo individual que foi utilizado (OPITZ; MACLIN, 1999).

Diversos estudos realizados como, por exemplo o do Hansen e Salamon (1990) ou


Hashem (1997), apontam que um bom Ensemble é aquele em que cada um dos modelos
individuais possui capacidade de predição correta ou comete erros em diferentes partes
do conjunto de treinamento. Com isso, o modelo combinado será capaz de unir os pontos
fortes de cada algoritmo.

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.

O algoritmo consiste em criar diversos modelos utilizando uma amostra aleatória do


conjunto de treinamento de tamanho N. Assim, cada modelo será criado utilizando N
amostras desse conjunto, porém pode ter-se elementos repetidos e logo alguns faltantes.
Tenha-se, por exemplo, o seguinte conjunto de treinamento disponı́vel: 1,2,3,4,5,6,7 e 8.
Na Figura 9 verifica-se com qual conjunto de treinamento cada modelo seria treinado.

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.

Figura 9: Processo de amostragem do conjunto de treinamento para Bagging (OPITZ;


MACLIN, 1999) p.173

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.

Figura 11: Processo de amostragem do conjunto de treinamento para Boosting (OPITZ;


MACLIN, 1999) p.173

Para visualizar a superfı́cie de separação de um conjunto de dados utilizando Boosting,


tem-se a Figura 12b, em que combina classificadores fracos (Figura 12c), e demonstra ter
uma capacidade maior de separação entre as duas classes existentes do que a Figura 12a,
que possui apenas um modelo para tentar separar os dados.

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.

Deve-se treinar todos os modelos de Nı́vel 1 utilizando o conjunto de dados de trei-


namento inicial e utilizar a saı́da desses modelos como entrada para o modelo de Nı́vel
2, sendo que o valor esperado, ou classe esperada se for um modelo de classificação, é a
mesma dos dados iniciais, processo esse ilustrado na Figura 13. É recomendável que os
algoritmos do Nı́vel 1 sejam de diferentes tipos, como Redes Neurais, Random Forest, etc,
garantindo uma variedade de resultados na predição desses modelos (ZHOU, 2012).

30
Figura 13: Stacking de modelos de aprendizagem

Uma outra maneira de realizar o Stacking consiste em dividir o conjunto de dados de


treinamento em duas partes diferentes, em que a primeira parte é utilizada para treinar
os modelos de Nı́vel 1 e a segunda parte para testá-los, sendo que o resultado desse teste
será utilizado para gerar o conjunto de treinamento para o modelo de Nı́vel 2 (SEWELL,
2008).

Pode-se ainda separar o conjunto de treinamento realizando uma validação cruzada


de k pastas, em que se deve dividir aleatoriamente esse conjunto em k partes, D1 , ...., Dk .
Seja então D(j) o conjunto de teste e D(−j) o conjunto de treinamento para cada uma das
pastas. Para cada um dos modelos do Nı́vel 1 então será utilizado os dados D(−j) para
treinamento e os dados D(j) para teste, o qual produzirá novos dados de treinamento a
serem utilizados para o modelo de Nı́vel 2. Deve-se lembrar que após os novos dados serem
gerados, os modelos do Nı́vel 1 são criados novamente, agora utilizando todo conjunto de
treinamento disponı́vel (ZHOU, 2012).

31
5 Learning to Rank

Nesse Capı́tulo é apresentado um campo de estudo conhecido por Learning to Rank


que pode ser aplicado em diversas áreas tais como de Recuperação de Informação, Proces-
samento de Linguagem Natural (PLN) e Mineração de Dados, cujas aplicações práticas
podem ser os Sistemas de Recuperação de Informação, Filtro Colaborativo (do inglês col-
laborative filtering), sistemas de perguntas e respostas, traduções automáticas e outros.
Diferentemente dos modelos clássicos, esses algoritmos empregam técnicas de Aprendi-
zagem de Máquina e Inteligência Artificial, a fim de serem capazes de retornar os docu-
mentos em uma ordenação melhor e fazer com que o usuário encontre mais facilmente a
informação desejada.

Os Sistemas de Recuperação de Informação possuem ciência de todos documentos


e, dado uma certa consulta que recebe, este irá retornar os documentos que acredita
serem relevantes, encontrados através da verificação das palavras da consulta nos docu-
mentos. Antes de retornar os documentos, o sistema ordena os mesmos através de uma
função de ranking f(q,d), em que q é a consulta e d é o documento, conforme Figura 14.
Normalmente essa função de ranking é criada sem envolver técnicas de aprendizagem de
máquina, usando a métrica BM25, explicada na Seção 5.2, ou ainda a distância vetorial
entre o documento e a consulta (distância do cosseno) (HANG, 2011).

Figura 14: Processo utilizado na Recuperação de Informação Tradicional (HANG, 2011)


p.1854

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

Algoritmos Learning to Rank são criados através de técnicas de aprendizagem de


máquina supervisionada, ou seja, os dados a serem utilizados na fase de treinamento
possuem a resposta esperada (KOTSIANTIS; ZAHARAKIS; PINTELAS, 2007). Logo,
entender o processo de treinamento é importante a fim de compreender os algoritmos e
seus tipos que serão apresentados em breve.

Primeiramente é importante entender o conjunto de treinamento que é utilizado, o


qual consiste de documentos e consultas, sendo que, para cada uma das consultas exis-
tentes, são selecionados os documentos pertinentes e estes associados a um grau de quão
relevantes são perante a consulta em questão.

Um outro conceito importante é o vetor de caracterı́sticas. Esse vetor x é obtido


através de uma função φ, a qual recebe como entrada um par de documento-consulta
(q,d). Assim, dado um documento d e uma consulta q, essa função irá obter um vetor
de caracterı́sticas que representam esse par documento-consulta. Essas caracterı́sticas
costumam ser a medida BM25, PageRank, TFIDF e serão explicadas na Seção 5.2 (LIU
et al., 2009).

Assim, formalmente definido Learning to Rank tem-se o seguinte:

• Seja Q o conjunto de consultas q1 ,q2 , ...., qm

• 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

Com essas definições, o conjunto de dados de treinamento para um algoritmo de

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

Ser capaz de combinar um grande número de caracterı́sticas para obter um ranking


ótimo de objetos é um grande avanço do método de Learning to Rank e essencial para os
grandes buscadores existentes, já que para representar corretamente os pares documento-
consulta é impossı́vel através de apenas poucas caracterı́sticas (LIU et al., 2009).

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.

O primeiro método consiste em analisar os registros de interações entre os usuários


e os Sistemas de Recuperação de Informação, em que serão gravados todas as consul-
tas realizadas assim como os documentos retornados. Posteriormente, esses pares de
consulta-documentos serão analisados por um humano que avaliará o quão relevante um
certo documento é perante a consulta a ele associado. Essa relevância definida pode
ser desde um indicador booleano quanto um grau de relevância de nı́veis, como perfeito,
excelente, bom, médio, ruim. Um exemplo é para uma pesquisa pelo termo ”Universi-
dade Mackenzie”, em que a página da universidade seria retornada e receberia grau de
relevância como excelente. Ou ainda a página da Universidade no Wikipedia que poderia
receber nota bom. Toda essa análise pode ser feita por mais de um humano, em que a
nota final de um documento pode ser definida por aquela que possuiu mais votos. Dessa
maneira, cria-se uma grande quantidade de pares consulta-documento e seus graus de
relevância e que podem ser usados para o treinamento do algoritmo Learning to Rank.

O segundo método consiste em automaticamente descobrir o relacionamento entre


documentos e consultas inspecionando os registros de interações entre os usuários e o SRI,
capturando assim os cliques dos usuários, uma vez que ao clicar em alguns dos documentos
retornados, suas ações implicitamente indicam uma relevância. Por exemplo, ao clicar no
segundo link e não no primeiro, indica uma relevância maior do segundo documento em
relação ao primeiro perante a consulta efetuada. Dessa maneira um grande conjunto de
treinamento pode ser criado rapidamente inspecionando os logs do sistema.

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.

Os algoritmos de Learning to Rank basicamente são divididos em três grupos (pointwise,


pairwise e listwise) e que serão explorados nas próximas seções.

5.2 Features (Caracterı́sticas)

As features (caracterı́sticas) que são extraı́das do par documento-consulta fazem parte,


conforme mencionado na seção anterior, dos dados de entrada para o processo de apren-
dizagem de máquina. Como o foco dessa dissertação é a aplicação do método para Recu-
peração de Informação, abaixo tem-se uma explicação das principais caracterı́sticas que
são extraı́das usualmente para esse caso.

Primeiramente, existe um grupo de caracterı́sticas, como a frequência do termo (tf ),


frequência relativa, conforme apresentado na Subseção 2.1.2, tamanho do documento (dl )
e suas combinações (tfidf ). Esses valores podem ainda ser aplicados a diferente partes de
um documento. Por exemplo, se o documento tiver URLs, tı́tulo indexado ou ainda texto
nas partes do documento que contém links (anchor ), todas as caracterı́sticas mencionadas
anteriormente podem ser também aplicadas a esses campos (LIU et al., 2007).

Existe um outro grupo de caracterı́stica, como a métrica BM25 e LMIR, também


aplicados a todas estrutura do documento (URL, tı́tulo, corpo e texto dos links). Dado

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 )

Tem-se que | D | é o comprimento do documento em palavras, avgdl é a média dos


comprimentos de todos documentos da base, k1 controla o ajuste para a frequência dos
termos e b controla o ajuste para o comprimento do documento (SHI; KEUNG; SONG,
2014).

Outro grupo de caracterı́sticas está relacionado quando os documentos possuem hy-


perlinks, acontecendo mais quando se trata de Recuperação de Informação para Web.
As caracterı́sticas desse grupo incluem métricas como PageRank, HITS e suas variações
(HostRank, topical PageRank e topic HITS). (LIU et al., 2007)

A métrica PageRank é uma medida que indica a importância de um documento den-


tro de um SRI, avaliando citações e links para um certo documento A, sendo calculada
conforme a Equação 14, onde (BARTH, 2013):

• T1,2,...,n são documentos que contêm links para o documento A

• C(T) é o número de links de T para outros documentos

• 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

P R(T1 ) P R(T2 ) P R(Tn )


P R(A) = (1 − d) + d( + + ... + ) (14)
C(T1 ) C(T2 ) C(Tn )

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.

Em Martins e Calado (2010) é explorado o uso de técnicas Learning to Rank quando se


deseja recuperar documentos textuais de acordo com relevância para critérios geográficos.
Para esse caso, caracterı́sticas como a área geográfica do escopo documento ou a área
geográfica de escopo da informação requisitada é necessária. Já em Cheng e Baldi (2006)
pode-se notar que todas caracterı́sticas extraı́das que vão ser utilizadas para treinar uma
máquina a fim de reconhecer o enrolamento de proteı́nas são especı́ficas ao tema, fugindo
das caracterı́sticas usuais para documentos.

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

Existem três técnicas de aprendizagem de máquina para resolver o problema de Le-


arning to Rank pointwise: regressão, classificação e regressão ordinal.

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

são os documentos associados a uma certa consulta q e y = {yj }m


j=1 são as relevâncias

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:

L(f ; xj , yj ) = (yi − f (xj ))2 (15)

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.

Figura 17: Função de perda quadrática (LIU, 2011) p.34

Um exemplo é o algoritmo Random Forests criado por Breiman (2001) e explicado


no Algoritmo 1. Este recebe como entrada um conjunto D de pares documento-consulta
(xi ,ri ), em que xi é um vetor de caracterı́sticas de dimensão f e ri é a relevância associada.
Como output existirá uma função T(.) que visa predizer a relevância de um par consulta-
documento, em que T(xi ) é aproximadamente ri .

O algoritmo irá criar árvores de decisão a M amostras do conjunto D e depois realizar


uma média para decidir o resultado final. Para essas árvores de decisão serão consideradas
K caracterı́sticas de todas f possı́veis. Esse processo repete-se M vezes para no fim realizar-
se uma média. Uma das possibilidades de criação dessa árvore de decisão é utilizar um
algoritmo chamado Multiple Additive Regression Trees (FRIEDMAN, 2002).

Somente dois parâmetros normalmente precisam ser configuráveis, em que M nor-


malmente é um número grande (10000) e K usualmente é 10% da quantidade f de ca-
racterı́sticas. Um dos benefı́cios desse método é reduzir o overfitting e o fato de ser
paralelizável, uma vez que cada árvore pode ser criada independentemente.

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

Pode-se transformar o problema de ranking em um problema de classificação com o


uso de aprendizagem de máquina e para isso um possı́vel método a ser utilizado é com
SVMs (Support Vector Machines).

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

5.3.3 Regressão Ordinal

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).

Fazem parte desse grupo de algoritmos pointwise o Perceptron-Based Ranking, também


conhecido como Pranking (CRAMMER; SINGER et al., 2001), e um algoritmo que tenta
adaptar o SVM mostrado anterior para ser capaz de considerar os thresholds entre cada
uma das possı́veis classes (SHASHUA; LEVIN, 2003).

42
5.4 Pairwise

O algoritmo pairwise procura criar o conjunto de treinamento de uma maneira di-


ferente do método mostrado anteriormente. Enquanto que no algoritmo pointwise uma
relevância era encontrada para cada um dos documentos da base de treinamento, nesse
caso, o objetivo é encontrar relações de importância entre documentos (prioridades) para
uma certa consulta q existente e assim treinar um modelo de aprendizagem de máquina.

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.

Figura 19: Abordagem Pairwise

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.

Cij = C(oij ) = −P̄ij log Pij − (1 − P̄ij ) log (1 − Pij ) (17)

sendo que:

• Pij é a probabilidade do documento xi ser mais importante que o xj

• P̄ij valor esperado para essa probabilidade

• 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

RankBoost é um algoritmo criado por Freund et al. (2003) baseado na técnica de


Ensemble conhecida por boosting, em que através da criação de vários weak learners
(no caso de Learning to Rank, são weak rankers), será capaz de identificar corretamente
o documento mais importante dado um certo par de documento (xi , xj ) perante um
consulta q.

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

Diferente do método pointwise, em que retorna relevâncias especı́ficas para cada um


dos documentos, e do método pairwise, em que retorna relevância relativa entre dois
documentos, o método listwise retorna os documentos já ordenados da melhor forma
perante uma certa consulta q, conforme ilustrado pela Figura 20.

Figura 20: Abordagem 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).

Ao criar-se a função de ranking f, essa será capaz de associar um grau de relevância


z para cada um dos documentos. O objetivo do treinamento é minimizar uma função de
custo com relação aos k dados de treinamento, conforme Equação 20 (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.

Para atingir esse objetivo, a função de probabilidade utilizada na Equação 21 é base-


ada na Probabilidade Top K, conforme equação 22, em que j1 , j2 , ..., jk são os documentos
a serem ranqueados, lk é uma coleção de K documentos e sjt é a relevância do documento
j na posição t.

k
Y exp(sj )
Ps (lk (j1 , j2 , ..., jk )) = Pt t (22)
t=1 i=1 sjt

5.5.2 LambdaMART

Algoritmo explicado em Wu et al. (2010) que combina dois algoritmos conhecidos


dentro da área de Learning to Rank : MART (BURGES et al., 2005) e LambdaRank
(BURGES; RAGNO; LE, 2006).

MART (Multiple Additive Regression Trees) é um algoritmo pointwise, que combina


múltiplas árvores de decisão e emprega técnicas de boosting, visando encontrar vários
rankers fracos e combiná-los para poder encontrar o modelo final. Diferentemente do
algoritmo de Random Forests, MART emprega todo conjunto de treinamento e todo os
atributos.

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.

Assim, LambdaMART surgiu ao juntar-se a idéia de aplicar gradientes para minimizar


uma métrica de Recuperação de informação (no caso NDCG, mas que poderia ser qualquer
outra) trocando-se a posição de pares de documentos de uma lista ranqueada produzida

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

Os algoritmos que serão utilizados no processo de Stacking encontram-se disponı́veis


na ferramenta Ranklib 1 , a qual implementa na linguagem Java os mais famosos algoritmos
de Learning to Rank. De acordo com a Seção 4.3, deve-se escolher algoritmos variados e,
por esse motivo, os cinco seguintes foram escolhidos:

• Random Forests: algoritmo pointwise baseado em regressão

• RankNet: algoritmo pairwise utilizando Redes Neurais

• RankBoost: algoritmo pairwise utilizando técnicas de boosting

• ListNet: algoritmo listwise utilizando Redes Neurais

• LambdaMART: algoritmo listwise que combina o algoritmo MART e LambdaRank

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).

Assim sendo, durante os experimentos foram combinados 15 diferentes modelos gera-


dos a partir dos algoritmos acima, os quais foram chamados de rankers R1 , ...R15 até o
fim desse Capı́tulo, conforme a configuração abaixo descrita:

• R1 :RankBoost com configuração nIteration=300 e threshold=10

• R2 : RankBoost com configuração nIteration=330 e threshold=8

• R3 : RankBoost com configuração nIteration=270 e threshold=12

• R4 : Random Forests com configuração nBag=300 e featureRate=0,3

• R5 : Random Forests com configuração nBag=330 e featureRate=0,4

• R6 : Random Forests com configuração nBag=270 e featureRate=0,5

• R7 : RankNet com configuração nEpoch=100 e nNodes=10

• R8 : RankNet com configuração nEpoch=150 e nNodes=10

• R9 : RankNet com configuração nEpoch=150 e nNodes=15

• R10 : ListNet com configuração nEpoch=1500 e learningRate=0,00001

• R11 : ListNet com configuração nEpoch=2000 e learningRate=0,00001

• R12 : ListNet com configuração nEpoch=2000 e learningRate=0,001

• R13 : LambdaMART com configuração nTrees=1000 e nLeaves=10

• R14 : LambdaMART com configuração nTrees=1000 e nLeaves=20

• R15 : LambdaMART com configuração nTrees=1000 e nLeaves=25

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.

Os dados estão divididos em conjunto de treinamento, testes e validação. Cada linha


é composta por um par consulta-documento. A primeira coluna de cada linha é o grau de
relevância, a segunda coluna o ID da consulta e as colunas restantes as 46 caracterı́sticas
extraı́das, que podem ser as métricas TF, IDF, TFIDF, BM25 e outras, conforme apre-
sentadas na Seção 5.2 (QIN; LIU, 2013).

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

Para realizar o treinamento de um algoritmo de Learning to Rank, espera-se como


entrada um arquivo no formato da Figura 22, formato esse utilizado pela base LETOR.
Esse arquivo consiste basicamente de três partes.

A primeira é o Grau de Relevância que indica o quão relevante o documento é para


a consulta em questão e, quanto maior o número, mais relevante o documento é. A
segunda parte consiste de um identificador único para cada consulta, ou seja, serve para
informar perante a qual consulta os documentos estão sendo ranqueados. Assim, pode-se
associar diversos documentos para uma mesma consulta, para que o modelo tenha mais
exemplos do que é um documento relevante e não relevante para uma consulta. A terceira
parte é composta pela representação vetorial de um documento, consistindo do vetor de
caracterı́sticas, conforme apresentado na Seção 5.2.

52
Figura 22: Formato do arquivo de treinamento do algoritmo L2R

Sabendo desse formato de arquivo e do processo de stacking, os modelos de Nı́vel 1 da


Figura 21 precisarão ser treinados com um arquivo no mesmo formato ao da Figura 22.
Logo, o objetivo é obter um novo vetor de caracterı́sticas a partir da saı́da dos rankers de
Nı́vel 1 e assim treinar um novo algoritmo de Learning to Rank, conforme Figura 23. É
importante reforçar que a mudança ocorre apenas nos vetores de caracterı́sticas, enquanto
as outras colunas permanecem com o mesmo valor.

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.

Figura 24: Novo vetor de caracterı́sticas para o ranker de Nı́vel 2

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

Tabela 6: Resultados base dos algoritmos Learning to Rank

6.2 Resultados

O primeiro experimento consistiu em avaliar 45 combinações para o conjunto de treina-


mento MQ2008 segundo a arquitetura de Stacking proposta na Figura 21. Anotando-se os

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

Tabela 7: Resultados do Stacking para o conjunto de treinamento MQ2008

Realizando-se as mesmas combinações e obtendo-se as mesmas medidas correspon-


dentes às métricas MAP e NDCG, porém agora para o conjunto de treinamento MQ2007,
foi possı́vel construir a Tabela 8.

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

Tabela 8: Resultados do Stacking para o conjunto de treinamento MQ2007

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

Tabela 9: Resultados utilizando votação para combinar os algoritmos

Comparando os melhores resultados da Tabela 9, foi constatado que com o Stacking o


resultado foi superior para os dois conjuntos de dados, tanto o MQ2007 quanto o MQ2008.

Verificou-se também que os algoritmos que melhor apresentaram resultados, tanto


para a métrica MAP quanto NDCG, foram aqueles baseados em Redes Neurais para
ambos conjuntos de dados: RankNet (R7 , R8 , R9 ) e ListNet (R10 , R11 , R12 ).

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%.

Analisando o quanto os valores da métrica NDCG evoluı́ram desde a posição 1 até a


posição 10 para a base de dados MQ2008, verifica-se de acordo com a Figura 25 que os 4
melhores algoritmos destacados na Tabela 7 e sumarizados na Tabela 10, após o processo
de stacking apresentaram uma melhor medida NDCG durante quase todas posições se
comparado com o melhor algoritmo isolado da Tabela 6, porém um ganho mais notável
nas primeiras posições, indicando que em geral os documentos retornados na primeira e
segunda posição foram melhor selecionados.

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

Tabela 10: Melhores resultados do Stacking para o conjunto de treinamento MQ2008

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

Tabela 11: Melhores resultados do Stacking para o conjunto de treinamento MQ2007

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.

7.1 Trabalhos Futuros

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.

• Estender a combinação de algoritmos Learning to Rank utilizando Stacking para


outros tipos de algoritmos, como por exemplo SVM (Support Vector Machines).

• Verificar se os mesmos resultados acontecem quando essa técnica é aplicada para


conjunto de dados voltados à outra área como, por exemplo, de filtro colaborativo.

62
Referências Bibliográficas

AGICHTEIN, E.; BRILL, E.; DUMAIS, S. Improving web search ranking by


incorporating user behavior information. In: ACM. Proceedings of the 29th annual
international ACM SIGIR conference on Research and development in information
retrieval. [S.l.], 2006. p. 19–26.

ALCÂNTARA, O. D. et al. Wcl2r: a benchmark collection for learning to rank research


with clickthrough data. 2010.

ALMEIDA, H. Uma abordagem de componentes combinados para a geração de funções


de ordenação usando programação genética. Tese (Doutorado) — Master’s thesis,
Departamento de Ciência da Computação, Universidade Federal de Minas Gerais, 2007.

AMATRIAIN, X. Mining large streams of user data for personalized recommendations.


ACM SIGKDD Explorations Newsletter, ACM, v. 14, n. 2, p. 37–48, 2013.

BAEZA-YATES, R.; RIBEIRO-NETO, B. Modern information retrieval. [S.l.]: ACM


press New York, 1999.

BARION, E. C. N.; LAGO, D. Mineração de textos. Revista de Ciências Exatas e


Tecnologia, v. 3, n. 3, p. 123–140, 2015.

BARTH, F. J. Uma introdução ao tema recuperação de informações textuais. Revista de


Informática Teórica e Aplicada, v. 20, n. 2, p. 247–272, 2013.

BREIMAN, L. Bagging predictors. Machine learning, Springer, v. 24, n. 2, p. 123–140,


1996.

BREIMAN, L. Random forests. Machine learning, Springer, v. 45, n. 1, p. 5–32, 2001.

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.

BÜCHLMANN, P.; YU, B. Analyzing bagging. Annals of Statistics, JSTOR, p. 927–961,


2002.

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.

CHENG, J.; BALDI, P. A machine learning information retrieval approach to protein


fold recognition. Bioinformatics, Oxford Univ Press, v. 22, n. 12, p. 1456–1463, 2006.

COSSOCK, D.; ZHANG, T. Subset ranking using regression. In: SPRINGER.


International Conference on Computational Learning Theory. [S.l.], 2006. p. 605–619.

CRAMMER, K.; SINGER, Y. et al. Pranking with ranking. In: Nips. [S.l.: s.n.], 2001.
v. 14, p. 641–647.

CUADRA, C. A. Experimental Studies of Relevance Judgments. Final Report [by Carlos


A. Cuadra and Others]. [S.l.]: System Development Corporation, 1967.

CUADRA, C. A.; KATTER, R. V. Opening the black box of ‘relevance’. Journal of


Documentation, MCB UP Ltd, v. 23, n. 4, p. 291–303, 1967.

DEHGHANI, M. et al. Learning to combine sources of evidence for indexing political


texts. PDF hosted at the Radboud Repository of the Radboud University Nijmegen, p. 24,
2015.

DIETTERICH, T. G. Ensemble learning. The handbook of brain theory and neural


networks, MIT Press: Cambridge, MA, v. 2, p. 110–125, 2002.

FELDMAN, S.; SHERMAN, C. The High Cost of Not Finding In-


formation. 2011. Disponı́vel em: <http://www.ejitime.com/materials-
/IDC%20on%20The%20High%20Cost%20Of%20Not%20Finding%20Information.pdf>.

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. et al. An efficient boosting algorithm for combining preferences. Journal


of machine learning research, v. 4, n. Nov, p. 933–969, 2003.

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.

FRIEDMAN, J. H. Stochastic gradient boosting. Computational Statistics & Data


Analysis, Elsevier, v. 38, n. 4, p. 367–378, 2002.

GUNELIUS, S. The Amazing Growth of Google – Infographic. 2013. Disponı́vel em:


<https://aci.info/2013/12/26/the-amazing-growth-of-google-infographic/>.

HANG, L. A short introduction to learning to rank. IEICE TRANSACTIONS on


Information and Systems, The Institute of Electronics, Information and Communication
Engineers, v. 94, n. 10, p. 1854–1862, 2011.

HANSEN, L. K.; SALAMON, P. Neural network ensembles. IEEE transactions on


pattern analysis and machine intelligence, IEEE, v. 12, n. 10, p. 993–1001, 1990.

HASHEM, S. Optimal linear combinations of neural networks. Neural networks, Elsevier,


v. 10, n. 4, p. 599–614, 1997.

HAWKING, D. Challenges in enterprise search. In: AUSTRALIAN COMPUTER


SOCIETY, INC. Proceedings of the 15th Australasian database conference-Volume 27.
[S.l.], 2004. p. 15–24.

JAMES, J. Data Never Sleeps 2.0. 2014. Disponı́vel em: <https://www.domo.com/blog-


/data-never-sleeps-2-0/>.

JÄRVELIN, K.; KEKÄLÄINEN, J. Cumulated gain-based evaluation of ir techniques.


ACM Transactions on Information Systems (TOIS), ACM, v. 20, n. 4, p. 422–446, 2002.

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.

KLEINBERG, J. M. Authoritative sources in a hyperlinked environment. Journal of the


ACM (JACM), ACM, v. 46, n. 5, p. 604–632, 1999.

KOREN, Y. The bellkor solution to the netflix grand prize. Netflix prize documentation,
v. 81, p. 1–10, 2009.

KOTSIANTIS, S. B.; ZAHARAKIS, I.; PINTELAS, P. Supervised machine learning: A


review of classification techniques. 2007.

KURAMOTO, H. Sintagmas nominais: uma nova proposta para a recuperação de


informação. IASI, 2002.

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.

MANNING, C. D. et al. Introduction to information retrieval. [S.l.]: Cambridge


university press Cambridge, 2008.

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.

MATSUBARA, E. T.; MARTINS, C. A.; MONARD, M. C. Pretext: Uma ferramenta


para pré-processamento de textos utilizando a abordagem bag-of-words. Techinical
Report, v. 209, 2003.

MIZZARO, S. Relevance: The whole history. JASIS, v. 48, n. 9, p. 810–832, 1997.

MIZZARO, S. How many relevances in information retrieval? Interacting with computers,


Oxford University Press, v. 10, n. 3, p. 303–320, 1998.

MOOERS, C. N. Zatocoding applied to mechanical organization of knowledge. Journal


of the Association for Information Science and Technology, Wiley Online Library, v. 2,
n. 1, p. 20–32, 1951.

MORAIS, E. A. M.; AMBRóSIO, A. P. L. Mineração de textos. Relatório Técnico–


Instituto de Informática (UFG), 2007.

OPITZ, D. W.; MACLIN, R. Popular ensemble methods: An empirical study. J. Artif.


Intell. Res.(JAIR), v. 11, p. 169–198, 1999.

PASSARIN, D. Text mining no aperfeiçoamento de consultas e definição de contextos de


uma central de notı́cias baseada em rss. Centro Universitário Luterano de Palmas-Brasil,
2005.

QIN, T.; LIU, T.-Y. Introducing letor 4.0 datasets. arXiv preprint arXiv:1306.2597,
2013.

REES, A. M.; SCHULTZ, D. G. A field experimental approach to the study of relevance


assessments in relation to document searching. final report to the national science
foundation. volume i. ERIC, 1967.

ROBERTSON, S. E. The probability ranking principle in IR. Journal of documentation,


MCB UP Ltd, v. 33, n. 4, p. 294–304, 1977.

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.

ROBERTSON, S. E.; WALKER, S. Okapi/keenbow at trec-8. In: TREC. [S.l.: s.n.],


1999. v. 8, p. 151–162.

ROBERTSON, S. E. et al. Okapi at trec-3. Nist Special Publication Sp, NATIONAL


INSTIUTE OF STANDARDS & TECHNOLOGY, v. 109, p. 109, 1995.

RONCERO, V. G. Classificação semi-supervisionada de textos em ambientes distribuı́dos.


Tese (Doutorado) — Universidade Federal do Rio de Janeiro, 2010.

SALTON, G. The smart retrieval system—experiments in automatic document


processing. Prentice-Hall, Inc., 1971.

SALTON, G.; LESK, M. E. Computer evaluation of indexing and text processing.


Journal of the ACM (JACM), ACM, v. 15, n. 1, p. 8–36, 1968.

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.

SCHAPIRE, R. E. The strength of weak learnability. Machine learning, Springer, v. 5,


n. 2, p. 197–227, 1990.

SEWELL, M. Ensemble learning. RN, v. 11, n. 02, 2008.

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.

SILL, J. et al. Feature-weighted linear stacking. arXiv preprint arXiv:0911.0460, 2009.

SILVA, R. E. d. et al. Modelos de recuperação de informação e web semântica: a questão


da relevância. Informação & Informação, p. 27–44, 2013.

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.

VECHTOMOVA, O. Introduction to Information Retrieval. Christopher D. Manning,


Prabhakar Raghavan, and Hinrich Schütze (Stanford University, Yahoo! Research, and
University of Stuttgart) Cambridge: Cambridge University Press, 2008, xxi+ 482 pp;
hardbound, ISBN 978-0-521-86571-5. [S.l.]: MIT Press, 2009.

VICKERY, B. C. The structure of information retrieval systems. In: Proceedings of the


International Conference on Scientific Information. [S.l.: s.n.], 1959. v. 2, p. 1275–1290.

VICKERY, B. C. Subject analysis for information retrieval. In: Proceedings of the


International Conference on Scientific Information. [S.l.: s.n.], 1959. v. 2, p. 855–865.

WANG, J. et al. A survey on learning to hash. arXiv preprint arXiv:1606.00185, 2016.

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.

WOLPERT, D. H. Stacked generalization. Neural networks, Elsevier, v. 5, n. 2, p.


241–259, 1992.

WU, Q. et al. Adapting boosting for information retrieval measures. Information


Retrieval, Springer, v. 13, n. 3, p. 254–270, 2010.

ZHOU, Z.-H. Ensemble methods: foundations and algorithms. [S.l.]: CRC press, 2012.

69

Você também pode gostar