#5〜クックパッドにおける最近の機械学習について〜2017.04.04Misaイベントエンジニア機械学習Tweet皆さん、料理レシピのコミュニティサイト「クックパッド」はもちろんご存じですよね。Kitchen」はいかがでしょうか。Kitchenは「テクノロジー×ものづくり」を軸に、クックパッドが培った知見や旬の情報を発信し、情報交換の場として開催しているイベントです。2016年8月からスタートし、5回目にあたる今回のテーマは「クックパッドにおける最近の機械学習」。定員70人に対して335人から抽選という、大人気の勉強会に参加してみました!Misa会場は、恵比寿ガーデンプレイスタワーのクックパッド本社内のキッチンです。4.8人に1人の倍率だけあって満席です。この後で後列に椅子が追加されました。集まっているのは、機械学習エンジニアもしくは機械学習に興味のあるエンジニアの方々で、素人が話についていけるかちょっと不安です。純さん(右)2016年12月に新設された研究開発部は、今後もさまざまなテーマにチャレンジする方針で新しい仲間(リサーチサイエンティスト、リサーチエンジニア)を募集中だそうです。原島さんから、クックパッドにおける自然言語処理の研究開発についての発表です。インターネット上でレシピの投稿と検索ができるクックパッドは、登録レシピ数260万、日次利用者600万人で、スペイン語やアラビア語などを含む多言語で展開しています。クックパッドでは、レシピの解析、同義表現の認識、レシピの分類、翻訳などに自然言語処理(人間が使用する自然言語をコンピュータに処理させる技術)を使用しています。呼ばれるパターン認識手法で分類して、ユーザーが使用できるようにしています。Rubyで実装しており、ポジティブレシピ(正例)とネガティブレシピ(誤例)を作って学習し、モデル化していきます。ユーザーがレシピの分類を推薦する機能があるので、ポジティブレシピは用意する必要はありません。model(*1)を用いて、レシピの翻訳を自動化することに取り組んでいます。自動獲得、レシピの要約、対話による検索などを今後の課題と考えています。クックパッドのレシピをデータベース化した「レシピコーパス」を公開しており、各地の大学で研究に活用されています。:2017年3月9日)にも、画像データを提供しています。model:情報全体ではなく、一部だけにフォーカスしたベクトルをデコーダーで使用する仕組み。Learningの技術。detection(オブジェクト検出)についての発表です。20年近く国内外から料理のレシピや画像を蓄積しているクックパッドでは、さまざまなデータセット(プログラムで処理されるデータのまとまり)でモデルを試すことができます。機械学習の技術で画像の中から料理と思われる部分を検出させると、いくつかは誤りがあります。90%以上の精度があれば問題ないかもしれませんが、最終的に正誤を人間が確認しなければいけないこと、選択されない部分に大切な情報が含まれている可能性があることが課題です。Onceの略、リアルタイムオブジェクト認識)を採用しました。YOLOモデルで、カースタントで宙に浮いた人間が「飛行機」と判別されました。結果としては誤りですが、「人は空を飛ばない」という認識としては正しいといえます。処理速度の速いtiny_YOLOを使って、動画の中で調理している部分をクローズアップできるようになりました。スマートフォンのようなスペックが高くないデバイスでも、画像検出を実現できるようになるでしょう。Learningが使われているクックパッドのサービス「お料理アルバム」を題材とした発表です。クックパッドの「お料理アルバム」は、スマートフォン内の画像から料理の画像を抽出して、カレンダーのように並べるというサービスです。スマートフォンなどからクックパッドのサーバに吸い上げた画像データを料理・非料理で判別し、日付順にしてユーザーに提供します。画像処理が重い部分を非同期で処理し、疎結合できるのが良い点で、ほかのサービスにも活用できるアーキテクチャーだと思います。最初の画像判別モデルは、AlexNet(トロント大学で開発されたCNN(*2)のモデル)で、シンプルに料理か非料理かを判別していました。識別が難しい画像も多いのですが、サービス規約上、クックパッド側は画像の閲覧は一切せず、料理以外のプライベート画像が紛れこんだ際の不快感に配慮して、確実に料理と判別できる画像だけを抽出するよう、チューニングされました。その結果、判別の精度は高いが再現性が低く、取りこぼしの可能性も低くはありませんでした。Network、VGG19、ResNet、Inception-v3など)への変更、マルチクラスタ化、テストデータセットの拡充、その他アプローチを検討するなど、継続的に改善を続けています。Network、畳み込みニューラルネットワーク。多層ネットワークで入力情報からオブジェクトの特徴を抽出し、分類を行う技法。休憩を挟んで、パネルディスカッション形式の質疑応答です。来場者がホワイトボードに貼った質問に回答されました。Learningを始めるのにおすすめのソフトは?A:TensorFlowはわかりやすいです。これから勉強するならKerasがおすすめです。速くて覚えたことがすぐに作れます。Q:(自動で)カロリー計算はできますか?A:材料表示からある程度は計算できますが、材料を省略する場合もあり、完全には難しいです。できたら面白いと思いますが、画像からはかなり難しいです。Q:非料理のグレーデータをどう集めていますか。ライセンスフリーのデータを使っています。Learningの学習でのデータ使用が著作権を侵害するか否か、なかなか答えが出ないと思います。Q:人によって判断が変わるものはどう処理していますか。A:昆虫のように文化の違いで料理となるものがありますが、そういった例への答えは出ていません。文化にあわせたサービスが必要なので、言語と同じくローカライズは必要だと考えています。Q:モデル改善で効果があったのはどれですか。A:1番はマルチクラスタ、次にモデルの変更、精度が上がったのはテストデータの追加が効いたと思います。パラメータのチューニングは継続的に行っています。Q:同義語の獲得はどんな方法を使いますか。A:ユーザーのデータやクエリの分布から同義語を認識したいと考えています。締めはクックパッドならではの美味しいお料理!セミナー後の懇親会は、クックパッドならではの美味しいお料理とお酒が用意されました。本日のテーマに沿った情報交換から世間話まで大いに盛りあがりました。欲しいレシピに速やかにたどり着けるのも機械学習の成果だったクックパッド社員の名刺。裏面に本人お気に入りのレシピが記載されています(左)。参加者に配布されたステッカー(右)。参加する前は、クックパッドと機械学習があまり結びつかなかったのですが、あらためて260万(*3)ものレシピを有するクックパッドで、欲しいレシピにスムーズにたどり着けることの凄さがわかりました。Learningの細部については理解が難しかったですが、何ができるかはおおむね説明できるようになり、興味が湧いてきました。ある意味、テレビやパソコンと同じレベルの理解ですね(笑)。いつか、機械学習が一般の方にも使えるソフトになったら楽しそうだと思いました。現在はコンサルタント、ときどきライター。ライターとしては、IT系以外、アニメ・マンガ、車から美容・健康まで何でもチャレンジ中。Facebookページの人気トピックスBEST5(201...2017.04.06前へTOPに戻る次へおすすめの記事2019.12.16エンジニアにとってマイナビで働く魅力とは!?『マイナビTec...2019.09.13失敗LT大会。ルーキーエンジニアが「あるある」失敗をライトニ...2019.09.11失敗LT大会。Corporation。