tecnologias da comunicação humana transmission and storage 13340, hugo costa 14676, luís aguilar...

37
Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Upload: internet

Post on 21-Apr-2015

107 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Tecnologias da Comunicação Humana

Transmission and Storage

13340, Hugo Costa

14676, Luís Aguilar

14119, Fernando Cunha

Page 2: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Transmission and Storage

• Neste domínio é fundamental falar de compressão de dados.

• E também é importante falar de índices.

Page 3: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Porquê da Compressão?

• Economia de espaço

• Economia de rede

• Velocidade de acesso

• Processamento eficiente

Page 4: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Código de Huffman

• Método de compressão muito usado e fiável

• Maneira de funcionamento muito simples, consiste em criar árvores binárias.

• Método usado pelo Winzip.

Page 5: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Algoritmo Huffman

• Monta uma tabela de frequências da ocorrência de cada caracter.

• Cada caracter é representado por um conjunto de bits.

• Somar os índices com menor frequência, repetidamente até termos só uma árvore binária.

Page 6: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Algoritmo Huffman

• Considerando:

• Somar os índices com menor frequência

Page 7: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Algoritmo Huffman

• Continuando a somar e colocando os índices com menor frequência no nodo esquerdo

Page 8: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Algoritmo Huffman

• Finalmente a árvore:

Page 9: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Codificação dos Símbolos

• Estes códigos são utilizados na descodificação

Considerar nodo esquerdo 0 e nodo direito 1.

Símbolo Códigoa 0

" " 10c 1100l 1101t 1110s 11110e 111110j 111111

Page 10: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Objectivo Huffman

• Codificar os símbolos mais frequentes com o menor número de bits.

• Permite diminuir drasticamente o tamanho dos ficheiros.

Page 11: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Exercício

• Ponham-se atentos que sai na frequência

Page 12: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Porquê dos Índices?

• Aumento da performance de pesquisas.

• Diminuição do tempo de resposta.

• Resumindo eficiência.

Page 13: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Tipos Índices

• Índice Invertido

• Suffix Array

• Suffix Tree

Page 14: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

• O indíce invertido é a estrutura básica por trás de qualquer algoritmo de IR.

• Qualquer forma de melhorar a eficiência do uso do II melhora também a performance global do sistema de IR.

• Nalguns casos, conseguimos reduzir um índice para 10 % do seu tamanho original.

• Os indíces invertidos tornam-se necessários para se encontrar eficazmente os termos de um conjunto de documentos.

• Uma lista de palavras, cada uma das quais aponta para uma lista de ocorrências em documentos.

Índices Invertidos

Page 15: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Índices Invertidos

pal1 pal2

Doc 1

Doc 6

......

...

...

...

paln

Doc 16

...

...

Page 16: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

• Com um média de 6 letras por termo, um contador de documentos de 4 bytes e um apontador de 4 bytes para o ínicio da lista de cada termo, são necessários 14 bytes por termo. Um corpus de 8 milhões de termos ocuparia 128 MB.

• Cabe portanto facilmente em memória.

• Mas quanto maior for o indíce, maior vai ser o espaço de armazenamento necessário para o guardar.

• O tamanho (espaço de armazenamento) afecta directamente o tempo de processamento (I/O)

• Então o tamanho do Índice tem de ser reduzido ao máximo

Índices Invertidos

Page 17: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Compressão de Índices

• Usam-se então técnicas de compressão de índices

• Byte Aligned (Fixed Length Index Compression)

• Elias Gamma (Variable Length Index Compression)

• Flat Huffman

Page 18: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Compressão de Índices

Fixed Length Index Compression

• É o tipo de algoritmo mais simples de todos.

• Algoritmo está relacionado com as fronteiras do Byte.

• É fácil de implementar

• Melhora a performance em runtime, prejudicando um pouco a taxa de compressão

• Oferece boa compressão (15% do tamanho de um índice invertido, usando stop words)

Page 19: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Compressão de Índices

Fixed Length Index Compression

• Num índice invertido, as entradas para cada palavra são armazenadas em ordem descendente

• Então para cada identificador de documento, apenas a diferença entre o identificador corrente e o identificador que o precede precisa de ser guardada. Exemplo:

benfica campeão

Doc 5

3

......

...

...

...

Benfica está no documento 5 e no 8, por exemplo...

Page 20: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Compressão de Índices Fixed Length Index Compression

• No caso de não haver ainda nenhum identificador de documento, guarda-se uma versão comprimida do deste.

• Uma elevada proporção de valores relativamente baixos é assim garantida.

• Uma vez que as diferenças entre as ocorrências são relativamente pequenas precisamos de uma quantidade baixa de bits para guardar essa diferença.

• Ex: 1 byte 64

2 bytes 16384

3 bytes 4.194.304

4 bytes 2 ^ 30 – 1

Neste exemplo de Byte Aligned, usa-se os primeiros 2 bits para indicar quantos bytes vamos usar para guardar a diferença (por isso 2^30 e não 2^32)

63 – 00 111111180 – 01 000000 101101001 – 00 000001

Page 21: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Compressão de Índices

Fixed Length Index Compression

• Na melhor das hipóteses, um x até 64 pode ser guardado em um byte. Se não tivessemos compressão precisariamos de 4 bytes.

• Se tivessemos que guardar 180, 63, 4, 2, 1 precisariamos de 160 bits (20 bytes).

