SlideShare une entreprise Scribd logo
1  sur  62
Télécharger pour lire hors ligne
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-hopefully-made- 
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/simhash-or- 
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

Contenu connexe

En vedette

Ways understand fans II. - Facebook
Ways understand fans II. - FacebookWays understand fans II. - Facebook
Ways understand fans II. - FacebookJosef Šlerka
 
Nová média se starým obsahem
Nová média se starým obsahemNová média se starým obsahem
Nová média se starým obsahemJosef Šlerka
 
Domácí Instagram léto 2015 - pár dat
Domácí Instagram léto 2015 - pár datDomácí Instagram léto 2015 - pár dat
Domácí Instagram léto 2015 - pár datJosef Šlerka
 
Malý velký svět bublin na Facebooku
Malý velký svět bublin na FacebookuMalý velký svět bublin na Facebooku
Malý velký svět bublin na FacebookuJosef Šlerka
 
Měření v sociálních sítích v teorii a praxi
Měření v sociálních sítích v teorii a praxiMěření v sociálních sítích v teorii a praxi
Měření v sociálních sítích v teorii a praxiJosef Šlerka
 
Google+ jako město duchů? Možná, ale spíš ne
Google+ jako město duchů? Možná, ale spíš neGoogle+ jako město duchů? Možná, ale spíš ne
Google+ jako město duchů? Možná, ale spíš neDaniel Dočekal
 
Co znamená, že Google o nás ví víc než my sami; aneb zaprodáme duši vyhledáva...
Co znamená, že Google o nás ví víc než my sami; aneb zaprodáme duši vyhledáva...Co znamená, že Google o nás ví víc než my sami; aneb zaprodáme duši vyhledáva...
Co znamená, že Google o nás ví víc než my sami; aneb zaprodáme duši vyhledáva...Daniel Dočekal
 
Nebojte se sociálních sítí (15. října 2014, konference KyberPSYCHO)
Nebojte se sociálních sítí (15. října 2014, konference KyberPSYCHO)Nebojte se sociálních sítí (15. října 2014, konference KyberPSYCHO)
Nebojte se sociálních sítí (15. října 2014, konference KyberPSYCHO)Daniel Dočekal
 
České mobilní (ne)komunikace
České mobilní (ne)komunikaceČeské mobilní (ne)komunikace
České mobilní (ne)komunikaceDaniel Dočekal
 
Proč být na sociálních sítích
Proč být na sociálních sítíchProč být na sociálních sítích
Proč být na sociálních sítíchZdeněk Klusák
 
Digitální PR aneb jak Internet a sociálno změnilo PR. Copycamp, Praha, 21. 3....
Digitální PR aneb jak Internet a sociálno změnilo PR. Copycamp, Praha, 21. 3....Digitální PR aneb jak Internet a sociálno změnilo PR. Copycamp, Praha, 21. 3....
Digitální PR aneb jak Internet a sociálno změnilo PR. Copycamp, Praha, 21. 3....Daniel Dočekal
 
Češi a internet v roce 2014 - nová publikace ČSÚ
Češi a internet v roce 2014 - nová publikace ČSÚČeši a internet v roce 2014 - nová publikace ČSÚ
Češi a internet v roce 2014 - nová publikace ČSÚDaniel Dočekal
 
Social media monitoring & analytika
Social media monitoring & analytikaSocial media monitoring & analytika
Social media monitoring & analytikaJosef Šlerka
 
Boti tady, boti tam, všude kam se podívám
Boti tady, boti tam, všude kam se podívámBoti tady, boti tam, všude kam se podívám
Boti tady, boti tam, všude kam se podívámJosef Šlerka
 
Český a slovenský Instagram - jaro 2014
Český a slovenský Instagram - jaro 2014Český a slovenský Instagram - jaro 2014
Český a slovenský Instagram - jaro 2014Josef Šlerka
 
Olympijské hry a second screening
Olympijské hry a second screeningOlympijské hry a second screening
Olympijské hry a second screeningJosef Šlerka
 

En vedette (20)

Ways understand fans II. - Facebook
Ways understand fans II. - FacebookWays understand fans II. - Facebook
Ways understand fans II. - Facebook
 
Informační etika
Informační etikaInformační etika
Informační etika
 
Nová média se starým obsahem
Nová média se starým obsahemNová média se starým obsahem
Nová média se starým obsahem
 
