Если вы увлечены обработкой естественного языка и имеете некоторый опыт в области глубокого обучения, Google BERT - хотя и не является передовым - во многих отношениях является основополагающим и, следовательно, представляет собой ценное исследование.

Газета BERT от 11 октября 2018 г. | Сообщение в блоге 2 ноя 2018 | "исходный код"

Ниже приведен простой список всех концепций оригинальной статьи по BERT, которые я решил назвать важными предпосылками для понимания, прежде чем вы сможете по-настоящему оценить BERT. Я сгруппировал их по трем видам предпосылок:

  • Необходимые условия: элементы, которые являются неотъемлемой частью дизайна BERT.
  • Только для справки: в документе упоминаются они и являются полезным фоном.
  • Основы: вы должны знать это, но эти ресурсы особенно полезны и могут помочь дать свежий взгляд на мир.

Необходимые предпосылки как практикующего специалиста

Статьи и сообщения в блогах довольно удобочитаемы, чтобы получить обзор. Но если вы хотите работать с BERT - например, для вашей собственной тонкой настройки - это относится к этим концепциям, которые важны для понимания ниже.

Мое предложение: прочитайте статью один раз, а затем просмотрите этот список, чтобы решить, какие идеи помогут вам лучше понять. Я заказал их примерно исходя из моих собственных субъективных потребностей в знаниях.

Сети внимания: новая архитектура нейронной сети, которая берет группу слов и вычисляет отношения между ними (внимание) Кейта Курита | Джей Аламарр | Из Distill.pub

Трансформеры: приложение Attention Networks. Иллюстрированный трансформатор Джея Аламарра | Annotated Transformer берет Внимание - это все, что вам нужно и создает код вместе с бумагой для воспроизведения представленных идей. Трансформеры включены в библиотеку Google Tensor2Tensor (см. Ниже).

Тонкая настройка и перенос обучения: взятие базовой модели и ее настройка для конкретной задачи со сравнительно небольшим объемом данных (сотни примеров против миллиардов примеров). См. Документ ULMFiT (январь 2018 г.), в котором, насколько я могу судить, вводится концепция тонкой настройки как разновидности трансферного обучения, которое может применяться к любой задаче НЛП.

Моделирование языка: система прогнозирования, которая предсказывает пропущенные слова (либо следующее слово, либо, как в случае BERT, в середине предложения). В Иллюстрированном word2vec Джея Аламарра есть действительно отличный раздел о языковом моделировании.

Предварительное обучение языковой модели: неотъемлемая часть тонкой настройки: начальная работа, часто без учителя (как в случае с BERT), которая создает векторное представление языка.

Контекстные представления токенов: признание того, что одно и то же слово означает разные вещи в разных контекстах. Первое поколение встраиваний слов (word2vec, GloVe) не зависело от контекста, поэтому королева была представлена ​​как один и тот же вектор, независимо от того, что это означает несколько вещей. Посмотрите на это отличное сравнение методов

Многозадачное обучение: способность системы изучать несколько задач одновременно во время обучения. BERT изучает две задачи одновременно: моделирование замаскированного языка и предсказание следующего предложения, последнее из которых является ключом к лучшему пониманию контекста BERT (дальнодействующие зависимости). Блог о многозадачном обучении Себастьяна Рудера от 2017 года по-прежнему остается одним из лучших. Также есть видео Эндрю Нг Многозадачное обучение на сайте deeplearning.ai.

Позиционные вложения: поскольку BERT не является повторяющейся нейронной сетью (она просматривает вещи параллельно), ему нужен другой способ представления пространственных отношений, и он изобретает новую идею, называемую позиционными встраиваниями. См. Статью Почему в BERT 3 слоя

Встраивание сегментов: BERT может обрабатывать два предложения для поддержки множества последующих задач, требующих ввода текста и вывода текста, такого как вопрос и ответ, перевод, перефразирование и другие. Он делает это с вложениями сегментов. Опять же, посмотрите эту статью о том, почему BERT имеет три уровня

Вложения WordPiece: неконтролируемый способ разметки слов, который помогает сбалансировать детализацию и сохранение знаний со сценариями, не связанными с словарным запасом. Если вы хотите создавать собственные словари, WordPiece на самом деле не является открытым исходным кодом, но есть другие похожие методы (например, что сбивает с толку, SentencePiece, которая звучит как другой уровень абстракции, но на самом деле это не так). См. Ценность WordPieces и обсуждение WordPiece против SentencePiece

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

в целом, чем больше изменяется распределение входящих весов по отдельной единице во время тренировки, тем важнее эта единица для общей эффективности классификации ».

Tensor2Tensor - общая структура, которая упрощает исследования глубокого обучения, включая многозадачное обучение. Запись в блоге (июнь 2017 г.) | "источник"

Случайные перезапуски: я на самом деле еще не нашел никаких упоминаний об этом, кроме ссылки Джереми Ховарда о «fast.ai, где вы узнаете о передовых методах…

Ссылка только

Эти идеи упоминаются в статье BERT. Вы почти наверняка столкнетесь с этими идеями, когда узнаете о зависимостях, но они не являются центральными для понимания BERT.

  • Вывод на естественном языке (NLI)
  • Перефразирование
  • Закрытие задач
  • Вопрос и ответ для закрытого домена
  • LSTM
  • Снижение шумов автоэнкодеров
  • Машинный перевод: вероятно, самая заметная и самая важная задача НЛП, потому что она определила рубеж новых разработок: сначала с нейронным машинным переводом (NMT) seq2seq, а затем с первым применением преобразователей (подтверждение TODO).

Фонды

Если вы практик НЛП, вы должны знать это; ссылки здесь относятся к особенно хорошим и актуальным ресурсам по ним. Это ни в коем случае не является полным; подробнее, краткое изложение лучших ресурсов, которые я нашел.

  • Объективные функции
  • Распределенное представительство
  • Вложения слов. Джей Аламарр представляет вложения слов НЛП (май 2019 г.), а его Сообщение в блоге Word2Vec не имеет себе равных.
  • Распознавание именованных сущностей (NER): я поместил это здесь, хотя довольно сложно не знать NER, если вы занимаетесь НЛП.
  • Токенизация.
  • Fast.ai NLP Course for programmers (июнь 2019). Fast.ai великолепен, и этот новый курс основан на подходе сначала код. Однако я считаю, что в нем используется множество концепций машинного обучения, которые могут мешать пониманию, поэтому чувствую, что у него есть невысказанные предпосылки.

Другие источники

Углубленное сравнение встроенной сети прямой связи BERT для классификации встраивания последовательностей и ограниченных случайных полей (PDF, июль 2019)