32
Efficient top-k querying over social-tagging networks Cleyton Caetano de Souza FPCC 3

Efficient top k querying over social-tagging networks

Embed Size (px)

DESCRIPTION

Traballho para a disciplina de FPCC3

Citation preview

Page 1: Efficient top k querying over social-tagging networks

Efficient top-k querying over social-tagging networks

Cleyton Caetano de SouzaFPCC 3

Page 2: Efficient top k querying over social-tagging networks

Referência

Schenkel, R., Crecelius, T., Kacimi, M., Michel, S., Neumann, T., Parreira, J. X., et al. (2008). Efficient top-k querying over social-tagging networks. Proceedings of the 31st annual international ACM SIGIR conference on Research and development in information retrieval - SIGIR ’08, 523.

Page 3: Efficient top k querying over social-tagging networks

Roteiro

• Contextualização• Identificação do Problema• Formalização do Problema• Solução do Modelo

– Parte 1– Parte 2

• Validação do Modelo• Empacotamento do Modelo• Manutenção do Modelo

Page 4: Efficient top k querying over social-tagging networks

Contextualização

– Redes Sociais x Ferramentas de Busca– Personalização dos Resultados– Contexto Social

• Grande Quantidade de Dados

Page 5: Efficient top k querying over social-tagging networks

Identificação do Problema

– Business Problem• Os algoritmos utilizados atualmente pelos ferramentas

de busca não estão aptos a executar milhões de consultas diariamente utilizando a informação presente nas redes sociais

– Technical Problem• Como combinar a informação presente nas redes

sociais aos algoritmos de busca de forma computacionalmente eficiente

Page 6: Efficient top k querying over social-tagging networks

Social Tagging Networks

• Rede Social onde usuários marcam com tags (rótulo, termo, palavra, marcação, label) as postagens uns dos outros e as suas próprias

Page 7: Efficient top k querying over social-tagging networks

Formalização do ProblemaVariável Tipo Significado 𝑄(𝑢,𝑞1 …𝑞𝑛) Independente Uma query postada por 𝑢 e formada pelos rótulos 𝑞1 …𝑞𝑛 𝑈 Independente Conjunto de usuários 𝐷 Independente Conjunto de documentos 𝑇 Independente Conjunto de rótulos (tags) 𝐹𝑢(𝑢′) Dependente Função que quantifica a importância da recomendação

de um usuário 𝑢′ para um usuário 𝑢 𝑂ሺ𝑢,𝑢′ሻ Dependente Função que calcula a similaridade entre os usuários 𝑢 e 𝑢′ com base nos rótulos comuns utilizados por eles 𝑃𝑢 ሺ𝑢′ሻ Dependente Máxima semelhança encontrada nas ligações indiretas entre dois usuários que não estão diretamente ligados 𝑡𝑓𝑢ሺ𝑑,𝑡ሻ Dependente Número de vezes que o 𝑢 utilizou o rótulo 𝑡 no documento 𝑑, tipicamente assume o valor 1 ou 0 𝛼 Independente É uma constante pré-definida que implica a influência do fator social na recomendação, se for 0 apenas a informação social é utilizada se for 1 não é utilizada informação social 𝛼𝑇𝐹(𝑑,𝑡) Dependente Corresponde a uma frequência global ponderada do termo (número de vezes que o rótulo 𝑡 foi utilizado no documento 𝑑) 𝑠𝑢ሺ𝑑𝑖,𝑞1 …𝑞𝑛ሻ Dependente A pontuação final de um documento 𝑑𝑗 para cada termo 𝑞𝑖 ∈𝑄

Page 8: Efficient top k querying over social-tagging networks

Formalização do Problema

Dada uma consulta 𝑄(𝑢,𝑞1 …𝑞𝑛) postada por um usuário 𝑢 ∈𝑈 qualquer e com 𝑞𝑖 ∈𝑇. Encontrar de forma computacionalmente eficiente os 𝑘 melhores documentos 𝑑𝑖 ∈𝐷 de acordo com a função score 𝑠𝑢.

