Уровень внедрения - это просто обучаемая справочная таблица: он принимает в качестве входных данных целочисленный индекс и возвращает в качестве выходных данных вложение слова, связанное с этим индексом:
index | word embeddings
=============================================================================
0 | word embedding for the word with index 0 (usually used for padding)
-----------------------------------------------------------------------------
1 | word embedding for the word with index 1
-----------------------------------------------------------------------------
2 | word embedding for the word with index 2
-----------------------------------------------------------------------------
. |
. |
. |
-----------------------------------------------------------------------------
N | word embedding for the word with index N
-----------------------------------------------------------------------------
В этом смысле он является обучаемымзначения не обязательно фиксированы и могут быть изменены во время обучения.Аргумент input_dim
на самом деле является количеством слов (или, в более общем смысле, количеством различных элементов в последовательностях).Аргумент output_dim
указывает размерность каждого встраиваемого слова.Например, в случае использования output_dim=100
каждое вложение слова будет вектором размера 100. Кроме того, поскольку входной слой для встраивания представляет собой последовательность целых чисел (соответствующую словам в предложении), следовательно, его вывод будет иметь форму(num_sequences, len_sequence, output_dim)
, то есть для каждого целого числа в последовательности возвращается вектор внедрения размером output_dim
.
Что касается количества весов в слое внедрения, то его очень легко вычислить: есть input_dim
уникальные индексы, и каждый индекс связан с вложением слова размером output_dim
.Следовательно, число весов в слое вложения равно input_dim x ouput_dim
.