Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
40_алгоритмов_Python.pdf
Скачиваний:
9
Добавлен:
07.04.2024
Размер:
13.02 Mб
Скачать

Эмбеддинги слов

269

7. Теперь спрогнозируем результаты контрольного набора:

y_pred = classifier.predict(X_test)

8. Матрица ошибок выглядит следующим образом (рис. 9.3).

Рис. 9.3

Исходя из матрицы ошибок, мы можем оценить ошибочность классификации.

ЭМБЕДДИНГИ СЛОВ

В предыдущем разделе мы узнали, как выполняется NLP с помощью мешка слов в качестве абстракции для входных текстовых данных. Одним из глав­ ных достижений в NLP является возможность создания значимого числово­ го представления слов в виде плотных векторов. Эта техника называется эмбеддингами слов (word embedding). Йошуа Бенжио впервые ввел этот термин в своей статье «A Neural Probabilistic Language Model» («Нейронновероятностная языковая модель»). Любое слово в задаче NLP можно рас­ сматривать как категориальный объект. Сопоставление каждого слова со списком чисел, представленных в виде вектора, называется эмбеддингом слов.

Иначе говоря, это методология преобразования слов в действительные чис­ ла. Особенность эмбеддинга состоит в том, что он использует плотный вектор, в отличие от традиционных подходов, применяющих разреженные векторы.

Существует две проблемы‚ связанные с использованием BoW для NLP:

zz Потеря семантического контекста. При токенизации данных их контекст теряется. Слово может иметь разные значения в зависимости от того, где именно оно используется в предложении. Это становится еще более важным при интерпретации сложных особенностей человеческой речи, например юмора или сарказма.

270

Глава 9. Алгоритмы обработки естественного языка

zz Разреженный входной вектор. При токенизации каждое слово становится признаком (как мы убедились на предыдущем примере). Это приводит к раз­ реженным структурам данных.

Окружение слова

Ключевое понимание того, как представлять для алгоритма текстовые данные (в частности, отдельные слова или лексемы), приходит из лингвистики. В эм­ беддингах мы обращаем внимание на окружение (neighbourhood) каждого слова. Оно помогает определить значение и важность слова. Окружение слова — это набор других слов, находящихся рядом с данным и задающих его контекст.

Обратите внимание, что в BoW слово теряет свой контекст, так как он зависит от окружения, в котором слово находится.

Свойства эмбеддингов слов

Хорошие эмбеддинги слов обладают следующими четырьмя свойствами.

zz Они плотные. По своей сути эмбеддинги являются факторными моделями. Таким образом, каждый компонент вектора эмбеддинга представляет собой величину некоторого (скрытого) признака. Обычно мы не знаем, что пред­ ставляет собой этот признак; однако у нас будет очень мало (если вообще будут) нулей, которые могут стать причиной разреженного ввода.

zz Имеют низкую размерность. Эмбеддинги имеют предопределенную размер­ ность (выбранную в качестве гиперпараметра). В предыдущем примере ис­ пользования BoW нам потребовалось |V| входов для каждого слова, так что общий размер входных данных составил | V | * n, где n — количество слов, которые мы используем в качестве входных данных. В эмбеддингах слов размер ввода будет d * n, где d обычно составляет от 50 до 300. Учитывая тот факт, что объем больших текстовых массивов часто намного превышает 300 слов, мы значительно экономим на размере входных данных. Это, как мы видели, может привести к повышению точности при меньшем общем количестве экземпляров данных.

zz Содержат семантику области. Это свойство, вероятно, самое неожиданное, но при этом и самое полезное. При правильном обучении эмбеддинги полу­ чают информацию о содержании своей предметной области.

zzИх легко обобщать. Эмбеддинги способны улавливать обобщенные абстракт­ ные шаблоны. Например, мы можем обучать эмбеддинги на кошках, оленях,