Buscar

Relatório Projeto Final Sistemas de Recomendação

Prévia do material em texto

Sistema Híbrido Para Recomendação de Restaurantes
Giuliene Santos Gomes
Universidade Federal De Minas Gerais 
INTRODUÇÃO
Com o avanço da tecnologia, a área de sistemas de recomendação vem ganhando importância. Com o grande volume de dados existentes, fica praticamente inviável encontrar itens de interesse sem auxílio de algum tipo de ferramenta. 
Diversos tipos de técnicas existentes têm como objetivo prever as preferências do usuário, porém, todas possuem suas limitações, o que nos leva a pensar em uma nova estratégia.
Uma estratégia que visa melhorar estas limitações é chamada de sistemas híbridos, em que técnicas são combinadas de diversas maneiras.
Neste trabalho, foi criado um recomendador de restaurante utilizando três técnicas: Filtragem colaborativa baseada em item e em usuário e Knowledge-Based que é uma técnica baseada no conhecimento.
Um dos principais desafios envolvidos no problema é como combinar estas técnicas dado o conjunto de dados e como treiná-lo.
A proposta deste trabalho é algo novo, pois outros algoritmos que lidam com Knowledge-based em recomendações de restaurante não utilizam o mesmo sistema hibrido nem a quantização de avaliações como será apresentado.
Originalmente, existe um sistema de recomendação de restaurantes chamado Entree Chicago [1] que utilizam a mesma base de dados que foi utilizada neste trabalho. Este sistema foi desenvolvido também utilizando sistemas híbridos, porém, a técnica utilizada foi cascata, diferente da técnica abordada neste trabalho. 
TRABALHOS RELACIONADOS
Existem diversas abordagens sobre sistemas híbridos na literatura, cada um considerando uma técnica diferente. Em particular, em [2], é abordado um sistema que foi utilizada a mesma base de dados deste trabalho. Nele, também foram incorporados sistemas híbridos, porém, o método abordado foi o de cascata, da seguinte forma: Primeiramente foi utilizado Knoeledge-based para refinar os dados, em seguida, com os resultados desta primeira fase, implementaram o método de filtragem colaborativa baseada em item utilizando os dados de saída da primeira fase.
 Em [3], sistemas de recomendação são abordados com uma técnica baseada em crítica, onde iterativamente críticas ou experiências de usuário são úteis e relevantes para influenciar a recomendação. 
