você está aqui: Home  → Arquivo de Mensagens

Software Livre e a Personalização na Internet

Colaboração: Roberto Torres

Data de Publicação: 10 de Outubro de 2004

Personalização é um conceito moderno que está sendo utilizado por empresas inovadoras, como a Amazon.com, e tem revolucionado a maneira como os clientes são atendidos em sites de Comércio Eletrônico. Personalização permite recomendar aos clientes os produtos que estão de acordo com o seu perfil, baseado em seus hábitos de compra e navegação, aumentando, dessa forma, as chances de compra.

Um exemplo típico de um site personalizado é aquele que recomenda, por exemplo, um DVD do Caetano Veloso aos clientes que costumam comprar DVDs do Djavan e da Maria Rita, em vez de recomendar aos que costumam comprar DVDs do Mettalica e Guns and Roses.

Atualmente, diversas empresas oferecem soluções para Personalização. No exterior, IBM, TripleHop e E.Piphany são alguns exemplos. No Brasil, Go Digital e UNear também oferecem esse serviço.

Para recomendar produtos de forma personalizada, a forma mais tradicional é pedir que os usuários avaliem os produtos que consomem com uma nota (geralmente de 1 a 5 ou representado por estrelas). Essas notas são chamadas de "ratings" e são utilizadas para identificar "vizinhanças" de usuários similares, ou seja, usuários que avaliam produtos de forma semelhante. Dessa forma, é possível identificar como os usuários semelhantes se comportam e, a partir desse "modelo" de comportamento, gerar ofertas personalizadas a cada um deles.

E onde entra o Software Livre?

Tendo em vista que essas soluções são muito caras (nos Estados Unidos, custa centenas de milhares de dólares), soluções de software livre estão sendo utilizadas. Abaixo seguem dois sistemas que permitem oferecer produtos de forma personalizada.

Suggest

Desenvolvido na Universidade de Minnesota, Estados Unidos, Suggest é uma máquina de recomendação do tipo top-n que implementa diversos algoritmos de recomendação. Sistemas de Recomendação top-n são utilizados para identificar um conjunto de n itens de interesse de um determinado usuário (item pode ser um filme, um livro ou até mesmo um restaurante).

Os algoritmos implementados por Suggest são baseados em filtragem colaborativa, que é a mais bem sucedida técnica utilizada para construir sistemas de recomendação. As técnicas implementadas são user-based e item- based. A técnica user-based busca utilizar o relacionamento encontrado entre os usuários para recomendar produtos de forma personalizada. Já a técnica item-based recomenda produtos com base nas relações encontradas entre os produtos.

Para utilizar Suggest como um servidor de recomendações, considere que cada usuário de uma loja virtual consumiu uma série de produtos, que formam o seu perfil. Então, para carregar o servidor com esses produtos pode-se ter um simples arquivo texto no formato abaixo:

      11  8  14  7  9  19  21  215  34 49,

onde o primeiro número indica o identificador do usuário (11) e o segundo número indica o número de produtos que esse usuário consumiu (8). Os números seguintes são os identificadores dos produtos consumidos. Num exemplo real, esse arquivo possui centenas de linhas.

Suggest já foi utilizado por diversos trabalhos sistemas, dentre os quais gostaria de destacar o sistema TechLens+, desenvolvido para recomendar artigos científicos baseado nos hábitos de leitura dos usuários. Esse sistema está descrito no site da UFRGS

Para maiores informações, Suggest está disponível livremente para download, e é capaz de gerar recomendações de qualidade em menos de 50 microssegundos, em um Pentium II de 366 MHz.

CoFE

Desenvolvido na Oregon State University, Estados Unidos, foi originalmente chamado de CFEngine, porém, por já existir um pacote público com o mesmo nome, passou a ser chamado de CoFE.

Também foi desenvolvido para suportar algoritmos de filtragem colaborativa, porém, atualmente só suporta o tipo de algoritmo user-based. Outros algoritmos já estão sendo desenvolvidos e, segundo testes já realizados, apresenta resultados bastante satisfatórios e possui uma velocidade de execução eficiente.

CoFE possui uma interface responsável por toda manipulação do servidor de recomendações. Essa interface permite que sejam informados os usuários e os produtos que consumiu, bem como a avaliação que deu a esse produto. Por exemplo, o método

    public void setRating(int user, int item, double rating)

permite que seja informado o código do usuário, o código do item e o valor da avaliação dada a esse item. O conjunto completo de avaliações deve estar armazenado em uma base de dados antes de iniciar o servidor.

Após gerar as vizinhanças, é possível obter recomendações utilizando o seguinte método:

recommendations = server.getRecommendations(user.getID(), number, offset);

Onde "user.getID()" informa o usuário, "number" indica o número de recomendações a ser gerado e "offset" indica a partir de qual recomendação da lista total de recomendações será armazenada na lista "recommendations" (geralmente é escolhido 0).

------

As duas ferramentas apresentadas nesse artigo permitem que qualquer usuário sem muitos recursos computacionais crie um servidor de recomendações. Para o acesso a banco de dados, tanto um arquivo texto como um banco de dados MySQL podem ser utilizados.

Suggest deve ser utilizado somente para fins acadêmicos, porém CoFE não impõe restrições com relação ao uso comercial. De qualquer forma, essas duas ferramentas eliminam a barreira de entrada aos que desejam implementar soluções de personalização, pois permitem que sejam realizados testes robustos para análise.

Para mais detalhes sobre como personalização funciona e de que forma pode ser utilizada em seu negócio, você pode obter o livro Personalização na Internet: Como Descobrir os Hábitos de Consumo de Seus Clientes, Fidelizá-los e Aumentar o Lucro de Seu Negócio



Veja a relação completa dos artigos de Roberto Torres

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script