eureka Meetup #02 -Machine Learning Eve- を開催しました!
第1回のeureka Meetup #01 -Android DroidKaigi再演-に引き続き、第2回のeureka Meetup #02 -Machine Learning Eve-を開催いたしました!
今回のテーマは機械学習ということで、外部講師の方をお招きして入門的なお話をしていただきつつ、現在のエウレカの機械学習の活用状況についてエウレカのメンバーから発表させて頂きました。
メディア
- 当日のTwitterの様子は、梶原がtogetterにまとめておりますので、こちらをご覧下さい。
- 参加者の方にもまとめていただいております!ありがとうございます!
- eureka Meetup(Machine Learning)に行ってきました
- 雑な感想とメモ【eureka Meetup #02 — Machine Learning Eve -】@20170518
セッション
あまり本には載っていない機械学習の話 by SUPINF 中丸さん
1人目は株式会社SUPINF(スピンフ)の中丸さん。
「あまり本には載っていない機械学習の話」というタイトルでご講演頂きました。
エヌビディアのカンファレンスのトレーラー動画をYouTubeの自動生成字幕(英語)表示で流し、参加者の皆様はそれをGoogle翻訳アプリのリアルタイム翻訳機能を通しての日本語訳を見ることで、機械学習や深層学習を利用したリアルタイム機械翻訳が到達しているレベルを体感するところから始まりました。
機械学習のさまざまな適用事例について紹介頂き、機械学習を実際のサービスに導入するに当たっては、職種問わず関係者全てが基本をおさえてビジネスを進めていくことが必要であるということです。
このことは非常に重要で、機械学習やその一種である深層学習、これらを使って実現する人工知能についても、よくわからないがとりあえず導入すれば全てが解決するという考えは非常に危険で、そのプロジェクトはきっと空中分解してしまうのではないかなと思います。
普通のサービス開発プロジェクトと同様に、しっかりとチームで足並みを揃えて推進することが肝要であると思います。ですが、基礎理論の理解に数学的な概念の理解がある程度必要であり、全てのメンバーが完全に理解するには通常のアプリケーションよりも若干難解であるため、基本的な知識レベルを揃えた上で齟齬少なくプロジェクトを推進していくことが普通のそれより難しくなっているのではないかな、と考えます。
続いて機械学習の基本概念である、学習と推論、学習アルゴリズムについて解説を頂きました。
中丸さんは y = a * x + b
という一次関数(正確にはa,xがベクトルなので異なりますが)の式を使って、Pairsを例として説明して下さいました。
- xをPairsで探せるお相手の特徴ベクトル(プロフィールの性格や年齢や収入)
- yを幸せになれる確率
として、
- yを最大化するa,bを決める作業が学習
- 学習を行った後に実際にさまざまなxを投入してyの値を得ることが推論
であるという、ステキな例えでした。
これでもなにやら難しいと思われそうですが、例えばExcelでもできる1変数の線形回帰の、変数が無数にある版と考えて差し支えはないと思います。(厳密には線形でない回帰の問題もあります)
最後まで網羅的で盛りだくさんな内容を、わかりやすく丁寧に解説して頂きました。ありがとうございました!
エヌビディアGPUでディープラーニング開発を始めよう by エヌビディア 村上さん
2人目はエヌビディアの村上さん。
エヌビディアといえばPCゲームをやっている方にはGeForceのビデオカードを作っている会社としてお馴染みかもしれませんが、今はそれだけでなく深層学習関連の技術をソフトウェアとハードウェアの両面から推進していらっしゃいます。
エヌビディアの歴史から、深層学習をGPU(Graphics Processing Unit)を用いて行うことのはじめの一歩について、ご講演頂きました。
20世紀の某3D格闘ゲーム(S社のV)が会社の成長に爆発的に寄与しており、2000年代でも日本におけるゲーム・3Dの流行が成長に寄与していたなど、非常に面白いエピソードも交えていただきました。
GPUを使用した深層学習は他の機械学習の使用ケースよりも、環境構築もアプリケーション作成もかなりハードルが高いと思っていましたが、最近はかなり整備されてきていてAMI(AWS上の構築済みサーバイメージ)もあるなど、かなり手を出しやすくなっているなと思いました。特に、NVIDIA DIGITSを利用したプログラミングレスな利用は、深層学習でどのようなことが出来るかを手軽に理解するツールとしても非常に有用そうに思えました。
そもそもGPUをなぜ深層学習などに使うかというところに関しては色々な解説がありますが、ざっくりまとめると以下になります。
- GPUは元々グラフィックス表示を行うためのものなので、同時に大量の浮動小数点演算の並列処理がCPUよりも得意。
- 数値計算にも転用する流れができ、GPGPUという技術が発展。
- エヌビディアをはじめ、専用の計算コア(速度重視で精度を落とした小数点演算ができるなど)を搭載したGPUが作られ始める。
- 平行して、GPGPUでの数値計算をサポートするライブラリや、それらを利用した機械学習ライブラリも作られ、どんどん充実してきた。
Webサービス業界の勉強会ではなかなか聴けない貴重なお話を聴くことができました。村上さん、ありがとうございました!
Pairsの成長を支えている機械学習の使いどころ by 鉄本 環
3人目は弊社からBI(Business Intelligence)チーム責任者の鉄本。
「Pairsの成長を支えている機械学習の使いどころ」というタイトルで、Pairsのサービスモデル、開発・運営組織体制、課題とその対策について概要をご説明した後、それらの一部に対して機械学習を適用した事例についてお話しさせて頂きました。
かなり生々しい内容となりましたので、当記事でのその内容の詳細な説明も含め、恐れ入りますが当日資料の共有はなしとさせて頂きます。
Pairsの投稿監視システム by James Neve
最後の4人目は、弊社 Under the Hood チームから James.
Pairsの投稿監視システムについてお話しさせて頂きました。
“Under the Hood” はあまり聞き慣れないものですが、直訳では”ボンネットの中”、”機器の中”、のようなニュアンスのフレーズです。
チーム名の意味としては、エウレカが提供するプロダクトを、ユーザが直接触れる部分からは見えないが非常に重要な部分を創り上げていったり、開発における技術的な課題を解決し続けたりするチームです。
イメージとしては、いわゆる技術基盤チームに近いものです。
投稿監視とは、エウレカがPairsを使っているお客様の安心・安全を確保するため、メッセージや自己紹介、プロフィール画像などを審査条件に基づいて行っている審査のことです。
あまりにもふさわしくないものに関しては否認させて頂いております。
従来は協力会社様と自社内カスタマーケアチームの手による目視の監視システムのみでしたが、前段として機械学習を活用した自動投稿監視システムを導入しました。
この導入にあたり、機械学習は使用すべき手法(理論やツール)のサーベイから実装まで行うなどフル活用しています。
James の発表では、主にこのサーベイと実装により得られた結果について発表させて頂きました。
有用な特徴量を見つけて用い、様々な手法を駆使して、結果としてテキスト及び画像の審査精度は非常に高いものが出来上がりました。
ですが、機械学習のモデルはリリースした瞬間から劣化が始まるので、これからも戦いは続きます。
参考資料
今後もMeetupを実施しています。
エウレカでは、今後も継続してMeetupを開催しています。様々なテーマで実施を予定しております。 エウレカの開発の裏側や会社の文化などを知って頂ければと願っています。
6/15 eureka Meetup #03 -WWDCレポート iOSエンジニア- — connpass
CTO金子がエウレカの『事業成長にフォーカスする開発組織』をご紹介し、iOSエンジニア3名がPairsにおけるiOSエンジニアリングをテーマにお話します。
6/29 eureka Meetup #04 -チーム開発ナイト- — connpass
チーム開発がテーマです。 Pairsの国内プロダクト責任者の金田が「Pairsにおいて大事にしたいユーザ体験やプロダクトで大事にしている価値」について話を行い、各チームのプロダクトオーナーがチーム開発をする上で大事にしている事をお話します。