ITエンジニアのための勉強会・イベントレポート情報メディア

Cookpad Tech Kitchen #5〜クックパッドにおける最近の機械学習について〜
event

Cookpad Tech Kitchen #5
〜クックパッドにおける最近の機械学習について〜

2017.04.04

 
  • このエントリーをはてなブックマークに追加

皆さん、料理レシピのコミュニティサイト「クックパッド」はもちろんご存じですよね。では「Cookpad Tech Kitchen」はいかがでしょうか。Cookpad Tech Kitchenは「テクノロジー×ものづくり」を軸に、クックパッドが培った知見や旬の情報を発信し、情報交換の場として開催しているイベントです。2016年8月からスタートし、5回目にあたる今回のテーマは「クックパッドにおける最近の機械学習」。定員70人に対して335人から抽選という、大人気の勉強会に参加してみました!

Misa

会場は、恵比寿ガーデンプレイスタワーのクックパッド本社内のキッチンです。さすが、4.8人に1人の倍率だけあって満席です。この後で後列に椅子が追加されました。集まっているのは、機械学習エンジニアもしくは機械学習に興味のあるエンジニアの方々で、素人が話についていけるかちょっと不安です。

研究開発部のRybicki Leszekさん(左)、菊田 遥平さん(中央)、原島 純さん(右)

2016年12月に新設された研究開発部は、今後もさまざまなテーマにチャレンジする方針で新しい仲間(リサーチサイエンティスト、リサーチエンジニア)を募集中だそうです。

クックパッドと自然言語処理 (Cookpad and NLP)  原島 純氏

原島さんから、クックパッドにおける自然言語処理の研究開発についての発表です。

インターネット上でレシピの投稿と検索ができるクックパッドは、登録レシピ数260万、日次利用者600万人で、スペイン語やアラビア語などを含む多言語で展開しています。クックパッドでは、レシピの解析、同義表現の認識、レシピの分類、翻訳などに自然言語処理(人間が使用する自然言語をコンピュータに処理させる技術)を使用しています。
ブックマークしたレシピを分類するサービス「マイフォルダ」は、SVM(Support Vector Machine) と呼ばれるパターン認識手法で分類して、ユーザーが使用できるようにしています。

Rubyで実装しており、ポジティブレシピ(正例)とネガティブレシピ(誤例)を作って学習し、モデル化していきます。ユーザーがレシピの分類を推薦する機能があるので、ポジティブレシピは用意する必要はありません。
研究段階ですが、Attention model(*1)を用いて、レシピの翻訳を自動化することに取り組んでいます。そのほかに、形態素解析の精度向上、同義表現の自動獲得、レシピの要約、対話による検索などを今後の課題と考えています。
また、クックパッドのレシピをデータベース化した「レシピコーパス」を公開しており、各地の大学で研究に活用されています。第1回AIチャレンジコンテスト(テーマ:画像認識、主催:人工知能技術戦略会議、内閣府、文部科学省、応募締切:2017年3月9日)にも、画像データを提供しています。
https://deepanalytics.jp/compe/31

*1 Attention model:情報全体ではなく、一部だけにフォーカスしたベクトルをデコーダーで使用する仕組み。長文の翻訳精度がよく、翻訳処理が行えるDeep Learningの技術。

料理画像オブジェクトの検出と分類
(その1:オブジェクト検出) Rybicki Leszek氏

続いてLeszekさんから、画像全体から料理の画像を検出して切り出す、object detection(オブジェクト検出)についての発表です。

20年近く国内外から料理のレシピや画像を蓄積しているクックパッドでは、さまざまなデータセット(プログラムで処理されるデータのまとまり)でモデルを試すことができます。機械学習の技術で画像の中から料理と思われる部分を検出させると、いくつかは誤りがあります。90%以上の精度があれば問題ないかもしれませんが、最終的に正誤を人間が確認しなければいけないこと、選択されない部分に大切な情報が含まれている可能性があることが課題です。

これらの課題を解決するために、全体のつながりをリアルタイムで認識できるYOLOモデル(You Only Look Onceの略、リアルタイムオブジェクト認識)を採用しました。例えば、YOLOモデルで、カースタントで宙に浮いた人間が「飛行機」と判別されました。結果としては誤りですが、「人は空を飛ばない」という認識としては正しいといえます。また、より処理速度の速いtiny_YOLOを使って、動画の中で調理している部分をクローズアップできるようになりました。やがては、スマートフォンのようなスペックが高くないデバイスでも、画像検出を実現できるようになるでしょう。

料理画像オブジェクトの検出と分類
(その2:分類) 菊田 遥平氏

