Когда еда встречается с искусственным интеллектом: проект «Умный рецепт»

С момента своего выпуска в конце 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: НЭР на любой вкус: извлечение информации из рецептов приготовления

Часть 2: Ни рыбы, ни мяса? Классифицируйте его с помощью интеллектуального классификатора ингредиентов

Часть 3: FoodGraph: графическая база данных для соединения рецептов и данных о продуктах питания

Часть 3. FoodGraph: загрузка данных и выполнение запросов к графику с помощью SPARQL