Você está na página 1de 5

Anais do XVIII Encontro de Iniciao Cientfica ISSN 1982-0178

Anais do III Encontro de Iniciao em Desenvolvimento Tecnolgico e Inovao ISSN 2237-0420


24 e 25 de setembro de 2013

ALGORITMO HBRIDO PARA SISTEMAS DE RECOMENDAO
UTILIZANDO FILTRAGEM COLABORATIVA E
ALGORITMO GENTICO


Renan de Oliveira Yamaguti
Faculdade de Engenharia de Computao /
CEATEC
renan.yamaguti@terra.com.br

Juan Manuel Adn Coello
Grupo de Pesquisa em Sistemas Inteligentes
CEATEC
juan@puc-campinas.edu.br


Resumo: A expanso da Internet trouxe uma
grande quantidade de informaes, tornando cada
vez mais trabalhoso encontrar informaes de real
interesse para os usurios. Os sistemas de
recomendao baseados em filtragem colaborativa
surgem como uma alternativa para aliviar esse
problema, na medida em que procuram sugerir itens
de interesse para os usurios. Nesta abordagem,
recomendaes so baseadas nas avaliaes
explicitas ou implcitas que um usurio faz dos itens
acessados. Entre os principais desafios desse tipo
destaca-se oferecer preciso aceitvel,
especialmente quando a matriz onde se registram
as avaliaes da comunidade de usurios
esparsa. Este artigo apresenta um algoritmo hbrido
que combina os resultados de dois algoritmos de
filtragem colaborativa utilizando um algoritmo
gentico. Na avaliao experimental realizada, o
algoritmo hbrido obteve maior preciso que os dois
algoritmos de filtragem colaborativa isolados, porm
com um elevado custo computacional.
Palavras-chave: Sistemas de recomendao,
filtragem colaborativa, algoritmo gentico.
rea do Conhecimento: Cincias Exatas e da
Terra Cincia da computao.
1. INTRODUO
A quantidade e diversidade de informaes
disponveis na Internet desafiam os seres humanos
a encontrarem algo de real relevncia. Neste
contexto, os Sistemas de Recomendao (SR)
surgem como uma ferramenta til para minerar a
informao no mar da Internet. Tais sistemas
varrem de forma autnoma o espao de opes e
preveem se itens ainda no acessados pelos
usurios podem ser de seu interesse. Um item
corresponde a qualquer recurso de informao,
como um livro, uma pgina Web, uma msica, um
filme, um usurio a ser seguido no Twitter ou
adicionado no Facebook ou ainda um canal do
Youtube.
Entre os atributos usados para classificar os SR
destaca-se a abordagem empregada para fazer a
filtragem da informao a recomendar, sendo as
principais a filtragem demogrfica, a filtragem
colaborativa e a filtragem baseada em contedo.
Muitos sistemas combinam duas ou mais dessas
abordagens, dando origem aos mtodos hbridos
de filtragem [1].
A filtragem demogrfica caracteriza os usurios
por informaes demogrficas como idade, local
de residncia e preferncias, podendo criar
esteretipos, por exemplo: meninas de 14 anos
que moram no Reino Unido gostam de Jonas
Brothers. O principal problema dessa abordagem
que as recomendaes so muito genricas,
no conseguindo capturar os gostos especficos
de pessoas com um mesmo perfil demogrfico.
A Filtragem Colaborativa (FC) uma abordagem
que leva em conta o histrico das avaliaes
feitas por um usurio (ou recebidas por um item),
e a sua relao com as avaliaes feitas por
outros usurios (ou recebidas por outros itens). A
FC funciona construindo uma matriz usurio-item,
na qual cada posio da matriz contm a
avaliao (rating) dada para um item por um
usurio.
Uma das principais dificuldades da FC lidar com
matrizes esparsas, ou seja, matrizes com poucas
posies preenchidas. Outro problema importante
denominado de partida a frio (cold-start),
quando se tem um novo usurio ou um novo item.
Neste cenrio, o usurio no avaliou nenhum item
e o item no foi avaliado por nenhum usurio, o
que impede que se estabeleam relaes com as
avaliaes feitas por outros usurios (ou
recebidas por outros itens).
Na filtragem baseada em contedo, o SR coleta
informaes que descrevem os itens e ento,
baseado nas preferncias dos usurios, prev
que itens sero do interesse do usurio. Entre os
problemas desta abordagem destaca-se a
superespecializao, j que neste tipo de sistema
s sero recomendados itens semelhantes a
outros que foram avaliados previamente pelo
usurio, no havendo a explorao de novas
Anais do XVIII Encontro de Iniciao Cientfica ISSN 1982-0178
Anais do III Encontro de Iniciao em Desenvolvimento Tecnolgico e Inovao ISSN 2237-0420
24 e 25 de setembro de 2013

