Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20171115_Cookpad_TechKitchen_#13
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yoppe
November 15, 2017
Technology
6.8k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20171115_Cookpad_TechKitchen_#13
Talk at
https://cookpad.connpass.com/event/70076/
yoppe
November 15, 2017
More Decks by yoppe
See All by yoppe
20211023_recsys2021_paper_reading_YoheiKikuta
diracdiego
1
520
20201121_oldpaperreading_computing_machinery_and_intelligence
diracdiego
0
190
20200906_ACL2020_metric_for_ordinal_classification_YoheiKikuta
diracdiego
1
1.3k
20191102_ACL2019_adversarial_examples_in_NLP_YoheiKIKUTA
diracdiego
2
1.5k
20190223_nlpaperchallenge_CV_4.3to5.5
diracdiego
2
870
20180701_CVPR2018_reading_YoheiKIKUTA
diracdiego
3
1.3k
20180414_WSDM2018_reading_YoheiKIKUTA
diracdiego
0
750
20180306_NIPS2017_DeepLearning
diracdiego
4
6k
20180215_MLKitchen7_YoheiKIKUTA
diracdiego
0
490
Other Decks in Technology
See All in Technology
人とエージェントが高め合う協業設計
kintotechdev
0
190
Type-safe IaC for Dart
coborinai
0
170
[2026-07-15] AI Ready なはずだったアーキテクチャと、見えてきた課題・次に目指す状態
wxyzzz
11
4.1k
しくみを学んで使いこなそう GitHub Copilot app
torumakabe
2
290
【Claude Code】鹿野さんに聞く 私の推しの並行開発環境 大公開 / claude-code-parallel-2026-07-15
tonkotsuboy_com
13
8.8k
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
480
Amplify Gen2でbackend.tsにCDKを定義する/しない事によるCDKの挙動の違いとユースケース
smt7174
1
440
OPENLOGI Company Profile for engineer
hr01
1
74k
「最後に責任を取るのはチーム」— 人間のPRレビューを最小化してアップデートしたメンタルモデル
jnishime_dresscode
0
960
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
3
870
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
2
140
Vポイント分析基盤におけるデータモデリング20年史
taromatsui_cccmkhd
2
150
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.3k
A Tale of Four Properties
chriscoyier
163
24k
Mind Mapping
helmedeiros
PRO
1
290
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
First, design no harm
axbom
PRO
2
1.2k
The Language of Interfaces
destraynor
162
27k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
350
Building Flexible Design Systems
yeseniaperezcruz
330
40k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
830
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
310
Everyday Curiosity
cassininazir
0
260
YesSQL, Process and Tooling at Scale
rocio
174
15k
Transcript
画像分析による レシピのカテゴリ分類 クックパッド株式会社 研究開発部 菊田 遥平 Cookpad Tech Kitchen #13
2017/11/15
発表者紹介 • 名前 菊田 遥平(きくた ようへい) • 所属 研究開発部 •
肩書 リサーチサイエンティスト 博士(理学) • 専門 画像分析、推薦アルゴリズム • 好きな食べ物 焼き餃子、寿司、Dr Pepper @yohei_kikuta 2 / 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/132538 2017年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 な部分も少なくない feature extractor 料理画像で事前学習した InceptionV3 など サラダ or NOT パスタ or NOT 肉料理 or NOT 除外 サラダ パスタ 肉料理 1 0 0 0 1 1
アプローチ 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 まとめ