UNIVERSIDADE FEDERAL
DE
PERNAMBUCO
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
CENTRO DE INFORMÁTICA
SISTEMAS DE RECOMENDAÇÃO POR FILTRAGEM COLABORATIVA
BASEADA EM SIMILARIDADES LOCAIS E GLOBAIS
PROJETO DE PESQUISA DE PÓS-GRADUAÇÃO
POR
ANDRÉ RICARDO SCHÄFFER LOPES
Recife, Março de 2012
UNIVERSIDADE FEDERAL DE PERNAMBUCO
CENTRO DE INFORMÁTICA
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
ANDRÉ RICARDO SCHÄFFER LOPES
“SISTEMAS DE RECOMENDAÇÃO POR FILTRAGEM COLABORATIVA
BASEADA EM SIMILARIDADES LOCAIS E GLOBAIS”
ESTE TRABALHO FOI APRESENTADO À PÓS-GRADUAÇÃO DO
CENTRO DE INFORMÁTICA DA UNIVERSIDADE FEDERAL DE
PERNAMBUCO COMO REQUISITO DO PROGRAMA SAAP 2012.1.
ORIENTADOR(A): PROF. RICARDO BASTOS CAVALCANTE PRUDÊNCIO
RECIFE, MARÇO/2012
Sumário
1. Justificativa .................................................................................................................................. 1
2. Revisão de Literatura ................................................................................................................... 3
2.1 Sistemas de recomendação baseados em conteúdo ............................................................... 3
2.2 Sistemas de recomendação por filtragem colaborativa ......................................................... 4
2.2.1 Técnicas Model-Based .................................................................................................... 5
2.2.2 Técnicas Memory-Based ................................................................................................. 5
2.2.3 Esparsidade ...................................................................................................................... 6
3. Planos de ação ........................................................................................................................... 11
3.1 Objetivos.............................................................................................................................. 11
3.2 Metodologia ......................................................................................................................... 12
3.3 Estado atual do trabalho ...................................................................................................... 13
3.4 Cronograma ......................................................................................................................... 13
Referências Bibliográficas ............................................................................................................. 15
iii
CAPÍTULO 1
Justificativa
Há mais informação no mundo do que a nossa capacidade, humana, de processá-las. Vivemos
numa era de efervescência informacional, com centenas de canais de televisão transmitindo
conteúdo simultaneamente, milhares de novos livros editados a cada dia dentre os milhões já
existentes [GBo12], uma infinidade de produtos das mais variadas marcas nas prateleiras do
comércio e bilhões de páginas disponíveis na Internet, que oferece carta branca para quem sentir
vontade de incrementar este número.
São inegáveis os benefícios que o avanço da tecnologia, principalmente da Internet, vêm
proporcionando no âmbito da democratização e circulação da informação: acesso em tempo real e
contato direto com as respectivas fontes, facilitação da criação e disseminação de conteúdo. A
escassez de informação disponível deu lugar a uma explosão de dados e fatos ao alcance das
mãos. Entretanto, esta inversão acabou tornando-se também um problema: como encontrar e
extrair informação relevante em tempo hábil em meio a esta supervia?
As populares ferramentas de busca baseadas em técnicas de recuperação de informação,
como a gigante Google [Goo12], estão aí para trazer até você exatamente o material que você
procura, e muito mais. O problema é que este excedente pode, não raramente, fazer com que o
material que você queria simplesmente desapareça, encolhido em meio a tantos outros dados
possivelmente irrelevantes. Para se ter noção do problema, pode-se recorrer a um exemplo prático
e real de pesquisa: caso um usuário deseje iniciar na área de sistemas de recomendação buscando
material com as palavras-chave ‘Recommender Systems’, irá se deparar com 877 mil resultados
de páginas na Internet e 29.700 artigos científicos, até a presente data. Diante destes números,
percebe-se a grande necessidade de se adotar outros critérios para selecionar em que conteúdo
investir o seu tempo.
Uma prática muito natural quando não dispomos das condições para tomar esta decisão
com firmeza é a de buscar recomendações através de pessoas confiáveis, entendidas do assunto
ou que possuam preferências similares e já tenham passado pela mesma experiência. O quê da
questão aqui passa a ser identificar estes grupos de indivíduos e fazer uso de suas sabedorias. Foi
justamente por este caminho, que na década de 1990, a ciência deu luz a sistemas computacionais
1
com a capacidade de automatizar ou facilitar este processo: os Sistemas de Recomendação
[Ado05].
Estes sistemas conseguem armazenar o perfil do usuário, permitindo uma filtragem
personalizada e automática da oferta de conteúdo, que tende a ser mais adequada aos seus
interesses. Ademais, diferentemente dos sistemas de recuperação de informação onde o início da
interação é sempre provocado pelo usuário, estes sistemas têm a aptidão de antecipar a
necessidade do usuário. Não demorou para que estas vantagens fossem percebidas pelo mercado,
que enxergou que recomendar antecipada e adequadamente um produto, serviço ou pessoa
poderia ser o diferencial na conquista do consumidor. Assim, a importância deste serviço atingiu
enorme popularidade e começou a atrair vários esforços tanto da área acadêmica como da
comercial, representado pelas famosas Amazon e Netflix [Net06]. Esta última, inclusive, lançou
uma interessante competição valendo nada menos do que um milhão de dólares para aquele que
conseguisse aumentar em 10% o desempenho do seu sistema atual.
Para desenvolver estes sistemas de recomendação, duas abordagens em especial podem
ser destacadas: filtragem baseada em conteúdo e filtragem colaborativa. A primeira parte do
princípio de que os usuários tendem a interessar-se por itens similares aos que demonstraram
interesse no passado, definindo então, a similaridade entre o conteúdo dos itens [Her04]. A
dificuldade está em estabelecer esta similaridade, uma vez que a tarefa de definir e extrair o
conteúdo dos itens não é fácil. A abordagem da filtragem colaborativa foi desenvolvida para
atender os pontos que estavam em aberto na filtragem baseada em conteúdo [Her04], se
diferenciando justamente por não exigir a compreensão do conteúdo dos itens. A essência desta
técnica está na troca implícita de experiência entre os usuários, na teoria de que perfis
semelhantes demonstrarão interesses semelhantes, definindo então a similaridade a partir das
avaliações para os itens. A dificuldade surge quando há pouca participação / colaboração dos
usuários, ao que se dá o nome de esparsidade de dados.
Nessa linha de pesquisa, será investigada uma maneira promissora de aliviar este
problema da esparsidade em sistemas de recomendação por filtragem colaborativa. Para tal, serão
combinadas técnicas de similaridade globais às já bem estabelecidas e conhecidamente eficazes
técnicas locais. As técnicas globais se mostram interessantes pois conseguem identificar
similaridades entre usuários mesmo que estes não tenham avaliado itens em comum [Ana11].
Este é o seu grande diferencial com relação às técnicas locais, que exigem essa premissa,
2
tornando-se mais vulneráveis à problemática da esparsidade. Em especial, será dado enfoque aos
trabalhos recentes de Luo [Luo08] e Annand [Ana11].
CAPÍTULO 2
Revisão de Literatura
Neste capítulo, serão discutidas as duas categorias mais amplas, já citadas, dos sistemas de
recomendação: os sistemas baseados em conteúdo e os que se utilizam de filtragem colaborativa.
Entraremos em maiores detalhes nos trabalhos que buscam aliviar a questão da
esparsidade em sistemas de filtragem colaborativa. Maior atenção também será reservada para
aqueles que exploram técnicas de similaridades globais, em particular Luo e Annand.
2.1 Sistemas de recomendação baseados em conteúdo
Sistemas de recomendação baseados em conteúdo analisam o conjunto de descrições e
características dos itens previamente avaliados por um usuário para montar o seu perfil [Ric11].
A recomendação consiste então em casar os atributos do perfil deste usuário com os demais itens
da base. Os resultados são o julgamento da relevância daqueles itens para o usuário. Em caso
positivo, é natural recomendá-los. Em caso negativo, pode-se filtrá-los automaticamente e poupar
o usuário da tarefa.
Ferramentas que seguem este tipo de estratégia geralmente aplicam a técnica de indexação
de frequência de termos [Her04]. Informações dos itens e dos perfis dos usuários são definidas
por vetores com uma dimensão para cada termo existente na base de dados. A frequência de
aparição destes termos é o que irá compor cada parte destes vetores. A relevância dos itens para o
usuário é então dada pela proximidade entre os vetores. Vários sistemas de recomendação
baseados em conteúdo [Mon03] são utilizados para itens de texto, como por exemplo, artigos
científicos, que permitem fácil extração de descrição através das palavras-chave.
Alguns tipos de itens como vídeos, imagens e sons, entretanto, tornam difícil a tarefa de
extração automática de conteúdo. Este problema ocorre devido à relativa imaturidade de
tecnologia para a análise precisa desses tipos de dados.
3
Como se pode perceber, também não é levada em conta a atividade dos outros usuários
com relação aos itens e, consequentemente, a maneira como se relacionam. A isso se deve outro
problema desta abordagem: a falta de surpresa nas recomendações ou serendipidade. A
explicação é que os meios que o sistema usa produzirão apenas recomendações que poderiam ser
diretamente inferidas pelo usuário, devido à semelhança dos seus conteúdos.
Filtragem baseada em conteúdo, contudo, não faz parte do escopo deste trabalho. Serão
dados foco e detalhes das técnicas e dos problemas de filtragem colaborativa. No entanto, é
importante salientar que as duas abordagens são de certa forma complementares. Desta forma,
alguns sistemas de recomendação têm adotado uma abordagem híbrida, na tentativa de aproveitar
as vantagens de cada uma [Bur02].
2.2 Sistemas de recomendação por filtragem colaborativa
Sistemas de recomendação por filtragem colaborativa realizam a previsão das preferências de um
usuário a partir das interações de outros usuários, dispensando a necessidade de conhecimento
acerca do conteúdo dos itens. Desse modo, esta técnica consegue fugir dos problemas
apresentados pela anterior: dificuldade na extração das descrições dos itens e pouca promoção de
surpresa nas recomendações.
A premissa fundamental da filtragem colaborativa é a de que se dois usuários avaliaram x
itens similarmente, então eles também agirão similarmente para outros itens [SuX09]. Para tal
percepção, faz-se uso de uma base de dados com as preferências de cada item por usuário. Por
exemplo, uma lista m com todos os usuários e uma lista n representando todos os itens, onde cada
usuário terá a sua lista ui que contém os itens que ele avaliou. Uma maneia típica de representar
estes dados é através de uma matriz usuário x item, como mostra a Tabela 1:
Usuários / Itens
Item 1
Item 2
Item 3
Item 4
Usuário 1
6
4
1
6
Usuário 2
8
4
4
6
Usuário 3
10
4
6
6
Usuário 4
8
4
3
?
Tabela 1 - Matriz usuário x item
Esta base de dados / matriz encontra-se quase totalmente preenchida, simbolizando a alta
participação dos usuários no sistema de avaliações. Porém, pode-se observar uma interrogação no
item 4 para o usuário 4. Isto significa que aquele usuário ainda não avaliou o item e, portanto, o
4
sistema pode tentar prever qual seria este resultado baseando-se na proximidade do seu
comportamento (avaliações dos itens) com o dos outros usuários.
Para se desenvolver este tipo de sistemas, em geral, duas técnicas prevalecem: modelbased e memory-based. Discorreremos sobre os seus detalhes a seguir.
2.2.1 Técnicas Model-Based
Criam modelos, como por exemplo, de aprendizagem de máquina, em cima de um conjunto de
treinamento da base de dados para permitir que o sistema aprenda a reconhecer padrões
complexos e faça predições inteligentes para os dados do mundo real. Modelos utilizados para
esta tarefa vão desde algoritmos de classificação e redes bayesianas a modelos de regressões e
técnicas de clustering [Ung98]. O tipo de modelo mais adequado é determinado, dentre outros
fatores, pela natureza dos dados da base. Por exemplo, se são categóricos ou numéricos.
A construção do modelo normalmente é feita de forma off-line, o que eleva o tempo de
implantação do sistema, mas reduz o seu tempo de processamento em fase de produção. Devido à
dependência desta fase de construção do modelo, se mostra sensível ao crescimento da base, uma
vez que naturalmente este precisará ser re-treinado de tempos em tempos para refletir as
mudanças de padrões na mesma.
Este tipo de técnica vem apresentando bons resultados [SuX06], entretanto maiores
detalhes não serão investigados por não fazerem parte do escopo deste trabalho.
2.2.2 Técnicas Memory-Based
Diferentemente das técnicas model-based que se utilizam somente do modelo criado para realizar
as recomendações, as técnicas memory-based usam toda ou uma amostra da base de dados para
este fim. Através da identificação e ordenação dos seus chamados vizinhos, a predição dos itens
para um usuário pode ser feita.
Os passos que normalmente seguem os algoritmos predominantes deste segmento
são: i) calcular a similaridade entre os usuários; ii) ordenar os vizinhos de um usuário de acordo
com estes valores; iii) efetuar a predição da avaliação do item para este usuário levando em conta
uma média ponderada das avaliações daquele item pelos seus vizinhos mais próximos [SuX09].
Feita desta maneira, a técnica é dita user-based. Contudo, ela também pode ser utilizada no
5
sentido inverso, centrando nos itens ao invés de nos usuários, recebendo o nome de item-based.
Este trabalho preocupa-se especificamente com técnicas user-based.
A computação da similaridade é uma fase crítica, e para tal existem diversas métricas
propostas. Dentre as mais utilizadas temos a Pearson-Correlation Coefficient (PCC) [Luo08] e a
Vector Space Similarity (VS) [Luo08].
PCC define a similaridade W entre dois usuários up e uq como:
Wup ,uq 
{i | r
pi
{i | r
pi
, rqi  0}(rpi  r p )(rqi  rq )
{i | r
, rqi  0}(rpi  r p ) 2 .
pi
, rqi  0}(rqi  rq ) 2
Onde r representa a avaliação do item pelo usuário e r a média das suas avaliações.
No caso da VS, fórmula é a seguinte:
Wup ,uq 
{i | r
pi
{i | r
pi
, rqi  0}(rpi )(rqi )
, rqi  0}(rpi ) 2 .
{i | r
pi
, rqi  0}(rqi ) 2
Uma vez computadas as similaridades entre os usuários e ordenados os seus vizinhos, é o
momento de fazer a predição ou recomendação em si. O método mais comumente aplicado para
este fim, descrito por Resnick, segue a equação:
^
r p ,i  r i 

