NLP: словные эмбеддинги
Word2vec и семейство - проверка базовой интуиции представлений: откуда в векторах берётся смысл. Плюс два практических вопроса: почему для русского fastText и чем плохи статические эмбеддинги.
// Дистрибутивная гипотеза в одну строку: смысл слова - его контексты.
Word2vec: смысл из соседей
Word2vec учит вектора, решая прокси-задачу: skip-gram предсказывает соседей по слову, CBOW (continuous bag of words) - слово по соседям. Слова из похожих контекстов получают близкие вектора.
Полный softmax по словарю дорог - негативное сэмплирование заменяет его бинарной задачей «настоящая ли пара слово-контекст», и обучение становится дешёвым.
// Знаменитая арифметика king − man + woman ≈ queen - свидетельство линейной структуры отношений в выученном пространстве. GloVe достигает похожего факторизацией матрицы совстречаемости - глобальная статистика против локальных окон; на практике они сопоставимы.
- skip-gram / CBOW
- предсказать соседей по слову / слово по соседям
- negative sampling
- бинарная задача вместо softmax по словарю
fastText: морфология в векторах
fastText представляет слово суммой векторов его символьных n-грамм. Следствия: словоформы одного слова автоматически близки, опечатки не катастрофа, и вектор строится даже для слова, которого не было в корпусе.
Для русского с его морфологией это решающий аргумент: word2vec видит «кот» и «котом» как независимые слова, fastText - как родню.
// Стандарт близости эмбеддингов - косинус: сравнивать евклидовым расстоянием без нормировки - типовая мелкая ошибка с крупными последствиями.
- fastText
- слово = сумма символьных n-грамм; морфология и OOV (out of vocabulary)
Пределы статических векторов
Статический эмбеддинг - один вектор на слово навсегда: дверной «ключ» и родниковый «ключ» совпадают. Многозначность статике недоступна это чинят контекстные модели (ELMo, BERT): вектор слова зависит от предложения.
Вектор текста из словных - усреднение или tf-idf-взвешивание - простой и сильный бейзлайн похожести коротких текстов.
// Чужие эмбеддинги на специфичном домене (медицина, чаты) без дообучения - лотерея: контексты твоего корпуса не те, что в википедии.
- статический / контекстный
- один вектор навсегда / вектор зависит от предложения
Как отвечать: «Чем fastText лучше word2vec для русского?»
Word2vec выучивает вектор на каждое слово целиком: «кот», «кота» и «котом» для него независимые сущности, а слова не из корпуса вектора не имеют вовсе. fastText собирает слово из символьных n-грамм - словоформы автоматически близки, потому что делят куски, опечатка не рушит вектор, и для незнакомого слова вектор строится из его фрагментов. Для русского с богатой морфологией это прямой прирост качества без единой строчки морфоанализа. Ограничение общее у обоих: вектора статические, омонимы не разделяются - за этим уже к контекстным моделям.
Механика различия, три конкретных следствия для русского и честная общая граница - полный ответ.
На чём валят
- −Ждать от word2vec разных векторов для омонимов - статика смыслы не разделяет.
- −Евклидово расстояние без нормировки - стандарт близости здесь косинус.
- −OOV у word2vec/GloVe - для морфологически богатых языков fastText.
- −Чужие эмбеддинги на специфичном домене без дообучения - контексты не те.
Проверьте себя
Пять вопросов из банка по этой подтеме. Всего их 8, остальные разбираются в тренажёре.
- Чем skip-gram отличается от CBOW в word2vec?A)Модель skip-gram по конструкции способна работать с биграммами и никакими другими окнами контекста, а на другие размеры окна контекста её расширить не получитсяB)CBOW вообще не использует контекстные слова при обученииC)Skip-gram по центру предсказывает контекст, CBOW по контексту — центр; skip-gram лучше на редких словахD)Это просто два разных названия одного и того же алгоритма
показать ответ и разбор
+C)Skip-gram по центру предсказывает контекст, CBOW по контексту — центр; skip-gram лучше на редких словах// разбор: CBOW усредняет векторы контекстных слов и предсказывает центральное — быстрее, лучше на частых словах. Skip-gram делает обратное: по центральному предсказывает каждое контекстное — медленнее, но точнее на редких словах и малых корпусах (каждое вхождение даёт больше пар). Обучение ускоряют негативным сэмплированием. Skip-gram + negative sampling — частый дефолт.
- Чем GloVe концептуально отличается от word2vec?A)Модель GloVe способна строить векторные представления для английского языкаB)GloVe вообще не даёт на выходе векторов отдельных словC)GloVe — это разновидность нейросети-трансформераD)GloVe учит векторы из глобальной матрицы совстречаемости слов (факторизация статистики), а word2vec — из локальных окон предсказанием
показать ответ и разбор
+D)GloVe учит векторы из глобальной матрицы совстречаемости слов (факторизация статистики), а word2vec — из локальных окон предсказанием// разбор: Word2vec — предсказательный метод на локальных окнах. GloVe (Global Vectors) явно строит матрицу совстречаемости слов по всему корпусу и факторизует её, оптимизируя, чтобы скалярное произведение векторов приближало логарифм частоты совстречаемости — использует глобальную статистику напрямую. На практике оба дают похожие статические эмбеддинги; выбор чаще про инженерию/данные. Оба контекст-независимые.
- Чем fastText улучшает word2vec для морфологически богатых языков и OOV?A)Строит вектор слова из его символьных n-грамм — даёт векторы даже незнакомым/редким словоформамB)Он игнорирует внутреннюю морфологическую структуру слова и работает с целыми токенами, подобно обычному словарному эмбеддингу целых словC)Он обязательно требует параллельного двуязычного корпусаD)Он работает поверх мешка слов (BoW)
показать ответ и разбор
+A)Строит вектор слова из его символьных n-грамм — даёт векторы даже незнакомым/редким словоформам// разбор: word2vec/GloVe дают вектор только словам из словаря — редкие формы и OOV выпадают, а для богатой морфологии (русский: «дом/дома/домами») формы учатся раздельно. fastText представляет слово суммой векторов его символьных n-грамм (subword): вектор для незнакомого слова собирается из кусочков, а родственные формы делят n-граммы и близки. Отсюда устойчивость к OOV и морфологии.
- «король − мужчина + женщина ≈ королева» демонстрирует, что...A)Обученные эмбеддинги хранят слова в алфавитном порядке их индексов в общем словаре моделиB)в пространстве эмбеддингов семантические отношения кодируются устойчивыми направлениями (сдвигами векторов)C)Word2vec умеет решать математические уравненияD)Векторы двух слов ортогональны
показать ответ и разбор
+B)в пространстве эмбеддингов семантические отношения кодируются устойчивыми направлениями (сдвигами векторов)// разбор: Аналогия работает, потому что регулярные отношения (пол, множественное число, столица-страна) проявляются как примерно одинаковые векторные сдвиги. «king−man» ловит «королевскость без мужского», прибавление «woman» даёт «queen». Следствие дистрибутивного обучения. Оговорка: аналогии не идеальны, чувствительны к частотам/датасету, а метод исключает исходные слова из ответа.
- Фундаментальное ограничение статических эмбеддингов (word2vec/GloVe), которое сняли контекстные модели?A)Обученные статические эмбеддинги физически не помещаются в оперативную память при практическом использованииB)Они работают для английского языкаC)Один вектор на слово независимо от контекста: полисемия («ключ», «bank») схлопнута в одну точкуD)Статические эмбеддинги не могут быть плотными по своей природе
показать ответ и разбор
+C)Один вектор на слово независимо от контекста: полисемия («ключ», «bank») схлопнута в одну точку// разбор: Статический эмбеддинг присваивает слову ОДИН вектор навсегда, усредняя все смыслы: «ключ» (гаечный/скрипичный/от двери), «bank» (банк/берег) сливаются в точку — контекст не различить. Контекстные модели (ELMo, BERT и далее) выдают вектор слова В ЗАВИСИМОСТИ от предложения, разводя значения полисемичных слов. Ключевой шаг от статических к контекстным представлениям.
дальше
Теорию прочитали. Навык ставится повторением
В Сеньорчике эта подтема идёт в ежедневных сессиях: движок возвращает её, пока ответы не станут уверенными, и ведёт прогресс отдельно по каждой подтеме. Теория внутри тоже бесплатна, лимит только на количество вопросов в день.