Metodologia raportów widoczności w AI

Wszystkie edycje Raportu Widoczności w AI mierzą to samo, tą samą checklistą, według tych samych reguł. Reguły stoją tutaj, w jednym miejscu, zamiast być przepisywane do każdego raportu — bo reguła przepisana czterokrotnie rozjeżdża się przy trzecim przepisaniu. Raporty linkują do tej strony i podają wyłącznie to, co jest w nich specyficzne.

Co mierzymy i czego nie

Mierzymy warunki wstępne, nie efekt. Checklista sprawdza, czy silnik generatywny może pobrać stronę, przeczytać ją i znaleźć na niej treść w formie nadającej się do zacytowania. Nie mierzy, czy modele faktycznie kogoś cytują — to inny pomiar, wymagający innego przyrządu, i żaden z tych raportów go nie rozstrzyga.

Pomiar dotyczy jednej strony głównej na podmiot, nie całego serwisu. Podstrona z kompletem danych strukturalnych nie zmienia wyniku. Jest też punktem w czasie: kto poprawił stronę tydzień po pomiarze, w liczbach wygląda tak samo.

Jak dobieramy próbę

Populacja musi spełniać trzy warunki naraz. Lista musi być publiczna, żeby dało się ją odtworzyć. Musi być zamknięta, żeby mianownik nie zależał od tego, gdzie przestaliśmy szukać. I nie może zależeć od naszej oceny — żaden filtr w rodzaju „które z nich są naprawdę firmami z branży" nie wchodzi, bo taki filtr jest uznaniowy niezależnie od tego, jak rozsądnie brzmi.

Populację bierzemy w całości, w dniu pomiaru. Wpis wypada z próby tylko z powodu zapisanego w danych — brak adresu, adres w cudzym serwisie, adres w domenie innego podmiotu, albo domena wniesiona już przez wcześniejszy wpis. Wykluczony wiersz zostaje w opublikowanym pliku, z powodem wykluczenia obok. Mianownik, który po cichu traci wiersz, nie jest odtwarzalny, a to jest jedyna rzecz, którą ten pomiar naprawdę obiecuje.

Próbę buduje skrypt, nie ręka. Przy badaniu e-commerce zabrakło tego kroku i dziś nikt nie odtworzy, czy izba wypisywała wtedy 150 firm, czy pięć odpadło czyimś osądem. Od trzeciej edycji każda próba ma swój skrypt, a skrypt zapisuje pobrany katalog razem z datą.

Skąd bierzemy adres, pod którym mierzymy

Adres musi pochodzić z tego samego źródła co lista, albo z rejestru równie publicznego. W trzech pierwszych edycjach katalog branżowy podawał firmę i jej adres w jednym wierszu, więc pomiar nigdy nie musiał decydować, gdzie wycelować. Dla miast na prawach powiatu takiego katalogu nie ma i adres pochodzi z bazy teleadresowej MSWiA — z kolumny, którą wypełnia sam urząd.

Trzy podstawienia, które się nasuwają, odrzucamy z powodów wartych zapisania:

Adres mierzymy dosłownie tak, jak podaje go źródło — z przedrostkiem www. włącznie. To nie jest pedanteria. Przy pierwszym przebiegu badania samorządów obcinaliśmy www., jak w edycji technologicznej, i szesnaście miast wyszło jako nieosiągalne, bo ich domena bez tego przedrostka nie ma w ogóle rekordu DNS. Byłoby to ustalenie o realnych, wymienionych z nazwy miastach, wyprodukowane przez nasz własny przyrząd. Zasada brzmi więc: odpowiedź źródła jest wartością, a nasze konwencje nie mają prawa jej po drodze poprawiać.

Ta sama zasada rozstrzyga, czy adres jest domeną własną wpisu, czy domeną dzieloną z innymi. Kiedy ten sam host deklaruje w rejestrze więcej niż jeden podmiot — inny właściciel albo inna gmina — ten host nie jest stroną żadnego z nich z osobna: jest domeną sieci, systemu rezerwacyjnego albo wspólnego właściciela kilku obiektów. Test liczy podmioty w całym rejestrze, nie tylko w próbie — dziś to 3369 wpisów wobec 111 w próbie — bo domena sieci potrafi paść raz wewnątrz próby i wielokrotnie poza nią; próba licząca samą siebie tego rozstrzygnięcia by nie zobaczyła. Nie powstaje przy tym ręcznie pisana lista sieci: lista marek jest filtrem uznaniowym w technicznym przebraniu, który starzeje się przy każdej zmianie właściciela — potrzebowałaby dopisania po każdym audycie i nigdy nie złapałaby sieci, która nikomu jeszcze nie kazała się tak nazwać. Hosty porównujemy po zdjęciu wiodącego www., żeby radissonblu.com i www.radissonblu.com policzyły się jako ten sam host — ale ta normalizacja dotyczy wyłącznie porównania. Adres, który faktycznie mierzymy, zostaje dokładnie taki, jaki zapisał rejestr, z przedrostkiem albo bez niego.