Já em [4], são mostrados todos os tipos de sistemas híbridos existentes. Ele examina as técnicas de hibridização e aponta o número de sistemas híbridos que ainda não foram explorados. 
SOLUÇÃO PROPOSTA
Nesta seção será abordada toda a metodologia utilizada no trabalho. Este trabalho foi desenvolvido em fases, cada passo será descrito a seguir.
Inicialmente, foram separados dados para treino e teste na base de dados como explicado na seção 4.
Primeiramente foi realizado o cálculo de similaridade utilizando as características de cada um que estão descritas na seção 4.1. Um vetor de características foi criado para cada restaurante.
Três técnicas de sistemas de recomendação foram utilizadas neste trabalho: filtragem colaborativa baseada em item e em usuário e Knowledge-based. Para a implementação das técnicas de filtragem colaborativa foi utilizada a biblioteca Mathout [5], porém não foi encontrado nenhuma biblioteca que implemente Knowledge-based, então esta foi implementada no desenvolvimento deste trabalho. Vamos mostrar agora como cada técnica foi abordada.
Knowledge-based: A cada iteração, o algoritmo pega o restaurante e compara com a base de restaurantes de chicago, faz a medida de similaridade e coloca o resultado em um vetor de vizinhos. Estes vizinhos são candidatos a serem restaurantes recomendados na próxima iteração. O próximo restaurante presente na base de dados fornecido não é utilizado na próxima iteração, ele serve somente para calcular o quão o resultado está próximo da recomendação de Entree Chicago. Já a restrição contida a cada iteração é levada em consideração, esta servirá para definir aqueles vizinhos que irão sair do conjunto de vizinhos.
Filtragem colaborativa baseada em item: Para que se possa ter os resultados da filtragem colaborativa baseada em item, precisaremos de uma matriz usuário x item, para isso precisamos desenvolver uma forma em que cada usuário possa avaliar os restaurantes. A base de dados utilizada não possui tal informação, logo precisaremos de uma técnica que forneça isto. A técnica aplicada foi uma quantização das notas, dado que temos que um restaurante foi indicado ao usuário e este forneceu uma crítica a ele, podemos dar um valor a essa crítica e decrementar da nota do restaurante, fornecendo assim uma nota. Com isso podemos utilizar a biblioteca Mathout para calcular a nota do próximo restaurante dado as notas anteriores.
Filtragem colaborativa baseada em usuário: Acontece da mesma forma que em FC baseada em item.
Dado então que temos o resultado das três técnicas, devemos agora combinar os resultados utilizando sistemas híbridos da forma paralela - > mista [6]. 
O resultado de cada técnica está contido em seus respectivos vetores, estes então foram combinados gerando assim o resultado do próximo restaurante a ser recomendado.
EXPERIMENTAL SETUP
Nesta seção serão descrito os dados utilizados, mostrando a coleção de teste e treino, baselines, dentre outros. 
Os dados utilizados estão organizados da seguinte forma:
Características
Existem 8 cidades contempladas na base de dados: Atlanta, Boston, Chicago, Los Angeles, New Orleans, New York, San Francisco, Washington DC. Cada uma delas possui um arquivo que descreve cada restaurante contido nela e suas respectivas características. Todas estas características estão descritas em um arquivo de features que mostram o significado de cada uma, como por exemplo:
064 - Down-Home
065 - Down-Home Creole
066 - Early Dining
Estas características foram utilizadas para a realização do cálculo de similaridade descrito na seção anterior.
Iterações
Outro conjunto de arquivos contém num registro de iterações do usuário com o sistema Entree Chicago. O sistema mostrava o restaurante que mais semelhante aos desejos do usuário e este avaliava de acordo com suas preferências.
Estes dados foram coletados de setembro de 1996 a abril de 1999 e são organizados em arquivos que medem aproximadamente um trimestre - com Q3 1996 e Q2 1999 cada um contendo apenas um mês.
Este arquivo de iterações está descrito da seguinte maneira: Cada linha possui uma iteração do usuário com o sistema descrita da seguinte maneira:
Date, IP, Entry point, Rated restaurant1, ..., Rated restaurantN, End point
Date: Data da iteração;
IP: representa o ip do computador em que o usuário interagiu com o sistema. Mais representativamente, vamos considerar que este é o ID do usuário.
Entry point: Este é o ponto inicial que o usuário começou a interagir com o sistema, representa o reataurante de onde ele partiu, podendo ser um restaurante de qualquer cidade. Sua configuração é da seguinte forma: nnX, onde nn representa o id do restaurante e X representa a cidade em que ele está localizado.
Mas este dado possui alguns problemas: Alguns dados estão faltando e em muitos casos não sabemos o ponto inicial de partida pois o usuário insere um conjunto de dados de seleção usando um formulário de submissão, em vez de sair de um restaurante conhecido, essas consultas não foram guardadas. Quando isso acontece, é indicado com um 0 (zero) no ponto de entrada.
Rated restaurantN: Restaurante N avaliado, este ponto representa a iteração do usuário com o sistema. Este restaurante é apenas de chicago. Este dado tem a seguinte configuração: nnX, onde nn representa o id do restaurante e X representa a iteração do usuário com o sistema, codificando a operação de navegação. Esta operação pode ser composta das seguintes opções:
L = browse (passar de um restaurante para outro) ;
M = mais barato (procurar um restaurante como este, mas mais barato);
N = Buscamos um restaurante melhor;
O = mais perto;
P = mais tradicional (procurar um restaurante como este, mas que serve cozinhamais tradicional) 
Q = mais criativo (procurar um restaurante que serve uma culinária mais criativa);
R = mais animada (procurar um restaurante mais animado); 
S = mais silencioso (procurar um restaurante com uma atmosfera mais calma);
T = mudança cozinha (procurar um restaurante como este, mas 
 que serve um tipo diferente de alimento).
