レシピ構造化について
フードテック
今年度新入社員になり、食関連で以下の2冊を読みました。 一つはフードテック革命、もう一つはキッチン・インフォマティクスです。
業務と興味が重なる分野で、とても楽しく読めました。
私は、自分にとっていい本を以下のように定義しています。
いい本=
読んでいるときにアイデアや疑問が次々に浮かび、頭がすごく回る本
本から得るものはヒントで、知識ではないと思います。
この意味でとてもおもしろい本達でした。
中でも興味深かった、「レシピ構造化」について書いてみようと思います。
レシピ構造化
現在、様々な企業がレシピ構造化に取り組んでいます。
その目的は、レシピサイトに投稿されたレシピの自動分類、レシピパーソナライゼーション、果てはロボティックキッチンの実現です。 つまり、「レシピ構造化」とは、人間が自然言語テキストや写真・動画で表現したレシピを、システムが認識できる形式に変換(ソフトウェア化)する処理です。
レシピ構造化には、自然言語処理や画像認識、それらを組み合わせるクロスモーダルなアプローチがあります。 レシピサイトでは、投稿されたレシピテキストを自然言語処理により解析することで、レシピの分類などを行っています。 また、自社サイトのレシピをアカデミックに公開し、レシピテキストの解析などの研究を支援しています。 また、食事管理アプリでは、料理写真を画像認識により、料理の推定を行っています。
個人的な意見として、自然言語処理・画像処理・そのクロスモーダルドメインは、料理ドメインをあんまりカバーしていないと考えています。
その大きな要因は、料理が人間にとって身近すぎることだと考えています。 そのために、その表現が構造化されておらず、前提知識・感覚が占める割合が大きくなります。
例えば、「かつらむき」という切り方があります。
ネットで調べると、以下のように説明されています。
大根やにんじん、きゅうりなど、円柱形のものを回しながら、切れないように長くむいていく方法です。飾り切りの一種ですが、皮をむくときにも活用できます。
しかし、これだけ読んでも、実際に見ないことにはイメージできないですよね。 「大根やにんじん、きゅうり」を見たり触ったりしたことがなければ、なおさらです。 テキストだけで「かつらむき」を構造化することは難しいです。 逆に言うと、特殊な単語に大きな情報が押し込まれています。
また実際の利用では、「かつらむき」を切り方として定義したうえで、「かつらむき」が可能な食材条件、「かつらむき」による効果(火が通りやすい・食材を巻けるなど)をデータベースとして持つ必要があります。
アプローチ
これまで見てきたように、料理は身近過ぎるために、一から機械学習するのは難しいと考えられます。 また、料理に関する単語は定義可能で有限であるため、学習するのは非効率です。 そのため、それらをデータベースとして持つことが重要と考えます。
しかし、全て人手でデータベースを構築するのは難しい。。 そこで、既存のデータベースを統合する、ユーザインタラクションによりデータを追加できるハイブリッドシステムが有効だと思います。
そこで、自然言語処理の出番があります。 機械学習によりデータベースを構築するのではなく、データベースの枠を作り、その中身を機械学習と人手のハイブリッドシステムで埋めていくイメージです。
結論
今回は、「レシピ構造化」の課題とそれに対する自身の考えについて書いてみました。 今後は、今回考えたことをもとに、レシピ構造化・生成システムを作っていこうと思います。
目標は、
ユーザの食在庫にあるもの・好み・栄養摂取状況と、合う食材、調理方法をもとにレシピを生成するシステムを作る
です。