Когда еда встречается с искусственным интеллектом: проект «Умный рецепт»
С момента своего выпуска в конце 2018 года представление двунаправленного кодировщика от Transformer, также известное как BERT, вошло в зал славы моделей НЛП, присудив номинацию передового уровня в различных задачах НЛП.
Из метафор BERT положительно изменил способ решения задач НЛП, решив многие сложные проблемы в области НЛП.
Учитывая его известность, пост не погружается в скрытую магию BERT (другие сделали это блестяще), а скорее показывает, как BERT использовался в проекте Smart Recipe Project. Здесь мы разработали систему, способную идентифицировать таксономический класс ингредиентов. По сути, это означает: классифицировать эмменталь как сыр, апельсин как фрукт, горох как овощ и так далее для каждого ингредиента в рецептах.
Для разработки этого сервиса помимо компетенций в области машинного обучения потребовался опыт разработки надежной и последовательной модели классификации, то есть таксономии.
В статье вы найдете:
- Введение в BERT
- Обзор таксономии проекта Smart Recipe
- BERT для таксономической классификации ингредиентов
- Приложения для классификации пищевых продуктов
Это так БЕРТ…
Проблема
Одна из основных проблем НЛП состоит в нехватке обучающих данных. Это звучит немного парадоксально, учитывая количество текстовых данных, доступных в Интернете. Однако для различных задач НЛП требуются наборы данных, помеченные вручную для конкретных задач и во многих случаях для конкретных предметных областей. Эти реквизиты резко сокращают количество обучающих примеров, что делает их недостаточными для обучения алгоритмов на основе глубокого обучения.
Решение
Идея состоит в том, чтобы использовать большой объем неаннотированных данных для обучения моделей языкового представления общего назначения, процесс, известный как предварительное обучение, а затем тонкую настройку этих моделей на меньшем наборе данных для конкретной задачи.
Хотя эта техника не нова (см. вложения word2vec и GloVE), можно сказать, что BERT использует ее лучше. Почему? Разберемся в пяти пунктах:
1 — Он построен на архитектуре Трансформер, мощной современной архитектуре, которая применяет механизм внимания для понимания взаимосвязей между токенами в предложении. Чтобы лучше понять, как работает механизм внимания, посмотрите на этот пример:
Кот на коврике, он спит
Токен «оно» относится к кошке или коврику? В то время как для людей ответ очевиден, для алгоритма это не так. Таким образом, механизм внимания Transformer просматривает входные данные и шаг за шагом решает, какие другие части последовательности важны и, следовательно, заслуживают внимания.
Чтобы быть точным, преобразователь BERT состоит только из кодировщиков (как правило, преобразователи имеют кодировщики для чтения ввода и декодеры для создания прогноза), поскольку его целью является только создание модели языкового представления.
2 — глубоко двунаправленный, поскольку учитывает левый и правый контексты. Какие новости? Ты можешь сказать. Новизна заключается в том, что BERT одновременно является двунаправленным, превосходя модели на основе Bi-LSTM, которые не работают одновременно.
3 — BERT предварительно обучен большому корпусу неразмеченных текстов, включая всю Википедию (2500 миллионов слов) и Книжный корпус (800 миллионов слов). Это позволяет получить более глубокое и глубокое понимание того, как работает язык.
4 — BERT можно настроить для разных задач, добавив несколько дополнительных выходных слоев. Например, мы использовали только однослойную обученную нейронную сеть, чтобы адаптировать BERT для нашей задачи.
5 — В отличие от предыдущих моделей, BERT не обучен предсказывать следующий токен в последовательности, а выполняет:
- Моделирование маскированного языка: BERT должен предсказывать случайно замаскированные слова. Чтобы решить проблему маскировки, модель должна смотреть в обоих направлениях, используя полный контекст предложения. Именно здесь свойство двунаправленности играет свою роль!
- Предсказание следующего предложения: BERT пытается предсказать следующее предложение в последовательности предложений.
Прежде чем перейти к тонкой настройке, давайте взглянем на таксономию, которую мы разработали для классификации ингредиентов.
Таксономия проекта Smart Recipe
Таксономия — это наука и практика именования, описания и классификации вещей или понятий на основе общих характеристик. В нашем случае вещи, которые нужно классифицировать, — это ингредиенты.
В зависимости от критериев классификации различают следующие виды таксономии пищевых продуктов:
Мы разработали гибридную таксономию, способную идентифицировать класс ингредиентов во многих распространенных диетах. Как показано на рисунке ниже, наша таксономия имеет общие узлы с таксономией химических веществ и производных, хотя ее классификация более конкретна: она действительно включает в общей сложности 48 классов (голубые узлы).
BERT для таксономической классификации ингредиентов
Для нашей задачи (таксономическая классификация ингредиентов) предобученные модели BERT имеют оптимальную производительность. Мы выбрали модель bert-base-multilingual-cased и разделили классификатор на два модуля:
- Учебный модуль. Мы использовали Bert For Sequence Classificationбазовый Bert с одним линейным слоем вверху для классификации. На наших данных обучались как предварительно обученная модель, так и необученный слой.
- Прикладной модуль. Специалист берет обученную модель и использует ее для определения таксономического класса ингредиента в рецепте. Входные данные модуля — это файл JSON, содержащий ингредиенты (извлеченные с помощью NER, см. предыдущую статью):
Конечным результатом является еще один файл JSON с ингредиентами, их таксономическим классом и классификационным баллом F1.
Умный классификатор ингредиентов: его будущее применение
Классификация пищевых продуктов представляет собой часть очень полезной информации, которую можно использовать в будущих реализациях системы. Например, вы можете оценить соответствие рецептов диетическим требованиям, пищевому риску, потреблению пищи, а затем решить интегрировать эту информацию в автоматические инструменты для приготовления пищи, механизмы рекомендаций, приложения для здорового образа жизни….
∑†
Когда еда встречается с искусственным интеллектом: проект «Умный рецепт»
серия из 6 удивительных статей
Оглавление
Часть 1: Очистка и обработка данных о продуктах питания
Часть 1: Умный метод пометки вашего набора данных!
Часть 2: НЭР на любой вкус: извлечение информации из рецептов приготовления
Часть 3: FoodGraph: графическая база данных для соединения рецептов и данных о продуктах питания
Часть 3. FoodGraph: загрузка данных и выполнение запросов к графику с помощью SPARQL