Як побудована база даних продуктів Nutrola: від даних USDA до 12 мільйонів перевірених записів

Кожен калорійний показник у Nutrola має своє походження. Ось як саме створюється, перевіряється та підтримується база даних продуктів — і чому точність є критично важливою.

Medically reviewed by Dr. Emily Torres, Registered Dietitian Nutritionist (RDN)

Коли ви шукаєте "куряча грудка на грилі" у додатку для обліку калорій і бачите "165 калорій на 100 грамів", це число не з'явилося з нізвідки. Хтось його виміряв. Хтось його перевірив. Хтось вирішив, що воно достатньо точне, щоб показати мільйонам користувачів, які приймають рішення про своє здоров'я на основі цих даних.

Якість бази даних продуктів — це невидима основа під кожним додатком для обліку калорій. Якщо база даних помилкова, все, що на ній побудовано, також буде помилковим: ваша добова калорійна норма, розподіл макронутрієнтів, тижневі тренди, рекомендації вашого тренера і, зрештою, ваші результати. Однак більшість користувачів ніколи не задумуються, звідки беруться ці числа, а більшість додатків ніколи не пояснюють це.

Ця стаття детально описує, як побудована база даних продуктів Nutrola, від її основ на основі державних даних до 12 мільйонів перевірених записів, які вона містить сьогодні. Також пояснюється, чому якість бази даних так сильно варіюється між додатками і що це означає для точності вашого обліку.

Основи: USDA FoodData Central

Кожна серйозна база даних харчування починається з Міністерства сільського господарства США (USDA). USDA вимірює харчову цінність продуктів з 1890-х років, а їхня сучасна база даних, FoodData Central, є найбільшою та найретельніше перевіреною колекцією даних про склад продуктів у світі.

FoodData Central містить кілька наборів даних. SR Legacy надає детальні профілі поживних речовин для приблизно 7600 поширених продуктів, кожен з яких є результатом лабораторного аналізу, а не оцінки. Продукти фізично купуються, готуються відповідно до стандартизованих протоколів і аналізуються за допомогою перевірених методів аналітичної хімії. Foundation Foods є його новішим, більш детальним наступником, що надає дані про варіативність, розміри зразків та метадані про сорт, породу, походження та сезон збору. FNDDS охоплює змішані страви та рецепти, які зазвичай споживаються, з даними про розмір порції, пов'язаними з домашніми мірами. Branded Foods містить дані про упаковані продукти, отримані через партнерство з Label Insight (тепер NielsenIQ).

Nutrola обробляє всі чотири набори даних, нормалізує їх до єдиної схеми та перехресно перевіряє записи для усунення розбіжностей. Коли SR Legacy та Foundation Foods містять дані для одного й того ж продукту, перевага надається значенням Foundation Foods, оскільки вони базуються на більш нових аналізах.

Ця основа USDA забезпечує приблизно 400 000 унікальних записів продуктів. Це сильна відправна точка, але її недостатньо для сучасного додатку для обліку калорій. Більшість людей не їдять "Курка, бройлер, грудка, м'ясо тільки, приготоване, запечене". Вони їдять сендвіч Chick-fil-A, заморожену страву Trader Joe's або домашню страву з рецепту, який їхня бабуся привезла з іншої країни. Щоб охопити весь спектр того, що насправді їдять реальні люди, потрібно виходити далеко за межі державних даних.

Додавання даних про брендові продукти

Шар брендових продуктів є найбільшим розширенням бази даних. Упаковані продукти з етикетками харчової цінності становлять значну частину звичайного раціону в США та інших розвинених країнах, і користувачі очікують знайти свої конкретні продукти, коли шукають.

Nutrola отримує дані про брендові продукти через кілька каналів.

Прямі партнерства з виробниками забезпечують найвищу якість даних про бренди. Коли виробник ділиться харчовими даними безпосередньо, вони походять з тих же лабораторних аналізів, які використовуються для створення етикетки харчової цінності. Nutrola підтримує угоди про обмін даними з сотнями виробників продуктів.

