Subskrybuj newsletter o cyfrowej humanistyce i innowacjach w sektorze kultury

Badamy sieć rekomendacji książek wydawnictwa Czarne (część I)

Okładka lekcji: wizualizacja - sieć relacji między kotami / Źródło: AI

Wprowadzenie

Blurb to krótki opis lub rekomendacja zamieszczona na okładce książki. Jego celem jest zainteresowanie potencjalnego czytelnika i zainspirowanie go do kupna książki. To zazwyczaj bardziej marketingowy niż krytycznoliteracki komentarz, pisany przez osoby posiadające odpowiednie znaczenie w świecie literackim.

Założone w 1996 roku przez Andrzeja Stasiuka i Monikę Sznajderman Wydawnictwo Czarne to bez wątpienia jedno z najważniejszych wydawnictw w Polsce. Na stronach wydawnictwa publikowane są opisy książek oraz blurby. To dobre dane do przygotowania niewielkiej analizy, której celem będzie zbadanie sieci połączeń między autorami i autorkami książek a autorami i autorkami blurbów. W badaniu wykorzystamy metody analizy sieciowej, wcześniej przygotowane dane dostępne są już na stronach humanistyka.dev.

Cele lekcji

Celem lekcji jest poznanie podstaw analizy sieciowej i korzystania z programu Gephi.

Efekty

Efektem lekcji będą wizualizacje sieci relacji między osobami piszącymi blurby a autorami i autorami książek wydawnictwa Czarne. Analiza ma charakter edukacyjny i nie ma sensu używać jej do formułowania głębszych interpretacji systemu rynku książki czy działalności samego wydawnictwa.

Lekcja podzielona jest na dwie części - pierwsza zawiera wprowadzenie teoretyczne oraz przedstawia podstawowe elementy Gephi, druga omawia metody pracy z danymi sieciowymi w tym programie i proponuje sposób ich interpretacji.

Wymagania

Konieczna jest instalacja darmowego programu Gephi, dostęp do dowolnego arkusza kalkulacyjnego i przeglądarki z dostępem do internetu. W tej lekcji nie będziemy programować.

Część merytoryczna

Na wstępie lekcji poznamy podstawy analizy sieciowej. Następnie zaimportujemy dane do Gephi i przygotujemy podstawowe statystyki dla naszej sieci. Wykorzystamy także aplikację webową Gephi Light, dzięki której będziemy mogli w łatwy sposób udostępnić naszą wizualizację innym.

Sieci, krawędzie i węzły

W życiu codziennym możemy rozpoznać wiele sieci. Sieć komunikacji miejskiej obejmuje punkty przystanków, stacji kolejowych czy metra oraz trasy pojazdów. Serwisy społecznościowe wykorzystują istniejące już relacje między ludźmi, grupując ich w określone klastry na podstawie zainteresowań, miejsca zamieszkania czy dotychczasowych kliknięć. Jedną z podstaw rozpoznawania jakości publikacji naukowych jest sieć odwołujących się do niej artykułów, podobnie w przypadku pozycji danej witryny w wyszukiwarce. Siecią jest też system korespondencji, np. słynna Res publica literaria - możemy w niej wyznaczać najbardziej wpływowych autorów (nie muszą to być zresztą tylko ci autorzy, którzy otrzymują najwięcej listów). Siecią jest internet, rozumiany nie tylko jako zbiór witryn i obiektów, ale też połączone ze sobą urządzenia.

Siecią jest w końcu też system blurbów - opisuje powiązania i zależności między różnymi autorami na podstawie tego, kto udziela rekomendacji (blurbów) dla czyjej książki.

Jeśli na podstawie tych przykładów spróbujemy podać ogólną definicję, możemy powiedzieć, że sieć to struktura reprezentująca określone obiekty i relacje między nimi. Obiekty, które wchodzą ze sobą w relacje sieciowe nazywamy węzłami albo wierzchołkami (nodes), relacje między parami węzłów to krawędzie (edges). Jeśli przystanki są węzłami w sieci komunikacji miejskiej, to krawędzie będą liniami autobusowymi czy tramwajowymi. W systemie publikacji naukowych krawędziami będą cytowania jednej pracy w innej pracy, a węzłami - artykuły naukowe. Korespondencja listowna to także sieć - węzłami są nadawcy i odbiorcy, a krawędziami wymieniane między nimi listy. Wizualizacją takiej sieci jest projekt Mapping the Republic of Letters:

