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 qN ( u ) Wup,uq.(rq ,i rq ) qN ( 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 é: ur ), 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