- В этом видео мы изучим архитектуру кодера.
Примером популярной архитектуры, использующей только кодер, является BERT,
который является самой популярной моделью такого рода.
Для начала давайте разберемся, как это работает.
Мы воспользуемся небольшим примером, используя три слова.
Мы используем их в качестве входных данных и пропустим через кодер.
Мы получили числовое представление каждого слова.
Вот, например, кодер преобразует три слова
"Welcome to NYC" в эти три последовательности цифр.
Кодер выдает ровно одну последовательность чисел
на каждое входное слово.
Это числовое представление можно также назвать
вектор признаков или тензор признаков.
Давайте погрузимся в это представление.
Он содержит один вектор на каждое слово
которое было пропущено через кодер.
Каждый из этих векторов является числовым представлением
рассматриваемого слова.
Размерность этого вектора определяется
архитектурой модели.
Для базовой модели BERT это значение равно 768.
Эти представления содержат значение слова,
но с учетом контекста.
Например, вектор, приписываемый слову "to"
не является представлением только слова "to".
Он также учитывает окружающие слова,
которые мы называем контекстом.
Например, он смотрит на левый контекст,
слова слева от изучаемого нами,
здесь слово "Welcome",
и контекст справа, здесь слово "NYC",
и выводит значение для слова с учетом его контекста.
Таким образом, это контекстуализированное значение.
Можно сказать, что вектор из 768 значений
хранит значение слова в тексте.
Это происходит благодаря механизму самовнимания.
Механизм самовнимания связан с различными позициями,
или различным словам в одной последовательности
для того, чтобы вычислить представление этой последовательности.
Как мы уже видели, это означает, что
на результирующее представление слова
повлияли другие слова в последовательности.
Мы не будем углубляться в детали,
но предлагаем вам ознакомиться с некоторыми дополнительными материалами,
если вы хотите лучше понять,
что происходит под капотом.
Так почему же следует использовать кодер?
Кодеры могут использоваться в качестве автономных моделей
в самых разнообразных задачах.
Например, BERT,
возможно, самая известная модель трансформера,
является отдельной моделью кодера,
и на момент выпуска
она была передовой
во многих задачах классификации последовательностей,
задачах ответа на вопросы,
и моделировании языка с маской, и это лишь некоторые из них.
Идея заключается в том, что кодеры очень сильны
в извлечении векторов, которые несут
значимую информацию о последовательности.
Этот вектор затем может быть обработан в дальнейшем
дополнительными нейронами, чтобы понять его смысл.
Давайте рассмотрим несколько примеров
где кодер действительно блистает.
Прежде всего, Masked Language Modeling, или MLM.
Это задача предсказания скрытого слова
в последовательности слов.
Здесь, например, мы скрыли слово
между "My" и "is".
Это одна из целей обучения BERT.
Он был обучен предсказывать скрытые слова в последовательности.
В этом сценарии кодеры проявляют себя особенно ярко, поскольку
двунаправленная информация имеет здесь решающее значение.
Если бы у нас не было слов справа,
это "Sylvain" и ".",
то очень мало шансов,
что BERT смог бы определить имя
как правильное слово.
Кодер должен хорошо понимать
последовательности, чтобы предсказать замаскированное слово
поскольку даже если текст грамматически правильный,
он не обязательно имеет смысл
в контексте последовательности.
Как упоминалось ранее,
кодеры хорошо справляются с классификацией последовательностей.
Анализ настроений является примером классификации последовательностей.
Цель модели - определить настроение последовательности.
Это может варьироваться от присвоения последовательности
рейтинга от одной до пяти звезд
если проводится анализ отзывов, до присвоения положительного
или отрицательного рейтинга последовательности
что и показано здесь.
Например, здесь, даны две последовательности,
мы используем модель для вычисления прогноза,
и классифицируем последовательности
между двумя классами, положительным и отрицательным.
Хотя эти две последовательности очень похожи
и содержат одни и те же слова,
смысл совершенно разный,
и модель кодера способна уловить эту разницу.