Вопрос о непрерывной сумке слов

11

У меня проблемы с пониманием этого предложения:

Первая предложенная архитектура аналогична NNLM с прямой связью, где нелинейный скрытый слой удаляется, а проекционный слой используется для всех слов (а не только для матрицы проекции); таким образом, все слова проецируются в одну и ту же позицию (их векторы усредняются).

Что такое проекционный слой против проекционной матрицы? Что значит сказать, что все слова проецируются в одну и ту же позицию? И почему это означает, что их векторы усредняются?

Предложение является первым в разделе 3.1 « Эффективной оценки представлений слов в векторном пространстве» (Миколов и др. 2013) .

user70394
источник

Ответы:

6

Рисунок 1 немного проясняет ситуацию. Все векторы слов из окна заданного размера суммируются, результат умножается на (1 / размер окна) и затем подается в выходной слой.

Матрица проекции означает целую таблицу соответствия, где каждое слово соответствует одному вещественному вектору. Проекционный слой - это эффективный процесс, который берет слово (индекс слова) и возвращает соответствующий вектор. Их можно объединить (получить входные данные размера k * n, где k - размер окна, а n - длину вектора) или, как в модели CBOW, просто сложить их все (получить входные данные размера n).

введите описание изображения здесь

Денис Тарасов
источник
Во-первых, спасибо за ваш ответ. Меня все еще немного смущает различие между матрицей проекции и слоем проекции. Они кажутся одинаковыми.
user70394
@ user70394 Да, на самом деле я нахожу терминологию несколько запутанной. По сути, любой NN-уровень - это функция, которая отображает входы на выходы. Проекционный слой делает это, используя веса из проекционной матрицы, но это не сама матрица. По одной и той же матрице можно определить много разных функций. Фактически, в случае CBOW мы, вероятно, могли бы сказать, что у нас есть проекционный слой с задержкой по времени, за которым следует слой суммирования. В модели RNNLM «проекционный слой» фактически является частью рекуррентного скрытого слоя, который комбинирует веса матрицы проекции с рекуррентными весами для вычисления выходных данных.
Денис Тарасов
1

Когда я осматривал проблемы CBOW и наткнулся на это, вот альтернативный ответ на ваш (первый) вопрос («Что такое проекционный слой и матрица ?»), Взглянув на модель NNLM (Bengio et al., 2003):

Bengio et al., 2003, Рисунок 1: Нейронная архитектура: f (i, w_ {t − 1}, ..., w_ {t − n + 1}) = g (i, C (w_ {t − 1} ), ···, C (w_ {t − n + 1})), где g - нейронная сеть, а C (i) - вектор признаков i-го слова.

tanhC(wi)Ctanh

Чтобы добавить, и «просто для протокола»: действительно захватывающая часть - это подход Миколова к решению той части, где на изображении Бенгио вы видите фразу «большинство вычислений здесь». Bengio попытался уменьшить эту проблему, выполнив что-то, что называется иерархическим softmax (вместо простого использования softmax) в более поздней статье (Morin & Bengio 2005). Но Миколов с его стратегией отрицательной подвыборки пошел еще дальше: он вообще не вычисляет отрицательную логарифмическую вероятность всех «неправильных» слов (или кодировок Хаффмана, как предложил Бенджо в 2005 году), и просто вычисляет очень небольшая выборка отрицательных случаев, которая при достаточном количестве таких вычислений и умном распределении вероятностей работает чрезвычайно хорошо. И второй, и даже более важный вклад, естественно,P(context|wt=i)

фн
источник