Domácí Instagram léto 2015 - pár dat
Domácí Instagram léto 2015 - pár datDomácí Instagram léto 2015 - pár dat
Domácí Instagram léto 2015 - pár dat
 
Malý velký svět bublin na Facebooku
Malý velký svět bublin na FacebookuMalý velký svět bublin na Facebooku
Malý velký svět bublin na Facebooku
 
The Nature of Data
The Nature of DataThe Nature of Data
The Nature of Data
 
Rebélie 2.0
Rebélie 2.0Rebélie 2.0
Rebélie 2.0
 
Měření v sociálních sítích v teorii a praxi
Měření v sociálních sítích v teorii a praxiMěření v sociálních sítích v teorii a praxi
Měření v sociálních sítích v teorii a praxi
 
Google+ jako město duchů? Možná, ale spíš ne
Google+ jako město duchů? Možná, ale spíš neGoogle+ jako město duchů? Možná, ale spíš ne
Google+ jako město duchů? Možná, ale spíš ne
 
Once upon a time...
Once upon a time...Once upon a time...
Once upon a time...
 
Co znamená, že Google o nás ví víc než my sami; aneb zaprodáme duši vyhledáva...
Co znamená, že Google o nás ví víc než my sami; aneb zaprodáme duši vyhledáva...Co znamená, že Google o nás ví víc než my sami; aneb zaprodáme duši vyhledáva...
Co znamená, že Google o nás ví víc než my sami; aneb zaprodáme duši vyhledáva...
 
Nebojte se sociálních sítí (15. října 2014, konference KyberPSYCHO)
Nebojte se sociálních sítí (15. října 2014, konference KyberPSYCHO)Nebojte se sociálních sítí (15. října 2014, konference KyberPSYCHO)
Nebojte se sociálních sítí (15. října 2014, konference KyberPSYCHO)
 
České mobilní (ne)komunikace
České mobilní (ne)komunikaceČeské mobilní (ne)komunikace
České mobilní (ne)komunikace
 
Proč být na sociálních sítích
Proč být na sociálních sítíchProč být na sociálních sítích
Proč být na sociálních sítích
 
Digitální PR aneb jak Internet a sociálno změnilo PR. Copycamp, Praha, 21. 3....
Digitální PR aneb jak Internet a sociálno změnilo PR. Copycamp, Praha, 21. 3....Digitální PR aneb jak Internet a sociálno změnilo PR. Copycamp, Praha, 21. 3....
Digitální PR aneb jak Internet a sociálno změnilo PR. Copycamp, Praha, 21. 3....
 
Češi a internet v roce 2014 - nová publikace ČSÚ
Češi a internet v roce 2014 - nová publikace ČSÚČeši a internet v roce 2014 - nová publikace ČSÚ
Češi a internet v roce 2014 - nová publikace ČSÚ
 
Social media monitoring & analytika
Social media monitoring & analytikaSocial media monitoring & analytika
Social media monitoring & analytika
 
Boti tady, boti tam, všude kam se podívám
Boti tady, boti tam, všude kam se podívámBoti tady, boti tam, všude kam se podívám
Boti tady, boti tam, všude kam se podívám
 
Český a slovenský Instagram - jaro 2014
Český a slovenský Instagram - jaro 2014Český a slovenský Instagram - jaro 2014
Český a slovenský Instagram - jaro 2014
 
Olympijské hry a second screening
Olympijské hry a second screeningOlympijské hry a second screening
Olympijské hry a second screening
 

Plus de Josef Šlerka

Znaky, znaky, modely
Znaky, znaky, modelyZnaky, znaky, modely
Znaky, znaky, modelyJosef Šlerka
 
LLM a mixed methods v humanitních vědách
LLM a mixed methods v humanitních vědáchLLM a mixed methods v humanitních vědách
LLM a mixed methods v humanitních vědáchJosef Šlerka
 
Vliv AI na mediální trh
Vliv AI na mediální trhVliv AI na mediální trh
Vliv AI na mediální trhJosef Šlerka
 
Informační věda - Pravděpodobnosti
Informační věda - PravděpodobnostiInformační věda - Pravděpodobnosti
Informační věda - PravděpodobnostiJosef Šlerka
 
Informacni veda: Pocitace
Informacni veda: PocitaceInformacni veda: Pocitace
Informacni veda: PocitaceJosef Šlerka
 
Inforamační věda: Algoritmus
Inforamační věda: AlgoritmusInforamační věda: Algoritmus
Inforamační věda: AlgoritmusJosef Šlerka
 
