WPROWADZENIE DO EKSPLORACJI DANYCH TEKSTOWYCH W … · WPROWADZENIE DO EKSPLORACJI DANYCH...

Post on 12-Jul-2020

7 views 0 download

Transcript of WPROWADZENIE DO EKSPLORACJI DANYCH TEKSTOWYCH W … · WPROWADZENIE DO EKSPLORACJI DANYCH...

WPROWADZENIE DO EKSPLORACJI DANYCH TEKSTOWYCH W ŚRODOWISKU WWW

SPAM WŚRÓD STRON INTERNETOWYCH (SEO)RÓŻNOŚCIWYKŁAD 13

Piotr Gawrysiak pgawrysiak@supermedia.pl

Anna Wróblewska awroble@gmail.com

Piotr Andruszkiewicz p.andruszkiewicz@ii.pw.edu.pl

Politechnika WarszawskaZakład Systemów Informacyjnych

PageRank cd.

PageRank to nie jest „srebrna kula”

• PR mierzy „ogólną” jakość strony, a zatem nie nadaje się do oceny jakości w przypadku specyficznych tematów wyszukiwania

• PR jest stosunkowo łatwo oszukać

• Istnieją inne algorytmy analizujące strukturę grafu WWW• HITS• Hilltop• Topic Specific/Sensitive Page Rank (TSPR)• ...

największy problem

Optymalizacja wyszukiwania(ang. Search engine optimization, SEO)• Wyszukiwarki internetowe są najważniejszym narzędziem

nawigacyjnym w WWW

• Strona, której nie można znaleźć w wyszukiwarkach,w zasadzie nie istnieje z praktycznego punktu widzenia

• W wyszukiwarce warto być na początku listy wyników, dla dowolnego zapytania

• A nuż ktoś kliknie? Kliknięcia użytkowników mogą przynosić wymierne zyski:• reklama internetowa – często płatna za wyświetlenie (ang. „per view”)• Strony e-commerce – a nuż jak kliknął, to i coś kupi?• Strony „dystrybujące” malware• Zwiększenie popularności strony / domeny – a nuż ktoś od nas ją odkupi...

Optymalizacja wyszukiwania(ang. Search engine optimization)• Większość powyższych celów wymaga przyciągnięcia

użytkownika na stronę, pomimo jej znikomej użyteczności dla użytkownika – podczas gdy wyszukiwarki optymalizują wyniki wyszukiwania według użyteczności

• A zatem konieczna jest sztuczna manipulacja wynikami wyszukiwania – „oszukanie” algorytmów budujących listę wyników

• Zreszta czy wyszukiwarkom komercyjnym można wierzyć? Stąd projekty takie jak Nutch…

SEO = SPAM?

• Manipulowanie wynikami działania wyszukiwarek jest działalnością niepożądaną dla użytkowników WWW – podobnie jak rozsyłanie niechcianych wiadomości email

• A zatem można pokusić się o mówienie o spamie wśród stron internetowych (ang. Web Spam) – stronach WWW, których jedynym powodem istnienia jest wpływanie na działanie algorytmów wyszukiwarek

• Oczywiście wiele osób może się tutaj nie zgodzić. Należy pamiętać, iż istnieje już cały przemysł SEO – ang. Search Engine Optimization

• Udział stron typu spam w całej sieci WWW to około 10-15%

Techniki „webspamowe”

Zwiększanie ważności stron (ang. boosting)• Techniki mające na celu sztuczne zawyżanie istotności strony

dla danych wyszukiwarek.• Istotność zawyżona – niezgodna z subiektywną oceną

dokonywaną przez większość użytkowników WWW.• Teoretycznie można sobie zatem wyobrazić etyczne

zastosowania boostingu – do poprawienia błędów w algorytmach wyszukiwarek

Ukrywanie (ang. hiding)• Techniki mające na celu zamaskowanie faktu wykorzystywania

boostingu• Ukrywanie przez ludźmi• Ukrywanie przed robotami sieciowymi

Gyongyi & Garcia-Molina, 2004

