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
Cookpad_R&D_internship_2018_byumeco
Search
umeco
September 06, 2018
Technology
0
400
Cookpad_R&D_internship_2018_byumeco
In 2018, I had worked summer internship of R&D at Cookpad.
This slides is my report of it.
umeco
September 06, 2018
Tweet
Share
More Decks by umeco
See All by umeco
【WSSIT2019】食材名の分散表現学習を用いた料理レシピの栄養推定手法
umeco
0
520
Distributed prioritized experience replay
umeco
0
440
【WSSIT2018】料理レシピの分散表現を用いた代替食材の発見手法
umeco
2
520
Using an Artificial Financial Market for studying a Cryptocurrency Market
umeco
0
560
【WSSIT2017】過去の変動に対する類似検索を用いた短時間USD/JPY為替レート予測
umeco
0
420
Other Decks in Technology
See All in Technology
Cloud Service Mesh に触れ合う
phaya72
1
230
M5stackで使用できるpHセンサの開発
shinrinakamura
0
190
M&A戦略を支えるデータマネジメント (MIDAS Tech Study #16 GENDA Komiyama)
kommy339
1
110
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
270
地理空間データ可視化・解析・活用ソリューション Pacific Spatial Solutions (PSS)
pacificspatialsolutions
0
330
web-application-security
matsuihidetoshi
1
190
Microsoft for Startups Founders Hub_20240429 update
daikikanemitsu
1
2.4k
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.4k
LLM開発・活用の舞台裏@2024.04.25
yushin_n
3
1.3k
本当のAWS基礎
toru_kubota
1
640
AWS学習者向けにAzureの解説スライドを作成した話
handy
3
190
今日からできる!簡単 .NET 高速化 Tips -2024 edition-
xin9le
7
4k
Featured
See All Featured
Statistics for Hackers
jakevdp
790
220k
Into the Great Unknown - MozCon
thekraken
14
1k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
Faster Mobile Websites
deanohume
300
30k
How GitHub (no longer) Works
holman
305
140k
Side Projects
sachag
451
41k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
The Art of Programming - Codeland 2020
erikaheidi
43
12k
A Tale of Four Properties
chriscoyier
152
22k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
Designing for humans not robots
tammielis
247
25k
Testing 201, or: Great Expectations
jmmastey
30
6.4k
Transcript
レシピの分散表現を用いたアレンジ度の算出 青山学院大学大学院 知能情報コース1年 梅本晴弥 2018 年 8 月 24 日
目次 1. 個人ワークのアイデアと目標 2. アプローチした手法 3. 実験と考察
目次 1. 個人ワークのアイデアと目標 2. アプローチした手法 3. 実験と考察
個人ワークにおけるアイデア 検索方法 • 現在、大きく分けて新着順と人気順が実装 • つくれぽ数、調理時間、レシピの種類等で絞り込みが可能 別の検索方法が実装されれば便利なのでは?
現在の検索方法の考察 新着順 • 新しいレシピが上位に表示(完全に時系列順ではない?) • 時間が経過したレシピは検索されづらくなる 人気順 • 人気のレシピが上位に表示(閲覧数orつくれぽ数?) •
新しいレシピはこの上位に入りづらい(古いレシピが有利?) 時間が経過し見られなかったレシピは埋もれてしまう!
目標:アレンジ度を用いたレシピの検索 個人的な考えとして 料理経験が浅い人:基本的なレシピを検索したい 料理経験が深い人:アレンジされたレシピも検索したい レシピのアレンジ度が計算できれば実現可能 かつ 時間・人気に縛られず検索可能
目次 1. 個人ワークのアイデアと目標 2. アプローチした手法 3. 実験と考察
アレンジ検索のイメージ レシピを分散表現化 検索によるレシピの絞り込み(カレー) 重心ベクトルを算出し基本レシピとする 基本レシピと他のレシピの類 似度をアレンジ度とする
レシピの分散表現化 doc2vecを用いてレシピの分散表現を獲得 レシピ(100万件)から得た2種類のデータに対しdoc2vecを適用 1. レシピの手順を全て結合し、1文書とみなし学習(step-vec) 2. レシピの食材を1文書とみなし学習(food-vec) 前処理としてNEologdで分かち書き 1. step-vecは名詞、動詞のみ
2. food-vecは名詞のみ parameter: PV-DM, 100dim, window-8, min_count-10, 30 epochs
アレンジ検索のその他の詳細 レシピの検索 • レシピのタイトルに検索文字列が 含まれているものを抽出 • 誤抽出もある程度存在 重心ベクトルの算出 • 抽出されたレシピの分散表現の平
均を取ることで算出 • 外れ値に対する処理は行わなかっ た
目次 1. 個人ワークのアイデアと目標 2. アプローチした手法 3. 実験と考察
分散表現の妥当性 獲得した分散表現で上手く類似レシピを発見できるか step-vec target: 子供が喜ぶクリスマスケーキ デコ♪ 子どもと一緒に!こいのぼりのケーキ トーマスケーキ 6歳の誕生日ケーキ 宝箱 ミニーちゃんキャラケーキ
新定番!!南瓜の塩バター煮。 キャラデコケーキ*スーパーマリオ ☆ふわふわしっとり☆チーズ蒸しパン♪ 誕生日キャラケーキ 長~いSLマン 4歳 仮面ライダーダブルのケーキオリジナル かわいい♪リラックマのカップケーキ food-vec target: 子供が喜ぶクリスマスケーキ デコ♪ キャラ弁☆オカザえもんのおにぎり 特製★梅シロップ★ 新じゃがのガーリック炒め もやしナムル 簡単な作り方 簡単!! トロ玉キャベツだぁ~ ☆今日のおやつはオムレット☆ 鶏とサラダ豆のオーロラソースサンド めかぶ★パスタ 旨苦ニガ☆ゴーヤのさっぱりおひたし ネバネバオクラの三色丼 step-vecのほうがより正確に類似レシピを算出できている
重心ベクトルは基本料理か確認(カレーを検索:26000件) 重心ベクトルは基本料理ではなさそう... step-vec:類似TOP10 0.95:残りカレーで チーズカレー トースト♪ 0.95:残りカレーでドリア! 0.95:2日目カレーで☆なんちゃってドリア 0.94:骨付き鶏肉のグリーンカレー 0.94:白身魚のクリーム&カレー風味
0.94:残ったカレーでカレードリア★ 0.94:エビと夏野菜のさらさらスパイシーカレー 0.94:本場の味☆簡単焼きカレー 0.94:豆腐ちくわカレー 0.94:じゃじゃっと牛蒡でカレーパスタ step-vec:非類似TOP10 0.05:バターチキンカレー:ルー不使用★簡単本格 0.08:イカとピーマンのカレー炒め 0.08:細切りジャガイモとハムのカレー炒め 0.08:スタミナ★夏野菜カレー☆ 0.09:味付け玉子カレー醤油風味☆お弁当のおかず 0.09:牡蠣のオイル漬けカレー風味 0.10:カレー鍋の残りでホットミルクパスタ 0.10:カレーの残りで野菜炒め 0.10:デコカレー 虹色ご飯 0.10:♪お正月に作ろう♪カレー
可視化による基本料理の確認1 PCAによって2次元に圧縮(1000サンプル)
可視化による基本料理の確認2 重心ベクトルの場所(-0.0062 -0.0236)
可視化による基本料理の確認3 オーソドックスな料理を分散表現化、その 位置を表示させてみる 入力手順:ジャガイモ、人参、鳥肉は一口 大のサイズにカット、玉ねぎはみじん切 り。カットした具材におろしにんにく、おろし しょうがをお好みで加えてきっちり炒める。 水1250mlを加えて15分中火で煮込む。こ の時灰汁をとっておく。カレー粉を加えて 中火で10分煮込む。カレー粉が溶けたら
完成。 重心ベクトル(-0.0062 -0.0236) 基本 料理ベクトル(0.6449 -0.4223)
基本料理ベクトルが上手く取得できた場合 先程の基本料理ベクトルを基準とした場合 step-vec:類似TOP10 0.65:こくまろ〜なカレー 0.63:夏野菜コロコロドライカレー♪ 0.61:夏野菜いっぱいラブリーカレー 0.61:意外と美味しい♪ ちくわのカレー 0.61:夏野菜ドライカレー 0.60:夏野菜たっぷり!我が家の夏野菜カレー 0.60:グリーンカレー
0.60:我が家のカレー(黒豆投入編) 0.60:鶏肉のカレー煮込み 0.60:コロコロ野菜のカレー step-vec:非類似TOP10 -0.20:*おつまみに*手羽先のカレー粉揚げ* -0.16:簡単!1晩寝かせたカレーを今日♪ -0.13:すき家のカレーをアレンジしたよ♡野菜♡ -0.13:ミートソース味のドライカレーもどき -0.13:簡単★タイ風エビのグリーンカレー -0.13:ママのドライカレー -0.12:グリンピースとパニール のインドカレー -0.11:ご飯の時間ですよ~◆花時計カレー -0.11:私流のカレーうどん -0.10:挽肉とトマトのカレー 見た感じ重心ベクトルよりもアレンジ度がより良く計算できている
基本料理ベクトルが上手く取得できた場合 先程の基本料理ベクトルを基準とした場合 food-vec:類似TOP10 0.60:カレーライス 0.60:すき家の新カレーで!超簡単ひよこ豆のパテ 0.56:簡単☆ヘルシー☆炊飯器でカレーライス 0.55:お手軽キーマカレー 0.55:圧力鍋で作る牛スジカレー 0.53:デミグラスソースでひき肉カレー 0.52:キャベツとグリーンピースのカレー
2 0.50:サラサラがお好み❤ひき肉のカレーライス 0.50:ダイエットドライカレー 0.50:30分で激うまカレー♡ food-vec:非類似TOP10 -0.35:お弁当に!カレーライスおいなりさん☆ -0.32:クリスマスに☆カレーマリネチキン焼き -0.31:ツルムラサキのカレー味炒め -0.31:ジャガ&ベーコン ちょっぴりカレー風味 -0.30:☆10分で簡単!ガーリックビーフカレー☆ -0.30:ほんのりココナッツ風味の牛乳カレー -0.29:余ったカレーで♪焼きカレー -0.29:チキンカレー -0.27:昆布水を使ってビーフカレー大好評♪ -0.27:残ったカレーと麺つゆの簡単カレーうどん
2種の分散表現を用いてアレンジ度を算出 step-vec → 先程の基本料理ベクトルを基準とする food-vec → 'にんにく', 'ルー', '塩コショウ', '肉こま切れ', 'じゃがいも', 'にんじん', 'たまねぎ'の分散 表現を基準とする
類似度:2種類の分散表現による類似度の積を最終的な類似度とする アレンジ度: 類似度が高い → 基本料理ベクトルに似ているのでアレンジ度は低い 類似度が低い → 基本料理ベクトルと似ていないのでアレンジ度は高い
2種の分散表現を用いたアレンジ度 類似TOP10 0.19:簡単♪ドライカレー 0.19:釜玉風♥カレーうどん 0.18:自分流カレー(覚書)圧力鍋 0.18:豆腐ペーストでカレールー♪ 0.17:ホットプレートで簡単カレーパエリア 0.15:野菜カレー! 0.15:野菜たっぷり鶏天カレー 0.14:ニラ鶏そぼろ乗っけカレー
0.14:フルーティーな秋味ドライカレー✿◌ฺ 0.14:カレー焼きそば 非類似TOP10 6e-09:春菊とハムのカレーヨーグルト和えサラダ 7e-07:きいろのトラネコちゃんカレー 1e-06:隠し味はカラメル!?こくあまカレー 1e-06:簡単キャラカレー ライオンさん 2e-06:リメイクレシピ★お味噌汁からのカレー! 3e-06:簡単!ジャーマンポテトサラダカレー風味 3e-06:レンジ料理☆タニタ流豆腐のカレー風味丼 6e-06:鶏団子ゴロゴロ!ポパイスープ❤カレー風味 6e-06:簡単☆ドライカレー 6e-06:鶏レバーのカレー風味炒め=ブッタン 非類似にカレーではない食材が多く出現 アレンジ度がの算出が以前より正確に
考察 重心ベクトルが基本料理ベクトルとならなかった → 基本的なレシピの投稿が少なく、単純な平均では求められない レシピ間の類似度は良い精度で取れていた → 基本料理ベクトルさえ取得できれば、アレンジ度の計算は可能 2種の分散表現を用いることでより良くアレンジ度が計算できた → 1種では手順や食材の書き方によって分散表現が大きくぶれてしまう が、2種にすることによってより堅牢な分散表現が獲得できた