【機械学習エンジニアの悲喜交々:後編】
導入から運用ノウハウまで。FIVEの動画広告システムを作り上げてきた精鋭エンジニアが語る機械学習の現場
  • Co-founder, CTO 小西 祐介
  • Software Engineer 佐藤 喬之
  • Software Engineer 類地 孝介
  • Software Engineer 牟田 秀俊
【機械学習エンジニアの悲喜交々:後編】
導入から運用ノウハウまで。FIVEの動画広告システムを作り上げてきた精鋭エンジニアが語る機械学習の現場
  • Co-founder, CTO 小西 祐介
  • Software Engineer 佐藤 喬之
  • Software Engineer 類地 孝介
  • Software Engineer 牟田 秀俊
前回は「機械学習の悲喜交々」と題し、機械学習開発に向き合っているFIVEエンジニア陣の本音を赤裸々に語っていただく座談会の前半の模様をお送りいたしました。

後編にあたる今回もCEOの菅野が聞き手となり、「機械学習」と呼ばれる技術開発においての嬉しさ、その裏に隠されている人知れぬ努力、未来的だと呼ばれる革新技術運用の泥臭さを、FIVEエンジニアの赤裸々な本音と共にお届けいたします。
小西 祐介

小西 祐介

Co-founder, CTO

東京大学大学院修士課程にてコンピューターサイエンスを修了後、2009年に Google Japan に入社。Google Play、Android、Google ショッピングのエンジニアリング、製品開発を担当。2014 年にFIVE を設立。ICPC や TopCoder Open など、国内外のプログラミングコンテストで多数入賞。IPSJ Science Research Award for Young Scientists 受賞。
佐藤 喬之

佐藤 喬之

Software Engineer

大阪大学大学院生物科学科修了後、大手インターネット企業にてEコマースシステムの開発、広告配信システムの開発やビッグデータ分析等に従事しながら、プライベートではスマートフォンアプリの開発やウェブサービスを運営。2015年、FIVEへ参画。
類地 孝介

類地 孝介

Software Engineer

東京工業大学大学院修士課程にて制御理論を修了。株式会社オルトプラスのスタートアップ、東証一部上場、ベトナム支社のスタートアップに関わり、サーバサイドの開発、運用、継続的機能拡張、最適化を行う。2016年にFIVEへ参画。関数型言語Haskellを好む。
牟田 秀俊

牟田 秀俊

Software Engineer

東京大学大学院修士課程にてコンピューターサイエンスを修了後、2009年に Google Japan に入社。その後2012年に Google アメリカ本社へ異動し、スマートフォンアプリ向けの広告に広く携わる。2017年FIVEに参画。

インタビュアー/ファシリテーター:菅野圭介 CEO

とりあえず出来る限りの事をひたすらやる。「出来る限り」というポイントを何処に置くかも重要

広告システムは、機械学習の適応分野としては一番先に来た領域だと思っています。実際にデータ量だったり、モデルの精度が競争力になる現場でもありますので。その上で我々はそこを強みにしようとしてる訳なんですけど、「じゃあ機械学習って具体的に何をやってるの?」という部分に興味を持たれる方々もいらっしゃると思うんです。FIVEが今実施している機械学習の定義をわかりやすく伝えるとなんでしょうか?

一同:「売上を上げる、コンバージョンレートを上げる」。

ですよね(笑)。


小西
小西

興味のありそうな人に合った広告を出すことで、コンバージョンレートも上がります。その結果クライアントにもメディアにもハッピーになってもらえるという意味合いですね。


類地
類地

毎日追っていく指標があって、それを毎日きちんと追えるような仕組みを作るだとか。それがまともな値であるのかを検証するだとか、それを新しい指標を追加して毎日見られるようにするだとか。そこで何か問題が起こったりすると、定型的な分析ではなくもうちょっと細かく深堀りする分析というのも大事になってきます。


佐藤
佐藤

僕らには元々機械学習導入前提ではなく作成したスコアラーがあって、それを改善する方法として機械学習を使っています。最初は最低限なモデルを作って、そこから売上に一番繋がるシグナルが何処なのかという分析をして、どこが一番システムの向上に繋がるのかを調べて、それを実際に確かめてみて—という流れを繰り返している感じです。



