読者です 読者をやめる 読者になる 読者になる

クックパッドにおける最近の機械学習について

f:id:yoshiaki-0614:20170303110052p:plain こんにちは、研究開発部の山田(@y_am_a_da)です。

去る2月16日、「Cookpad Tech Kitchen #5 クックパッドにおける最近の機械学習について」と題して、機械学習に関わっている方々向けの技術交流イベントを行いました。

https://cookpad.connpass.com/event/49324/

定員が70名のイベントでしたが、告知してから30分ほどで応募者数が定員超えの100人近く集まり、最終的には400人を超す方々にお申込みいただきました。これまでに開催したTech Kitchenの中でも過去最高の申込数であり、機械学習への関心の高さを感じました。 昨年7月に発足したばかりの研究開発部では、現在クックパッドに投稿されている250万品以上のレシピを始めとするさまざまなデータに対して、機械学習を活用したサービス開発を行っています。このイベントでは、研究開発部の現在の取り組みとそこで得られた知見について発表を行いました。

この記事では、その様子についてお伝えします。

クックパッドと自然言語処理 (Cookpad and NLP)

f:id:yoshiaki-0614:20170303120244p:plain

まず、原島から、クックパッドでの自然言語処理の活用事例について紹介がありました。

この発表では、自然言語処理による

  • レシピの分類
  • レシピの翻訳

などについて紹介をいたしました。具体的には、現在「おまかせ整理」として提供されているレシピのカテゴリ分類機能の実装方法と、日本語のレシピを英語のレシピに変換するためのモデルについて紹介をしました。

発表内容の一部は

でもご覧いただけますので、ご興味あるかたはあわせてご覧ください。

また、2年前に公開したレシピデータセットとその利用状況についても紹介をいたしました。

Food image object detection and classification: Challenges and solutions (part1 - object detection)

f:id:yoshiaki-0614:20170303115507p:plain

次に、レシェックから、画像認識を用いた写真中の料理領域の認識について紹介いたしました。

この発表では

  • ILSVRCの歴史
  • 「料理があるかどうか」だけでなく「どこに料理があるのか」を認識するための手法

についての紹介をいたしました。

具体的には、You Look Only Once、略してYOLOと呼ばれる手法による動画中からリアルタイムでの料理認識について触れ、発表の最後ではそのデモを行いました。

Food image object detection and classification: Challenges and solutions (part2 - classification)

f:id:yoshiaki-0614:20170303120245p:plain

最後に菊田から、画像認識を用いて写真が「料理」か「非料理」かを分類する手法について紹介いたしました。

この発表では

  • クックパッドで提供している「料理きろく」のアーキテクチャ
  • 「料理きろく」で行っている写真の「料理」「非料理」を分類するための試行錯誤

についての紹介をいたしました。

具体的には、発展著しいディープラーニングモデルの比較検討や二値分類問題の多クラス化拡張、など様々な試行錯誤をしながらサービスレベルの向上に取り組んだことについて紹介をしました。

質疑応答

質疑応答は、休憩時間中に質問を紙に書いてボードに貼ってもらう形式だったのですが、時間内に全て答えきれないほどの質問数で、大変盛り上がっていました。内容としては

質問1

料理/非料理の画像判別モデルの改善において様々な工夫をしたということだが、どんな取り組みが最も性能向上に貢献したか

回答1

CNNのモデルをより良いものにアップグレードすることと、二値判別問題から間違えやすいクラスを追加した多クラス問題に拡張したことの寄与が大きかった。データセットを拡充するというのも基本的かつ効果的だと思われるが、アノテーションのコストもあるため徐々に進めている。

質問2

研究開発をする部署にとって研究と開発の棲み分けは重要だと思うが、クックパッドの研究開発部ではどのように棲み分けをしているのか

回答2

それぞれが密接に関連しているものなので、明確に棲み分けてはいない。ただし個々人の興味や要求されるスキルが異なるため、研究の方に重きを置くメンバー、開発の方に重きを置くメンバー、というようにメンバーによって比重は異なっている。

などがありました。

懇親会

発表会の後は、懇親会を行いました。

懇親会では、弊社の研究開発部メンバーと参加者と用意されたご飯を食べながら様々な意見交換や雑談をしました。 今回の料理の目玉は、下のようなクックパッドロゴの入ったライスケーキでした。 f:id:yoshiaki-0614:20170303110047p:plain

まとめ

いかがでしたでしょうか。 クックパッドでは、一緒に機械学習を行っていくエンジニアを募集しています。ご興味ある方はぜひ遊びにいらしてください。 画像認識エンジニア | クックパッド株式会社 採用情報

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/