Recomendação de hashtags para o Twitter Aluno: Paulo Roberto Cólen Reis Orientador: Marcos Gonçalves Co-orientador: Anderson Ferreira
Twitter Criado em 2006 Rede social, microblogging Textos de até 140 caracteres (tweets) Atualização via site, RSS ou SMS Serviço gratuito
Hashtags Conjunto de caracteres iniciado por “#” Utilizadas para “categorizar” um tweet Um determinado acontecimento/assunto pode ser citado utilizando diversas tags Grupos de usuários interrelacionando-se isoladamente uns dos outros
Objetivo do trabalho Descobrir uma metodologia para recomendar hashtags para os usuários do Twitter, com base no que está sendo falado no momento “Convergência” das hashtags: mais pessoas falando sobre o mesmo assunto utilizando as mesmas hashtags
Metodologia Estudo de algoritmo para detecção de tópicos Preparação base de tweets para aplicação de algoritmo e análise posterior Criação modelo de representação de tópicos Criação de técnica para escolha de hashtags para recomendação Testes e análise finais
Cronograma 25/09 01/10 02/10 08/10 09/10 15/10 16/10 22/10 23/10 29/10 25/09 01/10 02/10 08/10 09/10 15/10 16/10 22/10 23/10 29/10 30/10 05/11 06/11 12/11 13/11 19/11 20/11 26/11 27/11 02/12 Estudo LDA Preparação base tweets Aplicação LDA Modelo de representação de tópicos Recomendação de hashtags Testes e análise
Cronograma 25/09 01/10 02/10 08/10 09/10 15/10 16/10 22/10 23/10 29/10 30/10 05/11 06/11 12/11 13/11 19/11 20/11 26/11 27/11 02/12 Estudo LDA Preparação base tweets x Aplicação LDA Modelo de representação de tópicos Recomendação de hashtags Testes e análise
Base de tweets Extraída em 2009 Music Monday Michael Jackson 828591 13833801 NULL NULL <d>2007-03-27 20:21:14</d> <s>web</s> <t>Quote of the day: <Amish> Moonlit, Michael Jackson has a cool body (from irc.hak5.org #hak5)</t> LuckyPhil 40 68 232 36000 0 0 <n>Phillip Welch</n> <ud>2007-03-09 10:00:51</ud> <t>Sydney</t> <l>iPhone: -33.789539,151.125092</l> Quote of the day: <Amish> Moonlit, Michael Jackson has a cool body (from irc.hak5.org #hak5) Music Monday Michael Jackson Gripe suína 834414 110230 294172 3030 595 2367 831384 (67,4%) 109635 (8,9%) 291805 (23,7%)
Detecção de tópicos Algoritmo LDA (Latent Dirichlet Allocation) Detecção de tópicos em coleções de documentos não rotulados Probabilístico: caracteriza a construção de documentos a partir de distribuições de probabilidades Iterativo: associa inicialmente de maneira aleatória tópicos documentos/palavras e melhora a solução atual Convergência
Detecção de tópicos Processo de criação de um documento w em um corpus D: Escolher N ~ Poisson(ξ) Escolher θ ~ Dir(α) Para cada uma das N palavras wn Escolher um tópico zn ~ Multinomial(θ) Escolher uma palavra wn com p(wn|zn, β), uma probabilidade multinomial condicionada ao tópico zn
Detecção de tópicos ? Documento X Tweet X
Detecção de tópicos Distribuição de termos por tópico Distribuição de tópicos por documentos (hashtags) Documento X #hashtag
Detecção de tópicos Parâmetros: Stoplist: lista de stopwords número de tópicos: definido com base em testes número de iterações α = 50/(número de tópicos) β = 0,01 Stoplist: lista de stopwords
… … Modelagem de tópicos Modelo de tópicos: Obtido diretamente a partir da execução do LDA Distribuição de probabilidade de tópicos por token t1 t2 t3 tn tópico 1 tópico 2 tópico 3 tópico m … …
Similaridade de tópicos Para cada token, é somada sua distribuição de probabilidade sobre tópicos Normalização t1 t2 t3 ∑ tópico 1 tópico 2 tópico 3 tópico m x1 y1 z1 x2 y2 z2 x3 y3 z3 ∑xn ∑yn ∑zn … …
Similaridade de tópicos Normalização Valores entre 0 e 1 Valores a serem selecionados muito próximos Aspectos de linguagem podem definir hashtag a ser escolhida: Tamanho da hashtag Presença de determinados caracteres
Testes Validação cruzada LDA utilizando 80% da base 20% restantes utilizados para testar o treino realizado Treino Teste 20% 20% 20% 20% 20%
Testes Resultado esperado: % de recomendação de hashtags que, no mínimo pertençam ao mesmo tópico das hashtags contidas no tweet Trabalhos futuros terão como objetivo recomendação da hashtag exata
Próximos passos… Melhoria do desempenho do LDA Estimativa de parâmetros internos Consideração maior de aspectos linguísticos Idioma (?)
Obrigado