Эмбеддинги GloVe и FastText
Глобальная статистика совместной встречаемости, субсловный FastText, загрузка предварительно обученных эмбеддингов
«Эмбеддинги GloVe и FastText» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
За пределами Word2Vec
Word2Vec обучается на локальных контекстных окнах. Два других влиятельных метода построения векторных представлений используют иные подходы: GloVe применяет глобальную статистику, а FastText — фрагменты символов.
Что такое GloVe
GloVe (глобальные векторы) обучается на глобальной матрице совместной встречаемости: она показывает, как часто каждая пара слов встречается вместе во всём корпусе, а не только в локальных окнах.
Почему полезна глобальная статистика
Разлагая полную матрицу совместной встречаемости, GloVe улавливает связи и соотношения между словами во всём корпусе и часто создаёт высококачественные векторы, которые не уступают Word2Vec или превосходят его в задачах на аналогии.
Загрузка предварительно обученных векторов
Для обучения векторных представлений нужны огромные корпуса, поэтому обычно используют предварительно обученные представления. gensim.downloader загружает популярные модели, например векторы GloVe, одной строкой.
import gensim.downloader as api
glove = api.load("glove-wiki-gigaword-100")
print(glove["computer"].shape) # (100,)Использование предварительно обученного GloVe
После загрузки векторы GloVe поддерживают те же операции, что и Word2Vec: вычисление сходства и аналогий.
import gensim.downloader as api
glove = api.load("glove-wiki-gigaword-100")
print(glove.most_similar("king", topn=3))
print(glove.most_similar(positive=["king", "woman"], negative=["man"], topn=1))Проблема слов вне словаря
Word2Vec и GloVe назначают векторы только словам, встречавшимся в обучающих данных. У нового или написанного с ошибкой слова (вне словаря, OOV) нет вектора, что является серьёзным ограничением при работе с неструктурированным текстом.
Что такое FastText
FastText решает проблему OOV, представляя каждое слово как набор символьных n-грамм. Например, слово «играющий» включает фрагменты «игр», «гра» и «щий», поэтому оно имеет общую структуру с родственными словами.
Как помогают символьные n-граммы
Поскольку вектор слова строится из его составных частей, FastText может создать вектор для невстречавшегося слова на основе его n-грамм. Он также улавливает морфологию, что помогает работать с приставками, суффиксами и редкими словами.
Обучение FastText
Библиотека «Дженсим» предоставляет FastText с интерфейсом, похожим на Word2Vec. Параметры min_n и max_n задают диапазон символьных n-грамм.
from gensim.models import FastText
model = FastText(
sentences,
vector_size=100,
window=5,
min_count=1,
min_n=3,
max_n=6,
)FastText обрабатывает OOV
Даже слово, никогда не встречавшееся в обучающих данных, получает вектор, собранный из его символьных n-грамм. Это главное преимущество FastText перед Word2Vec и GloVe.
from gensim.models import FastText
model = FastText(sentences, vector_size=100, min_n=3, max_n=6, min_count=1)
# works even if "catlike" was never in training
vec = model.wv["catlike"]Выбор векторного представления
Используйте GloVe или Word2Vec для чистого текста с фиксированным словарём. Выбирайте FastText для языков с богатой морфологией, зашумлённого текста или случаев, когда слова OOV встречаются часто. Предварительно обученные векторы во всех случаях служат отличной отправной точкой.
Быстрая проверка
Проверьте свои знания о векторных представлениях.
Итоги
Итоги: GloVe обучается на глобальной статистике совместной встречаемости, а FastText использует символьные n-граммы для обработки слов вне словаря и морфологии. Загружайте предварительно обученные векторы с помощью gensim.downloader.load. Оба метода поддерживают вычисление сходства и аналогий. Выбирайте FastText для зашумлённого текста или языков с богатой морфологией, а GloVe/Word2Vec — для чистых текстов с фиксированным словарём.
Часто задаваемые вопросы
Урок «Эмбеддинги GloVe и FastText» бесплатный?
Да — полный текст урока «Эмбеддинги GloVe и FastText» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «Эмбеддинги GloVe и FastText»?
Глобальная статистика совместной встречаемости, субсловный FastText, загрузка предварительно обученных эмбеддингов Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Эмбеддинги GloVe и FastText»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Word2Vec: Skip-gram и CBOW
- Эмбеддинги GloVe и FastText
- Классификация текста с BERT
- Семантическое сходство и эмбеддинги предложений