2. 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.
3. 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
4. Contextualização
– Redes Sociais x Ferramentas de Busca
– Personalização dos Resultados
– Contexto Social
• Grande Quantidade de Dados
5. 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
6. 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
7. Formalização do Problema
Variá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
𝑞𝑖 ∈ 𝑄
8. 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 𝑑𝑒𝑠𝑒𝑚𝑝𝑒𝑛𝑜
9. 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
10. Friendship Similarity ( 𝐹𝑢 𝑢′ )
• O interesse que u tem em receber
recomendações de u’
𝐹𝑢 (𝑢′ ) = 1
• É uma probabilidade 𝑢′ ∈𝑈
• Por definição 𝐹𝑢 𝑢 = 0
• É calculado com base em dois contextos
– Social
– Global
11. Similarity
′
2𝑥 𝑡𝑎𝑔𝑠𝑒𝑡 𝑢) ∩ 𝑡𝑎𝑔𝑠𝑒𝑡(𝑢′
𝑂 𝑢, 𝑢 =
|𝑡𝑎𝑔𝑠𝑒𝑡(𝑢)| + |𝑡𝑎𝑔𝑠𝑒𝑡(𝑢′ )|
Onde tagset(u) corresponde ao conjunto de tags utilizado pelo usuário u
12. Social Similarity
𝑘−1
𝑃𝑢 𝑢′ = 𝑚𝑎𝑥 𝑝𝑎𝑡 𝑢=𝑢 0 …𝑢 𝑘 =𝑢′ 𝑂 𝑢 𝑖 , 𝑢 𝑖+1
𝑖=𝑜
Onde path corresponde a uma ligação indireta entre dois usuários
13. Friendship Similarity
′
𝟏
𝐹𝑢 𝑢 = 𝛼∗ + 1 − 𝛼 ∗ 𝑃𝑢 (𝑢′ )
|𝑼|
Onde a razão em destaque corresponde a uma probabilidade uniforme
14. 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:
𝑠𝑓𝑢 𝑑, 𝑡 = 𝐹𝑢 𝑢′ ∗ 𝑡𝑓𝑢′ (𝑑, 𝑡)
𝑢′ ∈𝑈
16. Tag Expansion
No modelo 𝑡𝑠𝑖𝑚(𝑡, 𝑡′) é determinado pela probabilidade de co-
ocorrência de dois rótulos no mesmo documento:
′
𝑑𝑓(𝑡 ∧ 𝑡′) 𝑑𝑓(𝑡 ∩ 𝑡′)
𝑡𝑠𝑖𝑚 𝑡, 𝑡′ = 𝑃 𝑡 𝑡 = =
𝑑𝑓(𝑡) 𝑑𝑓(𝑡)
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.
17. 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 ∗ 𝑈 ∗ 𝑠𝑓𝑢 (𝑑, 𝑡)
𝑠𝑢 𝑑, 𝑡 = ∗ 𝑖𝑑𝑓(𝑡)
𝑘1 + 𝑈 ∗ 𝑠𝑓𝑢 (𝑑, 𝑡)
Onde 𝑘1 é o coeficiente de sintonia e 𝑖𝑑𝑓(𝑡) é a freqüência
inversa do rótulo 𝑡 nos documentos e é calculado nesse contexto
como:
𝐷 − 𝑑𝑓 𝑡 + 0.5
𝑖𝑑𝑓 𝑡 = 𝑙𝑜𝑔
𝑑𝑓 𝑡 + 0.5
Com 𝑑𝑓(𝑡) representando o número de documentos onde o
rótulo 𝑡 aparece.
18. 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 − 𝑏 + 𝑏 ∗ + 𝑑𝑓(𝑡, 𝑑)
𝑎𝑣𝑔𝑑𝑙
log 𝐷 − 𝑑𝑓 𝑡 + 0.5
𝑖𝑑𝑓 𝑡 =
𝑑𝑓 𝑡 + 0.5
Onde 𝑎𝑣𝑔𝑑𝑙 corresponde ao tamanho médio dos documentos, e
𝑘1 e 𝑏 são parâmetros da função.
19. 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 …𝑞 𝑛
20. 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
22. 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 𝑡𝑠𝑖𝑚 𝑡, 𝑡 ′ ∗ 𝑖𝑑𝑓(𝑡 ′ )
23. 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
24. Validação do Modelo
• Validação do Modelo Conceitual
– Comparação com outros Modelos
– Validade Aparente
• Avaliação Disjuntiva dos Resultados
25. 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
28. 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