categorias de itens.
Os mtodos hbridos compem duas ou mais
abordagens de filtragem a fim de reduzir as suas
limitaes ou aumentar o seu desempenho.
O objetivo do trabalho descrito neste artigo
precisamente esse: combinar duas abordagens
conhecidas de filtragem colaborativas, visando
melhorar a preciso das recomendaes realizadas.
O restante deste artigo est organizado da seguinte
forma: na seo 2 aprofunda-se a discusso sobre
filtragem colaborativa, apresentando detalhes dos
algoritmos usados no trabalho descrito neste artigo;
na seo 3 faz-se uma introduo aos algoritmos
genticos, abordagem usada neste trabalho para
criar um algoritmo hbrido; na seo 4 apresenta-se
o algoritmo hbrido proposto e implementado que
combina dois algoritmos de filtragem colaborativa
usando um algoritmo gentico; na seo 5 os
resultados de uma avaliao experimental desse
algoritmo so apresentados e, finalmente, na seo
6 so apresentadas algumas consideraes finais.
2. FILTRAGEM COLABORATIVA (FC)
Os algoritmos de filtragem colaborativa utilizam uma
matriz usurio-item para prever a nota que um
usurio u daria para um item i ainda no avaliado
por esse usurio. No restante desta seo sero
apresentadas duas abordagens usadas com esse
propsito. A primeira baseia-se no algoritmo dos k
vizinhos mais prximos (K-Nearest-Neighbors
KNN) e a segunda nas tendncias verificadas de
cada ao avaliar itens e dos itens ao serem
avaliados.
2.1. O KNN
Muito utilizado na FC o algoritmo KNN busca
encontrar semelhanas entre usurios (ou entre
itens), o conjunto dos k usurios (ou itens) mais
semelhantes a um usurio (ou item) recebe o nome
de vizinhana desse usurio (item). A partir da
vizinhana prev-se uma avaliao para um item da
matriz usurio-item ainda no avaliado pelo item
alvo.
A filtragem colaborativa usando o KNN pode ser
baseada em itens ou em usurios. Em ambos os
tipos, busca-se estabelecer uma vizinhana formada
pelos K usurios ou itens mais parecidos com o
usurio ou item alvo.
No KNN baseado em usurios, se ()

for a
vizinhana definida pelos k usurios mais similares
ao usurio u, a nota que u atribuiria ao item i,
,

pode ser estimada pela equao (1):
Nesta equao, sim(u,v) expressa o grau de
semelhana entre o usurio u e um usurio v de sua
vizinhana, e

. o valor mdio atribudo por u


aos itens por ele avaliados.
No KNN baseado em itens, se ()

for a
vizinhana definida pelos k itens mais similares ao
item i, a nota que o usurio u atribuiria ao item
i,
,
, pode ser estimada pela equao (2):
Em (2), sim(i,j) expressa o grau de semelhana
entre os itens i e j e
,
a nota que o usurio u
atribuiu ao item j..
O clculo da semelhana entre dois usurios u e
v para a aplicao da equao (1) pode ser feito
utilizando a correlao de Pearson, conforme
apresentada na equao (3), onde I o conjunto
de itens avaliados por u e por v.
Para a aplicao da equao (2), a similaridade
entre dois itens i e j pode tambm ser
determinada pela correlao de Pearson,
conforme a equao (4). Nesta equao, U o
conjunto de todos os usurios que avaliaram os
itens i e j,

o valor mdio das avaliaes


recebidas por i e

o valor mdio das