End point: O ponto final é representado numericamente com o id do restaurante em que o usuário decidiu escolher. Mas isso não acontece sempre, o usuário pode não ter escolhido o restaurante, apenas pode ter sido aquele em que ele viu por ultimo e simplesmente decidiu não querer nenhum. Em alguns casos, assim como no ponto inicial, pode não existir informação do ponto final, neste caso este é representado por (-1).
A linha de base utilizada é a recomendação que o sistema Entree Chicago fez para o usuário, esta informação está contida no arquivo de iteração com o usuário na parte “Rated restaurantN” em que NN	representa o restaurante indicado pelo sistema.
Como descrito na seção anterior, foi utilizado uma combinação de três técnicas, porém duas delas precisam de um conjunto de treinamento, com isso, para cada arquivo de iteração, foi separada uma parte de treino (100 primeiras linhas) e outra de teste. A medida em que os dados foram sendo processados, estes foram sendo colocados no conjunto de treino também.
Para avaliação dos resultados, foi calculada a similaridade entre os resultados.
RESULTADOS EXPERIMENTAIS
Um dos objetivos deste trabalho é responder as perguntas de pesquisa: Qual é a melhor técnica de hibridização para recomendadores de restaurante? Com um número maior de técnicas, o resultado irá melhorar?
As experiências contidas neste trabalho abordam estas perguntas da seguinte maneira: o paper [2] trabalha com Knowledge-based juntamente com filtragem colaborativa baseada em item utilizando sistemas híbridos da forma castata para combinar estas duas técnicas. Com base nas perguntas de pesquisa acima, foi utilizado neste trabalho uma outra técnica de hibridização, no caso o misto para avaliar e uma nova técnica para combinar com as outras, no caso a filtragem colaborativa baseada em usuário.
Nesta experiência foi esperado que o restaurante recomendado fosse o mesmo que o sistema Entree Chicago recomendou, porém nem sempre isso aconteceu. Os resultados foram por muitas vezes bastante diferentes. Logo podemos chegar à conclusão que talvez combinando features da maneira paralela -> mista [6] pode não ser o melhor caminho.
CONCLUSÕES
O presente trabalho teve como objetivo desenvolver um sistema recomendador de restaurantes. Este problema já tinha sido abordado antes, porém aqui desenvolvemos com outro tipo de sistema hibrido, o misto. E outra inovação foi lidar com três técnicas diferentes combinadas, tendo em vista que na abordagem presente na literatura o sistema hibrido utilizado é o de cascata e com apenas duas estratégias.
Este trabalho foi muito útil para aperfeiçoar o aprendizado do conteúdo visto em sala, serviu também para praticar tudo e observar os desafios e a complexidade de cada técnica. Com as experiências conduzidas, a conclusão do trabalho foi que esta técnica de hibridização mista não é uma boa estratégia comparada com a técnica de cascata. Nesta abordagem foi necessário uma base de treinamento, é necessário que se tenha um conhecimento prévio do usuário antes que se possa aplicar a técnica, isso não acontecia no sistema Entree Chicago, o que o tornava melhor e mais eficiente.
ADICIONAIS
O vídeo contendo a apresentação deste trabalho está presente no seguinte link: colocar o link aqui
REFERÊNCIAS
 
Entree Chicago Recommendation Data. Disponível em: <https://kdd.ics.uci.edu/databases/entree/entree.data.html >. Acesso em 12 de novembro de 2016.
Burke, R. Knowledge-based Recommender Systems. Department of Information and Computer Science University of California, Irvine. DOI= http://josquin.cs.depaul.edu/~rburke/pubs/burke-elis00.pdf
McCarthy, Kevin; Salem, Yasser and Smyth, Barry. Experience-Based Critiquing: Reusing Critiquing Experiences to Improve Conversational Recommendation. University College Dublin. DOI = http://www.cs.qub.ac.uk/~ysalem01/pdf/61760480.pdf
Burke, R. Hybrid Recommender Systems: Survey and Experiments. California State University, Fullerton Department of Information Systems and Decision Sciences. DOI = http://josquin.cs.depaul.edu/~rburke/pubs/burke-umuai02.pdf
Mathout. Disponível em: < https://mahout.apache.org/>. Acesso em 12 de novembro de 2016.
Recommender Systems Hybridization Designs. Disponível em: < http://homepages.dcc.ufmg.br/~rodrygo/slides/recsys/2016-2/20-hybrid-designs.pdf>. Acesso em 12 de novembro de 2016.

Continue navegando