Fingerprinting případová studie Josef Šlerka, MLMU Praha

Podobné dokumenty
Social media jako nové pole pro data mining Josef Šlerka

Monitoring soc. sítí. Adam Zbiejczuk - StuNoMe UISK FF UK. Monday, October 10, 11

Programování v Pythonu

Nástroj pro monitorování a analýzu českého internetu a sociálních médií

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

Zadání druhého zápočtového projektu Základy algoritmizace, 2005

Vyhledávání na portálu Knihovny.cz

Zadání soutěžních úloh

klasická kryptologie základní pojmy požadavky na kryptosystém typologie šifer transpoziční šifry substituční šifry

Tabulkový procesor. Základní rysy

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT

Vzdálenost jednoznačnosti a absolutně

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

RESTful API TAMZ 1. Cvičení 11

Zbantuj partyju. Koncept virální kampaně

Úvod do programování 6. hodina

Snadná úprava stránek, nemusím umět HTML, tvořím obsah téměř jako ve Wordu. Jak změnit obsah nástěnky: vpravo nahoře Nastavení zobrazených informací

Fz =a z + a z +...+a z +a z =

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Komprese dat (Komprimace dat)

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Programování. Bc. Veronika Tomsová

1.5.1 Číselné soustavy

obsah REDESIGN BAREVNOST PÍSMO DOPLŇUJÍCÍ GRAFIKA vznik loga / 4 webové stránky / 19 další užití loga / 20

FAQ - ČASTO KLADENÉ DOTAZY K SYSTÉMU POWER+

Textové popisky. Typ dat

Autor: Jan Hošek

Informatika Datové formáty

þÿ O k t á v o d i g i t á l n í k n i h o v n a F F

StatSoft Jak vyzrát na datum

EXCELentní tipy a triky pro mírně pokročilé. Martina Litschmannová

Karel Kohout 18. května 2010

Thursday, September 8, Informační systém ORG Eva Vrbová ředitelka Odboru základních identifikátorů

Některé potíže s klasifikačními modely v praxi. Nikola Kaspříková KMAT FIS VŠE v Praze