Find: 𝑘 documentos 𝑑𝑖 To: maxσ 𝑠𝑢ሺ𝑑𝑖,𝑞1 …𝑞𝑛ሻ𝑘𝑖=1 Over: 𝑄,𝑈,𝐷,𝑇 Subject to: max𝑑𝑒𝑠𝑒𝑚𝑝𝑒𝑛ℎ𝑜

Page 9: Efficient top k querying over social-tagging networks

Solução do Modelo (1/2)

• Tradicionalmente

• O Social Scoring Model estende as técnicas tradicionais de RI adicionando os seguintes elementos– Friendship Similarity– Social Frequency– Tag Expansion

𝑠𝑐𝑜𝑟𝑒ሺ𝑡,𝑑ሻ= 𝑡𝑓ሺ𝑡,𝑑ሻ∗𝑖𝑑𝑓(𝑡)

Page 10: Efficient top k querying over social-tagging networks

Friendship Similarity ( )

• O interesse que u tem em receber recomendações de u’

• É uma probabilidade• Por definição• É calculado com base em dois contextos

– Social– Global

𝐹𝑢ሺ𝑢′ሻ

𝐹𝑢(𝑢′)𝑢′∈𝑈 = 1

𝐹𝑢ሺ𝑢ሻ= 0

Page 11: Efficient top k querying over social-tagging networks

Similarity

𝑂ሺ𝑢,𝑢′ሻ= 2𝑥a,𝑡𝑎𝑔𝑠𝑒𝑡ሺ𝑢) ∩𝑡𝑎𝑔𝑠𝑒𝑡(𝑢′ሻa,|𝑡𝑎𝑔𝑠𝑒𝑡(𝑢)| + |𝑡𝑎𝑔𝑠𝑒𝑡(𝑢′)|

Onde tagset(u) corresponde ao conjunto de tags utilizado pelo usuário u

Page 12: Efficient top k querying over social-tagging networks

Social Similarity

𝑃𝑢 ሺ𝑢′ሻ= 𝑚𝑎𝑥𝑝𝑎𝑡ℎ 𝑢=𝑢0…𝑢𝑘=𝑢′ ෑ� 𝑂ሺ𝑢𝑖,𝑢𝑖+1ሻ𝑘−1𝑖=𝑜

Onde path corresponde a uma ligação indireta entre dois usuários

Page 13: Efficient top k querying over social-tagging networks

Friendship Similarity

𝐹𝑢ሺ𝑢′ሻ= 𝛼∗ 𝟏|𝑼| +ሺ1− 𝛼ሻ∗𝑃𝑢(𝑢′)

Onde a razão em destaque corresponde a uma probabilidade uniforme

Page 14: Efficient top k querying over social-tagging networks

Social Frequency ( )

𝑡𝑓𝑢 (𝑑,𝑡) é uma função binária que retorna 1 caso o usuário 𝑢 tenha marcado 𝑑 com o rotulo 𝑡 e 0 caso contrário.

Define-se social frequency, denotada por 𝑠𝑓𝑢ሺ𝑑,𝑡ሻ, como a importância da recomendação de um documento 𝑑∈𝐷 que foi (ou não) marcado com o rótulo 𝑡 ∈𝑇 por um usuário 𝑢′ ∈𝑈.

O valor de 𝑠𝑓𝑢ሺ𝑑,𝑡ሻ é calculado pela fórmula:

𝑠𝑓𝑢ሺ𝑑,𝑡ሻ= 𝐹𝑢ሺ𝑢′ሻ∗𝑢′∈𝑈 𝑡𝑓𝑢′(𝑑,𝑡)

𝑠𝑓𝑢ሺ𝑑,𝑡ሻ

Page 15: Efficient top k querying over social-tagging networks

Social Frequency

𝐹𝑢ሺ𝑢′ሻ= 𝛼∗ 1|𝑈| +ሺ1− 𝛼ሻ∗𝑃𝑢(𝑢′)

𝑠𝑓𝑢ሺ𝑑,𝑡ሻ= 𝐹𝑢ሺ𝑢′ሻ∗𝑢′∈𝑈 𝑡𝑓𝑢′(𝑑,𝑡)

𝑠𝑓𝑢ሺ𝑑,𝑡ሻ= [ 𝛼a,𝑈a,∗𝑡𝑓𝑢′ሺ𝑑,𝑡ሻ+ሺ1− 𝛼ሻ∗𝑃𝑢ሺ𝑢′ሻ∗𝑡𝑓𝑢′ሺ𝑑,𝑡ሻ]𝑢′∈𝑈

𝛼|𝑈| 𝑡𝑓𝑢′ሺ𝑑,𝑡ሻ= 𝛼𝑇𝐹(𝑑,𝑡)𝑢′∈𝑈

ሺ1− 𝛼ሻ∗𝑃𝑢(𝑢′) ∗𝑡𝑓𝑢′(𝑑,𝑡))𝑢′∈𝑈