Sieć korespondencji Woltera / Źródło: Mapping the Republic of Letters

Sieć ukierunkowana, stopień węzła i waga krawędzi

W naszej analizie węzłami będą osoby - pisarze i pisarki, ale też osoby zajmujące się krytyką literacką. Część z nich zidentyfikujemy jako autorów i autorki książek Czarnego, część - jako autorów i autorki blurbów. Oczywiście role te mogą być zmienne - autorka X może polecać książkę Y, sama ciesząc się z blurba autora Z. Połączenia między osobami w naszej sieci polegać będą na autorstwie blurba dla książki określonego autora lub autorki. Będzie to więc sieć ukierunkowana (directed) - interesuje nas przepływ w jedną stronę.

Liczba połączeń wybranej osoby z innymi osobami w tej sieci to tzw. stopień węzła. W najprostszej interpretacji im wyższy stopień węzła tym ważniejsza pozycja danej osoby w całej sieci - autorka z dwudziestoma połączeniami może mieć większe znaczenie niż autor z siedmioma. Nad tym, dlaczego niekoniecznie tak musi być, zastanowimy się w dalszej części lekcji.

Waga krawędzi odzwierciedla siłę, intensywność, częstotliwość lub znaczenie relacji między dwoma węzłami. Jeśli autor X pisałby blurby autorowi Y nie raz, ale trzy razy, siła tej relacji (którą moglibyśmy potem interpretować) byłaby większa niż w przypadku jednorazowej rekomendacji. Jednak czy na pewno? Jeśli osoba X miałaby pisać wiele blurbów wielu autorom, wartość marketingowa takiego pojedynczego polecenia nie byłaby wysoka. I dalej, blurb autorstwa noblistki znaczy promocyjnie więcej niż wiele rekomendacji niszowych autorów.

Ograniczenia interpretacyjne

Chociaż analiza sieciowa korzysta z metod matematycznych i statystycznych, nie gwarantują one poprawności interpretacji, zwłaszcza, jeśli zajmujemy się sieciami o różnorodnych typach relacji i węzłów.

Pracując z sieciami, warto wystrzegać się błędu, polegającego na wyciąganiu zbyt daleko idących wniosków z analizy statystycznej określonych cech tej sieci. W analizie sieci komunikacji miejskiej, opierając wartość określonego przystanku wyłącznie na liczbie linii, które mogą dowozić na niego pasażerów, ignorujemy jego położenie czy możliwości przesiadek. Na przykład, przystanek, który obsługuje wiele linii, może wydawać się istotny, ale jeśli znajduje się w odległej części miasta, z ograniczonymi połączeniami z innymi częściami sieci, jego rzeczywista użyteczność dla ogółu pasażerów może być znacznie niższa niż przystanku znajdującego się w centralnym węźle komunikacyjnym z licznymi opcjami przesiadek i lepszym dostępem do różnych dzielnic.

W sieci społecznej osoba, która zna wiele innych osób (wysoki stopień węzła), niekoniecznie musi być najbardziej wpływowa. Realny wpływ na sieć może wynikać z jakości tych połączeń, np. pozycją w sieci, gwarantującą bliskość do kluczowych węzłów. W serialu “Alternatywy 4” towarzysz Jan Winnicki w społeczności mieszkańców bloku miał zdecydowanie wyższą pozycję niż Józef Balcerek, świetny kompan, gawędziarz i niewyczerpane źródło anegdot, który wielokrotnie zapraszał wszystkich do siebie na imprezy. Wartość znajomości z Winnickim opierała się na tym, że miał on bezpośrednio znać wysoko postawione osoby (ważną rolę w serialu pełni jego wizytówka).

Pobieramy i przeglądamy dane

Witryna wydawnictwa Czarne publikuje katalog książek. Każda książka z katalogu ma własną stronę, a na niej tak oczywiste elementy jak tytuł, imię i nazwisko autora, liczba stron czy ISBN.

Katalog książek wydawnictwa Czarne / Źródło: czarne.com.pl