Možnosti aplikací Google pro analýzu (geo(

Technická kybernetika. Obsah. Principy zobrazení, sběru a uchování dat. Měřicí řetězec. Principy zobrazení, sběru a uchování dat

Instalace a konfigurace web serveru. WA1 Martin Klíma

AVL stromy. pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1 stromy jsou samovyvažující

Big Data. Josef Šlerka, Ataxo Interactive, SNM FF UK Business & Information Forum 2011, Praha

Číslicové filtry. Honza Černocký, ÚPGM

Semestrální úloha 1 z předmětu Programovací jazyk C. Textový merge. Student:

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

HLEDEJCENY.mobi. Obsah. Mobilní verze e-shopu. Důvody instalace

OpenSSL a certifikáty

Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

LEKCE 6. Operátory. V této lekci najdete:

FORMÁT SOUBORŮ S PLATEBNÍMI PŘÍKAZY PRO CITIBANK EUROPE PLC, ORGANIZAČNÍ SLOŽKA Systém internetového bankovnictví CitiBusiness Direct

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Kódováni dat. Kódy používané pro strojové operace

Business Intelligence

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Kryptografie, elektronický podpis. Ing. Miloslav Hub, Ph.D. 27. listopadu 2007

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 3. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

2. Základní typy dat Spojitá a kategoriální data Základní popisné statistiky Frekvenční tabulky Grafický popis dat

KIV/ZIS - cvičení. je dobré chodit na cvičení, lépe se pak vypracovávají semestrálky. první 2 týdny podle kapacity 1/37

Algoritmy a datové struktury

Informatika pro moderní fyziky (2) základy Ruby, zpracování textu

Zobrazování barev Josef Pelikán CGG MFF UK Praha.

DIGITÁLNÍ MULTIMETR DUCA- LCD96

Základní komunikační řetězec

EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů.

Co je to výsledek? Capability Approach a ESI fondy

PA159 - Bezpečnostní aspekty

WWW STRÁNKY Tvorba webové stránky TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ REPUBLIKY.

Red Black strom (Red Black Tree) Úvod do programování. Rotace. Red Black strom. Rotace. Rotace

Digitalizace dat metodika

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

ZÁKLADY STATISTICKÉHO ZPRACOVÁNÍ ÚDAJŮ 5. hodina , zapsala Veronika Vinklátová Revize zápisu Martin Holub,

Novinky ve vývoji individuálních progresivních čoček. Petr Ondřík Rodenstock ČR, s.r.o.

Architektury počítačů

Vyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

SNMP Simple Network Management Protocol

Substituční šifry a frekvenční analýza. Mgr. Radim Janča ijanca@fit.vutbr.cz

Zpracování obrazů. Honza Černocký, ÚPGM

Jak Facebook pomáhá automobilce FORD k úspěchu. Vladimír Rejlek Interactive Director WUNDERMAN

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

Digitální signály a kódy

Soustavy lineárních rovnic

Grafická prezentace projektu GNUškola

Matematické základy šifrování a kódování

GDPR A INFORMAČNÍ SYSTÉM. Nadežda Andrejčíková Libor Piškula

Úvod do programování. Lekce 1

Výukový materiál KA č.4 Spolupráce se ZŠ

STRUčNÝ NÁVOD PRO KONFIGURACI FREKVENčNÍCH MĚNIčŮ

Šifrování, kódování a jejich aplikace - ak. rok 2016/17

Jak vypadá opravdová discovery služba

PSK2-5. Kanálové kódování. Chyby

Kódy a kódování dat. Binární (dvojkové) kódy. Kód Aikenův

ADX. Modul pro komunikaci nadřízeného řídícího systému s tenzometrickými váhami po sériové lince RS-485. w w w. p r o b e t. c z

Programování v Pythonu

Kaskádové styly základy grafiky

Barvy v digitální fotografii. Jaroslav Svoboda

1. Obsah. Publikováno:

MOJESODEXO.CZ POUKÁZKY V OBÁLKÁCH. Uživatelská příručka

2000 zveřejnění dobové zprávy General Report on Tunny informací nedostatek k odvození konstrukce šifrátoru Lorenz cíl: odvození pravděpodobného

Ročník II. Anglický jazyk. Období Učivo téma Metody a formy práce- kurzívou. Kompetence Očekávané výstupy. Průřezová témata. Mezipřed.

Komprese dat (KOD) Semestrální projekt Implementace RLE, BWT a LZW

Miroslav Holec. Software & Cloud Architect. Microsoft MVP: Microsoft Azure MCSD, MCSA, MTA. Zvyšujeme výkonnost aplikací s. (Azure) Redis Cache

Transkript:

Fingerprinting případová studie 26. 11. 2014 Josef Šlerka, Socialbakers, @stunome MLMU Praha

Kdo jsem... stručné představení...

Josef Šlerka Head of R&D v Socialbakers V minulosti šéf Ataxo Interactive Stojím za projekty jako je Social Insider a další Vedu Studia nových médií na FF UK

Social Insider a Listening a jejich specifické problémy...

Social Insider & co. Social Insider je social media monitoring pro český a slovenský trh, který ma světovou mutací Social Listening. Technologicky využíváme Amazon, Elasticsearch, Redis, Ruby a další.

Běžné problémy Datové zdroje jsou zcela asynchronní (stream api v frekvenční api). Tlak je proměnlivý podle typu události. Data jsou relativně velká (půl miliardy zmínek konstatně se měnící v čase). Není předem jasné použití. Nejsou tu jasné reporty.

Specifické požadavky Asynchronost dat kupříkladu jinak postavený interface. Nelze kupříkladu stránkovat. (ukázka) Drill-down menu je analytikou, nikoli navigací. Není jasné kolik dat se bude exportovat, je proto třeba exportů na pozadí. Specifický problém při aggregacích spojený s konstatním tlakem dat.

Specifické požadavky Asynchronost dat kupříkladu jinak postavený v interface, nelze kupříkladu stránkovat. (ukázka) Drill-down menu je analytikou, nikoli navigací. Není jasné kolik dat se bude exportovat, je proto třeba exportů na pozadí. Specifický problém při aggregacích spojený s konstatním tlakem dat.

Nejvíc sdílený obsah Etuda na téma podobné příspěvky aneb fingerprinting

Požadavek najdi mi nebo posty, které jsou si hodně podobné: třeba tak na 90% nebo tak nějak příklad: #Rusko poprvé soudí žoldáka za válčení v řadách separatistů na Ukrajině. Média ho označují za nacionalistu a fašistu. http://t.co/7jthsc3yv0 RT @Aktualnecz: #Rusko poprvé soudí žoldáka za válčení v řadách separatistů na Ukrajině. Média ho označují za nacionalistu a fašistu. http:

Klasika Levenstheinova distance, NCD a další nearest neighbor methods

Levensthein & Co. Hammingova distance - počet substitucí znaků, které je nutno změnít aby se jeden řetezec proměnil v druhý (předpokládá se stejná vzdálenost) Levenstheinova distance - počet substitucí, vložení a smazání které je třeba pro změnu jednoho řetězce v druhý (řetězce mohou být různě dlouhé)

NCD Normalized compression distance. Abstraktní měření vzdálenosti řetězců pomocí kompresí. Autory jsou Rudi Cilibrasi a Paul M. B. Vitanyi Podobné věci sdílí stejné vlastnosti Dvě reprezentace jsou si tím podobnější, čím méně složitých změn je třeba k převodu jedné v druhou

NCD

Pro a proti rostoucí komplexita: n(n-1)/2 (u tranzitivních!) 3000 řádku vyžaduje 4.5 million kalkulací proměnlivá velikost textů jde optimalizovat, ale POZOR máme tu konstatní tlak dat a případný clustering musíme dělat on-the-fly umožňuje jemnější klastrování, někdy ale není jasné proč

Znovu a lépe key collision methods aneb fingerprinting (a taky perceptual hashing)

Základní idea vytvořit takovou reprezentaci obsahu, která bude různé podoby obsahu normalizovat do jednoho klíče de facto je to převrácená podoba hashování místo co nejkratší reprezenace unikátního obsahu tu chcem mít reprezentaci, která postihne co největší variablitu obsahu podobné příspěvky pak získáváme třeba agregací

Příklady Fingerprint N-Gram Fingerprint findimagedupes.pl

Fingerprint převést na běžnou ASCII reprezentac (zbabit je diakritiky) odmazat všechny přebytečné prázdné mezery všechny znaky změnit na malé odmazat všechny interpunkční znaménka rozdělit řetězec do samostatnách tokenů přes prázdné mezery seřadit tokeny podle abecedy a odmazat duplikující se spojit je všechny opět do jednoho řetězce

Detaily řeší specifický problém s diakritikou a šumem znaků pořadí slov v textu je pro něj nerelevatní možnosti vylepšení: odstranění speficických slov (jak stopwords, tak RT či via), lemmatizace či stemming možnostu ušteření místa pomocí klasíckého hash

N-Gram Fingerprint převeď na ASCII reprezentaci změň všechny znaky na malé odmaž všechnu interpunkci a všechny speciální znaky získej seznam n-gramů spoj je dohromady

Detaily příklad: bratislava ma 1-gram abilrstv oproti předchozímu ve variantě s 1-gramy a 2-gramy dokáže řešit specifické varianty: "Krzysztof", "Kryzysztof" a "Krzystof" mají stejný 1-gram fingerprint

findimagedupes.pl standartizuje velikost na 160x160 převeď na škálu šedé rozmazej trochu normalizuje barevnou intenzitu zvyš na maximum kontrast znovu přesampluj na 16x16 a převeď na mono vezmi 32 bytes obrazku a máš fingerprint

Pro a proti výkon, výkon, výkon! podobný obsah se dostává pouhou agregací a šetrně ale je to poměrně hrubá podobnost lze však různě vylepšovat

Co to spojit? Similarity hashing

Simhasing Simhashing (hopefully) made simple http://ferd.ca/simhashing-hopefully-made-simple.html

Simhasing Všechna písmena můžeme reprezetnovat pomoci ASCII kódu a dál binárně.

Simhasing A tím pádem i celá slova...

Simhasing Redundance může odstranit...

Simhasing A vidím, že 1 a 3 si budou asi tak nějak podobnější a 2 a 4 taky.

Simhasing A vidím, že 1 a 3 si budou asi tak nějak podobnější a 2 a 4 taky. Jsou to mimochodem "banana", "bozo", "cabana", and "ozone".

Simhasing Můžeme udělat histogramy výskytů jednoho z býtů, ale tím ztratíme celou informaci (nevím o nic o absetujících bitech)

Simhasing Možná lepíš je komprimovat je jinak. Třeba za prázdný bit dát mínus jedna a za obsazený dát plus jedna.

Simhasing Možná lepšá je komprimovat je jinak. Třeba za prázdný bit dát mínus jedna a za obsazený dát plus jedna.

Simhasing A vytvořit tak pěkný histogram...

Simhasing A vytvořit tak pěkný histogram.. a ten pak komprimovat...

Simhasing Když potom přídáme kupříkladu nové slovo, můžeme spočítat Hammingovu vzdálenost (slovo ssssss je podobnější "banana" než "bozo")

Simhasing V téhle jednoduché implementaci hrála silnou roli frekvence písmen (lépe features)...

Simhasing Spousta problémů: a) co s texty jako aaaaaahhhhh! a hahahaha! b) co s jinými než ASCII znaky a další...