Podmioty, nie wpisy — i to rozróżnienie kosztowało nas sprostowanie. Rejestr hotelarski listuje jeden obiekt dwa razy, kiedy jego część nosi inną kategorię gwiazdek. Liczone po wpisach, taki hotel „dzielił” domenę sam ze sobą i trafiał na publikowaną listę nazw jako pozbawiony własnej strony, którą ma; dotknęło to trzech wymienionych z nazwy hoteli, zanim ta strona wyszła spod korekty. Reguła liczy więc różne pary (właściciel, gmina). Jej granica: rejestr nie niesie identyfikatora obiektu, który przeżywa ponowną rejestrację, więc jeden operator z dwoma obiektami w jednej gminie pod jedną domeną jest dla tej reguły nieodróżnialny od jednego obiektu zapisanego dwa razy. Ilu mierzonych podmiotów to dotyczy w danym przebiegu, podajemy przy raporcie — ograniczenia bez swojej wielkości nie da się zważyć.

Kiedy rejestr wskazuje stronę wewnątrz cudzego serwisu, a nie jego korzeń, nie podstawiamy tego korzenia: rejestr podaje adres Sheraton Warsaw Hotel & Towers jako sheraton.com/warsaw, a zmierzenie korzenia sheraton.com zmierzyłoby całą sieć, nie ten jeden warszawski hotel. Taki wpis wypada z mierzonej próby, z zapisanym obok powodem. Reguła nie ma wyjątku dla samego segmentu językowego — końcówka w rodzaju /pl bywa katalogiem językowym własnego serwisu podmiotu i bywa stroną pojedynczego obiektu w cudzym serwisie, a z samego zapisu adresu, bez pobrania strony, jednego od drugiego nie da się odróżnić. Wyjątek wymagałby własnej konwencji tego, co znaczy „tylko język" — a konwencja dokładnie tego rodzaju już raz kosztowała szesnaście miast z akapitu wyżej, zapisanych jako nieosiągalne, bo nasz kod obciął przedrostek, którego wymagał ich DNS. Dziś ta klasa obejmuje 6 ze 111 wpisów populacji. Wykluczenie jest ograniczeniem naszego przyrządu, nie ustaleniem o podmiocie, którego adres wskazuje ścieżkę — i to jest też powód, dla którego nikt z tej klasy nie jest nazywany z imienia.

Adres o kształcie, którego reguła nie rozbiera — z dwiema pozycjami w jednej komórce, z danymi logowania, ze znakiem zapytania albo fragmentem w adresie, z hostem noszącym znak spoza dozwolonego zestawu, na przykład polski znak — trafia na jedną z dwóch reguł, zależnie od tego, do czego adres w danym przebiegu służy.

W próbie adres jest tym, co mierzymy, więc taki kształt zatrzymuje przebieg, zamiast zostać cicho zinterpretowany: zgadnięcie, co podmiot miał na myśli, a potem opublikowanie ustalenia o tym zgadnięciu, jest dokładnie tym, czemu ta metoda się sprzeciwia. Każda taka decyzja jest zapisana z uzasadnieniem i publikowana razem z danymi.

W przebiegu referencyjnym, po całym rejestrze, adres nie jest niczym mierzonym — jest wyłącznie kreską w zliczeniu, które odpowiada na pytanie, czy host jest dzielony. Taki wiersz nie należy do populacji i nigdy nie jest nazywany z imienia. Tam nierozpoznany kształt przebiegu nie zatrzymuje: zostaje policzony, wyłączony ze zliczenia hostów, a jego liczba jest publikowana obok samego testu — bo ograniczenie podane bez swojej wielkości nie da się zważyć. W ostatnim przebiegu ta liczba wyniosła 34 z 3369.

Cztery werdykty i dlaczego dwa ostatnie nie są porażką

Każda pozycja checklisty kończy się jedną z czterech wartości.

Dlaczego nie ma oceny końcowej i nie ma rankingu

Żaden z tych raportów nie wystawia jednej liczby na podmiot i nie da się jej z opublikowanych danych policzyć w sposób, który byśmy podpisali. Pozycje nie mają wspólnej wagi, „nie dotyczy" nie jest porażką, a „nie umiem rozstrzygnąć" nie jest wynikiem. Sumowanie werdyktów daje liczbę, ale nie daje miary.

Jedna liczba działa dla jednej strony w czasie — pokazuje, czy w tym miesiącu jest lepiej niż w poprzednim. Przestaje działać w chwili, w której zaczyna się nią porównywać strony między sobą, bo wtedy zaczyna udawać, że dwie różne rzeczy zmierzono tą samą miarką.