Znajdziemy tam też blurby, wyróżnione specjalnym stylem. Ponieważ wszystkie potrzebne nam informacje publikowane są na stronach Czarnego w sposób uporządkowany, możemy łatwo maszynowo pozyskać dane o książkach i blurbach. Wadą takiej metody jest na pewno to, że nie możemy być pewni, czy wszystkie blurby (niektóre książki mają ich aż szesnaście!) były rzeczywiście publikowane na okładkach. Nasze dane zawierają też informacje o książkach polskich i zagranicznych autorów, co mogłoby być problemem, kiedy chcielibyśmy robić analizę blurbów w kontekście polskiego pola literackiego.

Scraper pozyskał dane, z których przygotowałem trzykolumnowy arkusz (poniżej w postaci pliku CSV):

"edge_label","target","source"
"12 opowieści żydowskich","Anka Grupińska","Mirosław Bałka"
"12 opowieści żydowskich","Anka Grupińska","Roman Gren"
"13 pięter","Filip Springer","Grzegorz Sroczyński, „Gazeta Wyborcza”"
"14:57 do Czyty","Igor T. Miecik","Andrzej Brzeziecki"
"20. 20 lat nowej Polski w reportażach","Pomysł, układ i komentarz Mariusz Szczygieł","Mariusz Szczygieł"
"438 dni","Johan Persson","Bartek Sabela"
"438 dni","Martin Schibbye","Bartek Sabela"
"5/25","Bogusław Politowski","Michał Żakowski"
"81:1","Maciej Wasielewski","Mariusz Szczygieł"
"81:1","Marcin Michalski","Mariusz Szczygieł"
"...będzie gorzej","Jan Pelc","Piotr Kępiński"
"...będzie gorzej","Jan Pelc","Mariusz Surosz"
"Abchazja","Wojciech Górecki","prof. dr hab. Adam Daniel Rotfeld"

Kolumna target zawiera informacje o autorach książek, source - o autorach blurbów, a edge_label podaje tytuł książki, do którego pisano rekomendacje. Dane dostępne są pod tym adresem.

Jak widać, dane niezbędne do wygenerowania sieci nie muszą mieć bardzo skomplikowanej struktury. Jeśli przygotowujemy dane o krawędziach, a więc relacjach w sieci, wystarczy zidentyfikować łączące je punkty. Informacja o tytułach książek nie jest niezbędna, ale uznajmy, że warto ją dodać, aby móc zobaczyć kontekst relacji między wybranymi autorami i autorkami.

Ponieważ będziemy korzystać z Gephi, nie musimy sami wyliczać krawędzi i budować połączeń między poszczególnymi węzłami. Zrobi to za nas oprogramowanie.

Dane pobrane z witryny Czarnego można też przetwarzać jak każdą tabelę, licząc np. średnią liczbę blurbów na książkę czy wyznaczając najbardziej promowanych autorów czy aktywnych polecaczy. Bardzo zachęcam do takich eksploracji 😉.

Gephi - wprowadzenie

Gephi to darmowe oprogramowanie open source do eksploracji i manipulacji sieciami. Zawiera moduły pozwalające na import, wizualizację, analizę, filtrowanie, edycję oraz eksport wszelkiego rodzaju sieci. Mechanizm generowania wizualizacji wykorzystuje zasoby karty graficznej komputera oraz możliwości procesorów wielordzeniowych, dzięki czemu radzi sobie nawet dużymi sieciami (powyżej 20 tys. węzłów). Twórcy Gephi udostępnili też zestaw algorytmów, pozwalających automatycznie wygenerować odpowiedni układ sieci - jednym z najbardziej popularnych jest Force Atlas. Gephi zostało opracowane i jest rozwijane na Uniwersytecie Technologicznym w Compiègne we Francji.

Gephi dostępne jest na wiele platform. W tej lekcji nie będziemy omawiać instalacji tego oprogramowania - pomoc można znaleźć na tej stronie, należy też poznać wymagania sprzętowe i niezbędne zależności.

Czy instalacja Gephi i praca w tym programie jest trudna? Twórcy reklamują Gephi hasłem Like Photoshop for graphs - to program, w którym można bardzo szybko zacząć pracę nad sieciami, ale też który posiada wiele eksperckich funkcji. Bez obaw, w naszej lekcji skorzystamy z tych podstawowych.

