Nutrolaの食品データベースの構築方法:USDAデータから1200万件の検証済みエントリーまで
Nutrolaのカロリー計算はどこから来ているのか。食品データベースの構築、検証、維持の方法と、その正確性がなぜ重要なのかを詳しく解説します。
カロリー追跡アプリで「鶏むね肉のグリル」を検索し、「100グラムあたり165カロリー」と表示された場合、その数字はどこから来たのでしょうか。それは誰かが測定し、検証し、数百万のユーザーがそのデータに基づいて健康的な選択をするために十分な正確性があると判断された結果です。
食品データベースの質は、すべてのカロリー追跡アプリの背後にある目に見えない基盤です。このデータベースが間違っていれば、その上に構築されたすべてが間違っていることになります。日々のカロリー合計、マクロの内訳、週間トレンド、コーチの推奨、そして最終的にはあなたの結果にまで影響します。しかし、ほとんどのユーザーはその数字の出所を考えず、ほとんどのアプリもそれを説明しません。
この記事では、Nutrolaの食品データベースがどのように構築されているのか、政府のデータを基にした基盤から、現在の1200万件の検証済みエントリーまでを詳しく説明します。また、アプリ間でデータベースの質がなぜこれほどまでに異なるのか、そしてそれがあなたの追跡の正確性に何を意味するのかについても解説します。
基盤:USDA FoodData Central
真剣に栄養データベースを構築するには、アメリカ合衆国農務省(USDA)が欠かせません。USDAは1890年代から食品の栄養成分を測定しており、彼らの現代のデータベースであるFoodData Centralは、世界で最も包括的で厳密に検証された食品成分データのコレクションを提供しています。
FoodData Centralには複数のデータセットが含まれています。SR Legacyは約7,600種類の一般的な食品の詳細な栄養プロファイルを提供し、これは推定ではなく、実際のラボ分析に基づいています。食品は実際に購入され、標準化されたプロトコルに従って調理され、検証された分析化学的方法を用いて分析されます。Foundation Foodsはその新しい、より詳細な後継で、変動性、サンプルサイズ、栽培品種、品種、収穫の季節に関するメタデータを提供します。FNDDSは混合料理やレシピをカバーし、家庭用の測定に基づいたポーションサイズデータをリンクしています。Branded Foodsは、Label Insight(現在のNielsenIQ)との提携を通じて収集されたパッケージ食品データを含みます。
Nutrolaはこれら4つのデータセットを取り込み、一貫したスキーマに正規化し、エントリーの不一致を解決するためにクロスリファレンスを行います。SR LegacyとFoundation Foodsの両方に同じアイテムのデータがある場合、Foundation Foodsの値が優先されます。なぜなら、これらはより最近の分析に基づいているからです。
このUSDAの基盤は、約400,000件のユニークな食品エントリーを提供します。これは強力な出発点ですが、現代のカロリー追跡アプリには不十分です。多くの人は「鶏肉、ブロイラー、胸肉、肉のみ、調理済み、ロースト」とは食べません。彼らはChick-fil-AのサンドイッチやTrader Joe'sの冷凍食品、あるいは祖母が他国から持ち帰ったレシピの家庭料理を食べます。実際の人々が食べるものの全範囲をカバーするには、政府のデータを超える必要があります。
ブランド食品データの追加
ブランド食品の層は、データベースの最大の拡張を占めています。栄養成分表示があるパッケージ食品は、アメリカや他の先進国の典型的な食事の重要な部分を占めており、ユーザーは検索時に特定の製品を見つけることを期待しています。
Nutrolaは、複数のチャネルを通じてブランド食品データを収集しています。
直接の製造業者との提携は、最高品質のブランドデータを提供します。製造業者が栄養データを直接共有すると、それは栄養成分表示を生成するために使用されたのと同じラボ分析に基づいています。Nutrolaは、数百の食品メーカーとのデータ共有契約を維持しています。
バーコードデータベースの統合は、オープンソースのバーコードデータベース、政府の食品ラベル登録、商業データプロバイダーを通じて、製品の長尾をキャッチします。ユーザーが認識されていないバーコードをスキャンすると、システムはエントリーがすべてのユーザーに利用可能になる前に検証ワークフローを開始します。
ラベルスキャンとOCRは、物理的な栄養成分表示からエントリーを構築します。すべてのOCR由来のエントリーは、一般的な抽出エラーをチェックする検証を通過します:小数点の誤読、数字の入れ替え、妥当な範囲外の値などです。
定期的なリフレッシュサイクルは、ブランドデータが最新の状態を保つことを保証します。製造業者は定期的に製品を再配合します。Nutrolaは、高ボリューム製品については四半期ごとのリフレッシュサイクルを、より広範なカタログについては年次リフレッシュを実施し、値が変更されたエントリーにフラグを立てます。
このブランド食品の層は、約150万件のエントリーをデータベースに追加し、それぞれが特定のUPC/EANバーコードおよび製品識別子にリンクされています。
ユーザー提供のエントリーと正確性の問題
ほとんどの大規模なカロリー追跡データベースは、ユーザーがラベル、レシピ、または自分の推定から手動で入力した栄養情報に依存しています。このアプローチは迅速にスケールしますが、栄養追跡業界でのデータベースエラーの最大の原因でもあります。
クラウドソース食品データの問題はよく知られています。2020年にEvenepoelらが発表したNutrientsのレビューでは、クラウドソースの栄養データベースにおけるマクロ栄養素の値のエラー率が15〜25%であることが示されました。エラーの種類は以下の通りです。
データ入力ミス。 ユーザーが52グラムのタンパク質と入力する代わりに5.2グラムと入力する。小数点のエラーにより、ヨーグルトの1サービングが全体の鶏むね肉と同じタンパク質を含むように見える。これらのエラーは一般的で、手動データ入力は本質的にエラーが発生しやすく、ほとんどのクラウドソースシステムにはエントリーが公開される前にそれをキャッチするメカニズムがありません。
重複および矛盾するエントリー。 大規模なクラウドソースデータベースで「バナナ」を検索すると、異なるカロリー値を持つ30件のエントリーが見つかることがあります。小さなバナナ、中くらいのバナナ、大きなバナナが含まれている場合もあります。皮の重さを含むもの、含まないもの、正確なもの、極端に間違ったものもあります。ユーザーはどのエントリーが正しいのかを推測することになり、その判断を下す信頼できる方法がありません。
古い製品情報。 ユーザーが2022年にグラノーラバーのデータを提出します。製造業者が2024年に製品を再配合し、砂糖を減らし、繊維を増やします。古いエントリーはデータベースに無期限に残り、誰かがそれを選択すると誤った値を返します。
推定ではなく測定。 一部のユーザー提供エントリーは、ラベルデータに基づいていないのではなく、ユーザー自身の食品の栄養成分に対する個人的な推定に基づいています。これらのエントリーは、実際の値から50%以上逸脱することがあります。
不一致なサービングサイズ。 「ご飯、調理済み」のエントリーの1つは100グラムのサービングを使用していますが、別のものは1カップを使用しています。別のものは「1サービング」とだけ記載されており、それが何を意味するのか定義されていません。これらのエントリーの間で選択するユーザーは、サービングサイズの不一致に気づかず、食事全体にわたってエラーが累積する可能性があります。
Nutrolaは、ユーザー提供のエントリーを受け入れています。これは、人々が食べる食品の多様性を捉えるために不可欠であり、地域の料理、特定のレストランのアイテム、公式データベースに存在しない家庭料理を含みます。しかし、すべてのユーザー提供エントリーは、広く利用可能になる前に検証パイプラインに入ります。エントリーは作成した人が即座に利用できますが、他のユーザーに表示されるのは検証が完了してからです。
検証パイプライン
Nutrolaのすべての食品エントリーは、その出所に関係なく、一般データベースに到達する前に多段階の検証プロセスを経ます。
ステージ1:自動的な妥当性チェック。 アルゴリズムは、提出された栄養値を既知の制約と照らし合わせて検査します。カロリーは、宣言されたマクロ栄養素(タンパク質、炭水化物、脂肪)と定義された許容範囲内で一貫している必要があります。Atwaterシステムは変換係数を提供します:タンパク質1グラムあたり4カロリー、炭水化物1グラムあたり4カロリー、脂肪1グラムあたり9カロリー、アルコール1グラムあたり7カロリーです。ユーザーが200カロリー、30グラムのタンパク質、20グラムの炭水化物、15グラムの脂肪を主張するエントリーを提出した場合、計算されたカロリー値は335であり、200ではありません。このエントリーはレビューのためにフラグが立てられます。
このステージでは、食品カテゴリー内の妥当でない値もチェックされます。サービングあたり40グラムの脂肪を主張する果物のエントリー、100グラムあたり60グラムのタンパク質を主張する野菜のエントリー、または単一のマクロ栄養素がサービングの総重量を超えるエントリーは自動的にフラグが立てられます。これらのチェックは、データ入力エラーの大部分をキャッチし、小数点のミスや単位の混乱を含みます。
ステージ2:クロスリファレンスマッチング。 システムは、提出されたエントリーを同じまたは類似の食品に対する既存のエントリーと比較します。USDAデータベースに「チェダーチーズ」の参照エントリーがあり、ユーザーがカロリー値がUSDAの参照より40%低いブランドのチェダーチーズエントリーを提出した場合、そのエントリーは手動レビューのためにフラグが立てられます。小さな偏差は期待されますが、重大な偏差はエラーの可能性を示します。
ステージ3:栄養士のレビュー。 自動チェックを通過したが、主食、高ボリュームの検索アイテム、または境界線上の妥当性スコアを持つエントリーは、栄養士レビューキューにルーティングされます。Nutrolaの登録栄養士および食品科学者のチームは、これらのエントリーを権威あるソースと照らし合わせて調査し、製造業者のウェブサイト、複数国の政府データベース、公開された食品成分表と照らし合わせて値をクロスチェックします。
ステージ4:コミュニティの合意。 データベースにしばらく存在しているエントリーについては、使用パターンが追加の品質シグナルを提供します。多くのユーザーがエントリーを選択し、誰もそれを不正確だと報告しない場合、それはポジティブなシグナルです。ユーザーが頻繁にエントリーを選択し、その後すぐに値を編集する場合、そのパターンは元のエントリーにエラーが含まれている可能性を示唆します。これらの行動シグナルはレビューのパイプラインにフィードバックされ、再検討が必要な潜在的な問題のあるエントリーを浮上させます。
栄養士のレビュープロセス
人間のレビュー層が、検証済みデータベースとクラウドソースデータベースを分けるものです。自動チェックは明白なエラーをキャッチしますが、微妙な不正確さは人間の判断を必要とします。
Nutrolaの栄養士レビューチームは、優先順位ベースのシステムで運営されています。食品は、検索ボリューム、エラーの可能性、栄養的重要性に基づいてレビューの優先順位が付けられます。水のカロリー計算(ゼロであるべき)のエラーは実際的な影響がありませんが、オリーブオイルのカロリー計算のエラーは、ユーザーの日々の合計を数百カロリーも狂わせる可能性があります。
単一のエントリーのレビュープロセスでは、最も権威のあるソース(生鮮商品に対するUSDAラボデータ、ブランド製品に対する製造業者データ、レストラン料理に対する公開された栄養情報)を特定し、すべての報告された栄養素をそのソースと比較し、サービングサイズの正確さを評価し、ユーザーがエントリーを見つけられるように検索メタデータをチェックします。
標準化されたレシピがない伝統的な地域料理のような複雑なエントリーには、30分以上のリサーチが必要な場合があります。シンプルなブランド製品の検証は1分未満で済みます。チームは高影響エントリーを優先し、全体のデータベースの正確性を向上させるためにレビュー時間を集中させます。
エラーの発見と修正方法
1200万件のエントリーを持つデータベースは、エラーがないわけではありません。目標は完璧さではなく、時間をかけて体系的にエラーを減少させ、確認されたエラーを迅速に修正することです。
Nutrolaは、並行して動作する複数のエラー検出メカニズムを使用しています。
ユーザー報告。 アプリ内のすべての食品エントリーには「問題を報告する」オプションがあります。ユーザーは、カロリーが間違っている、マクロが間違っている、情報が古い、サービングサイズが間違っている、またはその他の問題があるエントリーをフラグできます。報告はボリュームと深刻度によってトリアージされます。低ボリュームエントリーに対する単一の報告は標準レビューキューに入りますが、高ボリュームエントリーに対する複数の報告は即時レビューをトリガーします。
自動異常検出。 統計モデルは、食品カテゴリーの基準から大きく逸脱したエントリーを監視します。データベース内のすべてのチーズエントリーの平均カロリー密度が100グラムあたり350カロリーである場合、100グラムあたり35カロリーを主張するチーズ製品のエントリーは自動的にフラグが立てられます。これらのモデルは継続的に実行され、個々のユーザーが気づかない、または報告しないエラーをキャッチします。
バーコードスキャンの検証。 ユーザーが製品のバーコードをスキャンすると、返されたデータは最新の製造業者データと比較されます。製造業者が栄養情報を更新し、データベースエントリーがまだ更新されていない場合、その不一致は更新ワークフローをトリガーします。
データベース間の照合。 Nutrolaは定期的に、USDAデータベースの更新版、国際食品成分データベース、パートナーデータフィードとエントリーをクロスリファレンスします。参照ソースから逸脱したエントリーは、レビューと修正のためにフラグが立てられます。
栄養の一貫性監査。 定期的な監査では、各食品カテゴリー内のランダムサンプルを調査し、内部の一貫性をチェックします。これらの監査では、列のマッピングエラーにより繊維値が糖値と混同されるなど、エラーのクラスターが特定されました。
エラーが確認されると、修正は即座に適用され、すべてのユーザーに伝播されます。最近その食品をログに記録したユーザーには通知が送られ、ログを見直し、調整することができます。
地域食品データベースと国際料理
アメリカのデータだけで構築された食品データベースは、グローバルなユーザーベースには不十分です。日本のユーザーが「おにぎり」を検索する際には正確な結果が必要です。インドのユーザーが「ダルマッカニ」を検索する際には、インドのキッチンで使用される実際の調理方法や材料を反映したエントリーが必要です。
Nutrolaは、30カ国以上の政府データベースから食品成分データを取り入れています。
ヨーロッパ: EuroFIRネットワークは、ヨーロッパ各国のデータを調整します。イギリス(McCance and Widdowson's)、ドイツ(Bundeslebensmittelschluessel)、フランス(CIQUAL)の国立データベースは、地域の食品や地元のブランド製品のエントリーを提供します。
東アジア: 日本の食品成分表、韓国の国家標準食品成分データベース、中国の食品成分表は、調理方法に特有の地域食品のエントリーを数千件提供します。蒸しご飯と炒めご飯、生の豆腐と揚げ豆腐の違いは重要であり、これらのデータベースはその違いを捉えています。
南アジア: インドの国立栄養研究所は、地域の穀物、豆類の調理法、パニールやギーなど、西洋の同等品とは異なる栄養プロファイルを持つ乳製品のデータを提供します。
ラテンアメリカおよび中東/アフリカ: ブラジル(TACO)、メキシコ(BDCA)、中東およびアフリカの地域データベースからの食品成分表は、テフ、インジェラ、タヒニを基にした料理、北アメリカのデータベースには存在しない地域の調理法に関するデータを提供します。
これらのソースを統合することは、単純なデータインポートではありません。国ごとに異なる分析方法、栄養素の定義、サービングの基準が使用されています。「カップ」は、アメリカでは240ml、日本では200ml、オーストラリアでは250mlです。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または同等の政府ラボデータが最初、製造業者データが次、栄養士検証済みデータが3番目、検証済みクラウドソースデータが4番目です。この優先順位により、最も厳密に検証されたデータが常に優先されることが保証されます。
なぜ正確性がサイズより重要なのか
競合するアプリの中には、1500万、2000万、さらには3000万件のエントリーを誇るものもあります。しかし、質のないサイズは無意味であり、実際に有害である可能性があります。
3000万件のエントリーを持ち、20%のエラー率があるデータベースには600万件の間違ったエントリーが含まれています。そのエントリーの1つをログに記録したユーザーは、その正確性に全幅の信頼を寄せて不正確なデータを追跡していることになります。エラーは累積します:もし、朝食のエントリーがタンパク質を10グラム過大に評価しており、週に5回それを食べると、実際には200グラム多くのタンパク質を摂取したと信じてしまいます。そのデータに基づいて他のタンパク質を減らすと、下流の影響は現実のものとなります。
これが、Nutrolaが生のエントリー数よりも検証済みエントリー数を優先する理由です。存在しないエントリーは中立です。しかし、存在するが間違っているエントリーは、積極的に有害です。
データベースの成長方法
データベースは静的ではありません。複数のチャネルを通じて継続的に成長しています。自動システムはバーコードスキャンリクエストを監視し、ユーザーが検索するがまだ存在しない製品を特定し、高需要アイテムの追加を優先します。ユーザーの提出は、地域料理、レストランアイテム、公式データベースに存在しない家庭料理を追加します。製造業者との提携により、大手チェーンが新しいメニューアイテムを発表した際には、栄養データが発表日に利用可能になります。また、定期的にUSDAおよび国際データベースのリリースが取り込まれます。
よくある質問
Nutrolaの食品データベースは他のアプリと比べてどれくらい正確ですか?
Nutrolaの検証済みエントリーは、内部監査に基づいて、マクロ栄養素のラボ測定値から平均5%以内の正確性を持っています。未検証のクラウドソースデータベースは通常、15〜25%のエラー率を示します。この違いは、すべてのエントリーが広く利用可能になる前に通過しなければならない検証パイプラインから来ています。
バーコードをスキャンして製品が見つからない場合はどうなりますか?
アプリは、ラベルから栄養情報を入力するように促します。あなたのエントリーは即座に自分の使用のために利用可能になり、その後、他のユーザーに表示される前に検証パイプラインに入ります。高需要の製品は迅速な検証のために優先されます。
データベースはどのくらいの頻度で更新されますか?
継続的に。ユーザー提供のエントリーは毎日処理されます。ブランド製品データは、高ボリューム製品については四半期ごとにリフレッシュされます。USDAおよび国際リリースは、公開から2週間以内に取り込まれます。エラー修正は、通常、確認から24〜48時間以内に適用されます。
レストランの食事のカロリー計算は信頼できますか?
公式な栄養データを発表する大手チェーンの場合、エントリーは直接ソースされ、チェーン自身の測定と同じくらい正確です。独立したレストランの場合、エントリーはレシピに基づく推定であり、より広い不確実性の範囲があります。Nutrolaは、公式なソースからのデータか推定値かを示す信頼度インジケーターでレストランエントリーにフラグを立てます。
Nutrolaが時々私の食品のラベルと異なる値を示すのはなぜですか?
一般的な理由は3つあります:製造業者が製品を再配合した、サービングサイズの定義が異なる、または栄養成分の丸めルールが小さな不一致を生む(通常は5〜10カロリー以内)。アプリを通じて不一致を報告すると、更新がトリガーされます。
Nutrolaは家庭料理をどのように扱っていますか?
あなたは、検証済みデータベースからの個々の材料エントリーを組み合わせてカスタムレシピエントリーを構築します。材料エントリーが検証されているため、主なエラーの原因はデータの不良ではなく、ポーションの測定になります。
Nutrolaのデータベースはオープンソースの代替品と何が違いますか?
Open Food Factsのようなオープンソースデータベースは貴重なデータを提供しますが、体系的な検証なしに運営されています。エントリーはボランティアによって提出され、妥当性チェックや栄養士のレビューなしに公開されます。Nutrolaはオープンソースデータを多くの入力の1つとして使用し、すべてのインポートされたエントリーを他のソースと同じ検証パイプラインに通します。
継続的な作業
食品データベースの構築は、ゴールのないプロジェクトではありません。食品は変化し、新製品が発売され、古い製品は再配合されるか、廃止されます。分析方法は改善されます。
現在Nutrolaのデータベースにある1200万件のエントリーは、1年後には同じではありません。いくつかは更新され、いくつかは削除され、数十万件の新しいエントリーが追加されます。検証パイプラインは、以前のバージョンで見逃されたエラーをキャッチします。栄養士レビューのチームは、徐々に人間によって検証された信頼性を持つエントリーの割合を増やしていきます。
誰もカロリー追跡アプリをダウンロードするのは、食品成分データの正規化に興奮しているからではありません。しかし、すべての正確なカロリー計算、すべての信頼できるマクロ内訳、すべての信頼できる日々の合計は、このインフラがすべての検索結果の背後で正しく機能することに依存しています。あなたが昼食を記録し、数字が正しいとき、それは偶然ではありません。それは、正確であることを確実にするために特別に構築されたシステムの結果です。