qN ( u )

Wup,uq.(rq ,i  rq )
qN ( u )
| Wup,uq |
^
Onde r p ,i é a predição da avaliação do usuário p para o item i.
2.2.3 Esparsidade
No mundo real, as bases de dados geralmente são compostas por um conjunto muito grande de
itens. E é natural, então, que cada usuário só consiga ter uma experiência com um pedaço
reduzido deste conjunto. Como resultado, teremos a matriz usuário x item utilizada pelos sistemas
de recomendação extremamente esparsa.
6
As técnicas de filtragem colaborativa são as que mais sofrem desta situação, uma vez que
dependem de itens avaliados em comum pelos usuários e lidando com bases de dados grandes
isto não será tão frequente.
Diversos trabalhos foram publicados com tentativas de aliviar esta problemática,
envolvendo variadas abordagens. Técnicas de redução de dimensionalidade como a Singular
Value Decomposition [SuX09] eliminam usuários e itens insignificantes para reduzir diretamente
a dimensionalidade da matriz da base de dados. Goldberg [Gol01] desenvolveu o eigentaste, que
aplica a técnica de Principal Component Analysis [SuX09] para alcançar esta desejada redução
de dimensionalidade.
Remover entradas da base de dados pode, entretanto, ter o efeito contrário, aumentando
ainda mais a escassez de informações para as recomendações. Assim, alguns algoritmos adotam
uma abordagem híbrida utilizando informação externa de conteúdo. Um exemplo que alcançou
bons resultados desta maneira é Content-Boosted [Mel02].
Existem ainda as abordagens que aplicam teorias de grafos para amenizar este problema
da esparsidade. Fouss, por exemplo, introduziu com resultados significantes uma técnica que
utiliza cadeias de Markov de uma busca cega para calcular as similaridades [Ana11]. Através de
um grafo bipartido com usuários e itens sendo nós e os usuários conectados aos itens que
experimentaram, medidas como quantidade e tempo médio de viagem foram utilizadas no cálculo
da similaridade. Uma abordagem para capturar as similaridades entre usuários por transitividade,
chamada Discovery hidden similarity foi proposta por Lee [Ana11].
Foi justamente neste segmento de abordagens que exploram a base de dados como um
grafo e se utilizam de transitividade para o cálculo das similaridades que os trabalhos mais
importantes para este projeto foram publicados. Luo e Annand apresentaram conceitos de
similaridades globais combinados com similaridades locais para efetuar as recomendações. A
seção seguinte é especialmente dedicada a eles.
Trabalhos de Luo e Annand
Luo se preocupou, além de atacar o problema da esparsidade, em contribuir com uma equação
mais elaborada para o cálculo de similaridade. A esta deu o nome de Surprisal-based vector
similarity with significance weighting (SVSS). Ele partiu do princípio que se dois usuários
avaliam semelhantemente um item e esta avaliação dista do senso comum, isto é, da média dos
7
outros avaliadores, então este é um indicativo forte de similaridade que deve ser considerado
[Luo08]. É dito que há um maior ganho de informação nesta situação. Seguindo a proposta de Ma
[MaH07], eles também diminuíram o peso da similaridade para usuários com poucos itens
avaliados em comum, de modo a aumentar a precisão da predição do sistema.
Para implementar esta intuição, a avaliação de cada item foi modelada como uma variável
aleatória Laplaciana( u i , bi ) ao invés de variáveis aleatórias Gaussianas. A função de densidade
para a variável aleatória laplaciana é:
ur
), se : r  u
1
| r u |
1
b
f ( r | u , b) 
exp( 
) {
r u
2b
b
2b
exp( 
), se : r  u
b
exp( 
O parâmetro u é de posição e o b de escala. Dadas n avaliações independentes e amostras
igualmente distribuídas, ao aplicar o estimador de maximum likelihood temos os parâmetros
descritos por [Nor84]:
1 n
u i   r p ,i
n p 1
^
1 n
b i   | r p ,i  u i |
n p 1
^
^
e
No lugar das avaliações dos itens, o autor utilizou uma medida que chamou de surprisal,
com base na ideia daquele cenário com alto ganho de informação:
^
^
S p  [sgn(rp ,1  u1 ).I (rp ,1 ),..., sgn(rp ,n  u n ).I (rp ,n )]t , p  1,..., n
Onde sgn é uma função sinal e I representa o ganho de informação é dado por:
^
^
^
^
I (rp ,i )   ln( f (r  rp ,i | u i , bi ))  ln( 2 bi ) 
| r p ,i  u i |
^
bi
Formalmente, então, dados os vetores de surprisal dos usuários, adota-se a fórmula de VS
para alcançar a equação de cálculo da similaridade proposta por Luo, a SVSS:
8
Wup ,uq 
{i | r
pi
{i | r
pi
, rqi  0}(s pi )( sqi )
, rqi  0}(s pi ) 2 .
{i | r
pi
, rqi  0}( sqi ) 2
Onde s representa o valor de surprisal daquele item pelo usuário. Para alcançar a fórmula
final, conforme dito anteriormente, o autor adotou a ideia de Ma de deduzir o valor da
similaridade para usuários com poucos itens co-avaliados:
Wup ,uq´
min(| I up  I uq |, y)
y
.Wup,uq
| I up  I uq | consiste do número de avaliações em comum dos usuários e y é definido
empiricamente. Caso o tamanho de co-avaliações seja menor que y, o valor da similaridade será
deduzido.
Como foi dito, o framework proposto por Luo utilizou similaridades locais e globais para
realizar a recomendação. O método de SVSS, então, é o adotado para calcular as similaridades
locais. Por similaridade local entende-se a similaridade direta entre dois usuários. Já para calcular
as similaridades globais, a base de dados foi tratada como um grafo e adotou-se o algoritmo de
maximin distance.
No maximin distance, a similaridade global entre dois usuários é dada da seguinte forma:
1- Todos os usuários com similaridades locais não nulas são conectados no grafo.
2- Encontra-se todos os caminhos que se pode percorrer para conectar os dois usuários.
3- Para cada caminho, encontra-se o menor dos valores de similaridade entre usuários.
Este valor é a min distance.
4- De todas as min distance, encontra-se o valor máximo. Esta é a maximin distance.
A maximin distance é então a medida propriamente utilizada como a similaridade global
entre os dois usuários. Uma vez na posse das medidas de similaridade, o algoritmo segue o
próximo passo do script padrão: realizar a predição de itens para o usuário. Para tal, vale-se da
fórmula de Resnick já apresentada neste trabalho, calculando separadamente a predição com as
9
similaridades locais e as globais. A predição final então é dada pela combinação destes dois
valores, que é meramente uma soma ponderada, com os pesos complementares definidos
experimentalmente.
Luo demonstrou com os experimentos que as similaridades globais têm realmente um
desempenho muito bom para bases esparsas e não tão bons quanto as locais para bases densas.
Desse modo, deixou manifestado nas suas propostas de trabalhos futuros a vontade de investigar
novas maneiras, mais naturais, de se combinar essas predições.
É justamente essa extensão que está presente na pesquisa de Annand. Ele partiu do
princípio de que se as similaridades globais são melhores em bases esparsas, então o caminho
seria mensurar o nível de esparsidade para saber o quanto ponderar as predições. Cinco medidas
foram propostas:
1- Overall sparsity measure
1
nAvaliacoe s
nUsuarios.nItens
3- Local global ratio
1
nVizinhosL ocais avaliaram(i )
nVizinhosGlobais avaliaram(i )
2- User specific sparsity measure
1
nAvaliacoe su
max( nAvaliacoe s)
4- User-item specific sparsity measure 1
1
nVizinhosL ocais avaliaram(i )
nUsuariosavaliaram(i )
5- User-item specific sparsity measure 2
1
nVizinhosLocais avaliaram(i )
nVizinhosL ocais
Todos esses indicadores de esparsidade são então ponderados para se alcançar uma única
Unified Sparsity Measure (USM). O peso de cada um deles na fórmula da USM foi definido
automaticamente com o uso de um algoritmo genético em cima de um conjunto de treinamento.
Finalmente, a USM é o peso para a predição referente às similaridades globais. Conforme dito
anteriormente, o outro peso é complementar. Cada medida de esparsidade individualmente
também foi testada como peso, mas a USM foi soberana.
10
Os experimentos foram realizados em bases de dados com diferentes níveis de
esparsidade, simulados pelos autores, e os resultados superaram os de outros trabalhos do estado
da arte, provando-se técnicas promissoras no combate a esta problemática. No entanto, a
investigação de novas métricas para medição da esparsidade na base é pertinente, uma vez que
Annand explicita em seu próprio paper que não havia encontrado medidas para tal na literatura.
CAPÍTULO 3
Planos de ação
3.1 Objetivos
O objetivo deste trabalho é estudar mais amplamente os sistemas de recomendação e
especificamente o problema da esparsidade na abordagem de filtragem colaborativa, explorando
as técnicas apresentadas por Luo e Annand para então fazer novas contribuições nesta linha de
pesquisa.
Em resumo, os principais objetivos são:
1- Estender os trabalhos de Luo e Annand.
2- Investigar técnicas para lidar com o problema da esparsidade de dados em filtragem
colaborativa.
3- Propor novas métricas para mensuração da esparsidade.
Será analisada em detalhes a estratégia adotada pelos autores e veremos como eles
combinam as técnicas de similaridade local e global a fim de extrair o que há de melhor nas duas.
Tentaremos dar continuidade aos seus estudos levando em consideração as suas sugestões de
trabalhos futuros, outros materiais presentes na literatura e também oportunidades percebidas
pessoalmente durante o desenvolvimento do projeto. Devido à carência de medidas para calcular
a esparsidade na literatura, e à potencial agregação de valor desta informação, haverá atenção e
empenhos especiais a esta parte. Por último, serão apresentados os resultados dos experimentos
executados seguindo a mesma metodologia dos autores.
11
3.2 Metodologia
1- Levantamento Bibliográfico
Para este trabalho, inicialmente investiu-se tempo no estudo do estado da arte em torno do tema
para possibilitar a definição das perspectivas de pesquisa. Surveys [SuX09], livros [Ric11] e
artigos científicos [Luo08] foram coletados e investigados. Como resultado, foram entendidos a
esparsidade como uma problemática muito importante para a área e os trabalhos de Luo e
Annand como teorias recentes e promitentes no combate à mesma. Desse modo, traçou-se o
objetivo deste trabalho: aperfeiçoar a técnica dos autores destacados para ajudar a combater a
esparsidade.
2- Implementações
Os trabalhos em destaque deverão reproduzidos na íntegra, guiados pelos seus artigos. Durante o
processo, melhorias serão propostas e implementadas. A partir daí, para avaliar os resultados, a
metodologia dos experimentos seguirá o mesmo padrão adotado por eles.
3- Experimentos
As bases de dados escolhidas foram as mesmas: MovieLens [Gro11], uma base com avaliações
de filmes, e Jester [Gro11b], composta por julgamentos de piadas. Estas duas se mostram boas
escolhas, pois, além de já terem sido utilizadas em vários outros artigos [Ado05], diferem
bastante entre si permitindo comparação em variados ambientes de dados e uma análise e crítica
do algoritmo mais apuradas [Ana11]. Os tratamentos a que serão sujeitas procederão exatamente
como relatados nos artigos em questão.
Será avaliada a corretude da reprodução dos trabalhos dos autores, em termos de
proximidade dos resultados obtidos e, posteriormente, estes serão comparados frente ao
desempenho do sistema munido das melhorias propostas. Acredita-se que este plano de ações
seja eficiente para produzir um bom trabalho, com contribuições para a área, fielmente aos
objetivos estabelecidos.
4- Dissertação
12
A dissertação começará a ser escrita quando as implementações estiverem próximas da
conclusão, para que se possa manter o foco. Uma vez de posse dos resultados e avaliações dos
experimentos, estes serão acrescidos à mesma com as conclusões pertinentes. Constatando-se
conclusivamente que houve contribuições para a área, a escrita de artigos científicos virá em
seguida.
3.3 Estado atual do trabalho
1- Levantamento Bibliográfico
O material essencial para este trabalho já foi levantado. Esta atividade agora será feita sob
demanda, quando na necessidade de se buscar novas ideias de melhorias e também novas fontes
para escrita da dissertação.
2- Implementações
A implementação e reprodução dos trabalhos de Luo e Annand está feita em quase sua totalidade,
restando apenas aproximadamente 10% do trabalho de Annand para conclusão. Oportunidades de
contribuição foram detectadas durante o processo de codificação, mas ainda não foram postas em
prática para avaliar o seu impacto.
3- Experimentos
As bases de dados necessárias para este trabalho já foram coletadas e a implementação de leitura
e manipulação das mesmas está finalizada. A coerência da reprodução das técnicas dos trabalhos
em destaque está sendo verificada sempre em sequência às suas implementações.
Uma vez que todo o trabalho apresentado pelos autores esteja reproduzido, será o
momento de implementar e examinar as melhorias propostas.
4- Dissertação
A dissertação ainda não começou a ser escrita, porém uma parte deste trabalho de pesquisa
deverá ser reaproveitada.
3.4 Cronograma
13
Atividades
Março
Abril
Meses
Maio Junho
Julho
Agosto
1- Levantamento Bibliográfico
2- Implementações
3- Experimentos
4- Dissertação
14
Referências Bibliográficas
[Ado05] Adomavicius, G., & Tuzhilin, A. (2005). Toward the Next Generation of Recommender
Systems: A Survey of the State-of-the-Art and Possible Extensions. IEEE Trans. on
Knowledge and Data Engineering.
[Ana11] Anand, D., & Bharadwaj, K. K. (2011). Utilizing various sparsity measures for
enhancing accuracy of collaborative. Expert Systems with Applications, pp. 5101-5109.
[Bur02] Burke, R. (2002). Hybrid Recommender Systems: Survey and Experiments. User
Modeling and User-Adapted Interaction.
[Caz06] Cazella, S. C. (2006). Tese de Doutorado. Aplicando a relevância da opinião de
usuários em sistemas de recomendação para pesquisadores.
[GBo12]. (s.d.). Acesso em Fevereiro de 2012, disponível em Google Books:
http://books.google.com/
[Goo12]. (s.d.). Acesso em Fevereiro de 2012, disponível em Google: http://www.google.com
[Gro11a]. (s.d.). Acesso em Janeiro de 2011, disponível em Group lens:
http://www.grouplens.org/node/73
[Gro11b]. (s.d.). Acesso em Janeiro de 2011, disponível em Group Lens:
http://www.grouplens.org/node/75
[Net06]. (s.d.). Acesso em Dezembro de 2006, disponível em Netflix prize:
http://www.netflixprize.com
[Gol01] Goldberg, K., Roeder, T., Gupta, D., & Perkins, C. (2001). Eigentaste: a constant time
collaborative filtering algorithm. Information Retrieval, pp. 133-151.
[Her04] Herlocker, J. L., Konstan, J. A., Terveen, L. G., & Riedl, J. T. (2004). Evaluating
collaborative filtering recommender systems. ACM Transactions on Information Systems,
pp. 5–53.
[Luo08] Luo, H., Niu, C., Shen, R., & Ullrich, C. (2008). A collaborative filtering framework
based on both local and global user similarity. Machine Learning, pp. 231-245.
[MaH07] Ma, H., King, I., & Lyu, M. R. (2007). Effective missing data prediction for
collaborative filtering. Proceedings of the 30th annual international ACM SIGIR
conference on research and development in information retrieval, pp. 39-46.
15
[Mel02] Mellvile, P., Mooney, R. J., & Nagarajan, R. (2002). Content-boosted collaborative
filtering for improved recommendations. Proceedings of the 18th National Conference on
Artificial Intelligence, pp. 187-192.
[Mon03] Montaner, M., Lopez, B., & La Rosa, J. L. (2003). Taxonomy of Recommender Agens
on the Internet. Artificial Intelligence Review, 285-330.
[Nor84] Norton, R. M. (1984). The double exponential distribution: Using calculus to find a
maximum likelihood estimator. In: The American Statistician (pp. 135-136).
[Ric11] Ricci, F., Rokach, L., Shapira, B., & Kantor, P. B. (2011). Recommender Systems.
Springer.
[Sam06] Sampaio, I. A. (2006). Dissertação de Mestrado. Apredizagem Ativa em Sistemas de
Filtragem Colaborativa.
[SuX06] Su, X., & Khoshgoftaar, T. M. (2006). Collaborative Filtering for multi-class data using
belief nets algorithms. Proceedings of the International Conference on Tools with
Artificial Intelligence, pp. 497-504.
[SuX09] Su, X., & Khoshgoftaar, T. M. (2009). A Survey of Collaborative Filtering Techniques.
Advances in Artificial Intelligence.
[Ung98] Ungar, L. H., & Foster, D. P. (1998). Clustering methods for collaborative filtering.
Proceedings of the Workshop on Recommendtion Systems.
16
Download

Centro de Informática da UFPE