元のスコアラーは、戦う相手としては結構強かったと。


佐藤
佐藤

そう、ですね(笑)。


「案外、人間のカリカリ・チューニングもやるなぁ」みたいな??(笑)

一同:(笑)

最初に機械学習のモデルを作る時って、どのようなプロセスで「こういうモデルでいってみよう」という意思決定をしたんですか?


小西
小西

さっきの出たログの話に関連しますけど、「キャンペーンをどこに配信してみたら結果はこうなりました」というノウハウは社内に沢山あったので、そこの経験値から「だいたいこういうことすれば効果出るよね」という肌感が字面に見えていたみたいな感じでした。


モデルを作る前に、ログから下分析をするというのがファーストステップだった感じ?


小西
小西

そうですね。それに、一番大切な事だと思っていました。


佐藤
佐藤

あと、広告業界だと、先人企業から生まれて積み重なってきた知見があるので、それを参考にしてどう進めるかを検討したりとか。


色々な論文を読んで、リサーチして。


佐藤
佐藤

そうですね。結構、狭い業界なので、だいたいみんな見ているものが同じだったりとかします。


小西
小西

自分で調べるつもりだったんだけど、結局みんな同じところにたどり着くという (笑)。


さっきの車輪の再発明的な感じにも聞こえるんだけど(笑)

一同:(笑)

小西
小西

全員がきちんと論文を読んでいますね。FIVEのエンジニアは大半がコンピューターサイエンス出身の人ばかりなので。


みんなが今みたいなプロセスを経て、割と泥臭い細かな検証を積み重ねていくという仕事な訳ですが、事前の下分析とか仮説に対して、結果が大きく外れるとか伴わないことも多いと思います。そういう時に次に繋げていくためにはどういった手を打っていきますか?


小西
小西

実際に配信したアルゴリズムの結果はすべてログとして残っているので「こうなる筈だったのに何故こうなっているんだろう?」ってひたすら調べたりします。それこそ論文も読みますしね。


牟田
牟田

最近だと、トラフィックが全然出てないメディアの分析を行ったら、その原因が「始業式が始まっていた」っていう結論に行きついたケースがありましたね(笑)

ははは(笑)


牟田
牟田

あ、そうか。今まで春休みだったのか!っていう(笑)


小西
小西

そういう僕たちにはどうすることもできないことも確かにありますね(笑)。あとは「このキャンペーンを配信すれば効果の向上に繋がる」という機械学習のロジックが働いた結果、同じキャンペーンだけを出し過ぎてしまって効果が落ちてしまったというケースもありました。そこを今度は影響が出過ぎないような設定を適用したりもしています。


学習が効きすぎた結果、逆にそれが偏りを生んでしまうというのは結構頻出しますよね。牟田さんの「始業式」のような話って、無数にある外部要因から影響を受けた一例だと思うんですけど、一方で一つのモデルに落としていく努力をするのがいまやっていることですよね。不確実性が伴う世の中で、機械学習を用いてどのように体系化していこうと考えてますか?


佐藤
佐藤

「外的要因で効果があまり良くなかった」という結果が出てしまう一方で、きちんとそこをガードする別のシステムを用意して今はカバーしています。


確かに、過去事象の学習=機械学習な訳だから見当違いになってしまうこともあると思うんですけど、効果が見込めなかった場合にどのようなアプローチがあるのでしょうか?


佐藤
佐藤

まずは分析をしてどこに原因があるのかを切り分けることが重要だと思います。それが「始業式」のようにある程度予測可能なものであれば一度経験すれば対策をたてられるので。「何かがバズってコンバージョンが急にいっぱいでてる」というような本質的に予測が難しいケースでは、最新のデータへの追従を素早くするとか人手で運用しやすい体制を整えておくといったことが効果的ではないかと思います。


小西
小西

とりあえず出来る限りの事をひたすらやるという。その「出来る限り」というポイントを何処に置くかも重要なのですが。

「機械学習が新しい知見を教えてくれた」という瞬間に出会える

うん、やっぱり泥臭いというか辛い話が多いわけなんですが(笑)。逆に機械学習に携わっていて気持ちの良い瞬間とかありますか?機械学習の現場で楽しい瞬間とか!