• Com este tipo de compressão precisamos apenas de 48 bits (4 bytes)

180 – 01 000000 1011010063 – 00 1111114 – 00 0001002 – 00 0000101 – 00 000001

Page 22: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Compressão de Índices

Variable Length Index Compression

• A técnica descrita por Witten, Moffat e Bell também tira proveito do facto de para a maioria das palavras, as diferenças entre os ids dos documentos que as contêm ser relativamente pequena.

• Consegue-se guardar um inteiro x com 2 * ( log2 x) + 1 bits.

• Ex: 14 guarda-se com 2 *( log2 14) +1 = 2*3 + 1 = 7 bits.

• O primeiro ( log2 x) usa-se para guardar uma representação de base 1 de inteiros usando apenas o dígito 1. Depois um stop bit de zero. O ( log2 x) seguinte usa-se para representar a diferença x – 2 ^ ( log2 x) .

Page 23: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Compressão de Índices

Variable Length Index Compression

• Ex.: 14: ( log2 14) = 3. Na representação de base 1 = 111 (três uns para o 3)

• Acrescentamos um 0 (stop bit).

• 14 – 2^3 = 14 – 8 = 6 em binário 110.

• Então representamos 14 por 1110110

• Para guardarmos o nosso exemplo de há pouco:

180, 63, 4, 2 e 1

usávamos apenas 35 bits.

Page 24: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Outras técnicas para ganhar eficiência

• Pesquisas demonstram que atrasar o update do índice na altura da introdução de documentos no corpus melhora consideravelmente a eficiência sem degradar de forma notória a eficácia do sistema de IR.

(Frieder, Grossman, Chowdury e Frieder - Efficiency Considerations for Scalable Information Retrieval Servers)

• Uma vez que os utilizadores de sistemas de IR não toleram respostas demoradas e a pesquisa em bases de dados gigantescas requer sempre vastos recursos computacionais, o processamento em paralelo torna-se inevitável.

Page 25: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Suffix Trees e Suffix Arrays

• Consideram o texto como uma string longa

• Cada posição no texto é considerado como um sufixo de texto

• Sufixo é a string que vai desde a posição inicial do sufixo até ao fim do texto

• Cada sufixo é identificado pela sua posição

Page 26: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Suffix Tree

• Uma árvore de sufixos T para uma palavra t=t1...tm é uma árvore com raiz com exactamente m folhas numeradas 1 a m

• Cada nó interno da árvore com excepção da raiz tem pelo menos 2 ramos e cada ramo é rotulado com uma subpalavra de t

• Se dois ramos partem do mesmo nó de T, então os seus rótulos diferem pelo menos no primeiro caractere

Page 27: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Suffix Tree – Exercício

• This is a text. A text has many words. Words are made from letters.

• text . A text has many words. Words are made from letters.• text has many words. Words are made from letters.• many words. Words are made from letters.• words. Words are made from letters.• Words are made from letters.• made from letters.• letters.

1 50 5519171196 40332824 6046

Page 28: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Suffix Trie Exemplo de Construção

GOOGOL$

1 2 3 4 5 6 7

Page 29: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Suffix TreeExemplo de Construção

Page 30: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Suffix Tree

• Custo computacional de construção elevado

• Ocupam ainda mais espaço que o próprio texto

• Não são práticas para textos grandes

• Ao contrário dos indices invertidos guarda a sequência das palavras

• Ideal para querys complicadas

• Pesquisa facilitada

Page 31: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Suffix TreePesquisas

• Pesquisa é feita a partir da raíz da árvore, e percorrendo os nodos da árvore conforme a query

• Se chegarmos a um ponto onde a query foi satisfeita, então devolvemos todos os resultados

• Se não por outro lado chegarmos a um ponto onde não podemos descer mais na árvore e a query não foi satisfeita, a pesquisa termina

Page 32: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Suffix TreePesquisas

• Query = GO– Resultdo = GOOGOL$,GOL$

• Query = GOLO– Resultdo = null

Page 33: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Suffix Array

• Mesmas funcionalidades do suffix trees, mas requerem muito menos espaço

• Array com ponteiros para os sufixos de texto

• Possibilitam buscas binárias

• Pesquisas são feitas em disco

• Perde-se funcionalidade, mas ganha-se espaço

Page 34: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Suffix Array - Exemplo

• This is a text. A text has many words. Words are made from letters.501917116 40332824 60461 559

60 50 28 19 11 40 33

Page 35: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Suffix ArrayPesquisa Binária

String = mississippiiippiissippiississippimississippipi

8

5

2

1

10

9

7

4

11

6

3

ppisippisisippissippississippi

L

R

Query = isse

M

Page 37: Tecnologias da Comunicação Humana Transmission and Storage 13340, Hugo Costa 14676, Luís Aguilar 14119, Fernando Cunha

Referências

(1) Efficiency Considerations for Scalable Information Retrieval Servers

Ophir Frieder, David A. Grossman, Abdur Chowdhury and Gideon Frieder em http://jodi.tamu.edu/Articles/v01/i05/Frieder/

(2) On the Mapping of Index Compression Techniques on CSR Information RetrievallSterling Stuart Stein e Nazli Goharian

em http://lingcog.iit.edu/~scubed/paper.pdf

(3) http://articulos.conclase.net/compresion/huffman.html

(4) Modern Information Retrieval

Ricardo Baeza-Yates, Berthier Ribeiro-Neto