avaliaes recebidas por j.
2.2. Filtragem Baseada em Tendncias
Cacheda e Carneiro, em [2], propem uma nova
maneira de prever uma nota para um elemento da
matriz usurio-item, no utilizando nem a
vizinhana baseada em itens nem a baseada em
usurios. O novo mtodo baseia-se na
interpretao das tendncias ou diferenas entre
usurios e itens.
A FC baseada em vizinhanas (item ou usurios)
considera que se dois usurios mostram um
padro de avaliaes similares provavelmente as
previses para itens no avaliados iro tambm
coincidir. Contudo, como discutido anteriormente,
essas tcnicas requerem uma grande quantidade
de informao e capacidade de processamento,
de modo que esses algoritmos, baseados no
clculo da similaridade entre usurios ou itens,
enfrentam srios problemas com matrizes
esparsas. A alternativa proposta consiste em
procurar as diferenas entre usurios ou itens, ao

,
=

+
(,)(
,

)
()

(,)
()

(1)

,
=
(,)
,
()

(,)
()

(2)

(, ) =
(
,

)(
,

)

(
,

)

(
,

)

(3)
(, ) =
(
,

)(
,

)

(
,

)

(
,

)

(4)
Anais do XVIII Encontro de Iniciao Cientfica ISSN 1982-0178
Anais do III Encontro de Iniciao em Desenvolvimento Tecnolgico e Inovao ISSN 2237-0420
24 e 25 de setembro de 2013

invs das semelhanas. Os autores defendem a
abordagem a partir da constatao de que usurios
parecidos podem avaliar itens de maneiras
diferentes: alguns so inclinados a dar notas boas
deixando notas baixas somente para os itens
realmente ruins, outros guardam as melhores notas
somente para os melhores itens deixando a maior
parte com avaliaes ruins.
Desse modo, a equao (5) define a tendncia de
um usurio,

, como a diferena mdia entre as


suas avaliaes e a mdia do item, sendo

o
conjunto de itens avaliado pelo usurio u,
,
a nota
que o usurio u atribuiu ao item i e

a mdia de
notas que o item i recebeu.
De forma anloga, a tendncia de um item


definida pela equao (6), onde

, o conjunto de
usurios que avaliaram o item i e

.a mdia que o
usurio u atribuiu aos itens por ele avaliados.
Para prever a avaliao de um item so
consideradas as mdias do usurio e do item bem
como as suas tendncias
Se tanto o usurio como o item tem tendncia
positiva feita uma previso que superior
ambas mdias, conforme mostrado na equao (7).
Em caso contrrio, quando ambos, usurio e item,
tm tendncia negativa, usada a equao (8).
Uma terceira situao ocorre quanto se tem um
usurio com tendncia negativa e um item com
tendncia positiva. Se ambas mdias corroboram as
tendncias (usurio com mdia baixa e item com
mdia alta), a previso ficar entre os dois,
conforme expresso pela equao (9), onde , uma
constante que varia entre 0 e 1, controla a
contribuio da mdia do item e do usurio na
previso.
Finalmente, h uma quarta situao na qual as
mdias no corroboram as tendncias. Isto se
verifica quando um usurio com uma tendncia
negativa avalia um item com mdia baixa (a
previso deve ser ruim) porm a mdia do usurio
alta e a tendncia do item positiva. Neste caso,
a previso feita usando a equao (10).
Em [2], mostra-se que o algoritmo baseado em
tendncias to preciso quanto a maioria dos
mtodos modernos, e ao mesmo tempo
computacionalmente mais eficiente. Tendo sido
esse o motivo para tambm empregar essa
abordagem no trabalho aqui descrito.
3. ALGORITMOS GENTICOS
Algoritmos genticos (AG) so mtodos para
buscar solues aproximadas para problemas de
otimizao e busca. Esse tipo de algoritmo
inspirando na biologia evolutiva, utilizando
mecanismos como a hereditariedade, a mutao,
a reproduo e a seleo natural. Esses
mecanismos biolgicos so simuladas
computacionalmente para buscar solues para
problemas. Estas solues so tratadas como
indivduos de uma populao.
O Algoritmo 1 mostra o pseudocdigo de um
algoritmo gentico, tal como apresentado em [3].
No pseudocdigo, t representa o nmero da
gerao atual e P(t) a populao na gerao t.
T uma constante que indica o nmero mximo
de geraes que ser produzido na busca por
uma soluo. Passado esse nmero de geraes,
o algoritmo retorna a melhor soluo encontrada
at o momento, a qual que poder ser utilizada ou
no, dependendo de sua qualidade e dos
requisitos do problema. Se antes disso uma
soluo (um indivduo) adequada for encontrada,
o algoritmo para e retorna essa soluo.

