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

Ampliando o Perfil do Usuário para um Sistema de Recomendaç˜ao