Видео проигрыватель загружается.Воспроизвести видеоВоспроизвестиБез звукаТекущее время 0:00/Продолжительность 2:55Загрузка: 0.00%0:00Тип потока ОНЛАЙНSeek to live, currently behind liveОНЛАЙНОставшееся время -2:55 1xСкорость воспроизведения2x1.75x1.5x1.25x1x, выбрано0.75x0.5xГлавыГлавыОписанияОтключить описания, выбраноСубтитрынастройки субтитров, откроется диалог настройки субтитровСубтитры выкл., выбраноЗвуковая дорожкаPicture-in-PictureПолноэкранный режимThis is a modal window.Начало диалоговго окна. Кнопка Escape закроет или отменит окноТекстColorБелыйЧерныйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачностьПолупрозрачныйФонColorЧерныйБелыйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачностьПолупрозрачныйПрозрачныйОкноColorЧерныйБелыйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачныйПолупрозрачныйПрозрачностьРазмер шрифта50%75%100%125%150%175%200%300%400%Стиль края текстаНичегоПоднятыйПониженныйОдинаковыйТеньШрифтПропорциональный без засечекМоноширинный без засечекПропорциональный с засечкамиМоноширинный с засечкамиСлучайныйПисьменныйМалые прописныеСбросить сбросить все найстройки по умолчаниюГотовоЗакрыть модальное окноКонец диалогового окна.
Вам не кажется, что это немного странно — предсказывать слово только по тем словам, что слева от него? В некоторых языках — например, в русском, порядок слов свободный, и контекст слева может вообще никак не объяснять появление очередного слова. Это ограничивает модель — то есть, её ёмкости вроде бы хватает для решения задачи, но входные данные не дают решать её лучше — у них просто нет достаточной информации. Самое очевидное решение — это учить две авторегрессионные модели — одна видит только то, что слева, а другая видит только то, что справа. При этом, признаки от обеих моделей можно использовать для лучшего решения прикладных задач. Такой подход называется "двунаправленные языковые модели" и лежит в основе модели ELMo, которая была предложена в 2017-2018 годах.[1] Однако можно пойти ещё дальше и учитывать не только контекст строго слева или строго справа, а вообще весь доступный текст, кроме некоторых слов. При обучении модели BERT, берётся фрагмент текста, в нём выбирается сколько-то слов, и они заменяются на фиктивный токен. Модель должна предсказать эти слова, используя все остальные входные данные. Так как модель основана на трансформере,[2] у неё нет особых проблем с моделированием далёких зависимостей — это позволяет моделировать не только одно предложение, а сразу большой непрерывный фрагмент текста. Тут учитывается вообще весь текст. Данная модель позволяет достичь лучших на настоящее время результатов на ряде задач, при этом, как оказалось, больше не обязательно строить какие-то специальные архитектуры для каждой задачи — можно, не меняя общей архитектуры BERT, несколько до-обучить его на маленьком датасете, и задача уже будет решаться отлично. Однако, и у этого монстра есть пара слабых мест, а именно — пропущенные слова считаются условно-независимыми при наблюдении остальных слов. Это означает, что их можно предсказывать независимо друг от друга — это не вполне корректно, так как от выбора одного пропущенного слова может зависеть выбор второго. А ещё, из-за того, что процесс обучения BERT опирается на внесение шума во входные данные, а именно — замене слов на токен "mask", который в реальных текстах никогда не встречается — фактическое распределение входных данных не вполне соответствует настоящему. Это может препятствовать переносу на реальные данные. Ну, как бы то ни было, эта модель работает отлично.
[1] Peters M. E. et al. Deep contextualized word representations //arXiv preprint arXiv:1802.05365. – 2018. (https://arxiv.org/abs/1802.05365)
[2] скоро мы очень подробно поговорим о трансформерах
К сожалению, у нас пока нет статистики ответов на данный вопрос,
но мы работаем над этим.