Gephi - interfejs

Interfejs Gephi w wersji 0.10.1

Pracujemy w Gephi w trzech podstawowych modułach (zakładkach):

  • Overview - tutaj budujemy i modyfikujemy sieć, ustawiamy właściwości węzłów i krawędzi, przetwarzamy sieć za pomocą wybranych algorytmów i generujemy statystyki;
  • Data Laboratory - tutaj przygotowujemy dane, na podstawie których będzie generowana sieć. Możemy skorzystać z narzędzi takich jak dublowanie czy filtrowanie kolumn, modyfikować wybrane komórki itp. Jeśli odpowiednio przygotujemy dane do importu (np. w pliku CSV), praca w Data Laboratory nie musi być konieczna;
  • Preview - tutaj ustawiamy wygląd naszej sieci, wybieramy fonty, kolory, styl itp. Wygenerowaną sieć możemy wyeksportować do plików graficznych lub PDF.

Po uruchomieniu Gephi zobaczymy okno Welcome to Gephi z odnośnikiem New Project. Wybierzmy go, żeby stworzyć nowy projekt i zaimportować dane.

Dane importujemy, wybierając z menu Plik opcję Import spreadsheet. Pojawi się okienko, w którym wskazujemy na plik CSV i klikamy Open:

Importowanie danych do Gephi

Import i porządkowanie danych

Obecność w naszym pliku CSV kolumn source i target sugeruje Gephi, że udostępniamy dane na temat relacji (krawędzi) między węzłami. Program od razu wygeneruje podgląd - możemy sprawdzić poprawność danych i zaimportować je do Gephi:

Importowanie danych do Gephi

W kolejnych krokach możemy spokojnie klikać Następny. Poprawne wczytanie danych pozwoli na wygenerowanie podstawowych statystyk: nasza sieć blurbów ma 2646 węzłów (osób) i 3569 krawędzi (połączeń) - to zdecydowanie zbyt wiele na ręczne wyliczanie statystyk:

Importowanie danych do Gephi

Uwaga: nasza sieć jest typu ukierunkowanego (directed), ponieważ istotne jest dla nas, w jakim kierunku łączą się ze sobą poszczególni autorzy i autorki (badamy relację od autora / autorki blurbu do autora / autorki książki). Wybierzmy opcję Append to existing workspace i zacznijmy pracę z siecią.

Wybór algorytmu wyświetlania sieci

Po imporcie możemy w końcu zobaczyć naszą sieć:

Sieć wygenerowana z danych pliku CSV w Gephi

Chociaż dane źródłowe są poprawne i zostały poprawnie zaimportowane, nasza wizualizacja jest zupełnie nieczytelna. Nie oznacza to jednak, że jest niepoprawna - chociaż nic z niej nie zrozumiemy, odpowiednio reprezentuje relacje między węzłami.

Aby pokazać sieć w sposób przyjazny dla człowieka, potrzebujemy algrytmu wyświetlania (wybieramy go w oknie Layout). Algorytmy wyświetlania nie modyfikują danych sieci, ale organizują jej wizualną reprezentację w taki sposób, aby była bardziej czytelna dla użytkownika. Algorytmy takie jak ForceAtlas, Yifan Hu, czy Fruchterman-Reingold przekształcają układ węzłów i krawędzi na płaszczyźnie tak, aby sieć była łatwiejsza do interpretacji.

Każdy z layoutów to tak naprawdę pewne przeliczenia matematyczne, które - poza tym, że porządkują wygląd sieci, mogą wpływać na jej interpretację (bias). Znów, jak w większości narzędzi wykorzystywanych w cyfrowej humanistyce, oprogramowanie w pewien sposób wpływa na interpretację danych.

W naszej pracy wykorzystamy proponowany przez Gephi jako standardowy algorytm ForceAtlas2:

ForceAtlas2 to layout ukierunkowany (directed): symuluje układ fizyczny, aby ułożyć sieć w przestrzeni. Węzły odpychają się nawzajem jak naładowane cząstki, podczas gdy krawędzie przyciągają swoje węzły, jak sprężyny. Te siły tworzą ruch, który dąży do zrównoważonego stanu. Ostateczny układ ma na celu ułatwienie interpretacji danych. Rysowanie siłowe (force-directed drawing) charakteryzuje się tym, że umieszcza każdy węzeł w zależności od pozostałych węzłów. Proces ten zależy wyłącznie od połączeń między węzłami. Ewentualne atrybuty węzłów nigdy nie są brane pod uwagę.