Інтеграція бази даних штрих-кодів захоплює довгий хвіст продуктів через відкриті бази даних штрих-кодів, державні реєстри етикеток продуктів і комерційних постачальників даних. Коли користувач сканує невідомий штрих-код, система ініціює процес перевірки, перш ніж запис стане доступним для всіх користувачів.

Сканування етикеток та OCR створює записи з фізичних етикеток харчової цінності. Кожен запис, отриманий за допомогою OCR, проходить перевірку, яка перевіряє на наявність поширених помилок витягу: неправильно прочитані десяткові знаки, переплутані цифри та значення поза правдоподібними межами.

Періодичні цикли оновлення забезпечують актуальність даних про бренди. Виробники регулярно реформулюють продукти. Nutrola проводить квартальні цикли оновлення для продуктів з високим обсягом і річні оновлення для більш широкого каталогу, позначаючи записи, де значення змінилися.

Цей шар брендових продуктів додає приблизно 1,5 мільйона записів до бази даних, кожен з яких пов'язаний з конкретними штрих-кодами UPC/EAN та ідентифікаторами продуктів.

Записи, надані користувачами, та проблема точності

Більшість великих баз даних для обліку калорій сильно покладаються на краудсорсингові дані — записи, надіслані користувачами, які вручну вводять харчову інформацію з етикеток, рецептів або своїх власних оцінок. Цей підхід швидко масштабується. Він також є найбільшим джерелом помилок у базах даних харчування.

Проблеми з краудсорсинговими даними про продукти добре документовані. Огляд 2020 року, опублікований у Nutrients автором Evenepoel та ін., виявив рівень помилок від 15 до 25 відсотків у значеннях макронутрієнтів у краудсорсингових базах даних харчування. Типи помилок включають наступні.

Помилки введення даних. Користувач вводить 52 грами білка замість 5,2 грама. Помилка десяткового знака, яка змушує порцію йогурту здаватися такою ж, як ціла куряча грудка. Ці помилки поширені, оскільки ручне введення даних за своєю суттю схильне до помилок, і більшість краудсорсингових систем не мають механізму для їх виявлення до публікації запису.

Дублікати та суперечливі записи. Пошук "банан" у великій краудсорсинговій базі даних може виявити тридцять записів з різними калорійними значеннями. Деякі вказують на маленький банан, деякі — на середній, деякі — на великий. Деякі включають вагу шкірки, деякі — ні. Деякі точні, деякі — абсолютно помилкові. Користувачеві залишається здогадуватися, який запис правильний, і у нього немає надійного способу це визначити.

Застаріла інформація про продукти. Користувач надсилає дані про граноловий батончик у 2022 році. Виробник реформулює продукт у 2024 році, зменшуючи вміст цукру та збільшуючи клітковину. Старий запис залишається в базі даних безстроково, повертаючи неправильні значення для всіх, хто його вибирає.

Оцінка замість вимірювання. Деякі записи, надіслані користувачами, не базуються на даних з етикеток, а на особистій оцінці користувача про харчову цінність продукту. Ці записи можуть відхилятися від фактичних значень на 50 відсотків і більше.

Несумісні розміри порцій. Один запис для "рису, приготованого" використовує порцію 100 грамів. Інший — одну чашку. Ще один — "одна порція", не визначаючи, що це означає. Користувачі, які вибирають між цими записами, можуть не помітити розбіжності в розмірі порції, що призводить до помилок, які накопичуються під час прийомів їжі.

Nutrola приймає записи, надані користувачами, оскільки вони є важливими для захоплення повної різноманітності продуктів, які їдять люди, включаючи регіональні страви, специфічні для ресторанів, та домашні рецепти, які не існують у жодній офіційній базі даних. Однак кожен запис, наданий користувачем, проходить через процес перевірки, перш ніж стати загальнодоступним. Запис одразу стає доступним для особи, яка його створила, але не з'являється для інших користувачів, поки не буде перевірено.

Процес перевірки

Кожен запис продукту в Nutrola, незалежно від його джерела, проходить через багатоступеневий процес перевірки, перш ніж потрапити до загальної бази даних.

