>>1.00<<>>1.00<<Видео проигрыватель загружается.Воспроизвести видеоВоспроизвестиБез звукаТекущее время 0:00/Продолжительность 2:42Загрузка: 0.00%0:00Тип потока ОНЛАЙНSeek to live, currently behind liveОНЛАЙНОставшееся время -2:42 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%Стиль края текстаНичегоПоднятыйПониженныйОдинаковыйТеньШрифтПропорциональный без засечекМоноширинный без засечекПропорциональный с засечкамиМоноширинный с засечкамиСлучайныйПисьменныйМалые прописныеСбросить сбросить все найстройки по умолчаниюГотовоЗакрыть модальное окноКонец диалогового окна.
Второй вариант — работать на уровне слов, но векторы для неизвестных слов собирать из векторов N-грамм символов, входящих в эти слова — примерно, как это делается в FastText. Но чаще всего сейчас используется промежуточный вариант, а именно — кодирование текста, при котором часто встречающиеся под-последовательности символов заменяются на новые символы, которые ранее не использовались. По сути, к текстам применяется некоторый алгоритм сжатия без потерь. Один из самых популярных алгоритмов — byte pair encoding. Он заключается в том что самая часто встречающаяся биграмма заменяется на новый символ, который раньше не использовался. Затем находится новая биграмма и всё повторяется. И таких замен делается достаточно много. Это позволяет сильно сократить размер словаря и, при этом, не сильно увеличить длину входных цепочек токенов, в отличие от символьных языковых моделей. Нейросетевые языковые модели также позволяют получать сжатое представление элементов текста, но теперь уже с учётом контекста, и эти представления можно использовать для решения прикладных задач. Оказывается, что первые слои выделяют признаки, соответствующие морфологической информации, частям речи, и так далее. Средние слои отвечают за согласование слов — то есть синтаксис, а признаки, полученные с последних слоёв, более полезны для задач семантического анализа. То есть всё, практически, как в работе с изображениями — на каждом новом уровне мы абстрагируемся всё больше и больше, выделяем всё более крупные паттерны. Такие модели учитывают сложный контекст, но только с одной стороны от предсказываемого слова. За счёт специального кодирования входных последовательностей (byte pair encoding, например) проблема неизвестных слов практически не стоит. Но обучать такие модели очень дорого. Большие и мощные варианты требуют нескольких дней обучения на десятках видеокарт. Если модель основана на рекуррентках, то сходимость может быть не очень быстрой из-за сложностей с затуханием градиента. Ну, и контекст всё-таки учитывается только с одной стороны, и длина этого контекста ограничена. Особенно, если в основе архитектуры лежат свёрточные нейросети.
К сожалению, у нас пока нет статистики ответов на данный вопрос,
но мы работаем над этим.