Если вы увлечены обработкой естественного языка и имеете некоторый опыт в области глубокого обучения, 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)