Ampliando o Perfil do Usuário para um Sistema de Recomendação de Nomes Próprios Rafael Glauber, Angelo Loula Laboratório de Sistemas Inteligentes e Cognitivos (LASIC) Universidade Estadual de Feira de Santana (UEFS) Feira de Santana, Bahia, Brasil Email: {rafaelglauber, angelocl}@ecomp.uefs.br Resumo—O desafio de recomendar nomes próprios é uma tarefa nova e difı́cil. Trata-se de um problema influenciado pelas particularidades de gostos pessoais dos usuários, aspectos culturais, além de fatores técnicos como a disponibilidade de poucos dados para subsidiar a recomendação. Neste trabalho apresentamos um método de como ampliar o perfil do usuário por meio de um algoritmo de Phonetic String Matching e a popularidade dos nomes presentes no sistema. A ampliação do perfil dos usuário modifica a vizinhança de similaridade entre os usuários utilizada pela Filtragem Colaborativa no algoritmo de K-nearest neighbors (KNN). Os resultados indicam que nossa abordagem pode melhorar a precisão do recomendador neste cenário. I. I NTRODUÇ ÃO Sistemas de Recomendação (RS) executam uma importante tarefa de ajudar os usuários no problema da sobrecarga de informação. Este problema surgiu, primeiramente, com o correio eletrônico (email) [1] e posteriormente com muitos conteúdos. Música, livros, filmes e notı́cias são apenas alguns dos milhares de tipos de itens que os usuários precisam lidar. Sistemas de Recomendação auxiliam os usuários neste problema apresentando sugestões de itens de seu possı́vel interesse. Nomes próprios, recentemente, passaram a ser estudados como um tipo de item a ser recomendado por tais sistemas. Trata-se de um desafio muito particular, na tentativa de predizer os interesses de usuários por nomes próprios como uma ferramenta de ajuda à futuros pais na escolha de um nome para seu filho. Questões como influências culturais, gostos pessoais e até a moda podem determinar uma escolha neste cenário. Além disso há uma grande quantidade de nomes disponı́veis e uma limitada disponibilidade de dados sobre interesses de usuários que poderiam ser utilizados para aprimorar os resultados de um recomendador. Qualquer tarefa de recomendação pode ser reduzida à tarefa de estimar a avaliação do usuário a um item ainda não avaliado [2]. Há duas tradicionais abordagens para realização dessa tarefa: Filtragem Colaborativa (CF) e Filtragem Baseada em Conteúdo (CB). A primeira, considerada a “automatização do boca-a-boca” [3], utiliza dados de avaliação dos usuários em um algoritmo de K-nearest neighbors (KNN) para identificar usuários semelhantes (user based) ou itens semelhantes (item based) e prediz uma avaliação para um item não avaliado com base na avaliação realizada pelos vizinhos (os mais similares). A segunda abordagem concentra-se em identificar a similaridade entre os itens avaliados pelo usuário e os não avaliados, a partir das caracterı́sticas descritivas do item. Esta abordagem tem origem nas técnicas de Recuperação de Informação [4] e baseia-se na ideia que itens semelhantes serão avaliados de forma semelhante pelo usuário. Utilizar mais de uma abordagem mesclando suas caracterı́sticas visa extrair o melhor que cada uma pode oferecer no resultado esperado por um RS. Essa abordagem é denominada hı́brida e sua aplicação pode aprimorar diversas dimensões do recomendador [5]. Por exemplo, a CF não seria capaz de predizer uma avaliação para um item que ainda não foi avaliado por qualquer outro usuário (cold-start problem) e CB é pouco eficiente em surpreender o usuário, pois baseia-se somente nos atributos dos itens previamente avaliados pelo usuário. Combinar essas duas abordagens pode resultar em um recomendador capaz de superar as deficiências de cada uma das técnicas. Entretanto, é um desafio a aplicação desse tipo de abordagem diante de sua diversidade de possı́veis configurações [6]. Neste trabalho apresentamos um sistema hı́brido de recomendação de nomes próprios, baseado em Filtragem Colaborativa, que amplia os perfis de usuários com base em conteúdo fonético. Inicialmente, será detalhado o problema de recomendação de nomes próprios na seção II. Em seguida, detalhamos nossa proposta de ampliar o perfil do usuário por meio de um algoritmo de Phonetic String Matching e a popularidade dos nomes presentes no sistema na seção III. Na seção IV a metodologia do experimento é apresentada seguida da seção V com os resultados obtidos. Ao final discutiremos os resultados e os próximos passos dessa pesquisa. II. R ECOMENDAÇ ÃO DE N OMES P R ÓPRIOS A recomendação de nomes próprios é uma tarefa difı́cil e recentemente proposta que pode ser caracterizada como uma tarefa de recomendação do tipo “recomendar bons itens” como definido em [7]. Esta surgiu como objeto de pesquisa a partir da iniciativa de aprimorar a experiência dos usuários no web site Nameling.net1. Em 2013 o interesse da comunidade internacional pelo tema cresceu com o 15th ECML PKDD Discovery Challenge 2013 (DC13) que desafiou pesquisadores a construir um recomendador de nomes próprios capaz de predizer atividades de usuários do Nameling.net [8]. O primeiro trabalho sobre recomendação para nomes próprios foi realizado por Mitzlaff 1 Veja http://www.nameling.net/ e Stumme (2013) [9] estabelecendo uma linha base inicial de resultados para os participantes do desafio. Neste trabalho foram apresentados os primeiros resultados experimentais sobre uma abordagem nova denominada NameRank juntamente com outras abordagens tradicionais como a Filtragem Colaborativa. O conjunto de dados ofertado pelo desafio será utilizado neste trabalho para recomendação de nomes próprios. Os dados incluem as atividades dos usuários extraı́das do web site Nameling.net no perı́odo de Março de 2012 até Fevereiro de 2013. A navegação no site permite diversas atividades diferentes e todas estão registradas no conjunto de treinamento: • ENTER SEARCH é atividade de consulta de nome próprio informado diretamente pelo usuário no sistema. Este registro pode ser uma entrada válida (nome próprio cadastrado no sistema) ou uma entrada inválida (nome próprio sem registro no sistema). • LINK SEARCH é a ação de clicar em algum dos resultados da pesquisa por um nome próprio. • LINK CATEGORY SEARCH alguns resultados para as consultas dos usuários podem possuir categorias extraı́das de artigos da Wikipédia2 . Essa atividade é o registro da ação de clicar nessas categorias. • NAME DETAILS é a ação de clicar nos detalhes dos nomes para mais informações. • ADD FAVORITE é a atividade de adicionar um nome próprio na lista de favoritos do usuário. Além das atividades dos usuários, há outros conjuntos de dados suplementares disponı́veis: similaridade entre os nomes próprios calculadas pelas co-ocorrências na web (Wikipédia e Twitter), localização geográfica por meio do IP e a lista dos nomes válidos cadastrados no sistema. Além dos dados disponibilizados o desafio permitiu utilizar qualquer informação adicional que pudesse aprimorar a qualidade das recomendações. Como um campo ainda pouco explorado, a recomendação de nomes próprios precisa de muitas respostas e a proposta deste trabalho é formular um novo método para solução deste problema. Um dos principais problemas deste desafio é como lidar com a grande esparsidade de dados presente na relação usuário × nome próprio. Normalmente, pouco se conhece sobre os usuários quanto as suas preferências, pois em muitos casos seu acesso ao sistema é momentâneo, além de existirem poucos serviços informatizados para este fim que registrem tal informação. III. N OSSA P ROPOSTA Em aplicações do mundo real comumente encontramos grande esparsidade na relação usuário × itens avaliados, grande concentração das avaliações em um pequeno grupo de itens denominados populares, itens ainda não avaliados ou usuários com baixa quantidade de avaliações. Estes problemas tem grande impacto para abordagens sociais de recomendadores [10] e vem sendo trabalhado por muitos pesquisadores de diferentes modos. 2 http://www.wikipedia.org/ Particularmente sobre o problema da esparsidade [11], existem diversos artigos que descrevem técnicas que adicionam novas caracterı́sticas em recomendadores baseados em Filtragem Colaborativa. Principal Component Analysis (PCA) [12], Singular Value Decomposition (SVD) [13], Content-Boosted [14] são exemplos de contribuições que demonstram resultados superiores aos resultados de abordagens puras. A Filtragem Colaborativa (ou Social) tipicamente utiliza um algoritmo de K-nearest neighbors (KNN) baseado em usuário ou em item. Quando baseada no usuário, o sistema recomenda bons itens para um usuário ativo identificando, primeiro, os k usuários mais semelhantes utilizando alguma medida de similaridade [15] entre os perfis dos usuários. Os itens existentes nos perfis dos usuários mais próximos formam um grupo que, possivelmente, interessam ao usuário ativo. Os itens mais populares dentro deste grupo formam uma lista, ordenada pela popularidade entre os vizinhos, que é apresentada ao usuário. Nossa proposta é um método que define um Sistema de Recomendação, baseado em filtragem social, que foi aperfeiçoado para enfrentar sua tarefa em um conjunto de dados do mundo real que os usuários possuem poucos vizinhos próximos. Para lidar com a dificuldade em encontrar os vizinhos dos usuários, passo fundamental no algoritmo de KNN, ampliamos o seu perfil para permitir identificação de mais usuários com interesses similares, etapa essencial na filtragem social. Ampliando o Perfil do Usuário: Para criar a lista de recomendação para o usuário ativo é necessário, primeiro, ampliar seu perfil. Consideramos o perfil do usuário, nesta pesquisa, como as suas atividades dentro do sistema como descritas na seção II. Essas atividades possuem uma ordem cronológica que deve ser considerada por nosso recomendador. Percorrendo o perfil do usuário, a partir da atividade mais recente, verificamos se há outros nomes próprios similares ao nome relacionado à atividade dentro do conjunto de nomes válidos do sistema. O cálculo de similaridade entre os nomes foi realizado pelo algoritmo Soundex [16]. Este algoritmo converte cada nome em um código, com base em regras pré-estabelecidas e por meio dos códigos as palavras podem ter a similaridade entre elas calculada. Assim, nomes que apresentem um alto grau de similaridade com um nome no perfil do usuário podem ser adicionados ao seu perfil como uma nova atividade. Somente as atividades recentes do usuário, no entanto, são consideradas na ampliação de seu perfil. A quantidade de nomes similares encontrados a partir das atividades do usuário também devem ser limitadas, para que o perfil do usuário não seja descaracterizado. Alguns nomes próprios apresentam muitas variações fonéticas e muitas delas podem não ser interessantes para ampliar a preferência do usuário. Para minimizar este efeito somente uma quantidade limitada de nomes similares são adicionados ao perfil do usuário respeitando a popularidade, dentro do sistema, como critério de corte. Similaridade entre usuários: Ampliado o perfil, a etapa seguinte envolve localizar usuários com interesses semelhantes ao usuário ativo. O cálculo de similaridade depende de como o usuário é modelado e qual o tipo de dado referente às Tabela I. C ARACTER ÍSTICAS DOS C ONJUNTOS DE D ADOS . Propriedade #nomes válidos #nomes inválidos #usuários de teste avg #nomes válidos por usuário avg #nomes inválidos por usuário avg #usuários por nome válido avg #usuários por nome inválido max #nomes válidos por usuário max #nomes inválidos por usuário max #usuários por nome válido max #usuários por nome inválido esparsidade usuário × nomes válidos Dataset A Dataset B Dataset C Dataset D 17457 14638 4140 4,2643 0,3087 14,8046 1,2781 1476 61 2263 57 0,9996 17326 14232 4139 4,1013 0,2985 14,3463 1,2714 1476 60 2183 54 0,9997 17309 14277 4141 4,1017 0,3000 14,3619 1,2734 1476 61 2189 55 0,9997 17291 14175 4728 4,0765 0,2976 14,2884 1,2725 1476 61 2181 56 0,9997 avaliações dos itens estão disponı́veis. Em nosso problema, partimos da hipótese que um nome clicado, pesquisado, adicionado ao favorito ou que foi melhor analisado por seus detalhes é de interesse do usuário. Desta forma o perfil do usuário forma um vetor binário em que cada dimensão representa um nome diferente dentres os nomes válidos, e é associado o valor 1 a cada nome associado a uma atividade do usuário, e as demais posições recebem valor 0. Assim a similaridade entre os usuários pode ser determinada por meio de uma função de similaridade como Cosseno ou Jaccard [17]. Finalizada a avaliação de similaridade entre usuários, os nomes adicionados na etapa de ampliação do perfil do usuário são removidos, pois sua função foi somente de auxiliar na aproximação de usuários. Seleção de Vizinhos: Depois de calcular a similaridade entre todos usuários, são escolhidos os k vizinhos mais próximos do usuário ativo por meio do grau de similaridade obtido. Utilizar somente os melhores vizinhos preserva a ideia que somente os usuários com preferência mais parecida com o usuário ativo são capazes de sugerir itens interessantes (princı́pio do algoritmo de classificação KNN). Votação: Escolhidos os vizinhos, é iniciada a etapa de votação dos nomes que farão parte da lista de recomendação. Primeiro, cada usuário considerado vizinho torna-se um “eleitor” e seu voto possui o peso igual ao seu grau de similaridade com o usuário ativo. Os k “eleitores” (vizinhos) votam somente nos itens de seu perfil e cada item acumula os votos dados pelos eleitores. Ao final todos os nomes votados são ordenados pelo total da votação obtida no pleito. Os nomes mais votados que não estejam presentes no perfil do usuário (supostamente desconhecidos ao usuário) são apresentados em uma lista do tipo Top-N ordenados pela soma de votos obtidos. Este passo, diferente do algoritmo clássico de CF que somente identifica os itens mais populares entre os vizinhos, visa aprimorar a ordem da lista Top-N dando peso ao cálculo de popularidade por meio do grau de similaridade entre o usuário ativo e seus vizinhos. Durante o processo de recomendação, os nomes adicionados por meio de similaridade fonética dos nomes próprios modificam a vizinhança dos usuários. Como são removidos nas etapas seguintes, estes nomes podem também ser transformados em recomendações para o usuário ativo, caso estejam presentes nos perfis dos vizinhos. Nossa proposta é um recomendador hı́brido que utiliza a saı́da de um filtro por conteúdo, aplica a abordagem por popularidade para ordenar e filtrar essa saı́da e a aplica como entrada para um recomendador social. O objetivo é extrair as melhores caracterı́sticas das principais abordagens de recomendação existentes. IV. C ONFIGURAÇ ÃO DO E XPERIMENTO Para a avaliar o resultado do sistema proposto, conduzimos um experimento comparativo entre a nossa abordagem hı́brida e um recomendador colaborativo clássico como descrito em [18] (usado como baseline). Nesta seção apresentamos as caracterı́sticas do conjunto de dados utilizado, detalhamos os parâmetros do sistema, como os configuramos e como os resultados foram obtidos. A. Conjunto de Dados Para uma melhor avaliação, além do utilizar o conjunto original de dados do desafio (aqui denominado Dataset A), criamos três conjuntos de dados adicionais com caracterı́sticas similares, conforme Tabela I, e o utilizamos para testar nossa abordagem (para mais detalhes, ver [19]). A construção de outros conjuntos de dados permite a validação cruzada das avaliações realizadas. Busca-se assim verificar o comportamento da abordagem proposta em maior diversidade de dados, evitando que esteja especializada somente em um conjunto de dados e permitindo aplicação para outros usuários além do conjunto de teste publicado para a competição. B. Avaliação Para avaliação e comparação dos resultados, adotamos a mesma tarefa e métrica de avaliação utilizada no DC133 . Neste desafio, a tarefa foi predizer as duas próximas atividades do usuário do tipo ENTER SEARCH em uma lista de até 1000 nomes que deveria ser oferecida pelo recomendador para o usuário ativo. A medida de avaliação foi o MAP@1000. Nos casos nos quais o recomendador não acerta qualquer um dos dois nomes próprios dentro da lista de 1000 nomes, admitese que os resultados estão após a lista de 1000 nomes, nas posição 1001 e 1002. C. Parâmetros do Sistema Para nossa avaliação experimental, foi necessário definir valores para alguns parâmetros do sistema. A Tabela II apresenta os parâmetros empregados e o valor padrão de cada 3 http://www.kde.cs.uni-kassel.de/ws/dc13/offline/#Evaluation Tabela II. PAR ÂMETROS UTILIZADOS PELO S ISTEMA DE R ECOMENDAÇÃO PROPOSTO . Parâmetro Valores Conjunto de Dados K-vizinhos Medida de Similaridade Quantidade de Atividades do Perfil Quantidade de Nomes Similares Grau de Similaridade Soundex A, B, C, D 1000, 1250, 1500, 1750, 2000 Jaccard, Cosseno 1, 2, 3, 4, 5, 6, 7 1, 2, 3, 4, 5, 6, 7 0.93, 0.94, 0.95, 0.96, 0.97, 0.98 do cálculo de similaridade entre o usuário ativo (usuário modificado) e os demais usuários do sistema. Esta mudança implica em um crescimento da quantidade de vizinhos identificados pela medida de similaridade utilizada. Na Figura 1 apresentamos a influência de adicionar nomes similares no perfil dos usuários. O tamanho da vizinhança (vizinhos com similaridade não nula) dos usuários com perfil modificado é maior em relação à vizinhança com perfil definido de modo convencional (sem os nomes similares). Este comportamento é idêntico se utilizada a mesma configuração com qualquer das duas medidas de similaridade testadas (Cosseno ou Jaccard). parâmetro é destacado em negrito. A escolha do valor padrão de cada parâmetro foi feita variando seus valores e fixando um valor nos demais parâmetros utilizados até encontrar o melhor resultado para o parâmetro testado. Não eliminamos a possibilidade do experimento estar preso em um máximo/mı́nimo local, porém, não é objetivo deste trabalho a identificação da melhor configuração que maximize os resultados de nossa proposta. Mas sim, propor um método hı́brido que apresente melhor resultado de precisão das previsões que um recomendador social clássico. K-vizinhos: É o parâmetro que indica o número de vizinhos usados na etapa de seleção de vizinhos de nosso sistema. (a) Similaridade Cosseno Medida de Similaridade: Duas medidas de similaridade foram testadas em nosso experimento para verificar o ganho neste ponto do algoritmo de Filtragem Colaborativa empregado. Quantidade de Atividades do Perfil: Esse parâmetro define a quantidade de atividades registradas para o usuário que são utilizadas para adicionar nomes similares ao perfil. Nossa hipótese é que as últimas atividades tem maior correlação com as atividades futuras do usuário e dessa forma são contadas as atividades em ordem decrescente. Ou seja, da última atividade para a primeira atividade do perfil do usuário. Em uma tarefa de predição deste tipo abordada na recomendação de nomes próprios consideramos somente as últimas atividades como as mais importantes para prever suas próximas consultas. Quantidade de Nomes Similares: Define quantos nomes extras advindos de cada uma das últimas atividades analisadas podem ser adicionados ao perfil do usuário. Alguns nomes próprios podem possuir uma quantidade grande de variações fonéticas recuperadas pelo algoritmo Soundex. Somente as variações mais populares são consideradas na etapa de ampliar o perfil do usuário. Grau de Similaridade Soundex: Comparando uma entrada do usuário com o conjunto de nomes válidos do sistema é possı́vel determinar um grau de similaridade entre eles obtido pelo algoritmo de Phonetic String Matching. Este parâmetro define o grau mı́nimo de similaridade entre dois nomes próprios pelo Soundex. V. R ESULTADOS O nosso recomendador hı́brido modifica o algoritmo de Filtragem Colaborativa, ampliando o perfil do usuário antes (b) Similaridade Jaccard Figura 1. A quantidade de vizinhos de similaridade não nula para cada usuário de teste utilizando (a) Similaridade Cosseno no sistema baseline (cos) e de perfil ampliado (cos+) para o Dataset A. E com (b) Similaridade Jaccard (jac) e (jac+) também para o Dataset A. Os usuários foram ordenados pelo número de vizinhos de modo decrescente. Utilizando os parâmetros com o valor padrão obtivemos um ganho de aproximadamente 13% na precisão das recomendações com a nossa abordagem sobre o algoritmo clássico de Filtragem Colaborativa para o Dataset A (similaridade Cosseno). No Dataset B o ganho foi de 6%, aproximadamente 12% no Dataset C e 10% no Dataset D. Na Figura 2 apresentamos os resultados para cada conjunto de dados e medida de similaridade utilizada. Os resultados com o perfil modificado (+) tiveram aumento na precisão do recomendador nos quatro conjunto de dados utilizados para o experimento. Na Tabela III apresentamos o resultado para o Dataset A obtido pelo recomendador colaborativo com ampliação de sistema de recomendação (MAP@1000) consegue ser melhor do um recomendador colaborativo clássico. Outro aspecto importante dos resultados é que a medida de similaridade Jaccard apresenta resultados similares a medida Cosseno. Porém, o algoritmo que representa a similaridade Jaccard possui custo computacional inferior à representação do algoritmo para a similaridade Cosseno. Este experimento sugere que utilizar uma medida mais simples e rápida pode realizar a tarefa com a mesma qualidade. VI. Figura 2. MAP@1000 para cada conjunto de dados e medida de similaridade utilizada. perfil dos usuários, em conjunto com os resultados dos cinco primeiros colocados ao final da etapa offline do DC13. A comparação de resultados indica que nossa proposta ocuparia a quarta colocação deste ranking de recomendador que utilizaram diversificadas técnicas aplicáveis em Sistemas de Recomendação [20]. Assim como uma abordagem tradicional e conhecida de Filtragem Colaborativa foi beneficiada pela a ampliação do perfil do usuário, acreditamos que outros recomendadores também devem obter ganhos pela ampliação de perfil do usuário. Tabela III. C OMPARAÇÃO DO RECOMENDAÇÃO COLABORATIVA COM AMPLIAÇÃO DE PERFIL COM OS CINCO MELHORES RECOMENDADORES DO DC13. Time MAP@1000 Ampliação de Perfil 0,0412 uefs.br ibayer all your base Labic cadejo 0,0491 0,0472 0,0423 0,0379 0,0367 O crescimento da vizinhança dos usuários, obtida pela adição de itens similares em seu perfil, aumentou a precisão média de nosso recomendador social, mas para investigar o feito das recomendações para cada usuário, avaliamos a precisão individual de cada um deles. Os resultados da comparação da precisão individual entre o baseline e nossa abordagem são exibidos na Tabela IV. Calculando Average Precision at 1000 (P@1000) para as recomendações realizadas em cada usuário de teste verificamos o número de usuários que obtiveram melhor precisão, pior precisão e a diferença entre estes valores em cada abordagem. É possı́vel observar que mesmo uma quantidade maior de usuários apresentando piores resultados em P@1000 na nossa abordagem, o decréscimo é pequeno. Essa pequena piora na precisão da recomendação é superada pelo melhor resultado apresentado pelos usuários com perfil otimizado que acumularam uma P@1000 até 3x para a maioria dos conjuntos de dados utilizados. Assim, o comportamento médio do nosso C ONSIDERAÇ ÕES F INAIS A recomendação de nomes próprios é uma tarefa difı́cil, principalmente, pelo desafio de sugerir opções de interesse mesmo conhecendo pouco das preferências do usuário. Nossa abordagem adiciona ao perfil do usuário ativo nomes similares e também populares, antes da etapa de identificação dos vizinhos aproximando-os e auxiliando a identificar os melhores candidatos. A precisão de nosso recomendador foi maior que um recomendador social clássico conforme resultados apresentados. A técnica descrita em nosso experimento tem impacto na esparsidade da matriz usuário × item, um problema difı́cil de transpor utilizando somente abordagens sociais. Assim, exploramos uma configuração de sistema hı́brido de recomendação que utiliza filtragem colaborativa auxiliada pela filtragem por conteúdo (fonético) e por popularidade. A filtragem por conteúdo recupera nomes similares ao perfil do usuário, a filtragem por popularidade define quais desses nomes são mais frequentes na base e a filtragem colaborativa identifica nomes interessantes para o usuário ativo com base em seus vizinhos. Embora os resultados indiquem o crescimento da vizinhança como fator para aumento da precisão das recomendações, em uma abordagem hı́brida é importante discutir qual o impacto de cada abordagem no sistema. Buscaremos em trabalhos futuros mecanismos que possam apresentar mais detalhadamente a influência das mudanças de nossa proposta em um recomendador social. Além das questões abordadas neste trabalho, novos formas de configurar um sistema hı́brido podem ser exploradas. Descobrir quais aspectos são relevantes para os pais na escolha do nome de seus filhos é um grande desafio. Dados de contexto como localização geográfica dos usuários, dados sobre gênero e origem dos nomes próprios podem ajudar nessa tentativa de aprimorar essa experiência. R EFER ÊNCIAS [1] T. W. Malone, K. R. Grant, F. A. Turbak, S. A. Brobst, and M. D. Cohen, “Intelligent information-sharing systems,” Communications of the ACM, vol. 30, no. 5, pp. 390–402, 1987. [2] G. Adomavicius and A. Tuzhilin, “Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions,” Knowledge and Data Engineering, IEEE Transactions on, vol. 17, no. 6, pp. 734–749, 2005. [3] U. Shardanand and P. Maes, “Social information filtering: algorithms for automating “word of mouth”,” in Proceedings of the SIGCHI conference on Human factors in computing systems. ACM Press/Addison-Wesley Publishing Co., 1995, pp. 210–217. [4] F. Ricci, L. Rokach, and B. Shapira, “Introduction to recommender systems handbook,” in Recommender Systems Handbook. Springer, 2011, pp. 1–35. [5] R. Burke, “Hybrid web recommender systems,” The adaptive web, pp. 377–408, 2007. Tabela IV. C OMPARAÇÃO DOS RESULTADOS ENTRE O baseline Dataset #positivo dif+ E A NOSSA ABORDAGEM UTILIZADO A SIMILARIDADE C OSSENO . #negativo dif- #neutro Dataset A 948 +0.0288 1456 -0.0063 1736 Dataset B 937 +0.0249 1495 -0.0074 1706 Dataset C 930 +0.0317 1452 -0.0062 1759 Dataset D 1074 +0.0275 1646 -0.0064 2006 #positivo indica a quantidade de usuários de teste com aumento de precisão da recomendação por nossa abordagem. #negativo indica a quantidade de usuários com diminuição da precisão. #neutro os usuários sem mudança na precisão. dif+ e dif- são a diferença média entre P@1000 para as duas abordagens em cada usuário, sendo a primeira para os usuários com aumento de precisão e a segunda para os com diminuição da precisão. [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] ——, “Hybrid recommender systems: Survey and experiments,” User modeling and user-adapted interaction, vol. 12, no. 4, pp. 331–370, 2002. J. L. Herlocker, J. A. Konstan, L. G. Terveen, and J. T. Riedl, “Evaluating collaborative filtering recommender systems,” ACM Transactions on Information Systems (TOIS), vol. 22, no. 1, pp. 5–53, 2004. S. Doerfel, A. Hotho, R. Jaschke, F. Mitzlaff, and J. Mueller. (2013, March) 15th discovery challenge organized in conjunction with ecml pkdd 2013 - http://www.kde.cs.uni-kassel.de/ws/dc13/. [Online]. Available: http://www.kde.cs.uni-kassel.de/ws/dc13/ F. Mitzlaff and G. Stumme, “Recommending given names,” CoRR, vol. abs/1302.4412, 2013. M. Papagelis, D. Plexousakis, and T. Kutsuras, “Alleviating the sparsity problem of collaborative filtering using trust inferences,” in Trust management. Springer, 2005, pp. 224–239. M. Claypool, A. Gokhale, T. Miranda, P. Murnikov, D. Netes, and M. Sartin, “Combining content-based and collaborative filters in an online newspaper,” in Proceedings of ACM SIGIR workshop on recommender systems, vol. 60. Citeseer, 1999. K. Goldberg, T. Roeder, D. Gupta, and C. Perkins, “Eigentaste: A constant time collaborative filtering algorithm,” Information Retrieval, vol. 4, no. 2, pp. 133–151, 2001. B. Sarwar, G. Karypis, J. Konstan, and J. Riedl, “Application of dimensionality reduction in recommender system-a case study,” DTIC Document, Tech. Rep., 2000. P. Melville, R. J. Mooney, and R. Nagarajan, “Content-boosted collaborative filtering for improved recommendations,” in AAAI/IAAI, 2002, pp. 187–192. J. S. Breese, D. Heckerman, and C. Kadie, “Empirical analysis of predictive algorithms for collaborative filtering,” in Proceedings of the Fourteenth conference on Uncertainty in artificial intelligence. Morgan Kaufmann Publishers Inc., 1998, pp. 43–52. J. Zobel and P. Dart, “Phonetic string matching: Lessons from information retrieval,” in Proceedings of the 19th annual international ACM SIGIR conference on Research and development in information retrieval. ACM, 1996, pp. 166–172. L. Egghe and C. Michel, “Strong similarity measures for ordered sets of documents in information retrieval,” Information processing & management, vol. 38, no. 6, pp. 823–848, 2002. X. Su and T. M. Khoshgoftaar, “A survey of collaborative filtering techniques,” Advances in artificial intelligence, vol. 2009, p. 4, 2009. R. Glauber, A. Loula, and J. B. Rocha-Junior, “A mixed hybrid recommender system for given names,” in Proceedings of the ECML PKDD Discovery Challenge - Workshop Recommending Given Names. CEUR-WS, 2013, pp. 25–36. F. Mitzlaff, S. Doerfel, A. Hotho, J. Mueller, and R. Jäschke, “Summary of the 15th discovery challenge - recommending given names,” in Proceedings of the ECML PKDD Discovery Challenge - Workshop Recommending Given Names. CEUR-WS, 2013, pp. 7–25.