Kiedy wybierzemy ten algorytm z opcji i uruchomimy go, nasza sieć w Gephi ożyje - węzły będą odpychać się od siebie wzajemnie, a krawędzie skracać lub wydłużać. Przeliczenie layoutu może chwilę potrwać (w zależności od mocy obliczeniowej komputera), w efekcie otrzymamy już jednak bardziej czytelny układ sieci:

Sieć przetworzona algorytmem ForceAtlas2

Wybór layoutu to wejście w przestrzeń statystyki, więc warto wiedzieć, jakie cechy powinna mieć nasza sieć, aby dany latout był dla niej odpowiedni. W przypadku ForceAtlas2 powinna to być

  • sieć typu Small World, w której każdy węzeł nie ma zbyt wielu sąsiadów, ale istnieje duże prawdopodobieństwo, że jego sąsiedzi są sąsiadami innych węzłów i do większości węzłów można dotrzeć z każdego innego węzła za pomocą niewielkiej liczby kroków.
  • sieć bezskalowa (scale-free). Badając rozkład liczby połączeń dla wszystkich węzłów (degree distribution) możemy sprawdzić, czy mamy do czynienia z siecią bezskalową, jeśli rozkład ten przypomina rozkład prawa potęgowego (power law): istnieje niewiele węzłów o bardzo dużej liczbie krawędzi oraz bardzo dużo węzłów posiadających niewielką liczbę relacji.

Aby sprawdzić, czy nasza sieć to sieć bezskalowa, wybieramy z opcji Statistics moduł Network Overview - znajdziemy tam przycisk wyliczania średniej liczby połączeń węzła w naszej sieci (average degree):

Rozkład liczby połączeń w węzłach sieci

Jak widać, w naszej sieci znajduje się bardzo duża liczba węzłów, które mają niewiele połączeń - średnia dla całej sieci to tylko 1.313, oraz nieliczne węzły o więcej niż 25-30 połączeniach.

Wydaje się, że bezpiecznie możemy użyć algorytmu ForceAtlas do wizualnego uporządkowania naszej sieci.

Identyfikujemy najważniejsze węzły

Wyliczenie średniej liczby połączeń dla węzła w naszej sieci spowodowało, że w tabeli zawierającej dane węzłów (moduł Data Laboratory) pojawiły się kolumny opisujące liczbę połączeń wchodzących, wychodzących i łączną. Klikając na nagłówek wybranej kolumny możemy zobaczyć bardzo szybko, kto w sieci wydawnictwa Czarne najczęściej pisał blurby do wydawanych tam książek:

Najsilniejsze węzły w sieci Czarnego

Nie jest zaskoczeniem, że - z grupy polskich autorów i autorek - to Andrzej Stasiuk, pisarz i współzałożyciel wydawnictwa, jest węzłem o największej liczbie połączeń: jest autorem blurbów do szesnastu książek swojego wydawnictwa oraz aż trzydzieści dwie osoby polecają jego własne książki. Nie dziwi też wysoka pozycja Publishers Weekly, założonego już 1872 czasopisma krytycznoliterackiego - wydawnictwo Czarne ma w swojej ofercie wiele książek tłumaczonych.

W naszej sieci węzłami są też nie tylko poszczególne osoby, ale też tytuły czasopism - nie wszystkie blurby umieszczane na okładkach książek Czarnego są podpisane imieniem i nazwiskiem autora. Analiza, na podstawie której chcielibyśmy głębiej interpretować sieć autorską wydawnictwa Czarne w kontekście polskiego pola literackiego, wymagałaby wyczyszczenia danych i np. usunięcia z definicji krawędzi wszystkich książek, które nie zostały napisane przez polskich autorów.

Uzupełnianie danych

Na koniec tej lekcji spróbujmy jeszcze uzupełnić dane, żeby w naszej wizualizacji dało się zidentyfikować węzły (zobaczyć imiona i nazwiska autorów) oraz kontekst relacji między nimi (tytuły rekomendowanych książek). Pracujemy wciąż w Data Laboratory.

