Вложения: Получение вложений

В этом разделе основное внимание уделяется двум распространённым методам встраивания:

  • Уменьшение размерности
  • Извлечение вложения из более крупной модели нейронной сети

Методы уменьшения размерности

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

Например, анализ главных компонентов (PCA) использовался для создания вложений слов. Учитывая набор экземпляров, таких как векторы «мешок слов» , PCA пытается найти сильно коррелированные измерения, которые можно свернуть в одно измерение.

Обучение встраиванию как части нейронной сети

Вы можете создать встраивание во время обучения нейронной сети для вашей целевой задачи. Этот подход позволяет получить встраивание, хорошо настроенное для вашей конкретной системы, но может занять больше времени, чем обучение встраивания отдельно.

В общем, вы можете создать в своей нейронной сети скрытый слой размера d , который обозначается как слой внедрения , где d представляет собой как количество узлов в скрытом слое, так и количество измерений в пространстве внедрения. Этот слой внедрения можно комбинировать с любыми другими объектами и скрытыми слоями. Как и в любой глубокой нейронной сети, параметры будут оптимизированы во время обучения, чтобы минимизировать потери на узлах выходного слоя сети.

Возвращаясь к нашему примеру с рекомендациями по питанию , наша цель — спрогнозировать новые блюда, которые понравятся пользователю, на основе его текущих любимых блюд. Во-первых, мы можем собрать дополнительные данные о пяти самых любимых продуктах наших пользователей. Затем мы можем смоделировать эту задачу как задачу обучения с учителем. Мы установили четыре из этих пяти самых популярных продуктов в качестве данных о характеристиках, а затем случайным образом выделили пятый продукт в качестве положительного ярлыка, который наша модель стремится предсказать, оптимизируя прогнозы модели с использованием softmax потерь.

Во время обучения модель нейронной сети узнает оптимальные веса для узлов в первом скрытом слое, который служит слоем внедрения. Например, если модель содержит три узла в первом скрытом слое, она может определить, что тремя наиболее важными аспектами продуктов питания являются сэндвичность, десертность и ликвидность. На рис. 12 показано входное значение one-hot, закодированное для «хот-дога», преобразованное в трехмерный вектор.

Рисунок 12. Нейронная сеть для кодирования хот-дога. Первый слой представляет собой     входной слой с 5 узлами, каждый из которых помечен значком еды     представляет (борщ, хот-дог, салат, ... и шаурму). Эти узлы имеют     значения [0, 1, 0, ..., 0] соответственно, представляющие один горячий     кодировка «хот-дог». Входной слой подключен к 3-узловому внедрению     слой, узлы которого имеют значения 2,98, -0,75 и 0 соответственно.     слой внедрения соединяется со скрытым слоем из 5 узлов, который затем     подключен к 5-узловому выходному слою.
Рисунок 12. Кодирование hot dog one-hot, предоставленное в качестве входных данных для глубокой нейронной сети. Уровень внедрения преобразует горячее кодирование в трехмерный вектор внедрения [2.98, -0.75, 0] .

В ходе обучения веса слоя внедрения будут оптимизированы так, чтобы векторы внедрения для подобных примеров были ближе друг к другу. Отдельные измерения слоя внедрения (то, что представляет каждый узел слоя внедрения) редко бывают столь же понятными, как «десертность» или «ликвидность». Иногда можно догадаться, что они «означают», но это не всегда так.

Вложения обычно зависят от задачи и будут отличаться друг от друга, когда задача отличается. Например, вложения, созданные с помощью модели классификации вегетарианцев и невегетарианцев, могут иметь два измерения: содержание мяса и содержание молочных продуктов. Между тем, вложения, генерируемые классификатором завтрака и ужина для американской кухни, могут иметь несколько разные измерения: содержание калорий, содержание зерна и содержание мяса. «Хлопья» и «сэндвич с яйцом и беконом» могут находиться близко друг к другу в пространстве внедрения классификатора завтрака и ужина, но далеко друг от друга в пространстве внедрения классификатора вегетарианцев и невегетарианцев.

Обучение встраиванию слов

В предыдущем разделе вы исследовали визуализацию семантических отношений в пространстве встраивания word2vec .

Word2vec — один из многих алгоритмов, используемых для обучения встраиванию слов. Он основан на гипотезе распределения для сопоставления семантически схожих слов с геометрически близкими векторами встраивания. Гипотеза распределения утверждает, что слова, которые часто имеют одни и те же соседние слова, имеют тенденцию быть семантически похожими. И «собака», и «кошка» часто оказываются близкими к слову «ветеринар», и этот факт отражает их смысловое сходство. Как сказал лингвист Джон Ферт в 1957 году: «Вы узнаете слово по тому, в какой компании оно находится».

В следующем видео объясняется другой метод создания встраивания слов как часть процесса обучения нейронной сети с использованием более простой модели:

Статические и контекстные встраивания

Одним из ограничений встраивания слов, подобных описанному в видео выше, является то, что они статичны . Каждое слово представлено одной точкой в ​​векторном пространстве, хотя оно может иметь множество разных значений в зависимости от того, как оно используется в предложении. В последнем упражнении вы обнаружили сложность сопоставления семантических сходств слова «оранжевый», которое может обозначать либо цвет, либо тип фрукта.

Контекстные встраивания были разработаны для устранения этих недостатков. Контекстные встраивания допускают несколько представлений одного и того же слова, каждое из которых включает информацию о контексте, в котором это слово используется. При контекстуальном внедрении слово «оранжевый» может иметь два отдельных представления: одно отражает «цветное» использование этого слова, как в таких предложениях, как «У моего любимого свитера оранжевые полосы», а другое отражает «фруктовое» использование слова. например, в таких предложениях, как «Апельсин был сорван с дерева до того, как он полностью созрел».