Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
機械学習を使った レシピ調理手順の識別 C-8 #devsumiC クックパッド株式会社 研究開発部 エンジニア 1
Slide 2
Slide 2 text
クックパッド ● 毎日の料理を楽しみにするサービス ● 月間約5,500万人 ● レシピ数は290万品 ● 大量の画像・テキストデータ ● ユーザがレシピを書いて投稿 ○ かなり自由な投稿が可能 ○ 気軽に投稿できる 2
Slide 3
Slide 3 text
課題の設定 3
Slide 4
Slide 4 text
調理手順 ● クックパッドのレシピ ○ タイトル ○ 材料・分量 ○ 調理手順 ■ 画像とテキストで入力 できる 4
Slide 5
Slide 5 text
調理手順 or Not ● 調理の手順そのものではないもの (非手順)がある ● 料理に関する手順のみを抜き出した い ↓ ● 非手順を識別するアルゴリズム を作った 5
Slide 6
Slide 6 text
ルールベースな方法を試す 6
Slide 7
Slide 7 text
機械学習を使わずに解けないか ● データを眺めて開発者が自ら解いてみる ○ 非手順には出てくる単語が限られている ○ 文章全体を見ることはなく特定のキーワードで判断していた ● まずはキーワード抽出でできないかやってみる ● 機械学習を使わずに済むならそれに越したことはない ○ メンテナンスも楽だし可読性も高い 7
Slide 8
Slide 8 text
キーワード抽出でやってみる ● 非手順 ○ 人気レシピに多い ○ 必ず調理手順の後ろの方に存在 ● 人気レシピの調理手順のうち後ろ10件 を取得する ● キーワードを抽出する ○ 単語ごとに分割する ○ 多く出現する順に並べる ○ ['掲載', 'つくれぽ', '話題', '感謝', 'み なさん', '100人', 'レシピ', 'コメント', ' れぽ', 'ありがとう'] 8
Slide 9
Slide 9 text
キーワード抽出はうまくいかない ● うまくいかない例 ○ 上に三つ葉を散らしたらできあがり→非手順と判定 ○ ○○さんがマヨネーズを足して作ってくれました→手順と判定 ● Accuracy(正解率) ○ 51.7% 9
Slide 10
Slide 10 text
機械学習を試す 10
Slide 11
Slide 11 text
機械学習を試してみる ● まずはスコアを出すことを第一に考える ● 一般的な手法に頼る ○ キーワードの組み合わせの出現の特徴量を使って分類 ■ TF-IDFベクトル ● 単語の出現回数を重み付けしたもの ■ ロジスティック回帰 ● データを2値分類する手法 11
Slide 12
Slide 12 text
92.4% Accuracy 12
Slide 13
Slide 13 text
実験だけでなくリリースまでやる ● サービスから参照可能にするためにデータベースに投入 ○ 毎週ペアプロしながらバッチにしていった ○ スコアを確認しつつリファクタリング ● 実際にサービスへ投入予定 ○ スマートピーカーによるレシピの音声読み上げ ○ レシピ検索のインデックスからの除外 13
Slide 14
Slide 14 text
まとめ 14
Slide 15
Slide 15 text
やるべきことをやるべき順でちゃんとやる ● ディスカッション/ヒアリング しながら進めた ○ 1人で黙々とやるものではない ○ 課題設定も含めタスクの全行程で行った ● 一般的な手法を使った ○ 一般的な手法でちゃんとうまくいった ○ ディープラーニングはうまくいかなかったときに使う ● きちんと性能をチェックした ○ 正解率だけを見ない ○ 機械学習には性能をチェックする方法がいくつかある ● ちゃんとバッチ化をした ● 結果を記録に残していく 15