Talk at https://cookpad.connpass.com/event/70076/
画像分析によるレシピのカテゴリ分類クックパッド株式会社研究開発部菊田 遥平Cookpad Tech Kitchen #132017/11/15
View Slide
発表者紹介● 名前菊田 遥平(きくた ようへい)● 所属研究開発部● 肩書リサーチサイエンティスト博士(理学)● 専門画像分析、推薦アルゴリズム● 好きな食べ物焼き餃子、寿司、Dr Pepper@yohei_kikuta2 / 16
やりたいこと3 / 16機械学習を活用してより良いサービスを創る
やりたいこと4 / 16機械学習を活用してより良いサービスを創る※本発表では画像分析のみに注目ユーザの毎日の料理が楽しみになる
実現への一つの方向性5 / 16ユーザの持つ豊富な画像データ携帯端末には料理に関係する大量の画像データが存在料理の写真のみを抽出(料理きろく)自動で食事の記録が出来て、振り返りやつくれぽが容易各料理写真にレシピカテゴリの情報を付与(料理カテゴリ)食事の傾向などより細かい粒度で食事の振り返りが可能付与された情報に基づき更にサービスを発展パーソナライズされたレコメンド、食事の偏りの推定、......
実現への一つの方向性6 / 16ユーザの持つ豊富な画像データ携帯端末には料理に関係する大量の画像データが存在料理の写真のみを抽出(料理きろく)自動で食事の記録が出来て、振り返りやつくれぽが容易プレスリリースhttps://info.cookpad.com/pr/news/press_2017_0928料理きろくの詳細- モデルhttp://techlife.cookpad.com/entry/2017/09/14/161756- バックエンドhttp://techlife.cookpad.com/entry/2017/11/08/1325382017年11月12日現在・利用ユーザ数:14.6万人以上・料理写真枚数:1,310万枚以上
実現への一つの方向性7 / 16ユーザの持つ豊富な画像データ携帯端末には料理に関係する大量の画像データが存在料理の写真のみを抽出(料理きろく)自動で食事の記録が出来て、振り返りやつくれぽが容易各料理写真にレシピカテゴリの情報を付与(料理カテゴリ)食事の傾向などより細かい粒度で食事の振り返りが可能付与された情報に基づき更にサービスを発展パーソナライズされたレコメンド、食事の偏りの推定、......今日の話
今回リリースしたもの8 / 16本発表ではこれを実現する機械学習モデルの部分のみに着目
問題設計9 / 16● 解くべき問題はオーソドックスな分類問題● 料理きろくにより入力画像は(ほぼ)全て料理画像料理と判定されて記録された画像のみを対象にしているモデルの役割は料理画像に対して適切なタグをつけるというものすごいモデルサラダパスタ肉野菜炒め...
アプローチ10 / 16● 我々は Convolutional Neural Network (CNN) を知っている● 適当なモデルを選んで画像を集めれば余裕なのでは?巷では画像分類の問題は解けたと言われてるし...Ref: http://image-net.org/challenges/LSVRC/
困難な点11 / 16● Open set problem学習時には現れないカテゴリのデータがテスト時に与えられる● 困るところ単純な多値分類では precision が非常に低くなってしまう「その他」を作って寄せることも難しい(多様過ぎる)softmax の値で閾値を調整するのも難しい(自信満々に間違える)学習データのカテゴリは必ずしも画像分類に適したものではないすごいモデルサラダ?パスタ?肉野菜炒め?アルゴビというカテゴリを知らない...→ 普通の分類器は既知のカテゴリで予測 (しかも多くの場合高い confidence で)→ 例えば肉野菜炒めと予測→ ぜんぜん違うものなのに!
アプローチ12 / 16● モデルとしては多段 binary classification を構築precision を高くするようにモデルを作りたい意図特徴量を抽出した後に cascading で適用していく良い点:個々のカテゴリの判別性能に合わせて柔軟に設計可能悪い点:順番や閾値など hand crafted な部分も少なくないfeatureextractor料理画像で事前学習したInceptionV3 などサラダ or NOTパスタ or NOT肉料理 or NOT除外サラダパスタ肉料理100011
アプローチ13 / 16● 対象とするカテゴリを分類器による類似度ベースで統廃合サービスが有するデータは必ずしも画像分類には適していない○ 視覚情報と必ずしも結びついていない○ 粒度が揃っていない○ MECEでない以下の手順で対象カテゴリを構築1. メタデータとして使えるカテゴリを取得→ クックパッドのレシピなら1,000くらいのカテゴリ数2. 視覚的でないものや数が少なすぎるものを除外→ 「大皿・メイン料理」や数十しか画像がないもの3. サービスにおいて有用そうなものを人力で抽出4. 分類器での予測精度に基いた類似度でカテゴリを統合→ モデルにとって似ているものはまとめて取り扱いたい→ 特徴量平均の距離などに基づくカテゴリ類似度はイマイチ→ モデルの誤認識数をベースに類似度を定めたものが有用
どうやって評価するか?14 / 16● open set problem はそもそも汎化性能の評価が困難学習時とテスト時でデータの分布が大きく異なる学習時の valid error などは参考に過ぎないので本番で確認したい● しかし我々は本番運用してもユーザの画像にはアクセスできないプライバシー保護の観点● 採用しているアプローチ○ ユーザからのフィードバックを得られるようにした誤認識しやすいカテゴリなどが明らかになってきている○ オフラインである程度信頼できる評価可能なデータを準備研究開発部で annotator の人材を雇って鋭意作成中
今後15 / 16ユーザの持つ豊富な画像データ携帯端末には料理に関係する大量の画像データが存在料理の写真のみを抽出(料理きろく)自動で食事の記録が出来て、振り返りやつくれぽが容易各料理写真にレシピカテゴリの情報を付与(料理カテゴリ)食事の傾向などより細かい粒度で食事の振り返りが可能付与された情報に基づき更にサービスを発展パーソナライズされたレコメンド、食事の偏りの推定、......今日の話付与する情報をより rich にして有効活用していきたい!
● 我々のやりたいこと機械学習を活用してユーザにとってより良いサービスを創る● 実サービスにおける画像分析の難しさOpen set の問題などの困難により解けてない問題は多い● レシピのカテゴリ分類で取り組んでいること問題設計binary classification の組み合わせパラメタ調整やユーザからのフィードバックの仕組み● その他取り組んでいること料理/非料理分類、物体検出、料理写真の魅力度推定、...16 / 16まとめ