Algoritmo 1: Algoritmo Gentico
t = 0
Inicia P(t)
Avalia P(t)
Enquanto (t <T e em P(t) uma soluo) faa
Seleciona indivduos em P(t)
Cruzamento em P(t) criando P(t+1)
Mutao em P(t+1)
Avalia P(t+1)
t=t+1
Fim

Os indivduos da populao so as possveis
solues para o problema, sendo usualmente
representados por cadeias de bits. No incio do
algoritmo, para t=0, so gerados aleatoriamente

=
(
,

|
(5)

=
(
,

|
(6)

,
= max (

) (7)

,
= min(

) (8)

,
= min

, (

)
+(

)(1 ) ,

(9)

,
=

(1 ) (10)
Anais do XVIII Encontro de Iniciao Cientfica ISSN 1982-0178
Anais do III Encontro de Iniciao em Desenvolvimento Tecnolgico e Inovao ISSN 2237-0420
24 e 25 de setembro de 2013

indivduos para compor a primeira gerao.
A avaliao de uma populao feita usando uma
funo de adaptao (fitness), a funo objetivo que
se pretende otimizar. Ela serve para selecionar os
indivduos melhor adaptados (as melhores solues
at o momento) para a prxima gerao. Os
melhores indivduos de uma populao so
escolhidos a partir do grau de adaptao (fitness) de
cada um. A ideia que quanto mais adaptado o
individuo mais perto ele est da soluo, por esse
motivo procura-se manter para a prxima gerao
os indivduos que correspondem melhor soluo
para o problema at o momento (seleo elitista).
Assim como na biologia, nos algoritmos genticos
h a troca de material gentico dos indivduos de
uma populao para gerar um novo indivduo,
realizada por um operador de reproduo ou
cruzamento (crossover). H diversas
implementaes do operador de reproduo, sendo
o comum o cruzamento em um ponto (one-point
crossover). em que se escolhe um mesmo ponto
nas cadeia de bits que representa cada um dos pais
(que tm o mesmo tamanho). O material gentico
(os bits) alm desse ponto em cada um dos pais
trocado, dando origem a dois novos indivduos
(filhos).
A mutao modifica aleatoriamente parte do
cromossomo dos indivduos visando aumentar a
diversidade da populao o que permite ir para
regies do espao de busca no exploradas pelos
indivduos da gerao atual.
4. FC HBRIDA COM ALGORITMO GENTICO
Com base na proposta de [4], foi desenvolvido um
algoritmo hbrido que utiliza um algoritmo gentico
para ponderar as notas previstas por uma
implementao do algoritmo KNN e do algoritmo de
tendncias, visando melhorar a preciso das
previses feitas. O objetivo encontrar os valores
timos para os pesos a atribuir a cada previso,
conforme mostrado na equao (11). Nesta
equao,

,
o valor previsto pelo algoritmo j para
a nota que o usurio u daria ao item i. Na
implementao ora descrita j=1 corresponde ao
algoritmo KNN e j=2 ao algoritmo de tendncias.
Os indivduos foram representados como sequncia
de 16 bits, onde os primeiros oito bits correspondem
ao peso a ser atribudo para a primeira previso
(j=1) e os ltimos oito para a segunda previso (j=2).
Na implementao da reproduo foi usado um
operador de cruzamento em um ponto (single-point
crossover), com corte no oitavo bit, ocorrendo a
troca entre os pesos das previses de cada
algoritmo para a produo dos novos indivduos.
A taxa de reproduo de 75%, ou seja, so
escolhidos 75% dos indivduos da populao para
gerar descendentes. Os indivduos sofrem
mutao em um de seus genes com
probabilidade de 5%. Como cada gene
representado por um bit, ocorre uma alterao em
um de seus bits aleatoriamente (se o bit for igual
a 0 torna-se 1 e vice-versa).
A funo de fitness avaliar o erro mdio absoluto
(Mean Average Error -MAE) correspondente s
previses feitas utilizando na equao (11) com
os pesos associados ao genes do indivduo. O
MAE calculado pela equao (12).
Nesta equao, n o nmero total de previses
feitas (quantos
,
foram previstos).
,
o valor
previsto para a nota que o usurio u atribuiria ao
item i, e
,
valor real para essa nota. O clculo
do MAE pressupe que se dispe de uma matriz
usurio-item com os valores de
,
.
5. AVALIAO EXPERIMENTAL
Para a avaliao dos algoritmos implementados
foi construda uma matriz usurio-item com 100
usurios e 200 itens.
A preciso das previses realizadas foi medida
utilizando o MAE, em trs etapas. Na primeira foi
utilizado apenas o algoritmo KNN com vizinhana
baseada em usurios, em seguida foi usado o
algoritmo de tendncias e, finalmente, o algoritmo
hbrido que combina as previses dos dois
algoritmos precedentes usando um algoritmo
gentico, conforme descrito na seo 4. Foram
feitos testes com diversos graus de esparsidade
da matriz usurio-item, conforme mostrado na
Tabela 1. O nmero de avaliaes preenchidas
na matriz variou de 32 a 512.
Quando da aplicao do AG para definir os pesos
da composio, foi feita uma fase de treinamento
na qual 80% dos usurios participaram, tendo-se
como condies de parada do AG obter um par
de pesos w que ao aplicar a equao (11)
produzisse um MAE menor que 1,5m ou atingir
2000 geraes. Ao encontrar esses pesos, a
composio foi testada com os 20% usurios
restantes na base, seguindo os procedimentos
adotados em [4]. A Tabela 1 apresenta os
resultados obtidos utilizando a equao (11) com
os pesos obtidos.

,
=
(

,
.



(11)
=
1

,

,

(12)
Anais do XVIII Encontro de Iniciao Cientfica ISSN 1982-0178
Anais do III Encontro de Iniciao em Desenvolvimento Tecnolgico e Inovao ISSN 2237-0420
24 e 25 de setembro de 2013

Conforme pode ser observado na Tabela 1, o
algoritmo baseado em tendncias apresenta um
MAE inferior ao KNN em todos os casos testados.
De forma semelhante, as previses feitas a partir da
composio dos valores do KNN e do algoritmo de
tendncias, usando os pesos determinados pelo
Algoritmo Gentico, apresentam MAE inferior ao dos
dois algoritmos isoladamente em todos os casos
testados. Conforme esperado, o MAE tende a
diminuir medida que a matriz usurio-item torna-se
mais densa.
6. CONCLUSO
O objetivo do trabalho descrito neste artigo era:
combinar duas abordagens conhecidas de filtragem
colaborativas, visando melhorar a preciso das
recomendaes realizadas. Os resultados obtidos
experimentalmente, utilizando uma matriz usurio-
item artificialmente construda, mostram que isso
possvel, ainda que a um custo computacional
elevado. Pretende-se, dar continuidade ao trabalho,
realizando nova e mais elaborada avaliao
experimental utilizando dados reais, entre eles a
base Lenskit
1
de 100 mil avaliaes. Pretende-se
tambm adicionar outros algoritmos composio,
tentando diminuir ainda mais o erro.

1
http://lenskit.grouplens.org/
AGRADECIMENTOS
Ao CNPq pela bolsa de iniciao tecnolgica,
PUC-Campinas pelas instalaes que permitiram
o desenvolvimento desse artigo, e ao Prof. Dr.
Juan Manuel Adn Coello pela ateno,
motivao e orientao.
REFERNCIAS
[1] Celma, . (2010), The Recommendation
Problem, in Music Recommendation and
Discovery, Berlin Heidelberg: Springer-Verlag,
pp. 15-41.
[2] Cacheda, F., et al. (2011), Comparison of
Collaborative Filtering Algorithm: Limitations of
Current Techniques and Proposals for
Scalable, High-Performace Recommender
Systems, ACM Transactions on the Web
(TWEB), Volume 5 Issue 1, Article No. 2.
[3] Nanas, N., e De Roeck, A., (2010), A review of
evolutionary and imune-inspired information
filtering, Natural Computing, vol 9. n. 3, pp.
545-573.
[4] Bobadilla, J. , et al. (2011), Improving
collaborative filtering recommender system
results and performance using genetic
algorithms, Knowledge-Based Systems, vol.
24, pp. 1310-1316.
Avaliaes KNN Tendncias Composio
32 2.2440 1.6667 1.4466
64 2.2661 1.2265 1.1886
128 2.2882 1.2265 1.1977
256 2.5816 1.3198 1.3088
512 2.3604 1.3198 1.3088

Tabela 1. MAE para os algoritmos avaliados