Популярные методы декодирования текста в НЛП с визуальными элементами

Конечной целью системы автоматического создания текста является создание текста, который не уступает по качеству тексту, написанному человеком. В НЛП основная идея генеративных задач заключается в создании текста, специфичного для определенного контекста и ограничений, некоторые из которых включают суммирование текста, языковой перевод, преобразование речи в текст и т. д. После того, как модель обучена любой из этих задач , качество отдельных единиц и, в конечном счете, последовательность, которую генерирует модель, зависит от используемой стратегии декодирования. У каждой из этих техник есть свои плюсы и минусы.

В этом блоге мы рассмотрим некоторые из популярных методов выборки текста, такие как случайная выборка, жадная выборка, лучевой поиск, выборка из первых k и выборка из первых p.

При случайной выборке идея довольно проста: на каждом временном шаге(t) в процессе генерации мы отбираем случайное слово на основе условной вероятности распределение, которое генерируется на каждом шаге по всему словарю. Этот метод можно считать самым нестабильным из всех, которые мы будем обсуждать в этом блоге. На изображении нижепоказано то же самое —

При жадном декодировании на каждом временном шаге(t) процесса генерации мы выбираем слово с наибольшей условной вероятностью. Поскольку выборка не допускает никакой случайности, метод становится детерминированным по умолчанию после фиксации весов модели. Он неплохо работает, когда нужно создать короткую последовательность. В то время как при создании более длинных последовательностей этот метод застрял бы в цикле и в конечном итоге создал бы избыточные.

На изображении ниже показано то же самое —

В поиске Beam идея состоит в том, чтобы отбирать последовательность с высокой вероятностью при создании текста. Для этого мы определяем то, что мы называем размером луча (B), который отбирает единицы Top-B на каждом временном шаге (t) на основе единицы, выбранной на предыдущем шаге на этапе генерации. При этом, если бы мы должны были сгенерировать последовательность из 5 слов, мы получили бы 3⁵ последовательностей, из которых мы выбираем и возвращаем ту, которая имеет максимальную вероятность, как нашу последнюю. Также в соответствии с этим исследованием авторы обнаружили, что поиск луча работает довольно хорошо, когда сгенерированные последовательности короткие и не такие открытые.

На изображении нижепоказано то же самое —

На рисунке показана работа поиска луча. Гипотетически, ABD и CED являются двумя верхними последовательностями, которые генерирует модель с точки зрения значения правдоподобия. Наконец, возвращается то, что имеет большее значение.

При выборке топ-K на каждом временном шаге(t) процесса генерации мы сначала отбираем k наиболее вероятных слов на основе на сгенерированном условном распределении вероятностей на этом временном шаге. Сообщение, которое мы перераспределяем вероятностную массу только среди этих первых слов и в конечном итоге выбираем случайное слово на основе условной вероятности из этого набора. Здесь случайность вводится на основе выбора k, это помогает экспериментировать и выводить разные, но связанные последовательности в каждом поколении. Кроме того, для k=1 этот метод ведет себя как жадное декодирование.

На изображении ниже показано то же самое —

На рисунке показана работа top-k с k=3. Слова «мальчик», «привет» и «мужчина» входят в наш топ-3 списка на основе их вероятностей. После чего мы перераспределили эти вероятности внутри этого набора и в конечном итоге сделали свой выбор.

В выборке поверх p, также известной как Nucleus Sampling, на каждом временном шаге(t) в процессе генерации мы создаем небольшое подмножество слов, кумулятивная вероятность которых превышает масса вероятности P. Затем вероятности перераспределяются среди этого набора, и, наконец, мы выбираем случайное слово из этого набора на основе вероятности. Выборка top-p позволяет нам включить понятие окна с динамическим размером из top-p слов, в отличие от top-k, который фиксирует размер k для каждого шага.

На изображении нижепоказано то же самое —

На рисунке показана работа top-p при p=0,6. Сумма вероятностей слов «мальчик» и «мужчина» превышает пороговую вероятностную массу 0,6. Мы выбираем оба этих слова и создаем последующий набор с перераспределенными вероятностями и в конечном итоге делаем свой выбор.

Заключение

Среди всех обсуждавшихся выше методов декодирования не существует жесткого и быстрого правила, которое лучше всего работает. Все зависит от вашего конкретного варианта использования, хотите ли вы иметь вероятные и предсказуемые последовательности слов или хотите, чтобы модель была смелой и творческой при ее создании. В общем, для таких случаев использования, как создание историй, стихотворений и т. д.(где возможность создания интересных предложений бесконечна) вы можете попробовать Top-p или Top-k, а для таких случаев использования, как перевод(небольшое разнообразие того, как вы можете перевести данное предложение на целевой язык) вы хотели бы попробовать поиск Beam. Можно также поиграть со значением температуры softmax и сделать распределение более асимметричным, то есть более уверенным в некотором смысле, установив значение температуры близким к 0 и применив после этого вышеупомянутые методы.

Заинтересованы в НЛП? Тогда вы можете посетить мой канал YouTube, где я объясняю статьи и концепции НЛП :)

Надеюсь, вам понравилось это читать. Если вы хотите поддержать меня как писателя, рассмотрите возможность подписки стать участником Medium. Всего 5 долларов в месяц, и вы получаете неограниченный доступ к Medium.Спасибо!

Вот некоторые другие сообщения, которые могут вас заинтересовать —







5 методов обнаружения выбросов, которые должен знать каждый «энтузиаст данных
Методы обнаружения выбросов (визуальные изображения и код)towardsdatascience.com»