3 research outputs found

    Parallelizing Set Similarity Joins

    Get PDF
    Eine der größten Herausforderungen in Data Science ist heutzutage, Daten miteinander in Beziehung zu setzen und ähnliche Daten zu finden. Hierzu kann der aus relationalen Datenbanken bekannte Join-Operator eingesetzt werden. Das Konzept der Ähnlichkeit wird häufig durch mengenbasierte Ähnlichkeitsfunktionen gemessen. Um solche Funktionen als Join-Prädikat nutzen zu können, setzt diese Arbeit voraus, dass Records aus Mengen von Tokens bestehen. Die Arbeit fokussiert sich auf den mengenbasierten Ähnlichkeitsjoin, Set Similarity Join (SSJ). Die Datenmenge, die es heute zu verarbeiten gilt, ist groß und wächst weiter. Der SSJ hingegen ist eine rechenintensive Operation. Um ihn auf großen Daten ausführen zu können, sind neue Ansätze notwendig. Diese Arbeit fokussiert sich auf das Mittel der Parallelisierung. Sie leistet folgende drei Beiträge auf dem Gebiet der SSJs. Erstens beschreibt und untersucht die Arbeit den aktuellen Stand paralleler SSJ-Ansätze. Diese Arbeit vergleicht zehn Map-Reduce-basierte Ansätze aus der Literatur sowohl analytisch als auch experimentell. Der größte Schwachpunkt aller Ansätze ist überraschenderweise eine geringe Skalierbarkeit aufgrund zu hoher Datenreplikation und/ oder ungleich verteilter Daten. Keiner der Ansätze kann den SSJ auf großen Daten berechnen. Zweitens macht die Arbeit die verfügbare hohe CPU-Parallelität moderner Rechner für den SSJ nutzbar. Sie stellt einen neuen daten-parallelen multi-threaded SSJ-Ansatz vor. Der vorgestellte Ansatz ermöglicht erhebliche Laufzeit-Beschleunigungen gegenüber der Ausführung auf einem Thread. Drittens stellt die Arbeit einen neuen hoch skalierbaren verteilten SSJ-Ansatz vor. Mit einer kostenbasierten Heuristik und einem daten-unabhängigen Skalierungsmechanismus vermeidet er Daten-Replikation und wiederholte Berechnungen. Der Ansatz beschleunigt die Join-Ausführung signifikant und ermöglicht die Ausführung auf erheblich größeren Datenmengen als bisher betrachtete parallele Ansätze.One of today's major challenges in data science is to compare and relate data of similar nature. Using the join operation known from relational databases could help solving this problem. Given a collection of records, the join operation finds all pairs of records, which fulfill a user-chosen predicate. Real-world problems could require complex predicates, such as similarity. A common way to measure similarity are set similarity functions. In order to use set similarity functions as predicates, we assume records to be represented by sets of tokens. In this thesis, we focus on the set similarity join (SSJ) operation. The amount of data to be processed today is typically large and grows continually. On the other hand, the SSJ is a compute-intensive operation. To cope with the increasing size of input data, additional means are needed to develop scalable implementations for SSJ. In this thesis, we focus on parallelization. We make the following three major contributions to SSJ. First, we elaborate on the state-of-the-art in parallelizing SSJ. We compare ten MapReduce-based approaches from the literature analytically and experimentally. Their main limit is surprisingly a low scalability due to too high and/or skewed data replication. None of the approaches could compute the join on large datasets. Second, we leverage the abundant CPU parallelism of modern commodity hardware, which has not yet been considered to scale SSJ. We propose a novel data-parallel multi-threaded SSJ. Our approach provides significant speedups compared to single-threaded executions. Third, we propose a novel highly scalable distributed SSJ approach. With a cost-based heuristic and a data-independent scaling mechanism we avoid data replication and recomputation. A heuristic assigns similar shares of compute costs to each node. Our approach significantly scales up the join execution and processes much larger datasets than all parallel approaches designed and implemented so far

    Efficient Approximate String Matching with Synonyms and Taxonomies

    Get PDF
    Strings are ubiquitous. When being collected from various sources, strings are often inconsistent, which means that they can have the same or similar meaning expressed in different forms, such as with typographical mistakes. Finding similar strings given such inconsistent datasets has been researched extensively during past years under an umbrella problem called approximate string matching. This thesis aims to enhance the quality of the approximate string matching by detecting similar strings using their meanings besides typographical errors. Specifically, this thesis focuses on utilising synonyms and taxonomies, since both are commonly available knowledge sources. This research is to use each type of knowledge to address either a selection or join tasks, where the first task aims to find strings similar to a given string, and the second task is to find pairs of strings that are similar. The desired output is either all strings similar to a given extent (i.e., all-match) or the top-k most similar strings. The first contribution of this thesis is to address the top-k selection problem considering synonyms. Here, we propose algorithms with different optimisation goals: to minimise the space cost, to maximise the selection speed, or to maximise the selection speed under a space constraint. We model the last goal as a variant of an 0/1 knapsack problem and propose an efficient solution based on the branch and bound paradigm. Next, this thesis solves the top-k join problem considering taxonomy relations. Three algorithms, two based on sorted lists and one based on tries, are proposed, in which we use pre-computations to accelerate list scan or use predictions to eliminate unnecessary trie accesses. Experiments show that the trie-based algorithm has a very fast response time on a vast dataset. The third contribution of this thesis is to deal with the all-match join problem considering taxonomy relations. To this end, we identify the shortcoming of a standard prefix filtering principle and propose an adaptive filtering algorithm that is tuneable towards the minimised join time. We also design a sampling-based estimation procedure to suggest the best parameter in a short time with high accuracy. Lastly, this thesis researches the all-match join task by integrating typographical errors, synonyms, and taxonomies simultaneously. Key contributions here include a new unified similarity measure that employs multiple measures, as well as a non-trivial approximation algorithm with a tight theoretical guarantee. We furthermore propose two prefix filtering principles: a fast heuristic and accurate dynamic programming, to strive for the minimised join time.Merkkijonoja esiintyy kaikkialla. Kun merkkijonoja kerätään erilaisista lähteistä, ne ovat usein yhteensopimattomia. Tämä tarkoittaa, että niillä voi olla sama merkitys riippumatta siitä, että ne ovat eri muodossa. Muotoon liittyvät eroavaisuudet voivat johtua esimerkiksi typografisista virheistä. Samanlaisten merkkijonojen löytäminen yhteensopimattomista tietoaineistoista on laajasti tutkittu kysymys viime vuosien aikana. Yhteisnimitys tälle suuntauksella on likimääräinen merkkijonojen yhteensovittaminen (approximate string matching). Tämän työn päämääränä on parantaa merkkijonojen likimääräistä yhteensovittamista ottamalla typografisten virheiden lisäksi huomioon merkkijonojen merkitys. Tässä työssä keskitymme erityisesti hyödyntämään synonyymeja sekä taksonomisia luokittelujärjestelmiä, koska kummatkin ovat yleisesti saatavilla olevia tietolähteitä. Tutkimuksessamme on kummankin tyyppistä lähdettä käytetty joko kysely- tai liitostehtävissä. Kyselytehtävässä tarkoituksena on löytää annettua merkkijonoa vastaavat merkkijonot. Liitostehtävässä tarkoituksena on löytää ne merkkijonoparit, jotka vastaavat toisiaan. Tuloksena saadaan joko kaikki vastaavat merkkijonot haluttuun vastaavuuteen asti (all-match) tai ensimmäiset k kappaletta (top-k) eniten toisiaan vastaavia merkkijonoja. Tämän työn ensimmäisen vastauksen top-k kyselyongelmaan annamme synonyymien avulla. Kehittämissämme algoritmeissa pyrimme erilaisiin optimaalisiin ratkaisuihin, kuten käytetyn muistin minimointiin, suoritusnopeuden maksimointiin sekä näiden yhdistelmään, jossa nopeus maksimoidaan samalla rajoittaen muistinkäyttöä. Jälkimmäinen ongelma on erikoistapaus 0/1 knapsack ongelmasta, ja ratkaisemme ongelman tehokkaan haarauta ja rajoita paradigman avulla (branch and bound paradigm). Työn toinen vastaus top-k liitosongelmaan annetaan taksonomisten relaatioiden avulla. Tätä varten olemme kehittäneet kolme algoritmia, joista kaksi perustuu järjestettyihin listoihin ja yksi etuliitepuutietorakenteeseen (trie). Listojen läpikäymistä nopeutetaan etukäteen suoritettavilla alustuksilla. Etuliitepuihin perustuvaa algoritmia tehostetaan ennakoivasti poistamalla turhat haut puurakenteeseen. Kokeiden perusteella etuliitepuihin perustuvalla algoritmilla on erittäin nopea vastausaika, kun kyseessä on iso tietoaineisto. Kolmas vastaus työssä käsittelee all-match liitosongelmaa taksonomisten relaatioiden tapauksessa. Osoitamme millä tavalla standardi etuliiterajausperiaate (prefix filtering principle) on vajavainen ja vastauksena tähän kehitämme mukautuvan rajausalgoritmin, joka on säädettävissä siten, että liitoksen muodostamiseen tarvittava aika voidaan minimoida. Tämän lisäksi laadimme datasta poimittaviin näytteisiin perustuvan algoritmin, jonka avulla voidaan arvioida paras parametri lyhyessä ajassa korkealla tarkkuudella. Lopuksi työssä tutkimme all-match liitosongelmaa yhdistämällä typografiset virheet sekä synonyymien ja taksonomioiden käytön samanaikaisesti. Avainratkaisut tässä osassa pitävät sisällään yhtenäisen mitan merkkijonojen samankaltaisuudelle, jossa hyödynnämme useita vastaavaan tarkoitukseen kehitettyjä mittoja. Tähän liittyen kehitämme epätriviaalin algoritmin, jolla ongelmaa voidaan approksimoida ja jolla on vahva teoreettinen perusta. Lisäksi laadimme kaksi etuliiterajaukseen liittyvää periaatetta: nopean heuristisen periaatteen ja tarkan dynaamiseen ohjelmointiin perustuvan periaatteen. Näillä pyritään minimoimaan liitoksen muodostamiseen kuluva aika
    corecore