W zakładce Nodes uzupełnimy nazwy (label) węzłów. Wybieramy z dolnego menu opcję Copy data to other column. Zaznaczamy kolumnę Id i wybieramy kolumnę, do której przeniesiemy wartości: label:

Uzupełnianie danych o węzłach sieci

Podobnie zróbmy z danymi na temat połączeń (krawędzi):

Uzupełnianie danych o krawędziach sieci

W efekcie:

Uzupełnianie danych o krawędziach sieci

Tak uzupełnione dane możemy wykorzystać przy generowaniu wizualizacji sieci. Możemy też wyeksportować je do pliku Excela czy CSV. Jak widać, możemy użyć Gephi także do pewnych analiz statystycznych (tutaj identyfikację najbardziej aktywnych autorów blurbów), ignorując budowanie wizualizacji.

Metody pracy nad samą wizualizacją poznamy już w kolejnej lekcji.

Podsumowanie

Praca z Gephi nie jest trudna - wydaje się, że największym wyzwaniem dobry pomysł na analizę i pozyskanie oraz odpowiednie przygotowanie danych źródłowych. Budowanie wizualizacji sieciowej to praca z wykorzystaniem metod statystycznych, warto więc zwracać uwagę na cechy wybranych algorytmów layoutów - nie wszystkie mogą nadawać się do generowania niektórych sieci.

W przypadku dużych sieci, mających wiele węzłów i połączeń, wyzwaniem może być moc obliczeniowa komputera.

Interpretacja wygenerowanych wizualizacji wymaga krytycznego podejścia. Warto unikać nadinterpretacji oraz pamiętać, że wygląd sieci jest w dużej mierze zależny od zastosowanych parametrów i ustawień i nie zależy wyłącznie od samej struktury danych.

Wykorzystanie metod

Bez wątpienia analiza sieciowa (praktykowana oczywiście nie tylko za pomocą Gephi) jest jedną z podstawowych metod badań cyfrowej humanistyki. Świetnym przykładem są prace Franco Morettiego, autora pojęcia czytania zdystansowanego (distant reading) oraz próbującego maszynowo interpretować nie tylko produkcję literacką, ale też literackie fabuły. To ostatnie zadanie może być zrealizowane właśnie za pomocą analizy sieciowej. W artykule Network Theory, Plot Analysis (2011) proponuje nowe dane do interpetacji Hamleta.

Dane sieciowe wyliczane są w jego analizie na podstawie obecności wybranych postaci w kolejnych scenach dramatu. Oto wizualizacja sieci relacji Hamleta:

Sieć relacji Hamleta / Źródło: Franco Moretti, Network Theory, Plot Analysis, "New Left Review", 68, 2011

oraz wykres pokazujący najważniejsze postaci w sieci dramatu (rozkład liczby relacji między postaciami):

Rozkład relacji między postaciami / Źródło: Franco Moretti, Network Theory, Plot Analysis, "New Left Review", 68, 2011

Sieci naprawdę można dostrzec wszędzie 😉, a sposób organizacji tekstu w dramatach dodatkowo ułatwia pozyskanie danych.

Analiza sieciowa przydaje się też w zastosowaniach, które nie przychodzą nam do głowy od razu:

Podejście sieciowe stosował amerykański wywiad, analizując stan sił Vietcongu, i brytyjskie służby specjalne, rozpracowując konspirację Irlandzkiej Armii Republikańskiej. Ba, sieciową intuicję wykazywał nawet dominikanin Bernardo Gui, główny inkwizytor, który zreformował taktykę walki z herezją, zastępując metodę random killing (przypadkowej eliminacji) na rzecz tropienia perfecti, kluczowych węzłów w sieci herezji – jego średniowieczny podręcznik dla inkwizytorów zachował intelektualną świeżość do dziś.

Pomysł na warsztat

Lekcja w oczywisty sposób może być częścią warsztatu z podstaw analizy sieciowej. Ale analizę sieciową pokazywać i ćwiczyć można też bez przygotowywania własnych sieci, np:

Relacje między stronami w katalogu Google / Źródło: networkrepository.com

Pamiętajmy, że sieci to nie jedynie pomysł na wizualizację, ale sposób opisywania i interpretacji świata.