Techniki „webspamowe” cd.

Zwiększanie ważności stron (ang. boosting)

• Spamowanie wyrazami (ang. term spamming)Generowanie treści strony WWW tak, aby znalazła się w wyniku

wyszukiwania dla wielu zapytańGenerowana treść jest zwykle sztuczna – tj. zawartość strony

nie ma wartości (informacyjnej) dla człowiekaWynikiem jest pojedyncza strona WWW (lub nawet kod HTML

wysyłany jedynie na żądanie robota sieciowego)

• Spamowanie linkami (ang. link spamming)Wykorzystanie algorytmów analizy struktury hiperpołączeń tak,

aby zwiększyć istotność danej stronyWymaga stworzenia struktury wielu stron, często na różnych

serwerach

Spamowanie wyrazami (ang. term spamming)

Powtarzanie (ang. repetition)• Powtarzanie jednego lub kilku słów kluczowych• Celem jest zaburzenie działania algorytmów skalowania

atrybutów takich jak TF/IDF

• Np. „viagra viagra viagra viagra” -> 2015 – 7 930 000 wyników w Google (2014 – 7 300 000, 2013 – 12 600 000, 2011 – 12 800 000, 2010 – 77 300)

Zrzucanie (ang. dumping) • Umieszczanie w treści strony bardzo dużej liczby

niepowiązanych semantycznie słów• Np. można kopiować całe słowniki lub części słowników• Można też stosować metody generacji tekstu

Spamowanie wyrazami (ang. term spamming)

Kopiowanie ze wstawianiem (ang. Weaving)Kopiowanie treści innych stron WWW i wstawianie do środka

słów „spamowych”

Sklejanie (ang. Phrase Stitching)Sklejanie zdań i fragmentów tekstu z różnych źródeł (głównie

innych stron WWW, ale także wyników wyszukiwania np. z Google)

Generowane są przede wszystkim te elementy strony, które są traktowane jako szczególnie cenne przy ustalaniu tematyki strony, a zatem:• tytuł (<TITLE></TITLE>)• Forma URL• Meta tags• Tekst w odwołaniach hiperlinków• ...

Spamowanie linkami (ang. Link spamming)

Dla spammera sieć WWW dzieli się na trzy części:

● Strony niedostępne – nie ma możliwości zmiany ich zawartości

● Strony dostępne – można częściowo wpływać na ich zawartość np.• komentarze w blogach, fora dyskusyjne, itp.• można umieszczać tam odnośniki do stron własnych

• Strony własne – można całkowicie kontrolować ich zawartość

• mogą znajdować się w kilku (nastu, dziesięciu) różnych domenach

• to może być system współdzielony (np. linkor.pl itp.)

Farma linków (ang. Link Farm)Celem spammera jest zwiększenie istotności strony s, obliczanej

zwykle algorytmem typu PageRank

Należy zatem posiąść możliwie wiele stron i hiperpołączeń, odwołujących się do strony s – tworzenie bezpośrednich połaczeń jest jednak żmudne i nieefektywne

Przyspieszenie – Farma linków (ang. Link Farm)

Internet (strony

niedostępne)

Strony dostępne

Strona s

Strony własne

Czy to może dać jakiś efekt?Niech:

x – przyrost PageRank od stron dostępnych

y – PageRank strony s

Farma linków (ang. Link Farm) cd.

R ( p )=ε /n+ (1−ε )⋅ ∑(q , p )∈G

R (q )

out deg ree (q )

PageRank każdej strony z Farmy linków (ang. LinkFarm) = ε/n+(1- ε)(y/M)

y = ε/n + x + (1- ε)(M*(ε/n+(1- ε)(y/M)))y = x *(1/ ε(2- ε)) + (M/n)((ε-1)/(ε-2))

ε zwykle około 0.2 zatem otrzymujemyy≈2.78*x+0.45 (M/n)

to oczywiście znaczne uproszczenie

y≈2.78*x+0.45 (M/n)

Osiągamy• Zwielokrotnienie wartości PageRank „wpływającego” ze stron

