• Aucun résultat trouvé

A Concept of Large Scale Disk-Based Metric Indexing Structure for Approximate Information Retrieval by Content

N/A
N/A
Protected

Academic year: 2022

Partager "A Concept of Large Scale Disk-Based Metric Indexing Structure for Approximate Information Retrieval by Content"

Copied!
34
0
0

Texte intégral

(1)

A Concept of Large Scale Disk-Based Metric Indexing Structure for Approximate Information Retrieval by

Content

Stanislav Barton∗‡, Valerie Gouet-Brunet, Marta Rukoz†‡, Philippe Rigaux

Conservatoire National des Arts et Metiers

LAMSADE - Universite Paris Dauphine

Universite Paris Ouest Nanterre La Dfense

Paris, France

June 30, 2010

(2)

Outline

Motivation

Disk-based Access Structure Outline Experimental Evaluation

Going for Really Large Scale via Map-Reduce Framework Preliminary Results

Conclusions

(3)

Motivation

Large collections of multimedia data exist : Flickr, Google Images, etc.

Search implemented usually on the textual meta-data represented by annotations or tags

Search by content – a paradigm where automatic object description based on its content is exploited

The content of an object is represented as a vector

(multi-dimensional) – the search for similar objects then searches for nearest vectors in vector space

Extensibility – object representation and distance function (no limitation to LP metrics – Euclidean vector spaces)

Content-based search is a challenging problem on large (web) scale collections

(4)

Motivation

Many access structures work well on vector data, but are limited by main memory (LSH, MChord, Metric Inverted File, etc.)

With transition to cheaper and larger disk memory, performance degrades significantly

Scalability addressed by distribution of the access structure to cluster of computers (one computer with the same RAM is much more $$$)

→ Proposed access structure trades approximation and slower query processing times for high scalability by transition to cheap secondary memory

(5)

Extensibility via Metric Spaces

The metric space is defined as a pair (D,d) whereD denotes the domain of objects andd :D×D →Ris a total function:

∀x,y ∈D,d(x,y)≥0 non-negativity

∀x,y ∈D,d(x,y) =d(y,x) symmetry

∀x,y ∈D,x =y ⇔d(x,y) = 0 identity

∀x,y,z ∈D,d(x,z)≤d(x,y) +d(y,z) triangle inequality

(6)

Access Structure Outline

Very sparse distance matrix:

Based on matrix of mutual distances – problem with quadratic complexity (AESA [Ruiz, 1986] – Approximating and Eliminating Search Algorithm)

Concept of reference objects already known – pivotsP (Linear AESA [Mic´o et al. , 1994])

Compute|P| ×n distance computations – n is the size of indexed collection |P| n

Store only mclosest distances for each object – m |P|(Metric Inverted File [Amato & Savino, 2008])

Storage complexity – m×n

(7)

Access Structure Outline

Index creation:

Reference objects arerandomly selected from the collection

For each object from the collection, distance to all reference objects is computed

Predefined number mof closest distances are maintained for each object

Search:

1 Find s nearest neighbors among reference objects to the query object

2 Prune the collection by the distances to thes nearest reference objects (filtering)

3 Verify the candidates by computing original distance to the query object

(8)

Access Structure Outline

o1 o3

R2 R1

R3

o2 R4 R5

R6

Assignment

o1 o3

R2 R1

R3

o2 R4 R5

R6 q

r

RO cells

o1 o3

R2 R1

R3

o2 R4 R5

R6 q

r

Filtering with 2 ROs

Arrows for assignment denote closest three ROs for each object

Different colors denote different cells and their intersection (s= 2,R2,R3) Use also the distances ofqto closest ROs to filter out more candidates

An objecto canbe pruned if|d(q,RO)d(RO,o)|>r

An objecto cannotbe pruned ifd(q,RO)r<d(RO,o)<d(q,RO) +r An object must lie in the intersection

(9)

Access Structure Implementation

The access structure is implemented as a relational database One table for each reference object, storing the object ID and distance from RO

Indices are kept for object IDs and distances

Filtering (pruning) is inner join of s closest reference object tables with predefined distance ranges

Verification of candidates by computing the original distance after object representation retrieval

Tables and object representations kept on disk (separately)

(10)

Parameter Setting

On various data, one access structure performs differently

One access structure on one data performs differently under various parameter settings

Tight correlation between indexability of data and its intrinsic dimension

How to select the correct number of reference object?

|P|= m×n O

O estimated average number of objects per table m data’s intrinsic dimensionality