最後に菊田さんから、画像の中から特定の物体を判別して切り出すobject detectionの前段階にあたるclassification(分類)について、Deep Learningが使われているクックパッドのサービス「お料理アルバム」を題材とした発表です。

クックパッドの「お料理アルバム」は、スマートフォン内の画像から料理の画像を抽出して、カレンダーのように並べるというサービスです。

スマートフォンなどからクックパッドのサーバに吸い上げた画像データを料理・非料理で判別し、日付順にしてユーザーに提供します。画像処理が重い部分を非同期で処理し、疎結合できるのが良い点で、ほかのサービスにも活用できるアーキテクチャーだと思います。

最初の画像判別モデルは、AlexNet(トロント大学で開発されたCNN(*2)のモデル)で、シンプルに料理か非料理かを判別していました。識別が難しい画像も多いのですが、サービス規約上、クックパッド側は画像の閲覧は一切せず、料理以外のプライベート画像が紛れこんだ際の不快感に配慮して、確実に料理と判別できる画像だけを抽出するよう、チューニングされました。その結果、判別の精度は高いが再現性が低く、取りこぼしの可能性も低くはありませんでした。判別の精度向上のほかに、スマートフォンでの利用を視野に入れて動作を軽くすることを目指し、AlexNet以外のCNNモデル(Network in Network、VGG19、ResNet、Inception-v3など)への変更、マルチクラスタ化、テストデータセットの拡充、その他アプローチを検討するなど、継続的に改善を続けています。

*2 CNN :Convolutional Neural Network、畳み込みニューラルネットワーク。多層ネットワークで入力情報からオブジェクトの特徴を抽出し、分類を行う技法。

パネルディスカッション形式の質疑応答

休憩を挟んで、パネルディスカッション形式の質疑応答です。来場者がホワイトボードに貼った質問に回答されました。

Q:これからDeep Learningを始めるのにおすすめのソフトは?
A:TensorFlowはわかりやすいです。これから勉強するならKerasがおすすめです。速くて覚えたことがすぐに作れます。
Q:(自動で)カロリー計算はできますか?
A:材料表示からある程度は計算できますが、材料を省略する場合もあり、完全には難しいです。できたら面白いと思いますが、画像からはかなり難しいです。
Q:非料理のグレーデータをどう集めていますか。
A:実はありません。ライセンスフリーのデータを使っています。Deep Learningの学習でのデータ使用が著作権を侵害するか否か、なかなか答えが出ないと思います。
Q:人によって判断が変わるものはどう処理していますか。
A:昆虫のように文化の違いで料理となるものがありますが、そういった例への答えは出ていません。文化にあわせたサービスが必要なので、言語と同じくローカライズは必要だと考えています。
Q:モデル改善で効果があったのはどれですか。
A:1番はマルチクラスタ、次にモデルの変更、精度が上がったのはテストデータの追加が効いたと思います。パラメータのチューニングは継続的に行っています。
Q:同義語の獲得はどんな方法を使いますか。
A:ユーザーのデータやクエリの分布から同義語を認識したいと考えています。

締めはクックパッドならではの美味しいお料理!

セミナー後の懇親会は、クックパッドならではの美味しいお料理とお酒が用意されました。本日のテーマに沿った情報交換から世間話まで大いに盛りあがりました。

欲しいレシピに速やかにたどり着けるのも機械学習の成果だった

クックパッド社員の名刺。裏面に本人お気に入りのレシピが記載されています(左)。
参加者に配布されたステッカー(右)。

参加する前は、クックパッドと機械学習があまり結びつかなかったのですが、あらためて260万(*3)ものレシピを有するクックパッドで、欲しいレシピにスムーズにたどり着けることの凄さがわかりました。素人にはハードル高めの内容もありましたので、機械学習による画像解析やDeep Learningの細部については理解が難しかったですが、何ができるかはおおむね説明できるようになり、興味が湧いてきました。ある意味、テレビやパソコンと同じレベルの理解ですね(笑)。いつか、機械学習が一般の方にも使えるソフトになったら楽しそうだと思いました。

*3 2017年2月現在

原稿:Misa
ITベンチャーで企画、人材開発、広報などを経て独立。現在はコンサルタント、ときどきライター。
ライターとしては、IT系以外、アニメ・マンガ、車から美容・健康まで何でもチャレンジ中。

Cookpad Tech Kitchen #5〜クックパッドにおける最近の機械学習について〜

この記事はどうでしたか?

おすすめの記事

キャリアを考える

BACK TO TOP ∧

FOLLOW