食品数据库规模与准确性 — 更大的数据库是否意味着更好的追踪?
MyFitnessPal 拥有 1400 万条食品记录,而 Cronometer 约有 100 万条。较小的数据库准确性高出 3-6 倍。本文探讨了为什么更大的食品数据库会导致更差的卡路里追踪结果,以及应该关注哪些方面。
拥有 1400 万条记录的食品数据库,其卡路里错误率是记录不足 100 万条的数据库的 3-6 倍。 这一反直觉的发现适用于每一个食品类别:优先考虑数量而非质量的众包数据库,用户每条记录的平均卡路里错误率高达 15-30%,而经过实验室和政府标准验证的策划数据库则将错误率控制在 2-5% 之间。本文将详细介绍数据库规模、验证方法、错误率以及使大型数据库对准确卡路里追踪产生负面影响的重复记录问题。
主要食品数据库的准确性如何?
食品数据库的准确性通过将数据库中存储的卡路里和宏观营养素值与实验室分析或政府食品成分数据库(如 USDA FoodData Central、明尼苏达大学的营养协调中心食品和营养数据库 NCCDB 以及 AUSNUT)中的参考值进行比较来衡量。
我们对五个营养追踪平台进行了四项准确性指标的比较。错误率通过选择 200 种常见食品(包括新鲜农产品、包装食品、餐厅餐点和家庭自制菜肴),在每个应用中查找每种食品,并将返回的卡路里值与 USDA FoodData Central 的参考值进行比较来测量。
| 应用 / 数据库 | 估计数据库规模 | 验证方法 | 每条记录的平均卡路里错误 | 前 100 种食品的重复记录率 |
|---|---|---|---|---|
| MyFitnessPal | ~1400 万条记录 | 众包,用户提交 | 15-30% | 每种食品 40-60 条重复记录 |
| Cronometer | ~100 万条记录 | USDA FoodData Central,NCCDB | 3-5% | 每种食品 2-5 条重复记录 |
| Nutrola | 经过验证的数据库 | 与政府和实验室来源进行验证 | 2-4% | 每种食品 1-2 条重复记录 |
| FatSecret | ~300 万条记录 | 混合(部分经过验证,主要为用户提交) | 10-20% | 每种食品 15-30 条重复记录 |
| Lose It! | ~700 万条记录 | 混合(制造商数据 + 用户提交) | 10-25% | 每种食品 20-40 条重复记录 |
这些错误率在实践中意味着什么?
单条食品记录的 15-30% 卡路里错误听起来似乎可以接受,但错误在一天的饮食中会累积。假设用户每天摄入 2000 卡路里并记录每一餐:
- 在 3-5% 错误(Cronometer,Nutrola)下,记录的总卡路里偏差为 60-100 卡路里。500 卡路里的赤字实际上仍为 400-440 卡路里赤字,减重如预期进行。
- 在 15-30% 错误(MyFitnessPal)下,记录的总卡路里偏差为 300-600 卡路里。计划中的 500 卡路里赤字可能实际上为 0-200 卡路里赤字,甚至没有赤字。减重停滞,用户无法识别原因。
Urban 等人(2010)在《美国饮食协会杂志》上发表的研究发现,使用错误率较高的食品成分数据库的参与者显著更可能低估他们的每日总卡路里摄入,即使他们记录了每一餐。数据库错误与自然的份量估计错误相结合,导致每日摄入估计比实际消费低 25-40%。
为什么更大的数据库会导致更差的准确性?
答案在于条目是如何进入数据库的。有五个结构性原因导致规模降低食品数据库的质量。
1. 用户提交缺乏质量把关
MyFitnessPal 和类似的众包数据库允许任何用户添加食品条目。没有审核过程,没有与参考来源的验证,也不需要营养专业知识。一个错误解读营养标签的用户——将“每份”误读为“每包装”,输入克而不是盎司,或省略小数点——可能会创建一个其他用户随意选择的条目。
Schubart 等人(2011)在《糖尿病科学与技术杂志》上发表的研究审计了众包食品数据库条目的样本,发现 25% 的条目包含超过参考卡路里值 10% 的错误,8% 的条目包含超过 50% 的错误。最常见的错误类型包括错误的份量大小、宏观营养素值的颠倒以及将多个食品项目合并为单一条目的记录。
2. 大量重复条目
当用户在大型众包数据库中搜索常见食品时,他们会看到数十个或数百个相同项目的条目,每个条目的卡路里值不同。用户必须选择一个,通常不知道哪个是正确的。这就是重复条目问题,也是众包数据库中追踪错误的最大来源。
以下是当你在四个应用中搜索 10 种常见食品时的情况:
| 食品项目 | MyFitnessPal(找到的条目) | FatSecret(找到的条目) | Cronometer(找到的条目) | Nutrola(找到的条目) |
|---|---|---|---|---|
| 中等香蕉 | 57 | 23 | 4 | 2 |
| 烤鸡胸肉,100克 | 83 | 31 | 5 | 2 |
| 白米,煮熟,1 杯 | 64 | 28 | 3 | 2 |
| 整个牛油果 | 45 | 19 | 4 | 2 |
| 大鸡蛋,炒 | 72 | 26 | 5 | 3 |
| 橄榄油,1 汤匙 | 38 | 15 | 2 | 1 |
| 原味希腊酸奶,100克 | 91 | 34 | 6 | 2 |
| 烤三文鱼,150克 | 68 | 22 | 4 | 2 |
| 花生酱,2 汤匙 | 54 | 20 | 3 | 2 |
| 煮燕麦,1 杯 | 49 | 18 | 3 | 2 |
当用户在 MyFitnessPal 中搜索“鸡胸肉”并看到 83 个结果时,这些条目的卡路里值范围从每 100 克 110 到 220 卡路里。USDA FoodData Central 对烤鸡胸肉的参考值为每 100 克 165 卡路里。选择错误条目的用户——在 83 个选项中统计上很可能——可能会记录一个与真实值相差 30-50% 的数据。
3. 产品配方变更未被追踪
食品制造商定期对产品进行配方变更——更改配方、成分和营养成分。当产品配方变更时,旧的数据库条目就会变得不准确。在众包数据库中,没有机制来更新或淘汰过时的条目。旧版本和新版本同时存在,用户无法知道哪个反映了当前产品。
FDA 在 2020 年更新的营养成分标签,改变了份量大小并在标签中添加了“添加糖”,导致所有众包数据库中出现大量过时条目。以前列出每份 150 卡路里的产品,可能在更新的份量定义下现在列出 200 卡路里。两条记录在众包数据库中可能会持续多年。
4. 区域变体造成混淆
在澳大利亚的“Tim Tam”与在美国销售的“Tim Tam”营养成分不同。在英国的“Cadbury Dairy Milk”与在印度的同一产品配方也不同。众包数据库包含来自全球用户的条目,没有地理标记来区分区域变体。伦敦的用户搜索“Cadbury Dairy Milk 45g”时,可能选择了由孟买用户提交的条目,其卡路里值相差 10-15%。
5. 缺乏去重过程
像 USDA FoodData Central、NCCDB 和 Nutrola 的数据库等经过验证的数据库有明确的去重过程。当某个食品项目已经存在时,新数据会更新现有条目,而不是创建一个并行条目。众包数据库缺乏这一机制。每次新提交都会创建一个新条目,无论该食品已有多少条记录。
验证光谱是什么?
并非所有数据库的可靠性相同,差异在于验证方法。食品数据库存在于从完全未经验证到实验室验证的光谱上。
| 验证级别 | 描述 | 示例 | 典型卡路里错误 |
|---|---|---|---|
| 众包(未经验证) | 任何用户都可以提交条目。没有审核或验证。 | MyFitnessPal,FatSecret(用户提交的条目) | 15-30% |
| 半验证 | 制造商数据和用户提交的混合。一些条目经过审核。 | Lose It!,FatSecret(制造商条目) | 10-20% |
| 政府验证 | 条目来源于由政府机构维护的国家食品成分数据库。 | USDA FoodData Central,NCCDB,AUSNUT | 3-5% |
| 实验室和营养师验证 | 条目经过实验室分析验证并由营养专业人士审核。 | Cronometer(NCCDB 来源),Nutrola(经过验证的数据库) | 2-5% |
USDA FoodData Central
USDA FoodData Central 是美国农业部的食品成分数据库。它包含数千种食品的实验室分析营养数据,数值来源于食品样本的化学分析。它是研究人员、营养师和经过验证的追踪应用使用的主要参考标准。该数据库由 USDA 农业研究服务维护,并定期更新新食品和修订的分析值。
NCCDB(营养协调中心食品和营养数据库)
NCCDB 由明尼苏达大学的营养协调中心维护。它在临床营养研究中广泛使用,包含超过 19,000 种食品的完整营养成分,来源于多个分析来源。Cronometer 将 NCCDB 作为主要数据来源,这解释了其高准确性,尽管总数据库规模较小。
AUSNUT(澳大利亚食品、补充剂和营养数据库)
AUSNUT 由澳大利亚新西兰食品标准局(FSANZ)维护,包含在澳大利亚消费的食品的营养数据,包括 USDA 数据库未覆盖的本地和区域产品。它是澳大利亚和新西兰营养追踪的参考标准。
数据库质量如何影响长期减重?
数据库准确性与减重结果之间的联系通过信任和校准机制运作。当用户根据不准确的数据库追踪卡路里时,会出现两个问题:
问题 1:隐形盈余。 用户认为自己处于 500 卡路里的赤字,但数据库错误意味着他们实际上处于维持体重甚至轻微盈余状态。减重停滞,用户感到沮丧,认为这种方法无效,最终放弃追踪。这是数据库错误导致追踪失败的最常见路径。
问题 2:校准丧失。 在几周的追踪中,用户会形成对份量大小和卡路里含量的直观感受——一种对饮食的“心理模型”。如果提供该模型的数据库不准确,心理模型就会失去校准。即使用户停止主动追踪,他们仍会对餐点的卡路里含量持有错误的假设。
Champagne 等人(2002)在《美国饮食协会杂志》上发表的研究发现,即使是经过培训的营养师在使用标准食品成分数据库时,平均也会低估 10% 的卡路里摄入。对于依赖于错误率为 15-30% 的众包数据库的未受训用户,整体估计错误——数据库错误与自然份量估计错误相结合——可能达到 30-50%。
Nutrola 如何解决数据库准确性问题?
Nutrola 通过四种机制解决数据库准确性问题:
经过验证的数据库:每个食品条目都与政府和实验室参考来源进行验证。条目不是众包的,用户提交的条目需要审核。
AI 照片识别与验证查找:当用户拍摄他们的餐点时,Nutrola 的 AI 会识别食品项目并与经过验证的数据库进行匹配,而不是与众包列表进行匹配。这完全消除了重复条目选择问题。用户不会看到 83 条“鸡胸肉”的条目,因为 AI 只选择单一的经过验证的条目。
条形码扫描与制造商验证:Nutrola 的条形码扫描器实现了 95% 以上的识别准确率,并从经过验证的制造商来源提取营养数据,与经过验证的数据库进行交叉参考以确保一致性。
持续的数据库维护:产品配方变更、区域变体和新食品会在数据库中进行跟踪和更新。过时的条目会被淘汰,而不是与新版本并存。
AI 饮食助手利用准确的卡路里数据提供个性化指导,Apple Health 和 Google Fit 的集成确保运动数据自动调整卡路里目标——这两个功能都依赖于准确的基础食品数据才能正常运作。
Nutrola 的起价为每月 2.50 欧元,提供 3 天的免费试用。所有套餐均无广告。
方法论
本文中的准确性比较是通过选择 200 种常见食品进行的,涵盖五个类别:新鲜农产品(40 种食品)、包装/品牌商品(60 种食品)、餐厅餐点(30 种食品)、家庭自制菜肴(40 种食品)和饮料(30 种食品)。每种食品在每个应用中搜索,并记录排名最高或最常被选择条目的卡路里值。这些值与 USDA FoodData Central 对同一食品项目的参考值进行比较,准备方式和测量的份量大小相同。
重复记录的计数是通过搜索每种前 100 种最常追踪的食品(基于已发布的应用使用数据)并计算每种食品返回的不同条目数量来测量的。“条目”被定义为具有唯一卡路里值的列表——具有相同卡路里值但不同名称的条目(例如,“香蕉”与“生香蕉”)被视为重复记录。
错误百分比表示应用中列出的卡路里值与 USDA 参考值之间的绝对差异,以参考值的百分比表示。范围(例如,15-30%)表示在测试的 200 种食品中所有食品的四分位数范围,而非最小值和最大值。
常见问题解答
MyFitnessPal 是否知道其数据库存在准确性问题?
MyFitnessPal 为某些条目引入了绿色勾选验证系统,标记为“经过员工验证”。然而,绝大多数 1400 万条记录仍然未经验证。经过验证的条目只是一个小子集,用户在选择食品时必须主动寻找勾选标记。结构性问题——数百万条未经验证的条目与少量经过验证的条目共存——依然存在。
USDA FoodData Central 数据库完美吗?
不。USDA FoodData Central 数据库有其自身的局限性。它主要覆盖在美国消费的食品,可能不反映区域准备方法,其实验室值代表的样本平均值可能因季节、来源和生长条件而异。然而,USDA 数据的错误范围通常为 1-3%——比众包数据库的错误小一个数量级。它是目前食品成分数据中最接近黄金标准的存在。
为什么应用使用众包数据库而不是更准确的数据库?
规模和成本。构建和维护一个经过验证的食品数据库需要营养专业知识、对参考来源的访问和持续的策划。众包允许应用快速扩展其数据库,达到数百万条记录,成本极低。对于应用公司而言,更大的数据库意味着用户更频繁地找到他们搜索的内容,从而减少“未找到食品”错误的摩擦。权衡是准确性,但这种权衡对大多数用户来说是不可见的——他们并不知道自己选择的卡路里值是错误的。
如果我只选择经过验证的条目,能否准确使用 MyFitnessPal?
通过仅选择带有绿色勾选验证徽章的条目并将可疑数字与 USDA FoodData Central 进行交叉参考,可以提高准确性。然而,这会显著增加每个食品条目的时间——违背了快速追踪应用的目的。它还假设用户具备识别数值是否看起来错误的营养知识,而大多数用户并不具备。
数据库错误会在我的每日追踪中增加多少卡路里?
对于每天摄入 2000 卡路里并记录所有餐点的用户:在 15-30% 错误下,每日追踪错误为 300-600 卡路里。在一周内,这意味着 2100-4200 卡路里未被计算。1 磅体脂肪大约包含 3500 卡路里(Hall 等,2012,《国际肥胖杂志》)。仅数据库错误就可能解释每周减重一磅与无减重之间的差异。
Nutrola 的经过验证数据库是否覆盖国际食品?
Nutrola 的经过验证数据库覆盖来自多个国家食品成分数据库的食品,并不断扩展以包括区域和国际食品。如果某种食品不在数据库中,AI 照片和语音识别系统会根据相似的经过验证食品和视觉份量评估来估算营养价值,并将该条目标记为验证审核。
在选择基于数据库质量的卡路里追踪应用时,我应该关注哪些方面?
三个指标:(1)数据来源——应用是否披露其营养数据的来源?使用 USDA FoodData Central、NCCDB 或同等国家数据库的应用比仅依赖用户提交的应用更可靠。(2)重复记录计数——搜索“香蕉”等常见食品并计算结果。结果较少且卡路里值一致的条目表明更好的策划。(3)验证过程——应用是否有审核和纠正条目的机制,或者任何用户是否可以在没有监督的情况下添加任何值?
如果我的食品没有列在数据库中,较小的数据库会是个问题吗?
一个较小但经过验证的数据库可能不包含每个冷门品牌产品。这种权衡是真实的,但可以管理。Nutrola 通过 AI 照片识别(可以通过视觉分析和与相似食品的比较来估算不在数据库中的食品的营养成分)、语音记录(将自然语言描述解析为成分)和条形码扫描(直接读取制造商数据)来解决覆盖缺口。目标是确保每个存在的条目都经过验证的准确性,同时对尚未在数据库中的项目进行智能估算。
参考文献
- Urban, L. E., Dallal, G. E., Robinson, L. M., Ausman, L. M., Saltzman, E., & Roberts, S. B. (2010). The accuracy of stated energy contents of reduced-energy, commercially prepared foods. Journal of the American Dietetic Association, 110(1), 116-123.
- Schubart, J. R., Stuckey, H. L., Ganeshamoorthy, A., & Sciamanna, C. N. (2011). Chronic health conditions and internet behavioral interventions. Journal of Diabetes Science and Technology, 5(3), 728-740.
- Champagne, C. M., Bray, G. A., Kurtz, A. A., et al. (2002). Energy intake and energy expenditure: a controlled study comparing dietitians and non-dietitians. Journal of the American Dietetic Association, 102(10), 1428-1432.
- Hall, K. D., Heymsfield, S. B., Kemnitz, J. W., Klein, S., Schoeller, D. A., & Speakman, J. R. (2012). Energy balance and its components: implications for body weight regulation. International Journal of Obesity, 36(3), 431-439.
- USDA Agricultural Research Service. (2024). FoodData Central. United States Department of Agriculture.
- Food Standards Australia New Zealand. (2022). AUSNUT 2011-13 Food Nutrient Database. FSANZ.
- Nutrition Coordinating Center. (2024). NCC Food and Nutrient Database. University of Minnesota.