(11)

Cumulative Distribution Slope [Barton et al. , 2010]

0 0.2 0.4 0.6 0.8 1

0 0.2 0.4 0.6 0.8 1

A = 2.43009 f(x)

1 RGB

0 0.2 0.4 0.6 0.8 1

0 0.2 0.4 0.6 0.8 1

A = 5.37747 f(x)

9 SIFT

0 0.2 0.4 0.6 0.8 1

0 0.2 0.4 0.6 0.8 1

A = 4.74546 f(x)

11 Audio

0 0.2 0.4 0.6 0.8 1

0 0.2 0.4 0.6 0.8 1

A = 9.3936 f(x)

101 Uniform

Normalize cumulative pairwise distance distribution histogram Estimate slope of the flat part

Use estimations on uniform data sets (embedding 'intrinsic dimensionality) to calculate intrinsic dimensionality value

→ Extensible – work with any distance function, metric space friendly

(12)

Data

ID Descriptor Dim. Size Dist. CDS

Global Visual Descriptors Data Sets

1 RGB histogram 125 500,000 L2 5

2 RGB histogram 1,000,000 L2

Local Visual Descriptor Data Sets

11 SIFT 128 500,000 L2 8

12 SIFT 1,000,000 L2

13 SIFT 30,000,000 L2

Audio Descriptors Data Sets

21 MFCC 351 500,000 SKLD 7 (20)

22 MFCC 1,000,000 SKLD

European Web Archive – publicly available video and audio clips processed – thousands of hours

Audio – Symetrized Kullback-Leibler Divergence (SKLD) is a semi-metric !

ID 13 represents about 40,000 CD cover pictures

(13)

Hardware and Software settings

1 linux machine, 2 Intel XEON 2.0 GHz processors, 2 cores each 750GB disk

64 bit JAVA 1.6, PostgreSQL 8.3

(14)

Access Structure Creation Time

Parameter setting summary for considered data and measured time:

ID RGB 500k SIFT 500k Audio 500k RGB 1M SIFT 1M Audio 1M

m 5 8 20 5 8 20

|P| 32 50 125 65 100 250

Time (mm:ss) 5:02 7:24 22:03 10:30 15:34 49:24

Sequential scan used to find nearest ROs to indexed object One audio vector 351 dimensions

No parallelization

(15)

Query Processing Speed – Varying Range on 1M Data Sets

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

0 0.2 0.4 0.6 0.8 1 x * r

R 2 P 2 R 12

P 12 R 22 P 22

0 2000 4000 6000 8000 10000 12000

0 0.2 0.4 0.6 0.8 1

x * r time 2 read 2 time 12

read 12 time 22 read 22

Parameters= 3, Data sets: ID 2 - RGB,ID 12 - SIFT,ID 22 -Audio Set of queries that on average returned 0.5% objects from the 500k data set Time= average total time to process query

Read= average time spent of reading original object representations from disk TimeRead= time spent on processing SQL query

(16)

Speeding Up the Search

In comparison with the filtering phase, the verification phase of the search algorithm is very expensive

Filtering done in almost constant time

→ Reducing the number of candidates – aggressive pruning An objecto cannotbe pruned if

d(q,RO)r×a<d(RO,o)<d(q,RO) +r×a,a[0,1]

→ Omitting whole verification phase – order candidates w.r.t their rank and report k-best

rank(c) =

s

P

i=1

(d(q,ROi)d(ROi,c))2

(17)

Speeding Up – Aggressive Pruning

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 a

R 2 P 2 R 12

P 12 R 22 P 22

0 2000 4000 6000 8000 10000 12000

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 a

time 2 read 2 time 12

read 12 time 22 read 22

Varying the pruning constanta – the size of the range annulus Parameters = 3, Data sets: 2 - RGB, 12 - SIFT, 22 - Audio

(18)

Speeding Up – Omitting Expensive Verification

1 1.05 1.1 1.15 1.2 1.25 1.3 1.35

2 3 4 5 6 7 8

s 2, 50

2, 100

12, 50 12, 100

13, 50 13, 100

22, 50 22, 100

Ranking function evaluation on data sets ID 2 (RGB), 12, 13 (SIFT) and 22 (Audio)

Order candidates by their ranking

Compute average distance for first k best candidates andk ground truth objects

Ratios for first 50 and 100 objects is reported

(19)

Going for the Large Scale – 30M SIFTs

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 x * r

recall sift precision sift

0 500 1000 1500 2000 2500

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 x * r

time sift read sift

0 2000 4000 6000 8000 10000 12000 14000 16000 18000

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 x * r

sift candidates sift GT

s = 3,a= 1,|P|= 3,500 ˜30,000,000×8 80,000

20 hours to create the index (two parallel processes) SQL query processing time still constant and comparable

(20)

Summary

Primary motivation was an access structure for:

Any multimedia data – not necessarily vectors, not necessarily metric distance function

Large scale – scalable to hundreds of millions of objects Common HW – machine with usual main memory and disk We have:

Experimental evaluation with almost no parallelization optimizations ApproximatedkNN queries processed within ˜2s (30M dataset) Ran on one machine (no super server, 2 years oldbetter desktop) Access structure suitable for real time applications

(21)

Going for the Really Large Scale

The concepts exploited by the proposed access structure allow massive parallelization

Both the indexation and search can be parallelized The storage itself can be parallelized

⇒ Framework for large scale data operations – MapReduceand Google FS[Dean & Ghemawat, 2004]

⇒ Framework for large scale data storage –Bigtable [Chang et al., 2006]

(22)

Google’s MapReduce

Simplified framework for data processing on large clusters (of commodity HW)

In three phases, transforms the data from one form to another, data representation: Key-Value pairs<K,V >

Fail-safety via data/process replication Speed via data-local computations

Primary data storage in Google File System - replicated and distributed blocks of data (splits, e.g. 64MB)

Map takes<K1,V1> and transforms into<K2,V2> pairs Shuffle/Sort takes<K2,V2> and transforms to <K2,list(V2)>

Reduce takes<K2,list(V2)> and<K3,V3>

(23)

MapReduce Job Execution Diagram

(24)

MapReduce Example

Word counton a large file:

Input file stored in GFS (blocks)

Output contains one file of words and their frequencies

1 Map phase – Tokenize input block, for each word (K) emit <K,1>

2 Shuffle/Sort phase – Merge sort on Map outputs, produce

<K,list(1)>

3 Reduce phase – one Reducer, input<K,list(1)>, emits

<K,frequency >

The framework automatically pushesthe large data inputs in parallel through the cluster

Prevents the insufficiency of main or secondary memories on the fly – thousands of terms may cause memory leaks

Moves computation to data

(25)

Enhanced Distributed Storage – Bigtable

”A Bigtable is a sparse, distributed, persistent multi-dimensional sorted map. The map is indexed by a row key, column key, and a timestamp; each value in the map is an uninterpreted array of bytes.” [Changet al. , 2006]

sparse = variable number of columns per row, any value can benull distributed = stored on a cluster of computers

persistent = materialized

sorted map = sorted by unique row ID, no secondary indices available By no means a replacement for relational databases

Stored as files in GFS, so high availability via replication

Extreme scalability with assured performance – peta bytes of data on thousands on computers

”row id”→ list(”column id”→ ”cell value”)

(26)

Hadoop and HBase

Both Google frameworks have open source implementations MapReduce is calledHadoop (currently in version 0.20.2) Google FS is Hadoop’s Distributed FS (HDFS)

Bigtable is HBase(currently in version 0.20.4) All implemented in JAVA

HDFS works as an overlay on already installed FS, no need for specialized OS installations

(27)

Proposed Disk-based Access Structure in Hadoop/HBase

The index stored in HBase as one big distributedtable The indexation process rewritten as a MapReduce job

It takes object representations on the input and feeds the HBase table on the output

The query processing algorithm rewritten as a MapReduce job No joins in HBase, join is the result of the job

Due to a job starting overhead several queries processed in one batch

(28)

Storage Transformation

Object ID Distance

4 0

5 2.0

1 2.1

RO3

Object ID Distance

1 0

2 1.5

3 1.7

RO1

Object ID Distance

5 0

8 1.0

6 1.2

RO2

Row ID RO1 0 RO1 1 RO2 0 RO2 1 RO3 0 RO3 2

1 0

2 3

1.5 1.7 5

0 8 6

1.0 1.2 4

0 5 1

2.0 2.1

Database schema HBase schema

IndexIndexIndex

IndexIndexIndex Index

Object ID Distance

”row id”→ list(”column id”→ ”cell value”)

(29)

Query Processing – A MapReduce Job

Worker Worker Worker

<RO id, (object id, distance)>

Worker Worker

<object id, (RO id, distance)>

<object id, rank>

MapReduce SortShuffle

<object id, list((RO id, distance))>

Relevant HBase splits

Time

(30)

Preliminary Results

30 million SIFT data set used

DB had 240 millions of rows, in HBase 80 millions of rows with on average 4 columns

6 machines used, 4 as workers

2 four core XEON processors having 2933 MHz per machine

DB had 36 GB, HBase has 14GB on each worker machine (56GB in total, replication factor 3)

One batch of 100 queries executed, only filtering measured

Each input split represents (receives) one Map task, total number is job dependent

Number of Reducer tasks per job ispredefined

(31)

Preliminary Results

HBase Evaluation

8 – 1 16 – 1 16 – 2 16 – 4 20 – 20

0 50 100 150 200 250

0 50 100 150 200 250

Reduce Shuffle seconds Map

Map tasks (Mappers) vs. Mapper slots

First number denotes a number of Mapper slots per cluster Second number is the predefined number of Reducer tasks per job Always 350 splits to process during Map phase = 350 Map tasks All Reduce tasks processed at once

At the final set up, 1 query per 0.8s processed

Stanislav Barton et al. (CNAM) A Concept of Large Scale Disk-Based Metric Indexing Structure for Approximate Information Retrieval by ContentJune 30, 2010 31 / 34

(32)

Summary

Parallelization is so far scaling the index performance linearly!

Twice as much slots gives twice as fast results Although rather small cluster

30M data set represents only a proof of concept Missing large dataset to demonstrate true usability

Aim is a demo doing real-time search on billions of objects

Currently downloading 1TB of data representing 2 billions of SIFTs Waiting for resources to test larger clusters (easily done on the SW level – a matter of 3 configuration files)

(33)

Questions?

Thank you for your attention.

Supported by:

WISDOM – the French federation (2007-2010)

DISCO– the French project ANR MDCO (2008-2010) NEUMA– the French project ANR CONTINT (2008-2011) METACentrum – (super)computing facilities provided under the Czech research intent MSM638391720

(34)

References

Amato, Giuseppe, & Savino, Pasquale. 2008.

Approximate similarity search in metric spaces using inverted files.

Pages 1–10 of: Infoscale ’08: Proceedings of the 3rd international conference on scalable information systems.

ICST.

Barton, S., Gouet-Brunet, V., Rukoz, M., Charbuillet, C., & Peeters, G. 2010.

Estimating the indexability of multimedia descriptors for similarity searching.

Pages 1–4 of: Riao’10 on adaptivity, personalization and fusion of heterogeneous information.

Chang, Fay, Dean, Jeffrey, Ghemawat, Sanjay, Hsieh, Wilson C., Wallach, Deborah A., Burrows, Michael, Chandra, Tushar, Fikes, Andrew, & Gruber, Robert. 2006.

Bigtable: A distributed storage system for structured data (awarded best paper!).

Pages 205–218 of: Osdi.

Dean, Jeffrey, & Ghemawat, Sanjay. 2004.

Mapreduce: Simplified data processing on large clusters.

Pages 137–150 of: Osdi.

Mic´o, Mar´ıa Luisa, Oncina, Jos´e, & Vidal, Enrique. 1994.

A new version of the nearest-neighbour approximating and eliminating search algorithm (aesa) with linear preprocessing time and memory requirements.

Pattern recogn. lett.,15(1), 9–17.

Ruiz, E V. 1986.

An algorithm for finding nearest neighbours in (approximately) constant average time.

Pattern recogn. lett.,4(3), 145–157.

Références

Documents relatifs

It uses a gazetteer which contains representations of places ranging from countries to buildings, and that is used to recognize toponyms, disambiguate them into places, and to

With the objective to build a health search engine, task 2 of 2015 CLEF eHealth aims to detect levels of ac- curacy of information retrieval systems when searching for web

We define four design goals for the knowledge structure visualization: (1) visual- ize the overview of topics in the search results, (2) visualize concept groups or clusters within

To allow metric learning on high-dimensional image features of large scale datasets that are too large to fit in memory, we use in addition product quantization (Gray and

where we (i) compute resemblance attributes for each node and edge in graph, (ii) break the graphs into 2-node subgraphs (a.k.a. cliques of order 2), which are primitive

time, searh performane and result quality is ahieved using an average luster. size of 64KB or 128KB; we use 128KB in the remainder of our

The authors exploit different centralities (be- tweenness, closeness, stress, graph, eccentricity and degree) to heterogeneously allocate content store at nodes instead of

Furthermore, we applied deep learning method to train convolutional neural network (CNN) for feature learning and fully- connected layers with softmax output for