Seq2seq - Seq2seq

Seq2seq это семья машинное обучение подходы, используемые для языковой обработки.[1] Приложения включают языковой перевод, подписи к изображениям, разговорные модели и резюмирование текста.[2]

История

Алгоритм был разработан Google для использования в машинный перевод.[2]

В 2019 г. Facebook объявил о его использовании в символическая интеграция и разрешающая способность из дифференциальные уравнения. Компания заявила, что может решать сложные уравнения быстрее и с большей точностью, чем коммерческие решения, такие как Mathematica, MATLAB и Клен. Во-первых, уравнение анализируется в древовидной структуре, чтобы избежать нотаций. Затем нейронная сеть LSTM применяет свой стандарт распознавание образов средства для обработки дерева.[3]

В 2020 году Google выпустила Meena с оборотом 2,6 млрд параметр на основе seq2seq чат-бот обучен на наборе данных 341 ГБ. Google утверждает, что модель чат-бота в 1,7 раза больше, чем OpenAI's ГПТ-2,[4] чей преемник в мае 2020 года, параметр 175 миллиардов GPT-3, обученный на «наборе данных 45 ТБ с открытым текстом (45 000 ГБ), который был ... отфильтрован до 570 ГБ».[5]

Техника

Seq2seq превращает одну последовательность в другую. Это делается с помощью рекуррентная нейронная сеть (RNN) или чаще LSTM или ГРУ чтобы избежать проблемы исчезающий градиент. Контекст для каждого элемента - это результат предыдущего шага. Основными компонентами являются один кодер и одна сеть декодеров. Кодировщик превращает каждый элемент в соответствующий скрытый вектор, содержащий элемент и его контекст. Декодер меняет процесс на обратный, превращая вектор в выходной элемент, используя предыдущий выход как входной контекст.[2]

Оптимизация включает:[2]

  • Внимание: вход в декодер - это единственный вектор, который хранит весь контекст. Внимание позволяет декодеру выборочно смотреть на входную последовательность.
  • Поиск луча: вместо выбора одного вывода (слова) в качестве вывода сохраняется несколько наиболее вероятных вариантов, структурированных в виде дерева (с использованием Софтмакс по набору оценок внимания[6]). Усредните состояния кодировщика, взвешенные по распределению внимания.[6]
  • Группирование: последовательности переменной длины возможны из-за заполнения нулями, которое может выполняться как для ввода, так и для вывода. Однако, если длина последовательности равна 100, а длина ввода составляет всего 3 элемента, дорогостоящее пространство будет потрачено впустую. Сегменты могут быть разных размеров и определять длину как на входе, так и на выходе.

В обучении обычно используется кросс-энтропия функция потерь, при этом один выход наказывается до такой степени, что вероятность последующего выхода меньше 1.[6]

Связанное программное обеспечение

Программное обеспечение, использующее аналогичные подходы, включает OpenNMT (Факел ), Нейронная обезьяна (TensorFlow ) и НЕМАТУС (Theano ).[7]

Смотрите также

Рекомендации

  1. ^ Суцкевер Илья; Виньялс, Ориол; Ле, Куок Вьет (2014). «Последовательность для последовательного обучения с помощью нейронных сетей». arXiv:1409.3215 [cs.CL ].
  2. ^ а б c d Вадхва, Мани (5 декабря 2018 г.). "Модель seq2seq в машинном обучении". Гики. Получено 2019-12-17.
  3. ^ «У Facebook есть нейронная сеть, которая может выполнять сложные математические операции». Обзор технологий MIT. 17 декабря 2019 г.,. Получено 2019-12-17.
  4. ^ Мехта, Иван (29.01.2020). «Google утверждает, что его новый чат-бот Meena - лучший в мире». Следующая Сеть. Получено 2020-02-03.
  5. ^ Гейдж, Джастин. "Что такое GPT-3?". Получено 1 августа, 2020.
  6. ^ а б c Хьюитт, Джон; Криз, Рино (2018). «Модели последовательности 2» (PDF). Стэндфордский Университет.
  7. ^ "Обзор - seq2seq". google.github.io. Получено 2019-12-17.

внешняя ссылка