Co je to datova novinarina
Co je to datova novinarinaCo je to datova novinarina
Co je to datova novinarinaJosef Šlerka
 
Algoritmy a sociální sítě - stručný úvod
Algoritmy a sociální sítě - stručný úvodAlgoritmy a sociální sítě - stručný úvod
Algoritmy a sociální sítě - stručný úvodJosef Šlerka
 
Parallel Polis Revisited: Way from concept of Parallel Polis to Distributed R...
Parallel Polis Revisited: Way from concept of Parallel Polis to Distributed R...Parallel Polis Revisited: Way from concept of Parallel Polis to Distributed R...
Parallel Polis Revisited: Way from concept of Parallel Polis to Distributed R...Josef Šlerka
 
Dezinformační weby a zpravodajství v ČR
Dezinformační weby a zpravodajství v ČRDezinformační weby a zpravodajství v ČR
Dezinformační weby a zpravodajství v ČRJosef Šlerka
 
INFOWAR IN CZECH REPUBLIC
INFOWAR IN CZECH REPUBLICINFOWAR IN CZECH REPUBLIC
INFOWAR IN CZECH REPUBLICJosef Šlerka
 
Česká média dnes aneb Pokus o kontext k aktuální debatě
Česká média dnes aneb Pokus o kontext k aktuální debatěČeská média dnes aneb Pokus o kontext k aktuální debatě
Česká média dnes aneb Pokus o kontext k aktuální debatěJosef Šlerka
 
Svět viděný cizíma očima
Svět viděný cizíma očimaSvět viděný cizíma očima
Svět viděný cizíma očimaJosef Šlerka
 
Do Birds of a Feather Flock Together?
Do Birds of a Feather Flock Together?Do Birds of a Feather Flock Together?
Do Birds of a Feather Flock Together?Josef Šlerka
 
Projekt Navigátor - datová část
Projekt Navigátor - datová částProjekt Navigátor - datová část
Projekt Navigátor - datová částJosef Šlerka
 
Stručná zpráva o jednom experimentu
Stručná zpráva o jednom experimentuStručná zpráva o jednom experimentu
Stručná zpráva o jednom experimentuJosef Šlerka
 
Wikipedie ve službách zla?!
Wikipedie ve službách zla?!Wikipedie ve službách zla?!
Wikipedie ve službách zla?!Josef Šlerka
 

Plus de Josef Šlerka (20)

Znaky, znaky, modely
Znaky, znaky, modelyZnaky, znaky, modely
Znaky, znaky, modely
 
LLM a mixed methods v humanitních vědách
LLM a mixed methods v humanitních vědáchLLM a mixed methods v humanitních vědách
LLM a mixed methods v humanitních vědách
 
Vliv AI na mediální trh
Vliv AI na mediální trhVliv AI na mediální trh
Vliv AI na mediální trh
 
Informační věda - Pravděpodobnosti
Informační věda - PravděpodobnostiInformační věda - Pravděpodobnosti
Informační věda - Pravděpodobnosti
 
Informacni veda: Pocitace
Informacni veda: PocitaceInformacni veda: Pocitace
Informacni veda: Pocitace
 
Inforamační věda: Algoritmus
Inforamační věda: AlgoritmusInforamační věda: Algoritmus
Inforamační věda: Algoritmus
 
Co je to datova novinarina
Co je to datova novinarinaCo je to datova novinarina
Co je to datova novinarina
 
Algoritmy a sociální sítě - stručný úvod
Algoritmy a sociální sítě - stručný úvodAlgoritmy a sociální sítě - stručný úvod
Algoritmy a sociální sítě - stručný úvod
 
Atlas konspirací
Atlas konspiracíAtlas konspirací
Atlas konspirací
 
Parallel Polis Revisited: Way from concept of Parallel Polis to Distributed R...
Parallel Polis Revisited: Way from concept of Parallel Polis to Distributed R...Parallel Polis Revisited: Way from concept of Parallel Polis to Distributed R...
Parallel Polis Revisited: Way from concept of Parallel Polis to Distributed R...
 
Dezinformační weby a zpravodajství v ČR
Dezinformační weby a zpravodajství v ČRDezinformační weby a zpravodajství v ČR
Dezinformační weby a zpravodajství v ČR
 
INFOWAR IN CZECH REPUBLIC
INFOWAR IN CZECH REPUBLICINFOWAR IN CZECH REPUBLIC
INFOWAR IN CZECH REPUBLIC
 