Przy populacjach zamkniętych i policzalnych — sześćdziesiąt sześć miast, pięćdziesiąt pięć spółek — dochodzi powód praktyczny. Ranking żyje własnym życiem znacznie dłużej niż ustalenia, które go zrodziły, i dłużej niż stan stron, na których go policzono. Publikujemy pełne dane, bo schowanie ich byłoby gorsze, i prosimy, żeby nie robić z nich tabeli ligowej.

Kogo nazywamy z imienia

Anonimowość w tych raportach i tak jest fikcją — dane są opublikowane wiersz po wierszu, więc każdy może sprawdzić, kto jest kim. Reguła nie dotyczy więc ukrywania, tylko tego, co wysuwamy do prozy.

Jak sprawdzamy hipotezę, zanim ją ogłosimy

Kiedy z danych wyłania się prawidłowość — na przykład że serwisy od jednego wykonawcy są do siebie podobne — sama zgodność nic nie znaczy. Większości badanych podmiotów brakuje tego samego, więc dowolne cztery wybrane losowo też będą się zgadzać na większości pozycji. Znaczy dopiero zgodność większa od przypadku.

Liczymy to tak: dla danej grupy sprawdzamy, na ilu pozycjach checklisty wszyscy jej członkowie odpowiadają tak samo, a potem powtarzamy ten rachunek dla 20 000 losowych grup tej samej wielkości, dobranych z tej samej próby. Publikujemy obserwację, wartość oczekiwaną z losowań i odsetek losowań co najmniej tak dobrych. Ziarno losowania jest ustalone, więc ta sama liczba wychodzi przy każdym przebiegu.

Podajemy też, ile grup w ogóle testowaliśmy. Przy pięciu testach jeden wynik na poziomie „jedno losowanie na sześćdziesiąt" zdarza się przypadkiem mniej więcej raz na dwanaście takich badań — i to jest powód, dla którego taki wynik zapisujemy jako hipotezę na następny pomiar, a nie ogłaszamy jako ustalenie.

Audyt nazwy, którą pytamy o encję

Pozycje o encji w Wikidacie i o artykuł w Wikipedii pytają o nazwę odczytaną ze strony: z encji Organization, a gdy jej nie ma — z pierwszego członu <title>. Kiedy strona nazywa się „Strona główna" albo „Home", pytanie idzie o coś innego niż jej właściciel.

Taka nazwa może dać dwie złe odpowiedzi i nigdy trzeciej: fałszywy brak encji albo encję cudzą. Nie może wymyślić właściwej. Każda opublikowana liczba „N nie ma encji" jest więc górnym ograniczeniem, a nie pomiarem — i tak jest teraz nazwana we wszystkich raportach: „brak encji pod nazwą ze strony".

Skalę tego zmierzyliśmy dla czterech przebiegów, które wtedy istniały, pytając ponownie o każdy zapisany brak, nazwą z rejestru albo katalogu branżowego. Wyniki i sprostowania stoją przy liczbach, których dotyczą, a wiersze, w których pytaliśmy o cudzą nazwę, mają w opublikowanych danych pole entityNameNotTheOwners. Pełny opis: czwarta edycja.

Piąta edycja tego audytu nie przeszła. Jej opublikowany zbiór niesie werdykt pozycji wikidata-entity dla każdego z 76 zmierzonych hoteli, więc policzyć z niego odsetek „N nie ma encji" da się technicznie — ale ta liczba nie ma sprostowania, jakie mają cztery wcześniejsze przebiegi: nikt nie sprawdził ponownie, ile z zapisanych braków to w istocie pytanie o cudzą nazwę, a nie nieobecność encji. Dopóki audyt nie obejmie piątej edycji, każdy taki rachunek liczy górne ograniczenie bez poprawki, nie zmierzoną wartość.

Co sprawdzamy przed każdą publikacją

Żadna liczba na tych stronach nie jest wpisana z palca. Przed każdym wdrożeniem skrypt wylicza wszystkie ponownie z surowych przebiegów i porównuje z tym, co stoi na stronie — w obie strony. Liczba, której dane nie dają, zatrzymuje publikację; ustalenie, które jest w rejestrze, a zniknęło z prozy, też. Bloki generowane (tabele porównawcze, listy nazw, pas wydań na landingach) są trzymane znak w znak wobec swojego generatora.

Sprawdzane są też daty — widoczna, ta w danych strukturalnych i ta w mapie strony muszą się zgadzać — oraz to, czy opublikowany zbiór danych jest dokładnie tym, co generator daje z przebiegu.

Sprostowania

Jeśli mierzymy Cię błędnie, napisz. Poprawiamy i odnotowujemy w historii zmian, z datą — także wtedy, gdy błąd jest nasz i wychodzi po publikacji. Sprostowanie stoi przy liczbie, której dotyczy, a nie tylko w historii zmian: pz@xfaang.com.

Ostatnia aktualizacja:

Raporty według tej metodologii

Wróć na stronę główną Visibility by Xfaang