Понимание количества презентаций ELMo

Я пробую свои силы в ELMo, просто используя его как часть более широкой модели PyTorch. Основной пример приведен здесь.

Это подкласс torch.nn.Module, который вычисляет любое количество представлений ELMo и вводит обучаемые скалярные веса для каждого. Например, этот фрагмент кода вычисляет два уровня представлений (как в моделях SNLI и SQuAD из нашей статьи):

from allennlp.modules.elmo import Elmo, batch_to_ids

options_file = "https://s3-us-west-2.amazonaws.com/allennlp/models/elmo/2x4096_512_2048cnn_2xhighway/elmo_2x4096_512_2048cnn_2xhighway_options.json"
weight_file = "https://s3-us-west-2.amazonaws.com/allennlp/models/elmo/2x4096_512_2048cnn_2xhighway/elmo_2x4096_512_2048cnn_2xhighway_weights.hdf5"

# Compute two different representation for each token.
# Each representation is a linear weighted combination for the
# 3 layers in ELMo (i.e., charcnn, the outputs of the two BiLSTM))
elmo = Elmo(options_file, weight_file, 2, dropout=0)

# use batch_to_ids to convert sentences to character ids
sentences = [['First', 'sentence', '.'], ['Another', '.']]
character_ids = batch_to_ids(sentences)

embeddings = elmo(character_ids)

# embeddings['elmo_representations'] is length two list of tensors.
# Each element contains one layer of ELMo representations with shape
# (2, 3, 1024).
#   2    - the batch size
#   3    - the sequence length of the batch
#   1024 - the length of each ELMo vector

Мой вопрос касается "представлений". Можете ли вы сравнить их с обычными выходными слоями word2vec? Вы можете выбрать, сколько ELMo вернет (увеличив n-ое измерение), но в чем разница между этими сгенерированными представлениями и каково их типичное использование? Можно ли объединить их в одно представление?

Чтобы дать вам представление, для приведенного выше кода, embeddings['elmo_representations'] возвращает список из двух элементов (двух слоев представления), но они идентичны.

Короче говоря, как можно определить "представления" в ELMo?

0 ответов

См. Раздел 3.2 оригинальной статьи.

ELMo - это специфическая для задачи комбинация представлений промежуточного уровня в biLM. Для каждого токена biLM L-уровня вычисляет набор из 2L+ 1 представлений

Ранее в разделе 3.1 сказано, что:

Последние современные модели нейронного языка вычисляют независимое от контекста представление токена (с помощью встраивания токена или CNN над символами), а затем пропускают его через L уровней прямых LSTM. В каждой позиции k каждый уровень LSTM выводит контекстно-зависимое представление. Выход LSTM верхнего уровня используется для прогнозирования следующего токена со слоем Softmax.

Чтобы ответить на ваш вопрос, эти представления являются L-основанными на L LSTM контекстно-зависимыми представлениями.

Другие вопросы по тегам