Česká média dnes aneb Pokus o kontext k aktuální debatě
Česká média dnes aneb Pokus o kontext k aktuální debatěČeská média dnes aneb Pokus o kontext k aktuální debatě
Česká média dnes aneb Pokus o kontext k aktuální debatě
 
Svět viděný cizíma očima
Svět viděný cizíma očimaSvět viděný cizíma očima
Svět viděný cizíma očima
 
Do Birds of a Feather Flock Together?
Do Birds of a Feather Flock Together?Do Birds of a Feather Flock Together?
Do Birds of a Feather Flock Together?
 
Projekt Navigátor - datová část
Projekt Navigátor - datová částProjekt Navigátor - datová část
Projekt Navigátor - datová část
 
AI a žurnalistika
AI a žurnalistikaAI a žurnalistika
AI a žurnalistika
 
Stručná zpráva o jednom experimentu
Stručná zpráva o jednom experimentuStručná zpráva o jednom experimentu
Stručná zpráva o jednom experimentu
 
Volba a metoda
Volba a metodaVolba a metoda
Volba a metoda
 
Wikipedie ve službách zla?!
Wikipedie ve službách zla?!Wikipedie ve službách zla?!
Wikipedie ve službách zla?!
 

Fingerprinting

  • 1. Fingerprinting případová studie 26. 11. 2014 Josef Šlerka, Socialbakers, @stunome MLMU Praha
  • 2. Kdo jsem... stručné představení...
  • 3. 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
  • 4. Social Insider a Listening a jejich specifické problémy...
  • 5. 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ší.
  • 6. 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.
  • 7. 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.
  • 8.
  • 9.
  • 10. 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.
  • 11. Nejvíc sdílený obsah Etuda na téma podobné příspěvky aneb fingerprinting
  • 12. 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:…
  • 13. Klasika Levenstheinova distance, NCD a další nearest neighbor methods
  • 14. 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é)
  • 15. 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
  • 16. NCD
  • 17.
  • 18.
  • 19. 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č
  • 20. Znovu a lépe key collision methods aneb fingerprinting (a taky perceptual hashing)
  • 21. 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í
  • 22. Příklady Fingerprint N-Gram Fingerprint findimagedupes.pl
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. Co to spojit? Similarity hashing
  • 30. Simhasing Simhashing (hopefully) made simple http://ferd.ca/simhashing-hopefully-made-simple.html
  • 31. Simhasing Všechna písmena můžeme reprezetnovat pomoci ASCII kódu a dál binárně.
  • 32. Simhasing A tím pádem i celá slova...
  • 34. Simhasing A vidím, že 1 a 3 si budou asi tak nějak podobnější a 2 a 4 taky.
  • 35. 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".
  • 36. 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)
  • 37. 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.
  • 38. 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.
  • 39. Simhasing A vytvořit tak pěkný histogram...
  • 40. Simhasing A vytvořit tak pěkný histogram.. a ten pak komprimovat...
  • 41. 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")
  • 42. Simhasing V téhle jednoduché implementaci hrála silnou roli frekvence písmen (lépe features)...
  • 43. Simhasing Spousta problémů: a) co s texty jako aaaaaahhhhh! a hahahaha! b) co s jinými než ASCII znaky a další...
  • 44. 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?
  • 45. 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
  • 47. 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 ...
  • 48. Simhasing ... když je přepočítáme ...
  • 49. Simhasing Ukáže se, že je to jinak. Díky common words....
  • 50. 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"
  • 52. Simhasing Váhy jednotlivých features. Obecná slova obvykle plus a mínus jedna. Neobvyklá plus a mínus tři...
  • 53. Simhasing A už se to zpravilo...
  • 54. Simhasing Tolik krásné uvedné do problémů pro nás manažerské lamy z blogu: http://ferd.ca/simhashing-hopefully-made- simple.html
  • 55. 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
  • 56. Příklad implementace klasicky nám dává hash různé hashe pro různé stringy http://matpalm.com/resemblance/simhash
  • 57. Příklad implementace simhash dává podobné hashe pro podobné řetězce
  • 58. Příklad implementace hammingova vzdálenost podobného párů (p1,p2)=4 zatím co (p1,p3)=16 a (p2,p3)=12
  • 59. 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)
  • 60. Integrace... ... zpět k technoligii
  • 61. 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.
  • 62. Děkuji za pozornost! @josefslerka