Эта статья в основном относится к курсу глубокого обучения Ву Энда и выбранному курсу обработки естественного языка Национальной высшей экономики.
Обзор Word2vec
В предыдущей статье я описал, как использовать one-hot для представления одного слова и модель BoW для представления предложения. Одна из больших проблем заключается в том, что модель BoW не может представлять семантику.
Например, рассмотрим следующие два предложения:
- кот лежит на табуретке на солнышке
- собака лежит рядом с табуреткой и греется на солнышке
Если используется модель BoW, то поскольку猫
и狗
два совершенно разных слова, так что вы получите два совершенно разных словавекторное представление, то есть без понимания семантики предложения. Итак, как решить эту проблему?
В настоящее время можно использовать модель Word2vec. Используя неконтролируемое обучение на большом корпусе, модель может «понимать»猫
и狗
оба动物
,ПотомПредставление семантического вектора предложения может быть получено тем же или подобным образом, что и one-hot -> BoW в предыдущем разделе (усреднение вместо суммирования).
Роль модели
Модель имеет два основных направления:
- Представлять похожие слова: Подобные слова могут быть представлены похожими векторами;
Например, кошки и собаки (животные); пион, жасмин, розы (все цветы) и т. д.
- аналогия слов
Вот очень популярный пример:
Мужчина -> женщина похожа на короля -> ?
На данный момент модель можно получить? Возможное слово для позиции - КОРОЛЕВА.
На самом деле пока модель имеет много недостатков в решении этой проблемы.
Как обучить модель?
В этой статье в основном описываются два метода, а именно CBOW и skip-gram.
Также существуют такие методы, как GloVe и PPMI+SVD.
CBOW
В качестве примера возьмем следующий корпус:
- Мы попрощались с улыбкой, но все знали, что до прощания еще далеко.
- Обыкновенная дорога с твердым покрытием: ходить удобно, но цветы не растут.
Если приведенное выше предложение используется для обучения модели CBOW, модель сначала будет использовать однократный способ представления всех слов, а затем использовать существующий корпус для построения «контролируемой» модели обучения.
вскоре我们
В то время как входная модель обучается, последующие слова в предложении笑着
,再见
Эквивалентные слова вводятся в модель как положительные примеры, а слой softmax используется для вывода результатов.
который
我们
может следовать笑着
,再见
Ждать;
Вы можете видеть, что если предложение очень длинное, модель может我们
и遥遥无期
Все учтено, так что на этот раз модель CBOW другая.окнопеременная для представленияИспользуйте только слова окна до и после слова для обучения.
skip-gram
Одно из самых больших различий между моделью пропуска граммов и моделью CBOW заключается в том, чтоКогда модель пропуска грамм генерирует обучающие данные «контролируемого обучения», она не использует все слова в этом окне в качестве положительных образцов, а случайным образом выбирает разные слова в этом окне в качестве положительных образцов..
Или возьмите приведенный выше корпус в качестве примера:
если правильно心知肚明
Это слово пропущено, а размер окна равен 3. В это время могут быть три случайно сгенерированные положительные выборки:
-
心知肚明
->我们
-
心知肚明
->再见
-
心知肚明
->但
hierarchical softmax classifier
Будь то модель CBOW или модель skip-gram, поскольку softmax используется в качестве выходного слоя для прогнозирования вероятности последующих слов слова, выходное значение этого softmax очень велико (равно значению всего корпуса). ).размер словарного запаса), а скорость работы модели с использованием softmax будеточень медленно.
Можно использовать в это времяhierarchical softmax classifier
Классификатор.
hierarchical softmax classifier
Основной принцип аналогичен бинарному дереву, для тех, кто хочет узнать больше о нем, пожалуйста, обратитесь кстановление человеком любовь/иерархия А…
отрицательная выборка
Как упоминалось выше, задачи обучения с учителем, генерируемые моделью CBOW и моделью sip-грамм, являются обеими задачами.Только положительные образцы, никаких отрицательных образцов, что может привести к плохим результатам контролируемого обучения.Отрицательная выборка призвана решить эту проблему.
Как выполнить отрицательную выборку?
нужно всего лишьВозьмите любые слова, которые не находятся в диапазоне окна из словаря, как отрицательные образцы.
Все еще используя приведенный выше пример:
-
心知肚明
->我们
-> 1 (положительный образец) -
心知肚明
->荣荣
-> 0 (отрицательный образец) -
心知肚明
->猫
-> 0 (отрицательный образец) -
心知肚明
->人生
-> 0 (отрицательный образец)
Нет проблем, даже если сгенерированные отрицательные образцы «неверны» (очень маленькая вероятность не окажет большого влияния).
Наконец, сгенерированные обучающие данные могут быть введены в модель для обучения.
doc2vec
doc2vec и параграф2vec — это просто два разных имени модели. Эта модель в основном используется для оценкисходство документов.
Способ обучения этой модели похож на word2vec, но не идентичен ему, поэтому я не буду его представлять в этой статье.
Вот вопрос в следующем:
Можно ли использовать обученную модель word2vec для представления каждого слова в предложении и, наконец, суммировать его, чтобы получить окончательное векторное представление документа?
Суммировать
В этой статье в основном объясняется роль модели word2vec и два основных способа обучения модели: CBOW и skip-gram.
Однако в реальном процессе разработки не обязательно писать модель самостоятельно, на данный момент есть хорошие библиотеки с открытым исходным кодом, реализующие эту функцию:
Справочный адрес
woohoo.course RA.org/learn/NLP - это...