• Nenhum resultado encontrado

Os sistemas de recomendações colaborativas, diferentemente dos sistemas de recomendações baseadas em conteúdo, tentam predizer a utilidade de itens para um usuário com base nas revisões feitas anteriormente por outros usuários. A utilidade u (c,s) do item s para o usuário c é estimada com base nas utilidades u (cj,s) atribuídas ao item s pelos usuários cj  C que são similares ao usuário c, em termos dos atributos presentes no perfil dos usuários.

Um sistema de recomendação para programas de TV, por exemplo, tentaria encontrar usuários pares (que possuem gostos semelhantes) em relação ao usuário c e então recomendaria os programas que foram revisados com boas notas pelos usuários pares ao usuário c.

Muitos sistemas de recomendações colaborativas foram desenvolvidos tanto pela academia quanto pela indústria. Um dos exemplos mais conhecidos de sistemas de recomendações colaborativas é o sistema usado pela Amazon.com (Amazon.com, 2010), usado para recomendar uma grande quantidade de itens de tipos diferentes (livros, CDs, eletrônicos, etc.).

De acordo com (Breese et al., 1998), os algoritmos empregados em sistemas de recomendações colaborativas podem ser agrupados em duas classes: baseados em memória (ou baseados em heurísticas) e baseados em modelo. Os sistemas baseados em modelo usam o conjunto de notas atribuídas pelos usuários para aprender um modelo, que é então usado para fazer predições acerca de itens que não foram revisados pelos usuários. Neste trabalho abordaremos especificamente os algoritmos baseados em memória pela sua maior simplicidade. Maiores informações sobre os algoritmos baseados em modelo podem ser encontrados em (Adamovicius e Tuzhilin, 2005).

Os algoritmos baseados em memória são, essencialmente, heurísticas que fazem predições das notas dos itens com base no conjunto de notas de itens já revisados pelos usuários. Isto é, o valor da nota desconhecida rc,s para o usuário c do item s é computada como um agregado das notas dadas pelos N usuários pares de c para o mesmo item s. Em termos matemáticos:

rc,s = ,

onde C* detona o conjunto de N (o valor de N é arbitrário e definido heuristicamente) usuários pares de c que revisaram o item s. Na literatura são encontradas várias maneiras de definir a função de agregação. Apresentamos três delas:

(a) rc,s = ,

(b) rc,s = ,

(c) rc,s = ,

onde k serve como um fator de normalização e normalmente é definido como k =

, e a nota média atribuída pelo usuário c, , em (c) é definida

como

, onde }.

No caso mais simples (a), a agregação é apenas uma média simples das notas atribuídas pelos usuários pares. Entretanto, a agregação mais utilizada é a apresentada em (b), que é basicamente a média ponderada das notas atribuídas pelos usuários pares. A ponderação é feita levando em consideração a similaridade entre os usuários.

A medida de similaridade entre os usuários c e , , é essencialmente a

medida de distância entre os usuários. A medida de similaridade é, portanto, um artefato heurístico que é usado para introduzido níveis de similaridade diferentes entre os usuários. Dessa forma, quanto mais similar for o usuário com o usuário c, maior será a sua influência na nota final agregada e, portanto, nas recomendações feitas para o usuário c.

Várias abordagens já foram empregadas para computar a similaridade entre dois usuários em sistemas de recomendações colaborativas. Na maioria dessas abordagens, a similaridade é baseada nas notas atribuídas por eles para itens que ambos revisaram. As duas abordagens mais populares na literatura são correlação e baseada em cosseno. Para apresentá-las, precisamos definir Sxy como sendo o conjunto de todos os itens que foram revisados por ambos os usuários x e y. Em termos matemáticos:

. Esse conjunto é usado para posteriormente atribuir

Na abordagem baseada em correlação, o coeficiente de correlação de Pearson (Resnick et al., 1994), (Shardanand e Maes, 1995) é usado para mensurar a similaridade:

.

Na abordagem baseada em cosseno (Breese et al., 1998), (Sarwar et al., 2001), os dois usuários x e y são tratados como vetores em um espaço m-dimensional, em que

. Dessa forma, a similaridade entre os dois vetores pode ser mensurada pela

computação do cosseno do ângulo entre eles, ou seja:

.

É preciso levar em consideração também que sistemas de recomendação diferentes podem usar abordagens distintas a fim de implementar os cálculos de similaridades dos usuários e estimar as notas dos itens da maneira mais eficiente possível. Uma estratégia comum é calcular todas as similaridades entre os usuários

(incluindo o cálculo de ) de antemão e recalcular tudo de vez em quando,

considerando que a rede de usuários pares não muda drasticamente de maneira constante. Assim, sempre que um usuário precisar de uma recomendação as notas para os itens podem ser eficientemente calculadas sob demanda usando similaridades pré- computadas.

Assim como os sistemas de recomendações baseados em conteúdo, os sistemas de recomendações colaborativas também apresentam algumas limitações. Além do problema de novo usuário, já mencionado anteriormente, outras duas limitações serão discutidas aqui: problema de novo item e o problema de esparsidade (sparsity).

B.1.1 Problema de novo item

Novos itens são adicionados regularmente em um sistema de recomendação. Os sistemas colaborativos se baseiam exclusivamente nas preferências dos usuários para fazer recomendações. Dessa forma, até que um novo item tenha sido revisado por um conjunto significativo de usuários, o sistema não será capaz de recomendá-lo. Esse problema pode ser contornado usando-se abordagens híbridas para sistemas de recomendação.

B.1.2 Esparsidade

Em qualquer sistema de recomendação, o número de revisões feitas pelos usuários é muito pequeno em comparação com o número de predições que precisam ser feitas. O sucesso dos sistemas de recomendações colaborativas depende também de uma quantidade crítica de usuários. Se o número de usuários for pequeno, a eficiência das recomendações será certamente prejudicada.

Em um sistema de recomendação de programas de TV, por exemplo, pode haver alguns programas que tenham sido revisados por poucos usuários e, por isso, dificilmente tais programas seriam recomendados pelo sistema, mesmo que os poucos usuários que tenham revisados os programas em questão tenham dado notas altas para eles. Isto acontece porque na função de agregação um item não revisado provavelmente ficaria com a nota mínima, contribuindo para a sua baixa avaliação média. Outra situação que gera problemas é a de usuários que possuem gostos incomuns, em comparação com a grande maioria dos usuários. Nesse caso, a qualidade das recomendações seria baixa, porque o conjunto de usuários pares desse usuário particular não teria preferências efetivamente semelhantes às dele.

Uma das maneiras de contornar esse problema é usar a informação do perfil dos usuários quando se está calculando a similaridade entre usuários. Dois usuários podem ser considerados similares não apenas se revisam os mesmos itens de maneira semelhante, mas também se pertencem ao mesmo segmento demográfico. Em (Pazzani, 1999), usa-se atributos como gênero, idade, grau de escolaridade e informações de emprego dos usuários para recomendar restaurantes. Essa extensão as técnicas de filtragem colaborativa é conhecida na literatura como filtragem demográfica. Existem ainda outras maneiras de contornar esse problema. Maiores informações podem ser obtidas em (Adamovicius e Tuzhilin, 2005).