Autores: Fábio Spak, Jones Granatyr, Maria Augusta Silveira Netto Nunes, Jean Paul Barddal, Rafael Sousa da Silva e Fábio Alexandre Taffe
Devido ao grande crescimento da Internet, quantidades maiores de informação podem representar grande diversidade de opções, seja na hora de comprar algum item, ler notícias ou até mesmo ouvir músicas. Em algumas situações os usuários podem não estar familiarizados com as novidades que determinados sites oferecem, fazendo com que a falta de experiência ou o desconhecimento dificulte a navegação. Dificuldades como essas podem fazer com que eles não encontrem os produtos ou serviços que desejam. Nesse contexto, é comum recorrer às opiniões dos amigos mais próximos sobre algum filme em cartaz, um produto em promoção na vitrine da loja ou até mesmo se aquele hotel para o final de semana é bom.
As opiniões de amigos podem ser consideradas recomendações de itens que possivelmente possam interessar aos internautas. Existem atualmente sistemas computacionais que usam características inteligentes para auxiliar na tomada de decisão computacional. Esses sistemas, chamados de sistemas de recomendação, podem emitir opiniões e recomendar produtos e serviços aos consumidores e internautas.
Os sistemas de recomendação fazem com que o processo de recomendação natural do ser humano ganhe uma maior versatilidade, de modo que venha a atender digitalmente as demandas e necessidades das pessoas que procuram por algo. Dessa forma, esses sistemas têm sido utilizados como uma alternativa em diversos cenários, como os sites de comércio eletrônico, nos quais as informações sobre as compras dos usuários podem ser registradas para posteriormente gerar ofertas personalizadas. Em redes sociais como o Facebook, por exemplo, um like pode fazer com que as recomendações de amizades retornem opções como aquele amigo de infância que há muito tempo não se tinha notícias ou até mesmo um parente desconhecido.
Nesse contexto, os dados gerados são utilizados para traçar um perfil do usuário e, a partir desse perfil, recomendar itens de maneira que atenda as expectativas e objetivos iniciais do usuário ao entrar no site. Em resumo, um dos grandes desafios desses sistemas é realizar de maneira eficiente a combinação do que é procurado com o que foi encontrado. Um exemplo seria digitar o termo “vingadores” fazendo uma referência ao filme e obter como resultado páginas desinteressantes com notícias sobre crimes. Ou seja, um sistema de busca convencional apenas retorna os resultados mais populares nas páginas da Internet, enquanto que um sistema de recomendação traz até o usuário as informações que são realmente relevantes, ou seja, aquelas que têm uma maior importância e que muitas vezes levam em consideração o perfil do usuário e o histórico de suas preferências. Baseado nesse contexto, pode-se concluir que o processo de recomendação está intimamente ligado à descoberta de informação, de modo que elas sejam levadas aos usuários muitas vezes sem a ação dos mesmos.
O Google utiliza os links dos sites que foram clicados para classificar e melhorar os seus resultados, coletando também informações sobre as propagandas que foram clicadas por diversos usuários, fazendo com que o conteúdo seja direcionado de maneira mais eficiente. Por outro lado, o Netflix oferece um serviço de TV pela Internet que exibe filmes e séries possibilitando que seus usuários realizem avaliações dessas programações. Essas avaliações podem ser posteriormente processadas com as de outros usuários, resultando no processo de recomendação. A Amazon também faz uso desse tipo de sistema, o qual é utilizado quando usuários fazem compras e posteriormente novos produtos são recomendados com base em seus históricos. Outros exemplos são o Spotify e last.fm, com listas de músicas para seus usuários, o IMDB, com recomendação de filmes e o Youtube, com recomendação de vídeos com base nas visualizações anteriores.
Com base nisso, o objetivo desse artigo é apresentar os conceitos fundamentais de sistemas de recomendação que utilizam a técnica de filtragem colaborativa, demonstrando passo a passo como realizar recomendações de forma manual por meio de uma base de dados. Em seguida é apresentada a implementação da mesma técnica na linguagem de programação Python com acesso ao banco de dados SQL Server. Como cenário para as demonstrações, foram utilizadas as avaliações fictícias de um grupo de críticos, que, ao assistirem aos filmes selecionados, avaliaram-nos com uma nota que indica o quanto gostaram do filme. O objetivo principal do sistema de recomendação é prever quais os próximos filmes que o crítico gostaria de assistir.
As recomendações auxiliam os usuários a encontrarem produtos, serviços e conteúdo mais rapidamente e com maior grau de satisfação. Existem diversas maneiras de apresentar as recomendações, bem como agrupar e interpretar as avaliações dos usuários. A seguir serão abordadas três das principais técnicas utilizadas em sistemas de recomendação.
Recomendação baseada em recuperação direta da informação
Em sistemas que são baseados na recuperação direta da informação, o usuário seleciona a informação ou a descreve com palavras-chave, sendo que uma consulta é enviada ao sistema que logo após retorna os itens que correspondem à pesquisa. Esse método é um dos mais simples devido a sua objetividade, porém, para que esse tipo de sistema funcione satisfatoriamente, os conteúdos devem estar estruturados e organizados em um banco de dados.
Nesse contexto, uma das abordagens mais comuns é a utilização do modelo Resource Description Framework (RDF), o qual é utilizado para representar informações na web, permitindo a codificação, troca e reutilização de metadados estruturados. A busca direta pode estar associada a uma organização do conteúdo, como: identificação, descrição e nome. Por meio desse tipo de informação, o usuário consegue selecionar e obter um melhor detalhamento da categoria desejada, levando assim ao seu objetivo ou item esperado. As recomendações que têm origens estatísticas também fazem parte da recuperação direta da informação, representando consultas nas bases de dados. Exemplos desse tipo de sistema de recomendação podem ser encontrados em sites que apresentam termos de recomendação, como “Os mais vendidos”, “Os mais clicados” e “A melhor nota”.
Filtragem por conteúdo
A filtragem baseada em conteúdo ocorre em informações sobre o conteúdo dos itens e sobre o perfil do usuário, sendo essas informações normalmente textuais. Ela consiste de algoritmos de aprendizagem de máquina supervisionados para gerar automaticamente a descrição dos itens e assim compará-los com o perfi ...