Етап 1: Автоматизовані перевірки правдоподібності. Алгоритм аналізує подані харчові значення на відповідність відомим обмеженням. Калорії повинні бути узгоджені з заявленими макронутрієнтами (білки, вуглеводи, жири) в межах визначеної толерантності. Система Атватера надає коефіцієнти перетворення: 4 калорії на грам білка, 4 калорії на грам вуглеводів, 9 калорій на грам жиру та 7 калорій на грам алкоголю. Якщо користувач подає запис, що стверджує 200 калорій, 30 грамів білка, 20 грамів вуглеводів і 15 грамів жиру, розрахункове значення калорій становить 335, а не 200. Запис позначається для перегляду.

Цей етап також перевіряє наявність неправдоподібних значень у категоріях продуктів. Запис про фрукт, що стверджує 40 грамів жиру на порцію, запис про овоч, що стверджує 60 грамів білка на 100 грамів, або будь-який запис, де один макронутрієнт перевищує загальну вагу порції, автоматично позначаються. Ці перевірки виявляють більшість помилок введення даних, включаючи помилки десяткових знаків і плутанину з одиницями.

Етап 2: Перехресна перевірка. Система порівнює поданий запис з існуючими записами для тих же або подібних продуктів. Якщо база даних USDA містить референсний запис для "сиру чеддер", а користувач подає запис про брендовий сир чеддер з калорійними значеннями на 40 відсотків нижчими, ніж у референсному записі USDA, запис позначається для ручного перегляду. Невеликі відхилення очікуються, оскільки брендові продукти можуть варіюватися. Великі відхилення вказують на ймовірні помилки.

Етап 3: Перегляд дієтологом. Записи, які проходять автоматизовані перевірки, але потрапляють у категорії високої важливості, такі як основні продукти, популярні запити або записи з прикордонними показниками правдоподібності, направляються до черги перегляду дієтологом. Команда зареєстрованих дієтологів і харчових науковців Nutrola перевіряє ці записи на основі авторитетних джерел, перехресно перевіряючи значення з веб-сайтів виробників, урядових баз даних з кількох країн та опублікованих таблиць складу продуктів.

Етап 4: Консенсус спільноти. Для записів, які вже деякий час перебувають у базі даних, патерни використання надають додатковий сигнал якості. Якщо багато користувачів вибирають запис і ніхто не повідомляє про його неточність, це позитивний сигнал. Якщо користувачі часто вибирають запис і потім негайно редагують значення, це свідчить про те, що оригінальний запис може містити помилки. Ці поведінкові сигнали повертаються в процес перегляду, виявляючи потенційно проблемні записи для повторного аналізу.

Процес перегляду дієтологом

Людський етап перевірки відрізняє перевірену базу даних від краудсорсингової. Автоматизовані перевірки виявляють очевидні помилки, але тонкі неточності вимагають людського судження.

Команда перегляду дієтологів Nutrola працює за пріоритетною системою. Продукти пріоритизуються для перегляду на основі обсягу запитів, ймовірності помилки та харчової значущості. Помилка в калорійності води (яка повинна дорівнювати нулю) не має практичного наслідку. Помилка в калорійності оливкової олії, одного з найбільш калорійних звичайних продуктів, може спотворити добову норму користувача на сотні калорій.

Процес перегляду для одного запису включає в себе визначення найавторитетнішого джерела (дані лабораторії USDA для сирих товарів, дані виробника для брендових продуктів, опублікована харчова інформація для страв з ресторанів), порівняння всіх заявлених поживних речовин з цим джерелом, оцінку точності розміру порції та перевірку метаданих пошуку, щоб користувачі могли насправді знайти запис.

Складний запис, наприклад, традиційна регіональна страва без стандартизованого рецепту, може вимагати 30 хвилин або більше дослідження. Просте підтвердження брендових продуктів займає менше хвилини. Команда пріоритизує записи з високим впливом, зосереджуючи час перегляду там, де це приносить найбільше покращення загальної точності бази даних.

Як помилки виявляються та виправляються

