Как BERT предсказывает скрытые слова под маской и учитывает контекст соседних слов
Что проверяют
Знаете ли вы механику masked language modeling до уровня деталей, а не только слово «двунаправленный». Следом почти всегда спрашивают, зачем часть выбранных токенов не заменяют на [MASK] и чем BERT отличается от GPT.
Как отвечать
BERT это стек энкодеров трансформера без каузальной маски: в self-attention каждый токен видит все остальные токены последовательности, слева и справа одновременно. Базовая версия: 12 слоёв, скрытый размер 768, 12 голов внимания, около 110 млн параметров; large: 24 слоя, 1024, 16 голов, около 340 млн.
Как устроено обучение:
- токенизация: WordPiece со словарём около 30 тысяч, на входе сумма эмбеддингов токена, сегмента и позиции;
- выбор позиций: случайно берут 15% токенов. Из них 80% заменяют на
[MASK], 10% на случайный токен, 10% оставляют как есть. Так модель не привыкает, что предсказывать нужно только там, где стоит[MASK], ведь при дообучении этого токена в тексте нет; - предсказание: скрытый вектор последнего слоя на выбранной позиции идёт в MLM-голову, это полносвязный слой с GELU и LayerNorm и проекция на словарь, веса которой связаны с входными эмбеддингами. Softmax даёт распределение по словарю;
- лосс: кросс-энтропия считается только по выбранным позициям, остальные токены в лосс не входят.
Контекст учитывается за счёт того, что на каждом слое вектор маскированной позиции собирает взвешенную смесь векторов всех соседей, и к последнему слою в нём уже закодирован смысл всей фразы.
Полезно упомянуть развитие: в оригинале была вторая задача NSP, RoBERTa её убрала и перешла на динамическое маскирование, а whole word masking маскирует слово целиком, а не отдельные сабворды.
Где спотыкаются
Говорят, что BERT предсказывает следующее слово. Это задача GPT с каузальной маской, а BERT генерировать текст слева направо не приспособлен.
Путают двунаправленность BERT с ELMo, где две отдельные LSTM читают текст в разные стороны. У BERT одна модель, и контекст с обеих сторон виден в каждом слое сразу.
Думают, что несколько масок в одном предложении предсказываются согласованно. Каждая позиция предсказывается независимо, на этом строилась критика BERT в XLNet.