dostępnych• Zwiększając liczbę stron własnych, możemy dowolnie zwiększać

wartość PageRank strony s – (z tym, że stron tych musi być rzeczywiście dużo)

Farma linków (ang. Link Farm) cd.

Internet (strony

niedostępne)

Strony dostępne

Strona s

Strony własne

Ukrywanie• Techniki tworzenia spamu wśród stron internetowych (ang. Web

Spamming) są aktywnie zwalczane przez firmy obsługujące największe wyszukiwarki

• Nie są to także techniki zbyt dobre z punktu widzenia public relations

• Niezbędne jest zatem ukrycie mechanizmów spamowych:

• Urywanie zawartości (ang. Content hiding)• Ukrywanie treści przed człowiekiem• Najczęściej wykorzystywana technika – użycie tych samych kolorów tła

i tekstu• “Płaszczowanie” (ang. Cloaking)

• Rozpoznawanie rodzaju dostępu do strony (robot / człowiek)• Inna treść przesyłana jest do przeglądarek WWW a inna do robotów

sieciowych• Przekierowania

• Alternatywna metoda typu „cloaking”• Przekierowania są zwykle obsługiwane przez przeglądarki a nie przez

roboty sieciowe

Wykrywanie spamu wśród stron internetowych (ang. Web Spam)

• Spamowanie wyrazami (ang. term spamming)• Jest to zadanie b. podobne do wykrywania klasycznego (tj.

pocztowego) spamu, mogą tu mieć zatem zastosowanie podobne techniki np.• Analiza tekstu przy wykorzystaniu algorytmów klasyfikacji• Heurystyki wykrywające „dziwne” wykorzystanie tagów HTML• Wykrywanie stron podobnych do siebie (ang. near duplicates)• ...

• Spamowanie linkami (ang. link spamming)• Tu jest trudniej, jak na razie nie wymyślono rzeczywiście

skutecznych metod• Wpływa bezpośrednio na działanie rankingu wyszukiwarek• Przykład metody – Trust Rank

Najważniejsza konferencja dot. WWW

WorldWideWeb Conference

• www2011.org• www2012.org• www2013.org• itd.

Do poczytania

Obliczenia dla całego WWW

• Całe WWW jest duże – a nawet bardzo duże

• Do analizy nie wystarczy superkomputer

• Niezbędne zatem zastosowanie klastrów• Tanie – nawet tysiąc komputerów PC jest tańsze od superkomputera

ale…• Pojedyncze komputery klasy PC są zawodne,• Pojedyncze komputery klasy PC są powolne,• Trzeba zatem odpowiednio projektować algorytmy.

Mapuj/redukuj (ang. Map/Reduce)

• Pomysł – wykorzystanie modelu map & reduce• Znane z języków funkcyjnych, ang. functional languages, (Lisp,

Scheme)• Np. w Pythonie:• map(function, list, ...)

• Zastosuj funkcję function do każdego elementu obiektu list i zwróc listę rezultatów.

• reduce(function, sequence[, initializer])• Zastosuj funkcję function z dwoma argumentami w sposób skumulowany do

elementów obiektu sequence, z lewej do prawej, aby zredukować sekwencję do pojedynczej wartości.

• Zalety – da się w ten sposób przedstawić wiele problemów• Łatwe do zrównoleglenia• Pojedyncze operacje atomowe łatwo powtórzyć w przypadku

awarii

Map / Reduce - przykład

Obliczyć sumę kwadratów ciągu (1..5):

map(lambda x: x**2, [1,2,3,4,5])

[1, 4, 9, 16, 25]

reduce(lambda x, y: x+y, [1, 4, 9, 16, 25]) ((((1+4)+9)+16)+25) = 55

W przypadku map – operator unarny

W przypadku reduce – operator binarny

Map/Reduce w praktyce• map(key, val) działa na każdym elemencie zbioru

• Wynik – nowe pary key / value

• reduce(key, vals) działa dla listy wartości związanych każdą unikalną wartością key wygenerowaną przez map()• Wynik – rezultat końcowy

