Семантичните вграждания, като Word2Vec и GloVe, всъщност са първа стъпка към моделиране на език - създаване на модели, които по някакъв начин разбират (или представят) природата на езика.
Основната идея зад моделирането на език е обучението им върху немаркирани набори от данни по неуправляем начин. Това е важно, защото разполагаме с огромни количества немаркиран текст, докато количеството маркиран текст винаги ще бъде ограничено от усилията, които можем да вложим в маркирането. Най-често можем да изградим езикови модели, които могат да предсказват липсващи думи в текста, защото е лесно да скрием случайна дума в текста и да я използваме като тренировъчен пример.
В предишните примери използвахме предварително обучени семантични вграждания, но е интересно да видим как тези вграждания могат да бъдат обучени. Съществуват няколко възможни идеи, които могат да се използват:
- Моделиране на език с N-грам, когато предсказваме токен, като разглеждаме N предишни токена (N-грам).
-
Непрекъсната торба с думи (CBoW), когато предсказваме средния токен
$W_0$ в последователност от токени$W_{-N}$ , ...,$W_N$ . -
Skip-gram, където предсказваме набор от съседни токени {$W_{-N},\dots, W_{-1}, W_1,\dots, W_N$} от средния токен
$W_0$ .
Изображение от тази статия
Продължете обучението си с помощта на следните тетрадки:
В предишния урок видяхме, че вгражданията на думи работят като магия! Сега знаем, че обучението на вграждания на думи не е много сложна задача и трябва да можем да обучим свои собствени вграждания за текст, специфичен за дадена област, ако е необходимо.
- Официален PyTorch урок за моделиране на език.
- Официален TensorFlow урок за обучение на Word2Vec модел.
- Използването на gensim за обучение на най-често използваните вграждания с няколко реда код е описано в тази документация.
В лабораторията ви предизвикваме да модифицирате кода от този урок, за да обучите Skip-Gram модел вместо CBoW. Прочетете подробностите
