Python em Sistemas de Recomendao Total Sobra = 44 min Tuesday, October 19, 2010 Quem Marcel ? Marcel Pinheiro Caraciolo - @marcelcaraciolo Mestrando em Cincia da Computao no CIN/UFPE na rea de minerao de dados Diretor de Pesquisa e Desenvolvimento na Orygens Membro e Moderador da Cella de Usurios Python de Pernambuco (PUG-PE) Minhas reas de interesse: Computao mvel e Computao inteligente Meus blogs: http://www.mobideia.com (sobre Mobilidade desde 2006) http://aimotion.blogspot.com (sobre I.A. desde 2009) Jovem Aprendiz ainda nas artes pythonicas.... (desde 2007) Sergipano, porm Recifense. TOTAL = 43 min Tuesday, October 19, 2010 O que Inteligncia Coletiva? TOTAL = 33 min Tuesday, October 19, 2010 VI Encontro do PUG-PE WEB Tuesday, October 19, 2010 VI Encontro do PUG-PE WEB WEB Tuesday, October 19, 2010 VI Encontro do PUG-PE VI Encontro do PUG-PE 1.0 2.0 Fonte de Informao Fluxo Contnuo de Informao Tuesday, October 19, 2010 VI Encontro do PUG-PE VI Encontro do PUG-PE 3.0 USERS WEB SITES WEB APPLICATIONS WEB SERVICES SEMANTIC WEB Tuesday, October 19, 2010 Usar informao coletiva de forma efetiva afim de aprimorar uma aplicao Tuesday, October 19, 2010 Intelligence from Mining Data User User User User User Um usurio inuencia outros por resenhas, notas, recomendaes e blogs Um usurio inuenciado por outros por resenhas, notas, recomendaes e blogs Tuesday, October 19, 2010 Intelligence from Mining Data User User User User User Contribuio e Interao Content Contribuio e Interao Contedo Personalizado Modelo Modelo Tuesday, October 19, 2010 Collective Intelligence Your application Search aggregation information: lists Clustering and predictive models recommendations reviews voting blogs Natural Language Processing ratings saving bookmarking wikis user-generated content tagging tag cloud Harness external content Tuesday, October 19, 2010 Comunidade Contedo gerado pelo usurio Conecte com outros usurios Contedo personalizado Tuesday, October 19, 2010 Recomendaes Sociais Eu acho que voc deveria ler estes livros. Amigos/ Famlia O Que eu deveria ler ? Ref: Flickr photostream: jefield Ref: Flickr-BlueAlgae Tuesday, October 19, 2010 Recomendaes por Interao Livros que voc pode gostar so Sada: Entrada: O Que eu deveria ler ? Avalie alguns livros Tuesday, October 19, 2010 Muitas vezes as pessoas s sabem o que querem depois que voc mostra a elas. Steve Jobs Estamos saindo da era da Informao e entrando na era da Recomendao. Cris Anderson, no livro a Cauda Longa Tuesday, October 19, 2010 Por que Recomendao ? TOTAL = 25 min Tuesday, October 19, 2010 Netix - 2/3 dos lmes alugados vm de recomendao Google News - 38% das notcias mais clicadas vm de recomendao Amazon - 38% das vendas vm de recomendao Fonte: Celma & Lamere, ISMIR 2007 Tuesday, October 19, 2010 Ns estamos sobrecarregados de informao We are overloaded Thousands of news articles and blog posts each day Millions of movies, books and music tracks online n Hanoi, > 50 TV channels, thousands of programs each day n New York, several thousands of ad messages sent to us per day Milhares de artigos e posts novos todos os dias Milhes de Msicas, Filmes e Livros Milhares de Ofertas e Promoes Tuesday, October 19, 2010 O que pode ser recomendado ? Messagens de Propaganda Tags Opes de Investimento Restaurantes Msicas Filmes Livros Programas de Tv Roupas Produtos Artigos Futuras namoradas Contatos em Redes Sociais Cursos e-learning Vdeos Prossionais Papers Mdulos de cdigo Tuesday, October 19, 2010 E como funciona a recomendao ? TOTAL = 25 min Tuesday, October 19, 2010 O que os sistemas de recomendao realmente fazem ? 1. Prediz o quanto voc pode gostar de um certo produto ou servio 2. Sugere um lista de N items ordenada de acordo com seu interese 3. Sugere uma lista de N usurios ordernada para um produto/servio 4. Explica a voc o porque esses items foram recomendados 5. Ajusta a predio e a recomendao baseado em seu feedback e de outros. Tuesday, October 19, 2010 Filtragem baseada por Contedo O Vento Levou Duro de Matar Similar Armagedon Toy Store Marcel gosta recomenda Items Usurios Tuesday, October 19, 2010 Filtragem colaborativa O Vento Levou Os ncriveis Similar Armagedon Toy Store Marcel gosta recomenda Items Rafael Luciana Usurios Tuesday, October 19, 2010 Filtragem colaborativa por usurio Vrias pessoas gostaram de Kung-Fu Panda. Voc pode me dizer o quanto eu vou gostar ? A idia encontrar items que voc possa gostar porque seus amigos gostaram. Collaborative filtering (1) User-based method (1994, GroupLens) Many people liked "Kungfu Panda Can you tell how much like it? The idea is to pick about 20-50 people who share simiIar taste with me, then how much like depend on how much THEY liked. n short: you may like it because your "friends liked it 8 7 5 4 5 3 4 3 5 4 5 4 5 4 5 4 3 5 5 4 5 3 4 3 2 3 5 1 4 2 3 4 5 1 2 3 4 5 6 7 8 item u s e r 1 2 3 4 5 6 Criado pela GroupLens em 1994 Tuesday, October 19, 2010 Filtragem colaborativa por item Criado pela Amazon em 2001 Eu assisti a diversos lmes fracos e bons. Voc me recomendaria assitir Tropa de Elite 2 ? A idia encontrar items que voc possa gostar porque voc gostou de outros items similares The idea is to pick from my previous list 20-50 movies that share similar audience with Taken, then how much I will like depend on how much I liked those early movies . People who have watched those movies also liked this movie . (Amazon style) Tuesday, October 19, 2010 Fatorao de Matriz Voc assistiu milhares de vdeos Mas se voc consegue agrup-los em 10 grupos como ao, aventura, animao, etc. A idia encontrar caractersticas escondidas a m de encontrar items similares Uma das solues para o Netix Challenge 2006 Collaborative filtering (3) Matrix Factorization (2006, Netflix challgence) You many have watched thousands of movies But perhaps can tell these movies belong to !" groups, like Action, Sci-Fi, Animation, etc,. So !" numbers are enough to describe your taste Likewise, "Titanic has been watched by millions people, but perhaps .10 numbers are enough to describe its features Magic: these hidden aspects can be discovered automatically by Matrix Factorization! ~ [0.1 0.3 0.2 0.9 0.5 0.4 0.7 0.3 0.8 1.5] Ento 10 caractersticas sucientes para descrever o seu gosto Tuesday, October 19, 2010 Filtragem Hbrida Marcel Rafael Luciana O Vento Levou Duro de Matar Armagedon Toy Store Items Usurios Ontologias Dados Smbolicos Combinao de mltiplos mtodos Tuesday, October 19, 2010 O que os sistemas de recomendao realmente fazem ? 1. Prediz o quanto voc pode gostar de um certo produto ou servio 2. Sugere um lista de N items ordenada de acordo com seu interese 3. Sugere uma lista de N usurios ordernada para um produto/servio 4. Explica a voc o porque esses items foram recomendados 5. Ajusta a predio e a recomendao baseado em seu feedback e de outros. Tuesday, October 19, 2010 Sim... e com Python como se aplica ? Tuesday, October 19, 2010 VI Encontro do PUG-PE VI Encontro do PUG-PE VI Encontro do PUG-PE PYTHON BATERIAS INCLUSAS html http urllib xml xmlrpc json cgi codecs email smtplib hashlib smtpd socket ssl wsgiref Tuesday, October 19, 2010 VI Encontro do PUG-PE VI Encontro do PUG-PE VI Encontro do PUG-PE http email ssl PYTHON MODULES Canivete Suo feedparser SQLAlchemy WebHelpers nltk FormEncode boto pycrypto BeautifulSoup NumPy PIL PyYAML Twisted python-memcached lxml Paste Beaker Babel Tuesday, October 19, 2010 Demo 1 - Clssico Tuesday, October 19, 2010 Como avaliar ? Tuesday, October 19, 2010 Frameworks em Python Tuesday, October 19, 2010 Exemplo PythonBrasil Twitter ou Ofertas Coletivas de Curitiba Tuesday, October 19, 2010 Minhas contribuies Tuesday, October 19, 2010 Recomendao Social +Mvel Tuesday, October 19, 2010 Trabalhos futuros Vulgo doutorado e na Orygens ... Tuesday, October 19, 2010 Recomendao Ubqua (Mvel + Social + Semntica) Tuesday, October 19, 2010 Dicas Tuesday, October 19, 2010 Obrigado !! Fonte: Hunch.com Marcel Caraciolo - caraciol@gmail.com @marcelcaraciolo Onde voc estar em tudo isso ? Tuesday, October 19, 2010 A cobra tambm inteligente! Marcel Caraciolo - Mestrando CIN/UFPE Python em Sistemas de Recomendao TOTAL = 45 min Tuesday, October 19, 2010 5.0 -> Demonstrao 01 -> Recomendao Clsssica 6.0 -> Meu trabalho de mestrado -> Smbolica + Semntica 7.0 -> Demonstrao 02 -> Recomendao Smbolica 8.0 -> Frameworks em Python Hoje para Recomendao 9.0 -> Ferramentas Web Exemplos com Recomendao 10.0 ->Exemplo Brincadeira dentro do PythonBrasil (Algo com Curitiba). 11.0 ->Minhas Contribuies 12.0 ->Trabalhos Futuros Tuesday, October 19, 2010