Тема нейронных сетей будоражит сердца разработчиков, учёных и маркетологов уже не первый год, а некоторых и не первое десятилетие.
Но все мы знаем, что проекты, основанные на нейронах, часто скрывают простую большую дату и маркетинговый хайп, раздутый на фоне кликбейтного заголовка.
Мы постарались избежать подобной истории и разработали проект нейропиццы, основанный на исследовании молекулярной совместимости ингредиентов, анализе 300 тысяч рецептов и чистом творчестве.
Под катом вы можете узнать подробности и найти ссылку на открытый исходный код на GitHub.
Может ли машина придумать что-то новое или она ограничена тем, что знает? Пока никто не знает ответа на этот вопрос.
Но уже сейчас искусственный интеллект прекрасно решает задачу анализа больших нестандартных данных.
Однажды «Додо Пицца» решила провести эксперимент: систематизировать и структурно описать то, что во всем мире считается хаотичным и субъективным — вкус.
Искусственный интеллект помог найти самые безумные сочетания ингредиентов, которые, несмотря на свою необычность, оказались вкусными для большинства людей.
В этом необычном проекте мы с коллегой выступили в качестве специалистов по нейросетям из МФТИ и Сколтеха.
Мы разработали и обучили нейронную сеть, способную решить задачу генерации кулинарных рецептов.
За время работы было проанализировано более 300 000 рецептов, а также результаты научных исследований молекулярной совместимости ингредиентов.
На основе этого ИИ научился находить неочевидные связи между ингредиентами и понимать, как они сочетаются друг с другом и как наличие каждого из них влияет на совместимость всех остальных.
Как мы попали в проект Додо AI-пицца
Все, как это обычно бывает, произошло внезапно.Перед летней стажировкой был небольшой перерыв; мы только что закончили курс Deep Learning, защитили проект и пытались адаптироваться к более спокойному ритму учебы/жизни.
Но не смогли: случайно наткнулись на репосты в личном сообщении с просьбой от BBDO о поиске ребят, которые могли бы написать нейросеть для генерации новых рецептов.
А точнее: новые рецепты пиццы для Додо.
Не долго думая, мы решили, что хотим попробовать.
Когда проект только стартовал, мы не до конца понимали, пойдет ли он куда-нибудь дальше, будет ли практическая реализация, нас просто интересовала задача.
Много Red Bull и быстрый интернет помогли нам продвинуться вперед. Оглядываясь назад, мы понимаем, что некоторые вещи можно было сделать по-другому, но это нормально.
В любом случае, через несколько недель рабочая модель нейросети была готова, и начался этап запуска ее в производство.
Нам очень повезло, что проект нельзя назвать индустриальным или техническим в строгом смысле этих слов.
Экспериментальный статус ему больше подходит. С помощью нашей модели были созданы разные варианты рецептов пиццы, которые мы передали очень крутым поварам Додо для проведения пищевых тестов.
Момент дегустации пиццы в R&D Lab «Додо» стал переломным в плане осознания ценности проделанной нами работы.
Было очень интересно увидеть реализованный продукт. Ведь зачастую все разработки и решения – вещь довольно эфемерная, неосязаемая, а здесь результат можно было не только потрогать, но и попробовать на вкус.
Сбор исходного набора данных и перец чили
Любая модель нуждается в данных для работы.Поэтому для тренировки нашего ИИ мы собрали 300 000 кулинарных рецептов из всех доступных источников.
Нам было важно собрать не просто рецепты пиццы, а максимально разнообразить выборку, стараясь при этом не выходить за рамки разумного (например, игнорировать рецепты коктейлей, понимая, что их семантика не будет сильно влиять на семантику рецепта).
пиццы).
Собрав данные, мы получили более 100 000 уникальных ингредиентов.
Большой проблемой было сведение их к одному виду.
Но откуда взялось столько имён? Все просто, например, перец чили в рецептах указывается так: чили, чили, чили, чили.
Для нас с вами очевидно, что это один и тот же перец, но нейросеть воспринимает разные варианты написания как отдельные сущности.
Мы это исправили.
После того, как мы очистили данные и привели их в один вид, у нас осталось всего 1000 позиций.
Анализ вкусов мира
После того, как мы получили готовый к использованию набор данных, мы провели первичный анализ.Сначала мы посмотрели, какие кухни мира представлены в нашем наборе данных в количественном выражении.
Для каждой кухни мы определили самые популярные ингредиенты.
Эти графики показывают различия во вкусовых предпочтениях людей в разных странах.
Из этих предпочтений становится понятно, как люди из разных стран сочетают ингредиенты друг с другом.
Два вывода о пицце
После этого глобального анализа мы решили повнимательнее изучить рецепты пиццы со всего мира, чтобы найти закономерности в их составе.Вот какие выводы мы сделали:
- Рецептов пиццы на порядок меньше, чем рецептов блюд с мясом/курицей и десертов.
- Разнообразие ингредиентов в рецептах пиццы ограничено.
Сама вариативность продукта гораздо ниже, чем в других блюдах.
Как мы тестировали модель
Найти настоящие вкусовые сочетания — это не то же самое, что определить совместимость молекул.Все сыры имеют схожий молекулярный состав, но это не значит, что удачные сочетания лежат только в области наиболее близких ингредиентов.
Однако мы должны увидеть именно совместимость ингредиентов, схожих на молекулярном уровне, когда переводим все на математику.
Потому что похожие предметы (те же сыры) должны оставаться похожими, как бы мы их ни описывали.
Таким образом мы сможем определить, что мы правильно описали эти объекты.
Преобразование рецепта в математическую форму
Чтобы представить рецепт в понятном для нейронной сети виде, мы использовали Skip-Gram Negative Sampling (SGNS) — алгоритм word2vec, основанный на вхождении слов в контексте.Мы решили не использовать предварительно обученные модели word2vec, поскольку наш рецепт явно отличается по семантической структуре от простых текстов.
Используя такие модели, мы можем потерять важную информацию.
Вы можете оценить выходные данные word2vec, посмотрев на его ближайших семантических соседей.
Например, вот что наша модель знает о сыре:
Чтобы проверить, насколько семантические модели могут отражать взаимодействие ингредиентов рецепта, мы применили модель тематического моделирования ко всем рецептам в образце.
То есть они попытались разделить набор данных рецептов на кластеры в соответствии с математически выявленными закономерностями.
Зная заранее, что определенная выборка рецептов принадлежит различным реальным классам, полученным из полученных данных, мы построили распределение принадлежности каждого реального класса к выявленным сгенерированным.
Наиболее очевидным был класс десертов, который сформировал темы 0 и 1, созданные моделью темы.
В этих темах, кроме десертов, почти нет других классов, что говорит о том, что десерты легко отделялись от других классов блюд. Кроме того, у каждой темы есть класс, который лучше всего ее описывает. Это означает, что наши модели хорошо математически описали неочевидное значение слова «вкус».
Генерация рецептов
Для создания новых рецептов мы использовали две рекуррентные нейронные сети.Для этого мы предположили, что в общем пространстве рецептов есть подпространство, отвечающее за рецепты пиццы.
Чтобы нейросеть научилась придумывать новые рецепты пиццы, нам нужно было найти это подпространство.
Эта задача по смыслу аналогична автокодированию изображения, когда мы представляем изображение как низкоразмерный вектор.
При этом векторы могут содержать большое количество специфической информации об изображении.
Например, для распознавания лиц на фотографии такие векторы могут хранить в отдельной ячейке информацию о цвете волос человека.
Мы выбрали этот подход именно из-за уникальных свойств скрытого подпространства.
Чтобы идентифицировать подпространство пиццы, мы пропустили рецепты через две рекуррентные нейронные сети.
Первый получал на вход рецепт пиццы и искал его представление в виде скрытого вектора.
Второй получал на вход скрытый вектор от первой нейросети и должен был предложить рецепт на его основе.
Рецепты на входе первой нейросети и на выходе второй должны были совпадать.
Так две нейронные сети в формате кодирования-декодирования научились правильно ретранслировать рецепт в скрытый (скрытый) вектор и обратно.
На основе этого нам удалось обнаружить скрытое подпространство, отвечающее за все многочисленные рецепты пиццы.
Молекулярная совместимость
Когда мы решали задачу создания рецепта пиццы, нам пришлось добавить в модель критерий молекулярной совместимости.Для этого мы использовали результаты совместные исследования ученые из Кембриджа и ряда университетов США.
В результате исследования было установлено, что лучше всего сочетаются ингредиенты с наибольшим количеством общих молекулярных пар.
Поэтому при создании рецепта нейросеть отдавала предпочтение ингредиентам со схожей молекулярной структурой.
Результат и AI пицца
В результате наша нейросеть научилась успешно создавать рецепты пиццы.Регулируя коэффициенты, ИИ может создавать как классические рецепты (например, «Маргарита» или «Пепперони»), так и сумасшедшие.
Один из таких сумасшедших рецептов лег в основу первой в мире молекулярно идеальной пиццы, приготовленной из десяти ингредиентов: томатного соуса, дыни, груши, курицы, помидоров черри, тунца, мяты, брокколи, сыра Моцарелла, мюсли.
Лимитированную серию можно было купить даже в одной из пиццерий «Додо».
Вот еще несколько интересных рецептов, которые вы можете попробовать дома:
- шпинат, сыр, помидоры, черные оливки, оливки, чеснок, перец, базилик, цитрусовые, дыня, ростки, пахта, лимон, окунь, орехи, брюква;
- лук, помидоры, оливки, черный перец, хлеб, тесто;
- курица, лук, маслины черные, сыр, соус, помидоры, оливковое масло, сыр моцарелла;
- помидоры, сливочное масло, сливочный сыр, перец, оливковое масло, сыр, черный перец, сыр моцарелла;
Все это было бы бредом, если бы мы не предоставили ссылки на самое интересное:Теги: #Машинное обучение #открытый исходный код #искусственный интеллект #Большие данные #машинное обучение #dodo is #foodtech #foodtech #foodtech #нейронные сети #додо пицца инженерия #додо пицца #додо пицца #пищевая наука и технологии
-
Vxlan В Nsx-V — Основа Устранения Неполадок
19 Oct, 24 -
Фрагмент Jevix Для Modx Revolution
19 Oct, 24