+ All Categories
Home > Data & Analytics > Fingerprinting

Fingerprinting

Date post: 03-Jul-2015
Category:
Upload: josef-slerka
View: 1,337 times
Download: 3 times
Share this document with a friend
Description:
26. 11. 2014 Josef Šlerka, Socialbakers, @stunome MLMU Praha
62
Fingerprinting p ř ípadová studie 26. 11. 2014 Josef Š lerka, Socialbakers, @stunome MLMU Praha
Transcript
Page 1: Fingerprinting

Fingerprintingpřípadová studie26. 11. 2014 Josef Šlerka, Socialbakers, @stunome MLMU Praha

Page 2: Fingerprinting

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

Page 3: Fingerprinting

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

Page 4: Fingerprinting

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

Page 5: Fingerprinting

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ší.

Page 6: Fingerprinting

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.

Page 7: Fingerprinting

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.

Page 8: Fingerprinting
Page 9: Fingerprinting
Page 10: Fingerprinting

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.

Page 11: Fingerprinting

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

Page 12: 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:…

Page 13: Fingerprinting

KlasikaLevenstheinova distance, NCD a další nearest neighbor methods

Page 14: Fingerprinting

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é)

Page 15: Fingerprinting

NCDNormalized 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

Page 16: Fingerprinting

NCD

Page 17: Fingerprinting
Page 18: Fingerprinting
Page 19: Fingerprinting

Pro a protirostoucí 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č

Page 20: Fingerprinting

Znovu a lépekey collision methodsaneb fingerprinting (a taky perceptual hashing)

Page 21: Fingerprinting

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í

Page 22: Fingerprinting

Příklady

Fingerprint

N-Gram Fingerprint

findimagedupes.pl

Page 23: Fingerprinting

Fingerprintpř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

Page 24: Fingerprinting

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

Page 25: Fingerprinting

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

Page 26: Fingerprinting

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

Page 27: Fingerprinting

findimagedupes.plstandartizuje 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

Page 28: Fingerprinting

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

Page 29: Fingerprinting

Co to spojit?Similarity hashing

Page 30: Fingerprinting

Simhasing

Simhashing (hopefully) made simple

http://ferd.ca/simhashing-hopefully-made-simple.html

Page 31: Fingerprinting

Simhasing

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

Page 32: Fingerprinting

Simhasing

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

Page 33: Fingerprinting

Simhasing

Redundance může odstranit...

Page 34: Fingerprinting

Simhasing

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

Page 35: Fingerprinting

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".

Page 36: Fingerprinting

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)

Page 37: Fingerprinting

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.

Page 38: Fingerprinting

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.

Page 39: Fingerprinting

Simhasing

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

Page 40: Fingerprinting

Simhasing

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

Page 41: Fingerprinting

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")

Page 42: Fingerprinting

Simhasing

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

Page 43: Fingerprinting

Simhasing

Spousta problémů:

a) co s texty jako aaaaaahhhhh! a hahahaha!

b) co s jinými než ASCII znaky

a další...

Page 44: Fingerprinting

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?

Page 45: Fingerprinting

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

Page 46: Fingerprinting

Simhasing

a další?

Page 47: Fingerprinting

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 ...

Page 48: Fingerprinting

Simhasing

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

Page 49: Fingerprinting

Simhasing

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

Page 50: Fingerprinting

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"

Page 51: Fingerprinting

Simhasing

řešení?

Page 52: Fingerprinting

Simhasing

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

Page 53: Fingerprinting

Simhasing

A už se to zpravilo...

Page 54: Fingerprinting

Simhasing

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

Page 55: Fingerprinting

Simhashingnejzná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

Page 56: Fingerprinting

Příklad implementace

klasicky nám dává hash různé hashe pro různé stringy

http://matpalm.com/resemblance/simhash

Page 57: Fingerprinting

Příklad implementace

simhash dává podobné hashe pro podobné řetězce

Page 58: Fingerprinting

Příklad implementace

hammingova vzdálenost podobného párů (p1,p2)=4

zatím co (p1,p3)=16 a (p2,p3)=12

Page 59: Fingerprinting

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/simhash-or-the-way-to-compare-quickly-two-datasets)

Page 60: Fingerprinting

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

Page 61: Fingerprinting

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.

Page 62: Fingerprinting

Děkuji za pozornost!@josefslerka


Recommended