Жодна база даних з 12 мільйонами записів не є безпомилковою. Мета полягає не в досягненні досконалості, а в систематичному зменшенні помилок з часом, разом з швидким виправленням помилок, коли вони виявляються.

Nutrola використовує кілька механізмів виявлення помилок, які працюють паралельно.

Повідомлення користувачів. Кожен запис продукту в додатку містить опцію "Повідомити про проблему". Користувачі можуть позначити записи як такі, що містять неправильні калорії, помилкові макронутрієнти, застарілу інформацію, неправильні розміри порцій або інші проблеми. Повідомлення розподіляються за обсягом та серйозністю. Одне повідомлення про запис з низьким обсягом потрапляє в стандартну чергу перегляду. Кілька повідомлень про запис з високим обсягом викликають негайний перегляд.

Автоматизоване виявлення аномалій. Статистичні моделі контролюють базу даних на наявність записів, які значно відрізняються від норм їхніх категорій продуктів. Якщо середня калорійність усіх записів сиру в базі даних становить 350 калорій на 100 грамів, запис про сирний продукт, що стверджує 35 калорій на 100 грамів, автоматично позначається. Ці моделі працюють безперервно та виявляють помилки, які окремі користувачі можуть не помітити або не повідомити.

Перевірка сканування штрих-кодів. Коли користувачі сканують штрих-код продукту, повернуті дані порівнюються з найновішими даними виробника. Якщо виробник оновив свою харчову інформацію, а запис у базі даних ще не був оновлений, розбіжність викликає процес оновлення.

Перехресна перевірка бази даних. Nutrola періодично порівнює свої записи з оновленими випусками бази даних USDA, міжнародними базами даних складу продуктів та даними партнерів. Записи, які відхилилися від своїх референсних джерел, позначаються для перегляду та виправлення.

Аудити харчової консистенції. Періодичні аудити перевіряють випадкові вибірки в кожній категорії продуктів, перевіряючи внутрішню консистенцію. Ці аудити виявили кластери помилок, такі як партії імпортованих записів, де значення клітковини були переплутані зі значеннями цукру через помилки в мапуванні стовпців.

Коли помилка підтверджується, виправлення застосовується негайно та поширюється на всіх користувачів. Користувачі, які нещодавно реєстрували цей продукт, отримують сповіщення, що дозволяє їм переглянути та відкоригувати свої записи.

Регіональні бази даних продуктів для міжнародної кухні

База даних продуктів, побудована виключно на американських даних, є недостатньою для глобальної аудиторії. Користувач у Японії, який шукає "онігірі", потребує точних результатів. Користувач в Індії, який шукає "дал макхані", потребує запису, що відображає фактичні методи приготування та інгредієнти, які використовуються в індійських кухнях, а не американізовану ресторанну адаптацію.

Nutrola інтегрує дані про склад продуктів з державних баз даних більш ніж 30 країн і регіонів.

