Вопрос или проблема
Я использую два разных источника информации как входные данные для своей нейронной модели. Модель принимает слово в качестве ввода и производит бинарный [1/0] выход. Я представляю каждое слово, используя его векторное представление (вектор размерностью 1024) и Лексикон валентности, возбуждения и доминирования (вектор размерностью 3). Я объединяю их и получаю вектор размерностью 1027 для каждого слова.
Мои вопросы:
-
Должен ли я нормализовать/предобрабатывать эти векторы перед их объединением? Значения моего лексикона находятся в пределах [0,1], а мои векторные представления — это векторы ELMO, которые создаются в зависимости от контекста. Поэтому я не уверен по поводу диапазона векторов.
-
Если да, то если мне нужно предобработать один из них перед объединением, что мне делать?
-
Есть ли какой-либо хороший ресурс, который может ответить на мой вопрос?
Итак, есть ряд вопросов, на которые необходимо ответить. Прежде всего, я должен сказать, что нет необходимости нормализовать набор данных перед его подачей в сеть, так как векторные представления всегда нормализованы, если архитектура модели набора данных правильно определена.
Непосредственно перед объединением значений безусловно необходимо привести значения к фиксированному диапазону с соответствующими размерами.
Я считаю, что чтобы быть совершенно уверенным в представлениях векторов, вам необходимо обратиться к глубоким контекстуальным представлениям слов и оригинальным статьям GloVe.
Вы должны иметь все свои характеристики в сопоставимом диапазоне. Вы можете оставить значения лексикона в диапазоне [0, 1], но нормализуйте векторные представления, чтобы они имели примерно одинаковый диапазон (например, используя MinMaxScaler).
Ответ или решение
Объединение различных признаков в нейронной сети: практические рекомендации
При использовании множественных источников данных для построения нейронной модели, важно правильно подготовить входные признаки. В вашем случае вы используете векторное представление слов, полученное с помощью ELMO (1024-мерный вектор), и векторы валентности, возбуждения и доминирования (3-мерный вектор). Вы объединяете эти два набора данных в 1027-мерный вектор. Давайте разберёмся с вашими вопросами более подробно.
1. Нужно ли нормализовать/предобрабатывать векторы перед объединением?
Да, рекомендуется нормализовать или предварительно обрабатывать векторы признаков перед объединением. Это связано с тем, что значения векторов различаются по диапазону и значимости. Ваши векторы валентности, возбуждения и доминирования находятся в диапазоне [0, 1], в то время как диапазон векторов ELMO может варьироваться в зависимости от контекста. Приведение всех признаков к общему стандарту позволяет избежать искажений при обучении модели.
2. Как именно следует обрабатывать один из наборов данных перед объединением?
Для того чтобы ваши признаки были сопоставимы, вы можете использовать методы нормализации, такие как:
-
MinMaxScaler: Он приведет ваши значения векторов ELMO к диапазону [0, 1]. Это поможет упростить объединение с векторами валентности, возбуждения и доминирования, которые уже находятся в аналогичном диапазоне.
-
Z-оранжевая нормализация (StandardScaler): Этот метод приведет ваши данные к нормальному распределению. Однако стоит учесть, что это может не всегда быть оптимальным, если значение сжатой совокупности значений векторов ELMO отличается от диапазона и распределения значений ваших лексиконов.
Также вы можете использовать нормализацию к единичной длине (L2 нормализация), особенно если важна не только величина векторов, но и их направление.
3. Ресурсы для дальнейшего изучения
Для более глубокого понимания процесса и теоретической основы вы можете обратиться к следующим ресурсам:
-
Статья "Deep Contextualized Word Representations", доступная по этой ссылке, которая описывает эмбеддинги ELMO и их свойства.
-
Исходная работа по GloVe, представленная здесь, даст представление о различных методах создания векторных представлений слов.
Заключение
Таким образом, нормализация и предобработка векторов перед объединением имеют ключевое значение для успеха вашего нейронного моделирования. Применение единых стандартов для всех входных данных поможет вашему алгоритму лучше обучаться и достигать высоких результатов. Используйте предложенные методы и исследуйте рекомендуемые источники для углубленного анализа.