Efficient top k querying over social-tagging networks

Preview:

DESCRIPTION

Traballho para a disciplina de FPCC3

Citation preview

Efficient top-k querying over social-tagging networks

Cleyton Caetano de SouzaFPCC 3

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.

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

Contextualização

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

• Grande Quantidade de Dados

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

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

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 𝑞𝑖 ∈𝑄

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𝑑𝑒𝑠𝑒𝑚𝑝𝑒𝑛ℎ𝑜

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

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

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

Similarity

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

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

Social Similarity

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

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

Friendship Similarity

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

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

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:

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

𝑠𝑓𝑢ሺ𝑑,𝑡ሻ

Social Frequency

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

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

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

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

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

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.

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.

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.

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…𝑞𝑛

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

Context Merge

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 𝑡𝑠𝑖𝑚ሺ𝑡,𝑡′ሻ∗𝑖𝑑𝑓(𝑡′)

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

Validação do Modelo

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

• Avaliação Disjuntiva dos Resultados

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

Validação do Modelo

Precision@10 variando o alfa – user specific ground truth

Validação do Modelo

NDCG-variando o alfa - user study

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

Validação do Modelo

• Cost Measure

Validação do Modelo

• # clocks

Empacotamento do Modelo

Manutenção do Modelo

Recommended