Simhasing co s texty jako aaaaaahhhhh! a hahahaha? tak třeba využití unikátních bigramů (aa, ah, ha, hh) místo písmen?

Simhasing co s jinými než ASCII znaky? v zásadě jde jen o to jak se dobrat k unikátnímu identifikátoru nějake featury, čili co třeba použít MD5

Simhasing a další?

Simhasing 1. "the cat in the tree is white" 2. "the man in the suit is happy" 3. "a white cat is in a tree" Subjektivně jsou si 1 a 3 podobnější, ale...

Simhasing... když je přepočítáme...

Simhasing Ukáže se, že je to jinak. Díky common words...

Simhasing... nám vyjde matematicky něco jiného... 1. "the cat in the tree is white",2. "the man in the suit is happy", 3. "a white cat is in a tree"

Simhasing řešení?

Simhasing Váhy jednotlivých features. Obecná slova obvykle plus a mínus jedna. Neobvyklá plus a mínus tři...

Simhasing A už se to zpravilo...

Simhasing Tolik krásné uvedné do problémů pro nás manažerské lamy z blogu: http://ferd.ca/simhashing-hopefullymade-simple.html

Simhashing nejznámější aplikací je asi SimHash používaný Googlem a vyvinutý Mosesem Charikarem původní http://www.cs.princeton.edu/courses/archive/ spr04/cos598b/bib/charikarestim.pdf mnoho paperů a článků: http://www2007.org/papers/paper215.pdf http://matpalm.com/resemblance/simhash

Příklad implementace klasicky nám dává hash různé hashe pro různé stringy http://matpalm.com/resemblance/simhash

Příklad implementace simhash dává podobné hashe pro podobné řetězce

Příklad implementace hammingova vzdálenost podobného párů (p1,p2)=4 zatím co (p1,p3)=16 a (p2,p3)=12

XOR přítel 10101011100010001010000101111100 XOR 10101011100010011110000101111110 = 00000000000000010100000000000010 máme tak 3 změny z 32, neboli odhadovaný rozdíl 3/32 tedy 0.09375 nebo chcete-li 1-3 / 32 = 0,90625 (90%) (viz třeba blogpost: http://www.titouangalopin.com/blog/articles/2014/05/simhashor-the-way-to-compare-quickly-two-datasets)

Integrace...... zpět k technoligii

More like this... Lucene based databáze podporují možnosti najdi mi podobné příspěvky jako je tento, které jsou v Levenstheinu vzdáleny o... Jde tak lehce (byť né úplně) nahradit hammingovu vzdálenost.

Děkuji za pozornost! @josefslerka