Słowa jako liczby

Wstęp do działu

Tu zaczyna się historia, która doprowadzi do ChatGPT. I zaczyna się od ograniczenia, o którym w Części III prawie nie mówiliśmy: sztuczna sieć neuronowa pracuje tylko na liczbach. Nie rozumie bezpośrednio tekstu. Jeśli chcesz, żeby sieć streszczała artykuł, odpowiadała na pytanie albo tłumaczyła zdanie, musisz najpierw zamienić język na liczby — i to jak to zrobisz decyduje o wszystkim, co model będzie potem potrafił.

Najprostszy pomysł — pociąć tekst na słowa (tokeny), nadać każdemu indeks i zapalić jedną pozycję w gigantycznym wektorze (kodowanie z gorącą jedynką) — działa. Ale jest głupi na trzy sposoby naraz: gubi kolejność, rozdyma się do dziesiątek tysięcy zer i traktuje „pies" oraz „kot" jako dokładnie tak samo różne jak „pies" i „traktor".

Rozwiązanie wzięło się z lingwistyki. John Rupert Firth mówił w latach 50.: You shall know a word by the company it keeps — poznasz słowo po towarzystwie, w jakim się znajduje. Jeśli dwa słowa pojawiają się w podobnych kontekstach, prawdopodobnie znaczą coś podobnego. Na tym stoją osadzenia słów (word embeddings): każde słowo to punkt w przestrzeni o wielu wymiarach, a odległość i kierunek między punktami niosą znaczenie. Zobaczysz, jak w 2013 roku word2vec (Mikolov, Google) nauczył się takich punktów sam, jako produktu ubocznego przewidywania brakującego słowa w oknie — oraz słynną zagadkę „król − mężczyzna + kobieta ≈ królowa". Zobaczysz też twardą granicę tej sztuczki: osadzenie word2vec jest stałe dla danego słowa, więc „zamek" w kurtce i „zamek" na wzgórzu dostają ten sam punkt. To ograniczenie zdejmie dopiero transformer (Dział 16).

Mapa pojęć działu

        SIEĆ LICZY, NIE CZYTA (14.1)
      tokenizacja → słownik → indeksy
      kodowanie z gorącą jedynką (one-hot)
      trzy problemy: kolejność · rozmiar · zero sensu
                     │
        INTUICJA CECH + FIRTH (14.2)
      ręczna tabela „człowiekowatość / puszystość / czynność"
      odległość euklidesowa między wektorami
      „poznasz słowo po towarzystwie"
                     │
              word2vec (14.3)
      okno kontekstu → sieć przewiduje brakujące słowo
      osadzenia = wagi warstwy ukrytej (produkt uboczny)
                     │
        GEOMETRIA ZNACZEŃ (14.4)
      król − mężczyzna + kobieta ≈ królowa
      granica: jedno słowo = jeden stały punkt
                     │
              → Dział 15 (model językowy, RNN)
              → Dział 16 (transformer, kontekst)

Jednostki w tym dziale

  • 14.1 Sieć pracuje tylko na liczbach: tokeny i kodowanie one-hot
  • 14.2 „Poznasz słowo po towarzystwie": hipoteza dystrybucyjna
  • 14.3 word2vec i osadzenia słów
  • 14.4 Geometria znaczeń: król − mężczyzna + kobieta — i granice