Page 16: Efficient top k querying over social-tagging networks

Tag Expansion

No modelo 𝑡𝑠𝑖𝑚(𝑡,𝑡′) é determinado pela probabilidade de co-ocorrência de dois rótulos no mesmo documento:

𝑡𝑠𝑖𝑚ሺ𝑡,𝑡′ሻ= 𝑃ሾ𝑡′a,𝑡ሿ= 𝑑𝑓(𝑡∧𝑡′)𝑑𝑓(𝑡) = 𝑑𝑓(𝑡∩𝑡′)𝑑𝑓(𝑡)

Onde 𝑑𝑓(𝑡∧𝑡′) é o número de documentos onde ambos os rótulos ocorrem. A expansão adiciona à consulta apenas os rótulos que tem maior probabilidade de aparecerem juntos.

Page 17: Efficient top k querying over social-tagging networks

Social Score

Para calcular a pontuação 𝑠𝑢 (𝑑,𝑡) de um documento 𝑑 que recebeu um rótulo 𝑡 em relação ao usuário que está realizando a consulta foi usado BM25:

𝑠𝑢ሺ𝑑,𝑡ሻ= ሺ𝑘1 + 1ሻ∗a,𝑈a,∗𝑠𝑓𝑢(𝑑,𝑡)𝑘1 + a,𝑈a,∗𝑠𝑓𝑢(𝑑,𝑡) ∗𝑖𝑑𝑓(𝑡)

Onde 𝑘1 é o coeficiente de sintonia e 𝑖𝑑𝑓(𝑡) é a freqüência inversa do rótulo 𝑡 nos documentos e é calculado nesse contexto como:

𝑖𝑑𝑓ሺ𝑡ሻ= 𝑙𝑜𝑔a,𝐷a,− 𝑑𝑓ሺ𝑡ሻ+ 0.5𝑑𝑓ሺ𝑡ሻ+ 0.5

Com 𝑑𝑓(𝑡) representando o número de documentos onde o rótulo 𝑡 aparece.

Page 18: Efficient top k querying over social-tagging networks

BM25

Na recuperação da informação, Okapi BM25 é uma função de classificação usada por ferramentas de busca para classificar documentos de acordo com sua relevância para uma consulta. É baseado na estrutura de recuperação probabilístico desenvolvido entre as décadas de 70 e 80. 𝑠𝑐𝑜𝑟𝑒ሺ𝑑,𝑡ሻ= ሺ𝑘1 + 1ሻ∗𝑑𝑓ሺ𝑡,𝑑ሻ𝑘1 ∗൬1− 𝑏+ 𝑏∗ a,𝐷a,𝑎𝑣𝑔𝑑𝑙൰+ 𝑑𝑓(𝑡,𝑑) ∗𝑖𝑑𝑓(𝑡)

𝑖𝑑𝑓ሺ𝑡ሻ= loga,𝐷a,− 𝑑𝑓ሺ𝑡ሻ+ 0.5𝑑𝑓ሺ𝑡ሻ+ 0.5

Onde 𝑎𝑣𝑔𝑑𝑙 corresponde ao tamanho médio dos documentos, e 𝑘1 e 𝑏 são parâmetros da função.