Європа: Мережа EuroFIR координує дані між європейськими країнами. Національні бази даних з Великобританії (McCance і Widdowson's), Німеччини (Bundeslebensmittelschluessel) та Франції (CIQUAL) надають записи для регіональних продуктів і місцевих брендових товарів.

Східна Азія: Стандартні таблиці складу продуктів Японії, Національна стандартна база даних складу продуктів Південної Кореї та Таблиці складу продуктів Китаю вносять тисячі записів для регіональних продуктів, включаючи варіанти, специфічні для приготування. Різниця між приготованим рисом і смаженим рисом, між сирим тофу та смаженим тофу не є тривіальною, і ці бази даних фіксують ці відмінності.

Південна Азія: Національний інститут харчування Індії надає дані для продуктів, унікальних для субконтиненту, включаючи регіональні злаки, приготування бобових та молочні продукти, такі як панір і гі, з харчовими профілями, що відрізняються від їхніх західних аналогів.

Латинська Америка та Близький Схід/Африка: Таблиці складу продуктів з Бразилії (TACO), Мексики (BDCA) та регіональні бази даних з Близького Сходу та Африки вносять дані для основних продуктів, таких як тефф, інджера, страви на основі тахіні та регіональні приготування, які відсутні в північноамериканських базах даних.

Інтеграція цих джерел не є простим імпортом даних. Різні країни використовують різні аналітичні методи, визначення поживних речовин та конвенції щодо порцій. "Чашка" — це 240 мл у США, 200 мл в Японії та 250 мл в Австралії. Команда з обробки даних Nutrola підтримує шар нормалізації, який перетворює всі вхідні міжнародні дані на єдиний стандарт: метричні одиниці, стандартизовані визначення поживних речовин та уніфіковані коди класифікації продуктів.

Порівняння джерел бази даних

Наступна таблиця підсумовує характеристики кожного основного джерела, яке вносить дані до бази даних продуктів Nutrola.

Джерело Записи Точність Охоплення Частота оновлення Обмеження
USDA FoodData Central ~400,000 Дуже висока (лабораторний аналіз) Сильна для сирих товарів та брендових продуктів США Щорічні основні випуски, постійні оновлення Обмежені міжнародні продукти, обмежена кількість ресторанних позицій
Етикетки виробників ~1,500,000 Висока (регульована, перевірена FDA) Відмінна для упакованих товарів Варіюється за виробником; квартальне оновлення в Nutrola Охоплює лише упаковані продукти, допускається 20% варіація FDA
Міжнародні державні бази даних ~2,000,000 Висока (лабораторний аналіз, варіюється за країною) Відмінна для регіональних продуктів Щорічно або рідше Непослідовні стандарти між країнами, деякі застарілі
Краудсорсинг (записи, надані користувачами) ~6,000,000 Змінна (15-25% рівень помилок до перевірки) Найширше охоплення, включаючи нішеві продукти Безперервно Потребує процесу перевірки; сирі дані ненадійні
Перевірені дієтологами ~2,100,000 Дуже висока (перехресно перевірена, перевірена людиною) Пріоритизовано за обсягом запитів Постійний пріоритетний перегляд Ресурсомісткий, не може охопити кожен запис

Ці джерела не є взаємовиключними. Один продукт може мати дані з кількох джерел. Коли виникають конфлікти, ієрархія вирішення така: дані лабораторії USDA або еквівалентні державні дані спочатку, дані виробника — другі, перевірені дані дієтологами — треті, а перевірені краудсорсингові дані — четверті. Ця ієрархія забезпечує, щоб найбільш ретельно перевірені дані завжди мали пріоритет.

Чому точність важливіша за розмір

Деякі конкуренти рекламують розміри бази даних у 15, 20 або навіть 30 мільйонів записів. Розмір без якості не має сенсу і може бути активним шкідливим.

База даних з 30 мільйонами записів і 20-відсотковим рівнем помилок містить 6 мільйонів неправильних записів. Користувач, який реєструє один з цих записів, тепер відстежує неточні дані з повною впевненістю в їхній правильності. Помилка накопичується: якщо запис для сніданку завищує білок на 10 грамів, і ви їсте його п'ять разів на тиждень, ви вважаєте, що спожили на 200 грамів більше білка на місяць, ніж насправді. Якщо ви зменшите споживання білка в інших продуктах на основі цих даних, наслідки будуть реальними.

Ось чому Nutrola надає пріоритет перевіреній кількості записів над сирою кількістю записів. Запис, якого немає, є нейтральним. Запис, який існує, але є неправильним, є активним шкодливим.

Як зростає база даних

База даних не є статичною. Вона постійно зростає через кілька каналів. Автоматизовані системи контролюють запити на сканування штрих-кодів, визначаючи продукти, які користувачі шукають, але які ще не існують, і пріоритизують продукти з високим попитом для додавання. Надання користувачами записів додає регіональні страви, ресторанні позиції та домашні рецепти, які не охоплюються жодною офіційною базою даних. Партнерства з виробниками забезпечують, щоб коли великий ланцюг запускає новий пункт меню, харчова інформація була доступна в день запуску. А періодичні випуски USDA та міжнародних баз даних інтегруються, як тільки стають доступними.

Часто задавані питання

Наскільки точна база даних продуктів Nutrola в порівнянні з іншими додатками?

Перевірені записи Nutrola мають середню точність в межах 5 відсотків від лабораторно виміряних значень для макронутрієнтів, на основі внутрішніх аудитів, які порівнюють записи з незалежними аналітичними даними. Неперевірені краудсорсингові бази даних зазвичай показують рівні помилок від 15 до 25 відсотків. Різниця полягає в процесі перевірки, через який повинен пройти кожен запис, перш ніж стати загальнодоступним.

Що відбувається, коли я сканую штрих-код, і продукт не знайдено?

Додаток пропонує вам ввести харчову інформацію з етикетки. Ваш запис одразу стає доступним для вашого користування, а потім потрапляє в процес перевірки, перш ніж з'явитися для інших користувачів. Продукти з високим попитом пріоритизуються для швидкої перевірки.

Як часто оновлюється база даних?

Безперервно. Записи, надані користувачами, обробляються щодня. Дані про брендові продукти оновлюються щоквартально для продуктів з високим обсягом. Випуски USDA та міжнародні дані інтегруються протягом двох тижнів після публікації. Виправлення помилок зазвичай застосовуються протягом 24-48 годин після підтвердження.

Чи можу я довіряти калорійним показникам для страв у ресторанах?

Для великих ланцюгів, які публікують офіційні харчові дані, записи отримуються безпосередньо і є такими ж точними, як і вимірювання самого ланцюга. Для незалежних ресторанів записи є оцінками на основі рецептів з більшою маржею невизначеності. Nutrola позначає записи ресторанів індикатором впевненості, щоб ви могли бачити, чи дані походять з офіційного джерела або є оцінкою.

Чому Nutrola іноді показує інші значення, ніж етикетка на моєму продукті?

Три поширені причини: виробник міг реформулювати продукт, визначення розміру порції можуть відрізнятися, або правила округлення харчових фактів створюють невеликі розбіжності (зазвичай в межах 5-10 калорій). Повідомлення про розбіжність через додаток викликає оновлення.

Як Nutrola обробляє домашні рецепти?

Ви створюєте власні записи рецептів, комбінуючи записи окремих інгредієнтів з перевіреної бази даних, відкориговані за порціями. Оскільки записи інгредієнтів перевірені, основне джерело помилки — це вимірювання порцій, а не погані дані.

Що відрізняє базу даних Nutrola від відкритих альтернатив?

Відкриті бази даних, такі як Open Food Facts, надають цінні дані, але працюють без систематичної перевірки. Записи подаються волонтерами та публікуються без перевірок правдоподібності або перегляду дієтологами. Nutrola використовує відкриті дані як один з багатьох входів, підпорядковуючи всі імпортовані записи тому ж процесу перевірки, що й будь-яке інше джерело.

Постійна робота

Створення бази даних продуктів — це не проект з фінішною лінією. Продукти змінюються. Нові продукти запускаються. Старі продукти реформулюються або знімаються з виробництва. Аналітичні методи покращуються.

12 мільйонів записів у базі даних Nutrola сьогодні не будуть такими ж 12 мільйонами записів через рік. Деякі будуть оновлені, деякі видалені, а сотні тисяч нових записів додані. Процес перевірки виявить помилки, які могли прослизнути в попередніх версіях. Команда дієтологів поступово збільшить частку записів, які мають підтверджену людську впевненість.

Ніхто не завантажує додаток для обліку калорій, тому що йому цікаві дані про нормалізацію складу продуктів. Але кожен точний підрахунок калорій, кожен надійний розподіл макронутрієнтів, кожна довірена добова норма залежать від правильної роботи цієї інфраструктури, яка працює непомітно за кожним результатом пошуку. Коли ви реєструєте свій обід, і цифри вірні, це не випадковість. Це результат системи, побудованої спеціально для того, щоб забезпечити їхню правильність.

Готові трансформувати своє відстеження харчування?

Приєднуйтесь до тисяч, які трансформували свою подорож до здоров'я з Nutrola!