Как мы создали самую точную в мире базу данных продуктов питания: внутри системы нутриционных данных Nutrola
Закулисный взгляд на то, как Nutrola создала и поддерживает базу данных питания, которой доверяют более 2 миллионов пользователей — об источниках данных, процессах верификации и технологиях, обеспечивающих точность.
Когда вы добавляете куриную грудку в приложение для подсчёта калорий, вы доверяете тому, что показанное число верно. Вы доверяете тому, что кто-то где-то правильно измерил этот продукт, точно внёс данные и что никто не исказил их с тех пор.
Это доверие часто оказывается необоснованным.
Большинство приложений для отслеживания питания используют краудсорсинговые базы данных, куда любой пользователь может добавить запись. Результат — хаос. Вы ищете «банан» и находите 47 записей с совершенно разными показателями калорийности. Вы сканируете штрихкод и получаете данные трёхлетней давности, когда производитель ещё не изменил рецептуру продукта. Вы добавляете блюдо из ресторана, а запись была внесена кем-то, кто просто угадывал.
В Nutrola мы с самого начала решили, что точность данных — это не функция, а фундамент. Всё остальное, что мы создаём, зависит от правильности цифр. Это история о том, как мы создали базу данных питания, которой доверяют более 2 миллионов пользователей, и о системах, которые мы используем для поддержания её точности каждый день.
Почему большинство баз данных питания работают неправильно
Прежде чем объяснять, что мы делаем иначе, полезно понять, почему стандартный подход не работает.
Проблема краудсорсинга
Самые популярные приложения для подсчёта калорий используют краудсорсинговые базы данных. Пользователи добавляют записи о продуктах, другие пользователи их потребляют, и база данных растёт органически. Эта модель быстро масштабируется, поэтому приложения её и используют. Но она вносит систематические ошибки, которые накапливаются со временем.
Вот наиболее распространённые проблемы краудсорсинговых данных о питании:
| Проблема | Как это происходит | Влияние на пользователей |
|---|---|---|
| Дублирующиеся записи | Несколько пользователей добавляют один и тот же продукт с разными данными | Пользователи выбирают случайные записи и получают противоречивые результаты |
| Устаревшая информация | Продукты обновляют рецептуру, но старые записи остаются | Показатели калорий и макронутриентов могут отличаться на 20–40% |
| Неправильные размеры порций | Пользователи вводят данные в граммах, когда на этикетке указаны унции, и наоборот | Расчёты порций принципиально ошибочны |
| Отсутствие микронутриентов | Пользователи вводят только калории, пропуская витамины, минералы, клетчатку | Отслеживание микронутриентов становится ненадёжным |
| Региональные различия | Один и тот же продукт имеет разный состав в разных странах | Пользователи в одной стране получают данные, предназначенные для другой |
| Выдуманные записи | Пользователи вводят приблизительные или придуманные данные о питательной ценности | Невозможно отличить реальные данные от догадок |
Исследование 2024 года, опубликованное в Journal of the Academy of Nutrition and Dietetics, показало, что краудсорсинговые базы данных продуктов имели уровень ошибок от 15% до 30% для часто регистрируемых продуктов. Для менее распространённых продуктов уровень ошибок превышал 40%.
Это означает, что если вы добросовестно отслеживаете своё питание каждый день, ваше фактическое потребление может отличаться на сотни калорий. Для человека, который пытается поддерживать дефицит в 300 калорий для похудения, эта погрешность может полностью нивелировать его прогресс.
Проблема устаревших данных
Производители продуктов питания постоянно меняют свои рецепты и составы. Протеиновый батончик, в котором в прошлом году было 20 граммов белка, сегодня может содержать 18 граммов. Замороженное блюдо, которое было 350 калорий, теперь может быть 380. Меняется упаковка, заменяются ингредиенты, корректируются размеры порций.
В большинстве баз данных питания нет системы для обнаружения этих изменений. Оригинальная запись остаётся в базе навсегда, постепенно всё больше расходясь с реальностью.
Проблема сканирования штрихкодов
Сканирование штрихкодов — одна из самых популярных функций в приложениях для подсчёта калорий. Пользователям она нравится, потому что ощущается точной — вы сканируете именно тот продукт, который едите. Но базы данных штрихкодов имеют свои проблемы. Продукты используют одни и те же штрихкоды в разных регионах с разными составами. Торговые марки повторно используют штрихкоды при смене поставщиков. И многих продуктов просто нет в базе данных, особенно международных или специализированных.
Подход Nutrola: верифицированные данные на каждом уровне
Мы создали нашу базу данных на принципиально иной философии: каждый элемент данных о питании должен быть прослеживаем до верифицированного источника, и каждая запись должна постоянно проходить валидацию.
Вот как это работает на практике.
Уровень 1: Государственные и институциональные источники
Основу нашей базы данных составляют официальные государственные базы данных питания. Это золотой стандарт нутриционных данных, поскольку они создаются обученными специалистами по пищевым наукам с использованием стандартизированных лабораторных методов.
Наши основные институциональные источники включают:
- USDA FoodData Central — Министерство сельского хозяйства США поддерживает самую полную в мире базу данных продуктов, проанализированных в лабораторных условиях, с более чем 380 000 записей, охватывающих сырые ингредиенты, брендированные продукты и блюда из ресторанов.
- EFSA Comprehensive European Food Consumption Database — Европейское агентство по безопасности продуктов питания предоставляет данные о питательной ценности, учитывающие европейские рецептуры продуктов и региональные ингредиенты.
- Food Standards Australia New Zealand (FSANZ) — Охватывает продукты и ингредиенты, специфичные для рынков Австралии и Новой Зеландии.
- Health Canada Canadian Nutrient File — Лабораторно проанализированные данные о продуктах, часто потребляемых в Канаде.
- National Institute of Health and Nutrition (Japan) — Предоставляет данные о японских продуктах и ингредиентах, которые слабо представлены в западных базах данных.
Мы не просто импортируем эти базы данных и считаем дело сделанным. Мы нормализуем данные из разных источников, согласовываем противоречия (когда один и тот же продукт появляется в нескольких базах с немного разными значениями) и приводим всё к единой схеме, учитывающей размеры порций, способы приготовления и региональные различия.
Уровень 2: Данные о продуктах, верифицированные производителями
Для брендированных и упакованных продуктов мы поддерживаем прямые каналы передачи данных с производителями продуктов питания и розничными сетями. Когда компания обновляет рецептуру продукта, мы получаем обновлённую информацию о питательной ценности — часто ещё до того, как продукт появится на полках магазинов.
Этот уровень охватывает более 1,2 миллиона брендированных продуктов из 47 стран. Каждая запись включает:
- Полные данные панели пищевой ценности (не только калории и макронутриенты)
- Списки ингредиентов с маркировкой аллергенов
- Информацию о размере порции в нескольких единицах измерения
- Варианты региональных рецептур
- Статус продукта (активный, снятый с производства, с изменённой рецептурой)
Когда мы обнаруживаем изменение рецептуры, мы обновляем запись и помечаем её, чтобы пользователи, которые регулярно добавляют этот продукт, видели актуальные данные в дальнейшем. Мы не удаляем старые записи — мы архивируем их с отметками времени, чтобы исторические записи оставались точными.
Уровень 3: Валидация данных с помощью ИИ
Именно здесь наш подход наиболее существенно отличается от отраслевого стандарта. Мы используем модели машинного обучения для непрерывной валидации каждой записи в нашей базе данных, выявляя ошибки, которые пропустила бы ручная проверка.
Наша система валидации проверяет:
Статистические выбросы. Если запись о продукте имеет значения калорий или макронутриентов, выходящие за пределы ожидаемого диапазона для данной категории продуктов, она помечается для проверки. Куриная грудка с 400 калориями на 100 граммов будет обнаружена немедленно.
Согласованность макронутриентов и калорий. Калории можно рассчитать из макронутриентов (4 калории на грамм белка, 4 на грамм углеводов, 9 на грамм жира, 7 на грамм алкоголя). Если заявленные калории в записи не совпадают с суммой, рассчитанной из макронутриентов, что-то не так. Наша система обнаруживает расхождения от 5%.
Перекрёстная проверка по источникам. Когда один и тот же продукт присутствует в нескольких исходных базах данных, мы сравниваем значения. Значительные расхождения запускают ручную проверку нашей командой по нутриционным данным.
Временная согласованность. Если данные о питательной ценности брендированного продукта внезапно меняются без соответствующего обновления от производителя, запись помечается. Это позволяет выявить случаи, когда импорт базы данных внёс ошибки или когда продукт был спутан с похожим.
Сигналы поведения пользователей. Когда тысячи пользователей добавляют один и тот же продукт, их размеры порций и частота потребления создают поведенческую сигнатуру. Если новая запись вызывает необычные паттерны логирования (например, люди постоянно корректируют размер порции), это указывает на то, что размер порции по умолчанию может быть неверным.
Уровень 4: Экспертная проверка специалистами
Технологии выявляют большинство ошибок, но некоторые требуют человеческого суждения. Наша команда по нутриционным данным включает зарегистрированных диетологов и специалистов по пищевым наукам, которые занимаются:
- Записями, помеченными системой валидации на основе ИИ
- Сложными блюдами, такими как многокомпонентные ресторанные блюда
- Региональными продуктами, которых нет в стандартных базах данных
- Сообщениями пользователей о проблемах с данными (мы серьёзно относимся к каждому обращению)
- Новыми категориями продуктов, на которых наши модели ещё не обучены
Каждая запись, прошедшая экспертную проверку, помечается примечаниями проверяющего, источником исправления и оценкой достоверности. Это создаёт журнал аудита, который помогает нам совершенствовать наши автоматизированные системы со временем.
Техническая инфраструктура нашей базы данных
Создание точных данных — лишь половина задачи. Надёжное предоставление этих данных более чем 2 миллионам пользователей требует инфраструктуры, о которой большинство людей даже не задумывается.
Архитектура синхронизации в реальном времени
Когда мы обновляем запись о продукте, изменение должно дойти до каждого пользователя, у которого этот продукт есть в журнале. Мы используем событийно-ориентированную архитектуру, при которой обновления базы данных доходят до устройств пользователей в течение нескольких минут. Это означает, что если мы исправим ошибку в популярном продукте в 14:00, пользователи, открывшие Nutrola в 14:05, увидят исправленные значения.
Мультиязычный поиск продуктов
Названия продуктов сильно различаются в разных языках и регионах. «Courgette» в Великобритании — это «zucchini» в США. «Skyr» в Исландии часто классифицируется как йогурт в других странах. Наша поисковая система использует мультиязычную онтологию продуктов, которая сопоставляет эквивалентные продукты на 18 языках, поэтому пользователи всегда находят то, что ищут, независимо от того, как они это называют.
Интеллектуальная система размеров порций
Исходные данные о питательной ценности обычно предоставляются на 100 граммов, но никто не мыслит стограммовыми порциями. Люди думают в категориях «горсть», «чашка», «среднее яблоко» или «один ломтик». Мы поддерживаем обширную базу данных размеров порций, которая сопоставляет распространённые описания порций с весом в граммах для каждой категории продуктов.
Эта система также обеспечивает работу функции распознавания фото с помощью ИИ в Nutrola. Когда вы фотографируете свой приём пищи, наша модель определяет не только какие продукты на вашей тарелке, но и сколько их — и обращается к тем же верифицированным данным о размерах порций для расчёта состава питательных веществ.
Как мы справляемся с самыми сложными случаями
Для некоторых продуктов действительно сложно предоставить точные данные о питательной ценности. Вот как мы подходим к самым сложным категориям.
Блюда из ресторанов и фастфуда
Сетевые рестораны обычно публикуют информацию о питательной ценности, а вот независимые рестораны — нет. Для сетевых ресторанов мы поддерживаем прямые контакты для получения данных о питательной ценности и обновляем их при изменении меню. Для независимых ресторанов мы используем подход на основе рецептуры: наша система разбивает блюдо на составляющие ингредиенты, оценивает количества на основе стандартных ресторанных методов приготовления и рассчитывает общий профиль питательной ценности.
Это не идеально, но значительно точнее, чем альтернатива (угадывание или использование обобщённой записи «ресторанный сэндвич с курицей»). ИИ-коучинг Nutrola также помогает пользователям понять степень неопределённости: если мы менее уверены в данных о питательной ценности ресторанного блюда, мы об этом сообщаем.
Домашние блюда и блюда по рецептам
Когда вы готовите дома, профиль питательной ценности вашего блюда зависит от конкретных ингредиентов и их количества. Nutrola решает эту задачу с помощью конструктора рецептов, который позволяет вам ввести ингредиенты и рассчитывает питательную ценность на порцию, используя наши верифицированные данные об ингредиентах. Точность результата зависит от точности вводимых данных, поэтому мы также поддерживаем фотологирование для домашних блюд.
Международные и специализированные продукты
Многие приложения для отслеживания питания сильно ориентированы на американские продукты. Если вы употребляете японскую, индийскую, эфиопскую или любую другую кухню, недостаточно представленную в западных базах данных, вы часто остаётесь с неполными или неточными данными. Мы значительно инвестировали в расширение охвата международных продуктов, работая с региональными базами данных питания, местными специалистами по пищевым наукам и обратной связью от сообщества для заполнения этих пробелов.
Наша база данных в настоящее время включает верифицированные записи для продуктов из более чем 120 кухонь мира, с особой глубиной в азиатской, латиноамериканской, ближневосточной и африканской кулинарных категориях.
Измерение точности: как мы знаем, что это работает
Заявления о точности бессмысленны без измерений. Вот как мы проверяем качество нашей базы данных.
Внутренний бенчмаркинг
Каждый квартал наша команда выбирает 500 случайных записей из нашей базы данных и сравнивает их с данными свежего лабораторного анализа или последними значениями из государственных баз данных. Мы отслеживаем среднюю абсолютную ошибку по калориям, белку, углеводам, жирам и клетчатке. Наш текущий показатель: 97,4% точности для записей с государственными или верифицированными производителем источниками.
Исследования точности с участием пользователей
Мы сотрудничаем с университетскими программами по питанию для сравнения дневников питания, ведённых через Nutrola, с записями взвешенных продуктов (золотой стандарт в исследованиях питания). Эти исследования последовательно показывают, что пользователи Nutrola достигают более точного соответствия с фактическим потреблением, чем пользователи других популярных приложений для отслеживания.
Отслеживание уровня ошибок
Мы отслеживаем количество исправлений данных в месяц как процент от общего числа записей в базе данных. Наш текущий уровень ошибок составляет 0,03% — это означает, что 99,97% записей не требуют исправлений в любой данный месяц. Для сравнения: краудсорсинговые базы данных обычно имеют ежемесячный уровень обнаружения ошибок 2–5%.
| Показатель | Nutrola | Среднеотраслевое значение (краудсорсинг) |
|---|---|---|
| Точность по сравнению с лабораторным анализом | 97,4% | 70–85% |
| Ежемесячный уровень ошибок | 0,03% | 2–5% |
| Записи с полными данными о микронутриентах | 89% | 30–45% |
| Среднее время обновления продуктов с изменённой рецептурой | 48 часов | 6–18 месяцев |
| Уровень дублирования записей | < 0,1% | 15–30% |
Что это значит для вас
Если вы дочитали до этого места, возможно, вы думаете: «Я просто хочу записывать свою еду. Почему меня должна волновать архитектура базы данных?»
Вот почему это важно: каждое решение о питании, которое вы принимаете на основе отслеживаемых данных, может быть лишь настолько точным, насколько точны сами данные.
Если ваше приложение показывает, что вы съели 1800 калорий сегодня, но реальная цифра — 2100, вашего дефицита в 300 калорий не существует. Если приложение говорит, что вы набрали 150 граммов белка, но реальная цифра — 125, ваш план по набору мышечной массы не выполняется. Если приложение отслеживает ваш натрий на уровне 2000 мг, а на самом деле это 2800 мг, у вашей стратегии контроля артериального давления есть слепое пятно.
Точные данные — это не бонус. Это разница между планом питания, который работает, и тем, который лишь кажется таковым.
В Nutrola мы придерживаемся именно этого стандарта. Не потому что это легко — это по-настоящему одна из самых сложных технических задач в сфере нутриционных технологий — а потому что наши пользователи принимают реальные решения о здоровье на основе цифр, которые мы им показываем. Эти цифры должны быть правильными.
Что дальше
Мы постоянно инвестируем в инфраструктуру нашей базы данных. Над чем мы сейчас работаем:
- Расширение лабораторных партнёрств для прямого анализа продуктов, недостаточно представленных в существующих базах данных
- Совершенствование наших моделей валидации на основе ИИ с новыми обучающими данными от нашей растущей базы пользователей
- Углубление интеграции с производителями для ещё более быстрого обнаружения изменений в продуктах
- Разработка региональных баз данных продуктов для рынков, где существующие данные о питательной ценности ограничены
- Улучшение нашего движка анализа рецептов для более точной оценки питательной ценности сложных многокомпонентных блюд
Цель никогда не менялась: дать каждому пользователю Nutrola максимально точную картину того, что он ест, чтобы он мог принимать информированные решения о своём здоровье.
Часто задаваемые вопросы
Сколько продуктов в базе данных Nutrola?
База данных Nutrola содержит более 3 миллионов верифицированных записей о продуктах, включая сырые ингредиенты, брендированные продукты из 47 стран, ресторанные блюда крупных сетей и распространённые домашние блюда. Каждая запись связана с верифицированным источником и постоянно проходит валидацию нашей системой контроля качества на основе ИИ.
Как точность базы данных Nutrola соотносится с другими приложениями?
Независимый бенчмаркинг показывает, что Nutrola достигает 97,4% точности по сравнению с лабораторным анализом, тогда как среднеотраслевой показатель для приложений с краудсорсинговыми базами данных составляет 70–85%. Ключевое отличие — наш многоуровневый процесс верификации, который выявляет ошибки до того, как они попадут к пользователям, а не полагается на пользовательские отчёты.
Что происходит, когда продукт меняет рецептуру или состав?
Nutrola поддерживает прямые каналы передачи данных с производителями продуктов питания и отслеживает изменения в базах данных продуктов. При обнаружении изменения рецептуры мы обычно обновляем запись в течение 48 часов. Старые данные о питательной ценности архивируются, чтобы ваши исторические записи оставались точными для периода, когда вы употребляли продукт с оригинальной рецептурой.
Могу ли я сообщить об ошибке в базе данных?
Да. Каждая запись о продукте в Nutrola включает опцию «Сообщить о проблеме». Сообщения поступают непосредственно нашей команде по нутриционным данным для проверки, и исправления обычно вносятся в течение 24 часов. Мы серьёзно относимся к каждому обращению, потому что обратная связь от пользователей — один из наших самых ценных сигналов качества.
Охватывает ли Nutrola международные и региональные продукты?
Nutrola включает верифицированные данные о питательной ценности продуктов из более чем 120 кухонь мира. Мы получаем данные из региональных государственных баз данных питания, местных институтов пищевых наук, а в некоторых случаях — из прямого лабораторного анализа. Если вы регулярно употребляете блюда определённой кухни, которая, по вашему мнению, недостаточно представлена, мы призываем вас обратиться к нам — расширение охвата является нашим постоянным приоритетом.
Почему разные приложения для подсчёта калорий показывают разные цифры для одного и того же продукта?
Разные приложения используют разные источники данных. Приложения, которые полагаются на краудсорсинговые данные, могут иметь несколько записей для одного и того же продукта с различной степенью точности. Nutrola использует верифицированные источники (государственные базы данных, данные производителей, лабораторный анализ) и валидирует каждую запись с помощью ИИ и экспертной проверки, поэтому наши цифры согласованы и надёжны.
Готовы трансформировать отслеживание питания?
Присоединяйтесь к тысячам тех, кто изменил свой путь к здоровью с Nutrola!