Модель bert дает нам два выхода: один дает нам [batch, maxlen, hiddenstates], а другой - [batch, hidden States of cls token]. Но я не понял, когда использовать конкретный вывод. Может ли кто-нибудь сказать мне, для какой задачи какой вывод следует использовать ??
Как использовать результаты модели Берта?
Ответы (1)
Результатом обычно является [batch, maxlen, hidden_state]
, его можно сузить до [batch, 1, hidden_state]
для [CLS]
токена, поскольку токен [CLS]
является 1-м токеном в последовательности. Здесь [batch, 1, hidden_state]
можно эквивалентно рассматривать как [batch, hidden_state]
.
Поскольку BERT - это контекстная модель на основе преобразователя, идея состоит в том, что [CLS]
токен захватил бы весь контекст и был бы достаточен для простых последующих задач, таких как классификация. Следовательно, для таких задач, как классификация с использованием представлений предложений, вы можете использовать [batch, hidden_state]
. Однако вы также можете рассмотреть [batch, maxlen, hidden_state]
, среднее значение по maxlen
измерениям, чтобы получить усредненные вложения. Однако для некоторых последовательных задач, таких как классификация с использованием CNN или RNN, требуется последовательность представлений, во время которой вы должны полагаться на [batch, maxlen, hidden_state]
. Кроме того, используются некоторые цели обучения, такие как предсказание замаскированных слов или для SQUAD 1.1 (как показано в документе BERT) вся последовательность вложений [batch, maxlen, hidden_state]
.