Использование вложений для неязыковых понятий? - PullRequest
0 голосов
/ 13 мая 2019

Имеет ли смысл использовать встраиваемые вместо больших закодированных векторов, обозначающих, скажем, автомобили и модели автомобилей?Кроме того, что вложение будет представлять концептуально?Насколько, например, Ford F-150 похож на Toyota Tacoma?

Ответы [ 2 ]

1 голос
/ 13 мая 2019

TLDR: Да, это имеет смысл. Нет, это не то же самое, что знаменитое Word2Vec вложение.


Когда люди говорят о внедрении данных в векторное представление, они действительно имеют в виду factorization матрицы проектирования, которую они явно / неявно строят.

Взять Word2Vec в качестве примера. Матрица дизайна представляет собой искусственно созданную проблему предсказания, где слова в окружающем контексте используются для предсказания центрального слова (SkipGram). Это эквивалентно факторизации матрицы контекста с перекрестными вкладками и центральных слов, заполненных позитивной точечной взаимной информацией. [1]

Теперь, допустим, мы хотели бы ответить на вопрос: Насколько Ford F-150 похож на Toyota Tacoma?

Во-первых, мы должны решить, позволяют ли наши данные использовать контролируемые методы. Если да, то есть несколько алгоритмов, таких как Feed-forward neural network и factorization machine, которые мы можем использовать. Вы можете использовать эти алгоритмы для определения сходства функций в одном месте с помощью меток прогноза, например, нажмите на страницу с подробностями на сайте проката автомобилей. Тогда модели с похожими векторами означают, что люди нажимают на свои страницы с описанием в одном сеансе. То есть поведение ответа моделирует сходство признаков.

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

Если вы хотите сэкономить немного умственных способностей, и ваши функции оказываются всеми факторами, вы можете применять существующие алгоритмы в пакетах, такие как LDA, NMF, SVD, с функцией потерь для двоичной классификации, такие как hinge loss. Большинство языков программирования предоставляют своим библиотекам API-интерфейсы, состоящие из нескольких строк кода.

Все методы выше matrix factorization. Существуют также более глубокие и сложные методы tensor factorization. Но я позволю вам исследовать их самостоятельно.

Ссылка

  1. http://papers.nips.cc/paper/5477-neural-word-embedding-as-implicit-matrix-factorization.pdf
1 голос
/ 13 мая 2019

Да, это имеет смысл.

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

Как видите, вложение - это просто вектор, который лучше описывает ваш ввод, чем сам ввод.В этом контексте мы обычно ссылаемся на вложения со словом features .


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

Car A: [0 1]
Car B: [1 0]

Первый элемент встраивания - создатель.0 обозначает Тойоту, а 1 обозначает Ferrari.Второй элемент - модель.0 обозначает F-150, а 1 обозначает 458 Italia.Как вы можете вычислить сходство между этими двумя автомобилями?

Сходство косинусов По сути, вы вычисляете косинус угла между этими двумя векторами в пространстве вложения.Здесь вложения являются 2-мерными, поэтому мы находимся в плоскости.Более того, два вложения являются ортогональными, поэтому угол между ними равен 90 ° и косинусу 0. Таким образом, их сходство равно 0: они совсем не похожи!

Предположим, у вас есть:

Car A: [1 0]
Car B: [1 1]

В этом случае производитель тот же.Хотя модель отличается, вы можете ожидать, что эти две машины будут более похожими, чем две предыдущие.Если вы вычислите косинус угла между их вложениями, вы получите около 0,707, что больше 0. Эти две машины действительно больше похожи.

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

...