Page 19: Efficient top k querying over social-tagging networks

Social Score

Dessa forma, a importância de um documento para uma consulta é a soma da importância do documento para cada termo 𝑞𝑖 que compõe a consulta e é dada por: 𝑠𝑢ሺ𝑑,𝑞1 …𝑞𝑛ሻ= 𝑠𝑢(𝑑,𝑞𝑖)𝑞1…𝑞𝑛

Page 20: Efficient top k querying over social-tagging networks

Solução do Modelo (2/2)

• Embora o modelo seja parte essencial do trabalho, como a restrição do trabalho está relacionada ao custo computacional do algoritmo considerou-se também como solução o algoritmo em si

Page 21: Efficient top k querying over social-tagging networks

Context Merge

Page 22: Efficient top k querying over social-tagging networks

O que o faz tão bom?Como o Social Score depende de quem está consultando é totalmente inviável (e impossível) pré-computar todos os dados necessários, entretanto o Context Merge utiliza quatro diferentes tipos de listas de índices processadas previamente e que são acessadas de forma seqüencial.

1. 𝐷𝑂𝐶𝑆(𝑡) contem a lista de documentos que foram rotulados ao menos uma vez com 𝑡 e o valor de 𝑇𝐹(𝑑,𝑡) para cada documento

2. 𝑈𝑆𝐸𝑅𝐷𝑂𝐶𝑆(𝑢,𝑡) contem a lista de documentos que foram rotulados com 𝑡 pelo usuário 𝑢

3. 𝐹𝑅𝐼𝐸𝑁𝐷𝑆ሺ𝑢ሻ representa lista de usuários diretamente conectados com 𝑢 e suas respectivas similaridades 𝑃𝑢ሺ𝑢′ሻ, ordenados de forma decrescente

4. 𝑆𝐼𝑀𝑇𝐴𝐺𝑆(𝑡) contem para um rotulo 𝑡 todos os rótulos 𝑡′ similares com seus respectivos 𝑡𝑠𝑖𝑚(𝑡,𝑡′), ordenados de forma decrescente de acordo com 𝑡𝑠𝑖𝑚ሺ𝑡,𝑡′ሻ∗𝑖𝑑𝑓(𝑡′)

Page 23: Efficient top k querying over social-tagging networks

O que o faz tão bom?

• Basicamente, o que torna o algoritmo tão eficiente são 3 fatores principais:– As quatro listas pré-processadas– O fato de acessar os elementos da listas de forma

seqüencial– O fato do algoritmo ser executado apenas

enquanto os primeiros documentos podem ser alterados

Page 24: Efficient top k querying over social-tagging networks

Validação do Modelo

• Validação do Modelo Conceitual– Comparação com outros Modelos– Validade Aparente

• Avaliação Disjuntiva dos Resultados

Page 25: Efficient top k querying over social-tagging networks

Validação do Modelo

• Para realizar a validação do Context Merge foram utilizados dados de três redes sociais diferentes: del.icio.us, Flicker e LibraryThing– Relevância

• user-specific ground truth• user study

– Eficiência Computacional• cost measure• # clocks

Page 26: Efficient top k querying over social-tagging networks

Validação do Modelo

Precision@10 variando o alfa – user specific ground truth

Page 27: Efficient top k querying over social-tagging networks

Validação do Modelo

NDCG-variando o alfa - user study

Page 28: Efficient top k querying over social-tagging networks

Validação do Modelo

• Comparação com standard join-then-sort– Esse algoritmo lê todas as listas relacionadas com

a consulta do usuário, usa uma tabela hash em memória para sumarizar as entradas do mesmo documento e, finalmente, ordena, ainda em memória, os melhores k resultados

Page 29: Efficient top k querying over social-tagging networks

Validação do Modelo

• Cost Measure

Page 30: Efficient top k querying over social-tagging networks

Validação do Modelo

• # clocks

Page 31: Efficient top k querying over social-tagging networks

Empacotamento do Modelo

Page 32: Efficient top k querying over social-tagging networks

Manutenção do Modelo