• Przykład – zliczanie słów w dokumentach• Wejście: pary (url, zawartość)

• map(key=url, val=zawartość dokumentu):• Dla każdego słowa w należącego do zawartości, generuj(w, “1”)

• reduce(key=w, vals=unikalne wystąpienia):• Zlicz wszystkie “1” na liście vals• Generuj“(w, zliczona_suma)”

Zliczanie słów

Best lawyer is

a dead lawyer

best 1

lawyer 1

is 1

a 1

dead 1

lawyer 1

a 1

best 1

dead 1

is 1

lawyer 2

• map(key=url, val=zawartość dokumentu):• Dla każdego słowa w należącego do zawartości, generuj(w, “1”)

• reduce(key=w, vals=unikalne wystąpienia):• Zlicz wszystkie “1” na liście vals• Generuj“(w, zliczona_suma)”

map

reduce(best,[1])reduce(lawyer,[1,1])reduce(is,[1])reduce(a,[1])reduce(dead,[1])

Inne przykładyGREP• Wejście (url+offset, linia tekstu)• map(key=url+offset, val=linia):

• Jeżeli zawartość zgadza się z wyr. reg., generuj(linia, “1”)

• reduce(key=linia, values=unikalne_wystąpienia):• generuj(linia)

Odwrócony graf hiperlinków WWW• Wejście (source_url, targets)• map(key=source_url, val=target_url):

• Generuj(target_url, source_url)

• reduce(key=target_url, values=unikalne_wystąpienia_source_url):• stwórz listę unikalnych source_url• generuj(target_url, lista source_url)

Zastosowania

rozproszony grep   Sortowanie rozproszone   Modyfikacje grafu stron

internetowych

Reprezentacje dokumentów

statystyki logów dostępu do stron

Budowanie indeksu odwróconego

Grupowanie dokumentów Uczenie maszynowe Statystyczne tłumaczenie

maszynowe

... ... ...

Wykorzystanie w Googlewg Jeffrey Dean & Sanjay Ghemawat

Lic

zba

2003 2004

Typowy klaster @Google

• 100s/1000s 2-CPU x86 PCs, 2-4 GB RAM• Storage is on local IDE disks + GFS: distributed file system• Job scheduling system: scheduler assigns tasks to machines

Całość jako biblioteka C++ + bindings dla Python i Ruby

Implementacja

1. Podział zbioru key/value na kawałki, równoległe wykonanie map()

2. Po zakończeniu wszystkich zadań map()s zbieranie wartości value dla unikalnych wartości key

3. Podział zbioru key na kawałki, równoległe wykonanie reduce()

Zaleta - Jeśli któraś z operacji map() lub reduce() się nie wykona, można ją uruchomić jeszcze raz na innej maszynie (w innym węźle klastra)!

Implementacje – Googlowa (proprietary), Hadoop (Java)– Apache Foundation, Starfish, Skynet (Ruby), …

Proces map/reduceWejście

Stan przejściowy

Zgrupowane

Wyjście

Proces map/reduce cd.

Zwykle (w Google) około 200000 procesów map i 5000 procesów reduce na 2000 komputerów

Kilka uwagGłęboka analiza tekstu (ang. Deep Text Processing, DTP), a płytka analiza

tekstu (ang. Shallow Text Processing, STP)

WWW – czasem nie trzeba nawet analizować tekstu, aby osiągnąć efekty

Trzy obszary zastosowań Text Mining• Drobiazgi – dostarczanie wycinków informacji potrzebnych użytkownikowi

• Odpowiadanie na pytania (ang. Question Answering)• Wyszukiwanie informacji (ang. Information Retrieval)• ...

• Uogólnienia – zapanowanie nad dużymi kolekcjami dokumentów• Sumaryzacja• Klasyfikacja• Grupowanie

Rzeczywisty Text Mining: Odkrywanie interesujących, a nieznanych informacji (w tym szczególnie – korelacji pomiędzy danymi) w zbiorach dokumentów