ESCOLA POLITÉCNICA DE PERNAMBUCO Um serviço de recomendação interaplicações baseado em filtragem colaborativa Aluno: Jefferson Silva de Amorim Orientador: Prof. Dr. Byron Leite Dantas Bezerra Objetivos • Realizar uma revisão da literatura e propor novos sistemas e técnicas de recomendação inter-aplicações • Adaptar a implementação de uma técnica de filtragem colaborativa para realizar recomendações inter-aplicações • Desenvolver um Web Service que expõe as principais funcionalidades da técnica de filtragem colaborativa adaptada Objetivos • Desenvolver uma ferramenta web para coleta de dados e suporte à análise de recomendações • Analisar as recomendações realizadas pelo serviço de recomendação desenvolvido Conceitos fundamentais Sistemas de Recomendação • Se utilizam de tecnologias de personalização • Oferecem uma experiência personalizada aos usuários • Possuem geralmente 2 funcionalidades: – Predizer Nota – Gerar Lista Personalizada Sistemas de Recomendação • Engenho de personalização Sistemas de Recomendação • Personalização de conteúdo – Utiliza de informações do usuário para recomendar itens – Função utilidade 𝜌: 𝑈 𝘹 𝐼 ⟶ Г ∀𝑣 ∈ 𝑈, 𝑖𝑣′ = arg max𝑖 ∈ 𝐼 𝜌 𝑣, 𝑖 Sistemas de Recomendação • Técnicas de personalização de conteúdo – Baseada em conteúdo – Filtragem colaborativa – Demográfica Sistemas de Recomendação • Filtragem colaborativa – Duas abordagens podem ser utilizadas para definir a função utilidade: • Memory-based – Definem-se heurísticas • Model-based – Define-se um modelo a partir das avaliações Sistemas de Recomendação • Filtragem colaborativa (Memory-based) – Medida de similaridade • Coeficiente de correlação de Pearson 𝑖∈𝐼 Ψ 𝑣, 𝑢 = 𝑖∈𝐼 𝑣 𝑖 −𝑣 ∗ 𝑢 𝑖 −𝑢 𝑣 𝑖 −𝑣 2 ∗ 𝑖∈𝐼 𝑢 𝑖 −𝑢 – Função utilidade • Baseada em kNN ρ 𝑣, 𝑖 = 𝑣 + ℎ 𝑘=1 𝑢𝑘 𝑖 − 𝑢𝑘 ∗ Ψ(𝑣, 𝑢𝑘 ) ℎ 𝑘=1 Ψ(𝑣, 𝑢𝑘 ) 2 Sistemas de Recomendação • Filtragem colaborativa (Memory-based) – Vantagens: • Recomendação inovadoras e surpreendentes • Alto grau de reusabilidade • Facilidade de extensão – Desvantagens • Problemas – – – – Novo usuário Novo item Esparsidade Ovelhas negras Arquitetura Orientada a Serviços • Unidades lógicas representadas como pequenas unidades • Utiliza o paradigma de orientação a serviços • Características: – Direcionada ao negócio – Independente de plataforma – Centrada na empresa – Direcionada à composição Arquitetura Orientada a Serviços • Serviço Arquitetura Orientada a Serviços • Web Services Arquitetura Orientada a Serviços • Princípios de orientação a serviços Metodologia proposta Sistema de recomendação interaplicações • Modelo conceitual Inter-Applications Recommendation Service • Desenvolvido utilizando as tecnologias: – Java EE – JBoss AS – MySQL – Mahout Inter-Applications Recommendation Service • Modelo arquitetural Inter-Applications Recommendation Service • Módulo de Serviço Inter-Applications Recommendation Service • Módulo de Contextualização Inter-Applications Recommendation Service • Módulo de Contextualização – Descontextualização η′ 𝜌 = 𝜌 − 𝑚𝑖𝑛 𝜌 𝑚𝑎𝑥 𝜌 − 𝑚𝑖𝑛 𝜌 ∗ 𝑚𝑎𝑥′ 𝜌 − 𝑚𝑖𝑛′ 𝜌 + 𝑚𝑖𝑛′ 𝜌 – Contextualização η 𝜌′ = 𝜌′ − 𝑚𝑖𝑛′ 𝜌′ 𝑚𝑎𝑥′ 𝜌′ − 𝑚𝑖𝑛′ 𝜌′ ∗ 𝑚𝑎𝑥 𝜌′ − 𝑚𝑖𝑛 𝜌′ + 𝑚𝑖𝑛 𝜌′ Inter-Applications Recommendation Service • Módulo de Recomendação Inter-Applications Recommendation Service • Módulo de Recomendação – Adaptações realizadas em 2 momentos: • Coeficiente de correlação de Pearson 𝑖∈𝐼 Ψ 𝑣, 𝑢 = 𝑖∈𝐼 𝑣 𝑖 −𝑣 ∗ 𝑢 𝑖 −𝑢 𝑣 𝑖 −𝑣 2 ∗ 𝑖∈𝐼 𝑢 𝑖 −𝑢 • Cálculo da utilidade ρ 𝑣, 𝑖 = 𝑣 + ℎ 𝑘=1 𝑢𝑘 𝑖 − 𝑢𝑘 ∗ Ψ(𝑣, 𝑢𝑘 ) ℎ 𝑘=1 Ψ(𝑣, 𝑢𝑘 ) 2 Inter-Applications Recommendation Service • Exemplo Inter-Applications Recommendation Service • Repositório de Conhecimento Análises e Resultados Coleta de dados e análise de recomendações • Ferramenta desenvolvida para dar suporte a coleta de dados e as análises realizadas – JSF – Facelets – Primefaces • Composta por 3 módulos – Coleta de dados – Recomendação – Usuário Coleta de dados e análise de recomendações • Módulo de coleta de dados Coleta de dados e análise de recomendações • Módulo de recomendação Coleta de dados e análise de recomendações • Módulo de usuário Coleta de dados e análise de recomendações • Base de dados – Existentes • Wikilens, MovieLens, Book-Crossing e Jester Joke – Coletada • • • • 3 contextos 30 itens/contexto 52 usuários 1560 avaliações Coleta de dados e análise de recomendações • Análise das recomendações – Recomendação inter-aplicações X Recomendação clássica • Itens recomendados • Vizinhos do usuário Coleta de dados e análise de recomendações • Itens recomendados – Novos itens Coleta de dados e análise de recomendações • Itens recomendados – Omissão de itens Coleta de dados e análise de recomendações • Itens recomendados – Itens com notas e ordens de utilidade iguais Coleta de dados e análise de recomendações • Itens recomendados – Itens com notas iguais e ordens de utilidade diferentes Coleta de dados e análise de recomendações • Itens recomendados – Itens iguais com notas diferentes Coleta de dados e análise de recomendações • Vizinhos do usuário – Vizinhos iguais com mesma ordem de semelhança Coleta de dados e análise de recomendações • Vizinhos do usuário – Vizinhos iguais com ordens de semelhança diferentes Coleta de dados e análise de recomendações • Vizinhos do usuário – Vizinhos diferentes Coleta de dados e análise de recomendações • Vizinhos do usuário – Vizinhança híbrida Considerações finais Resultados e Dificuldades • Resultados promissores – Ameniza alguns problemas • Novo usuário e Ovelha negra – Problemas como o do novo item e de esparsidade persistem • Houve dificuldade em encontrar uma base de dados para teste – Coleta de dados Trabalhos futuros • Experimentos baseados em análises estatísticas • Outras técnicas de filtragem – CMBF, SMBF e HMBF • Representação do conteúdo descritivo de itens pertencentes a diferentes aplicações – Análise de Dados Simbólicos Referências [1] LAUNDON, K. C.; TRAVER, C. G. E-Commerce - Business, Technology, Society. Boston: Addison-Wesley Longman Publishing Co. Inc., 2001. [2] DRUCKER, P. F. The New Realities. 1ª st: Transaction Publishers, 2003. [3] BEZERRA, B. L. D. Soluções em personalização de conteúdo baseadas em classificadores simbólicos modais. Universidade Federal de Pernambuco. Recife, p. 211. 2008. [4] NICHOLS, D. M. Implicit Rating and Filtering. In Proceedings of the 5th DELOS Workshop on Filtering and Collaborative Filtering. Budapest: 1997. p. 31-36. [5] RALPH, P.; PARSONS, Personalization. J. Proceedings A Framework of the 39th for Annual Automatic Hawaii Online International Conference on System Sciences. : . 2006. p. 137b - 137b. [6] ADOMAVICIUS, G.; TUZHILIN, A. Toward the next generation of recommender systems: a survey of the state-of-the-art. IEEE Transactions on Knowledge and Data Engineering, v. 17, n. 6, p. 734-749, June 2005. [7] BURKE, R. Knowledge-Based Recommender Systems. In: KENT, A. Encyclopedia of Library and Information Systems. v. 69, 2000. [8] WEI, K.; HUANG, J.; FU, S. A Survey of E-Commerce Recommender Systems. International Conference on Service Systems and Service Management. 2007. p. 1-5. [9] BIRUKOU, A. development et al. IC-service - A service-oriented of recommendation systems. approach Proceedings of to the the 2007 ACM symposium on Applied computing. Seoul: ACM. 2007. p. 1683 - 1688. Referências [10] HOHPE, G.; WOOLF, B. Enterprise Integration Patterns - Designing, Building, and Deploying Messaging Solutions. 1st. ed. Boston: AddisonWesley Professional, 2003. [11] AHA, D. W.; KIBLER, D.; ALBERT, M. K. Instance-Based Learning Algorithms. Machine Learning, v. 6, p. 37 - 66, June 1991. [12] SHARDANAND, U.; MAES, P. Social information filterin - Algorithms for automating "word of mouth". Proceedings of ACM CHI'95 Conference on Human Factors in Computing Systems. Denver: ACM Press/Addison- Wesley Publishing Co. 1995. p. 210-217. [13] HERLOCKER, Evaluating J. L.; KONSTAN, collaborative J. filtering A.; TERVEEN, L. recommender G. &. R. systems. J. T. ACM Transactions on Information Systems, New York, 22, n. 1, January 2004. 5-53. [14] HUANG, Z.; ZENG, D.; CHEN, H. A Comparison of Collaborative-Filtering Recommendation Algorithms for E-commerce. IEEE Intelligent Systems, Piscataway, v. 22, n. 5, p. 68-78, September 2007. [15] BELL, R. M.; KOREN, Y. Improved neighborhood-based collaborative filtering. KDD Cup and Workshop at the 13th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. 2007. [16] ERL, T. SOA Design Patterns. 1st. ed. Indiana: Pearson Education, Inc, 2008. [17] ERL, T. Service-Oriented Architecture: Concepts, Technology, and Design. 1st. ed. Indiana: Pearson Education, Inc, 2005. [18] JOSUTTIS, N. M. SOA na Prática - A Arte da Modelagem de Sistemas Distribuídos. 1ª Edição. ed. Rio de Janeiro: Alta Books Ltda., 2008. Referências [19] FIELDING, R. et al. Hypertext Transfer Protocol -- HTTP/1.1, June 1999. Disponivel em: <http://www.rfc-editor.org/rfc/rfc2616.txt>. [20] BRAY, T.; PAOLI, J.; SPERBERG-MCQUEEN, M. Extensible Markup Language (XML) 1.0. 5ª Edição.: World Wide Web Consortium, 2008. [21] CHRISTENSEN, E. et al. Web Services Description Language (WSDL) 1.1: World Wide Web Consortium, 2001. [22] GUDGIN, M. et al. SOAP Version 1.2 Part 1: Messaging Framework. 2ª Edição.: World Wide Web Consortium, 2007. [23] BELLWOOD, T.; CLÉMENT, L.; RIEGEN, C. V. UDDI Spec Technical Committee Specification 3.0.1: Organization for the Advancement of Structured Information Standards, 2003. [24] THOMPSON, H. S. et al. XML Schema Part 1: Structures. 2ª Edição.: World Wide Web Consortium, 2004. [25] THURLOW, R. RPC: Remote Procedure Call Protocol Specification Version 2, 2009. Disponivel em: <ftp://ftp.rfc-editor.org/in-notes/rfc5531.txt>. [26] NADALIN, A. et al. Web Services Security - SOAP Message Security 1.1: Organization for the Advancement of Structured Information Standards, 2006. Obrigado! O código fonte do projeto está disponível em http://code.google.com/p/iars