佐藤
佐藤

仮説を立てて検証してモデルを作って、それを使って期待通りの結果に繋がった時は凄く気持ちが良いですね。まぁ…そこに至るまでが本当に大変なんですけど…(笑)。今は結果に繋がることが多いので、楽しくやっています。


類地
類地

データを分析していると「あれおかしいな、なんだろう?」と思うことがあって、色々調べてみたら今まで見つかっていなかったバグが見つかったりして。「あぁ、そうか。データ分析じゃなくてデバッグしていたのか」ってなったりしますよね(笑)

「デバッグ(debug)」
プログラムをテストし、バグと呼ばれる誤りを発見し、取り除くこと。

また辛い話になっちゃった(笑) 


小西
小西

いや、でも、バグを見つけられると嬉しいですよ!

一同:(笑)

牟田
牟田

機械が学習をするプロセスの中で、社内の人間が気づけなかった事象を検知したりすると、「あ、機械学習が新しい知見を教えてくれた」という瞬間に出会ったりします。それは純粋に嬉しいですし、楽しいですね。


なるほどなるほど。まぁ割と良い感じでつらい話を中心に出てきた感じがするんだけど、今の機械学習チームで大きなトピックとして、LINEによるグループ化に伴い膨大なデータを扱っていくフェイズにあります。


小西
小西

絶賛パイプライン構築中ですね。


なかなかその規模のデータを扱えることなんてないですもんね。


小西
小西

普通では触れられないデータですから、貴重ですね。


最後に、この座談会記事をご覧になられている方々に一言あればお願いいたします!では…佐藤さん!(笑)


佐藤
佐藤

あ…はい!(笑)
えっと、この記事を読んでいただいて、興味を持っていただけたら是非ともエンジニアさんでもビジネス職の方でも気軽にお話しができればと思っています。最近は機械学習やデータサイエンスといった分野が流行っていますが、インターネット広告ほどデータが大量にあって機械学習の良し悪しが数字にダイレクトに成果としてでる業界は少ないのではないかと思います。また、実際の現場ではデータの前処理に時間をとられたり予想外の結果がでたりといった様々なハードルが存在していたりもします。その生々しい開発現場に真正面からチャレンジすることが好きな人でしたり、開発スピードやシステムへの負荷などののバランスを取りつつ配信サーバーの頭を良くしていく事を楽しめる方にとってはすごく快適な環境だと思います。

小西
小西

確かにそうですね。あの、「機械学習は高利貸しのクレジットカード」という論文があって…


待ってください、なんですかそれは (笑)


小西
小西

「機械学習を導入する事は簡単だけど、その後の運用がめちゃくちゃ大変なので、ひたすら技術的負債が増えていくから気をつけましょうね」という論文があるんです。エンジニアがきちんと機械学習を運用することができる環境作りをしていますので、作るだけではなく運用をするための技術も身に付くかと思います。

<上記の論文はこちらのリンクより参照できます>
https://www.slideshare.net/recruitcojp/ss-42745505

なるほどね!でも一般的なイメージは逆なんだろうけどね。「機械がやってくれるから運用も楽なんでしょ!」という認識を持たれている方も多いと思います。


小西
小西

「機械が何をやっているのかわからなくなってしまう」というのが本質なんだと思います。


“人間には何が起きてるのかわからなくなってしまう”という事なんですかね?


小西
小西

そうなると改善が出来なくなってしまうので、そのような事象が起きないようにしましょう、と。


いや良いですねー!(笑)。非常に生々しい感じで、良い座談会だったと思います!これがリアルですからね!

以上、FIVEエンジニア座談会「機械学習エンジニアの悲喜交々」の模様をお送りいたしました!
今回は主に機械学習についてのお話しがメインでしたが、実際の現場ではそこだけに留まらない様々な領域にて挑戦を続けています。「こんな事できるかもしれない!」「自分はFIVEでこんなことをやってみたい!」などなど、少しでもご興味を持たれましたら是非とも一度FIVEへ見学に来てみてください!ご連絡お待ちしています!

life at FIVE

MEMBER'S INTERVIEW