プログラミング歴約1年半で Google Brain Residency に応募した話

Shintaro Shiba
17 min readMar 31, 2017

2017年1月、僕はGoogle Brain Residency 2017 Program に応募した。これはその受験体験記であり、また不合格体験記でもある。書類選考、インタビュー審査まで進んだものの、残念ながら最終面接の直前でお祈りされることとなった。

結果に関わらずこのような記事を書いているのは(合格投稿じゃないとダサいよね)、Google Brain Residency についての記事が、日本語も英語も含めてほぼないからだ。始まって間もないプログラムということもあるのか、他に応募したことのある知り合いは1人しかおらず、受験者は現在進行形でRedditを通じて情報共有をしているという状況だ(残念ながら、ほとんどの人が書類落ちしているが)。情報蒐集にそれなりに苦労したこともあり、今後 Google Brain チームや Google Brain Residency を受ける受験者、あるいは海外就職に興味がある就活生、転職を考えている方に向けて、プログラムのことや僕のした準備について公開できるものを一部公開しておこうと思う。

僕は学部と大学院で行動神経科学という分野を専攻してきた修士課程在籍の学生だ。動物実験をするような生物系の研究室に所属している。タイトル通り、僕が本格的にプログラミングを始めたのは、Google Brain Residency に応募する1年と半年前である。応募のちょうど1年前の2016年1月には、プログラミングの練習のために単純パーセプトロンを実装していた。さらにちなみに、僕には留学経験はない。

そんな僕が読者に何より伝えたいことは、初心者からでも、海外経験がなくても、情報収集と戦略さえあれば世界に食い込める、ということだ。エンジニアの就活としてみると、ともすれば海外と日本が断絶されたような感覚を覚えないわけでもないが、大事なのは何がしたいかであって、蓋を開けてみれば全く異なっているというわけでもない。とすれば、視野を広げて日本以外の選択肢を増やしてみるのもいいかもしれない。もし世界一の環境での研究をしてみたいと思ったり、日本での就職活動に違和感を覚えたりしたなら、ぜひ世界に目を向けてみることも検討してみてほしい。

Google Brain Residencyとは

まず本題の前に、Google Brain Residency について簡単に説明する。

図1.Google Brain あるいは Google Brain Residency を知っている学生の割合

上の図は、Google Brain や Google Brain Residency の僕の周囲の日本人学生のべ約20人に聞いた結果としての知名度である(筆者作・調べ)。日常会話の中でカジュアルに聞いたものなので、正確な統計データではないことをご容赦願いたい。一応、機械学習で名の知れた会社でバイトをしているので周囲の学生はそれなりにこの領域に詳しいはずだ。しかしこのプログラムの存在はほとんどの人に知られておらず、Google と Google Brain の違いも半数以上の人が知らなかった。

さて、この Residency プログラムを開催している Google Brain とは Google における機械学習や人工知能分野の研究チームである。Google の深層学習フレームワーク tensorflow を開発したのはこのチームで、今の機械学習ブームの先陣を切っている。最近のQuoraによれば、世界で DeepMind の次に注目されているのがこのチームである。事実、トップカンファレンスの1つであるICLR2017には20本、口頭発表が4件採択されている。尋常な数字ではない。

Google Brain Residency とは一言で言えば、その Google Brain チームが提供している Deep Learning 研究プログラムだ。カリフォルニアにあるGoogle 本社で、Brain チームの社員がメンターについて1年間、Deep Learning の研究をする。非常に競争が激しいこの領域では、GPU等のインフラが整備され、トップレベルの研究者と議論しながら研究できる環境が非常に重要であることは間違いない。募集要項によれば:

The residency program is similar to spending a year in a Master’s or Ph.D. program in deep learning. Residents are expected to read papers, work on research projects, and publish their work in top tier venues. By the end of the program, residents are expected to gain significant research experience in deep learning.

(筆者による和訳)このプログラムはdeep learningで修士課程か博士課程の1年間を経験することに似ています。参加者は論文を読み、研究プロジェクトに参加し、トップレベルの環境で論文を出します。このプログラムが終わるまでに、参加者はdeep learningにおける突出した研究経験を得ることが期待できます。

また彼らが求めている応募者については:

We are looking for two different types of applicants for the residency program; those who already have substantial experience doing scientific or mathematical research in industry or academia in a field other than deep learning, and those who only have limited research experience, but are looking for an opportunity to learn.

(和訳)私たちは2種類の応募者を求めています。産業界もしくは学術界において、deep learning以外の分野の自然科学もしくは数学的な研究をかなり経験している人、そして研究経験は少ないけれども、学ぶ機会を探している人です。

とのことだ。枠1(研究経験が豊富あるいは、それなりの社会人経験がある人。すなわち博士持ちや既卒)と枠2(あまり研究経験がない人、すなわち学部や修士の新卒など)があるらしい。もちろん給料ももらえる(普通に考えて1千万円はくだらないだろう)し、ビザのサポートもある。現時点で世界最高の環境で研究の体験ができるという破格のプログラムである。僕の専門は行動神経科学、バリバリの生命科学だが、この後者の枠2を狙って応募してみることにした。

具体的な内容の前に選考のスケジュールについて簡単に説明すると、これは任期付きかつ時期固定のプログラムなので、通常のソフトウェアエンジニアのような通年採用とは異なり各年度に募集締め切りがある。2017年の場合、書類の応募締め切りは1月上旬だった。書類通過者はインタビューに進む。インタビューはビデオ通話もしくは現地でおこなわれ、合計回数などは明示されていない(おそらく応募者によって異なるのだろう)。合格者は4月上旬頃に確定し、7月から1年間プログラムが実施されることになる。

前置きはここまでにして、以降では、僕が実際にどのような準備をしたかについて書いていこうと思う。

受けるにあたってどのように情報を収集したか

応募締め切りが2017年1月にあり、僕が出願を決意したのは締め切り3ヶ月前の10月初め頃である。そこから書類の締め切りである1月上旬まで、情報収集し、それによって見えてきた自分に足りないものを準備しつつ、履歴書と推薦状の用意をした。

まずは情報収集からだ。相手はGoogleのトップ研究チームである。激しい競争になることは間違いない。受かりたいのであれば、取れそうな情報は足を使ってでも何でも取りにいくべきだ。

もちろん募集要項や過去の参加者の声は読むだろう。このプログラムはどういう参加者がいるのか? 自分が参加するためにはどのようなことをなしておけばいいのか? その中にコンタクトを取れそうな人はいないか?

公式資料が公開されているわけではないのだが、今のプログラム参加者一覧は、”google brain residency member” で検索するとわかる。多くの参加者が LinkedIn にプロフィールを公開しているからだ。MIT卒、スタンフォードの超有名機械学習ラボ出身、シリコンバレー有名ユニコーン企業のエンジニア、数学で学位を取った有名外資金融の人……募集の枠が2種類あるからだと思うが、年齢層はばらばら。しかし経歴に関してはどの参加者もバケモノ揃いだということがわかった。そして当たり前だが日本人はゼロ

心は折れそうになるが、調べていくと情報科学を専門にしていなくても勝機はあるだろうこともわかる。参加者の中には神経科学専攻の学部卒学生もいる。行動神経科学専攻の修士卒の学生でも行ける可能性はあるはずだ。その中で探し当てた参加者の1人に実際にコンタクトを取ってみた。その人は本当に親切にも、今年は何人くらいの応募者が見込まれるのか、どういうことをしておくと良いかということを教えてくれた。いきなり連絡が来たわけであり、相手にしてくれたのは完全にその人の優しさである。(この内容はここには書かない。)

様々な情報を元に(勝手に)推定すると、おそらく2017年の倍率は500~1000倍である。こんな倍率の数字は見たことがない。しかもその応募者は有象無象ではなく、腕に自信のあるアイビーリーグ出身者やどこぞの数学の天才がごっそりくるわけだ。東京大学などといういうランキング下位の大学のどこの馬の骨ともしれない大学院生なんて見向きされるのかと思わずにはいられない。

これで取れる情報は大方取り終わっただろうか? まだある。

Googleの日本支社では一般公開の tensorflow 勉強会がおこなわれることがある。そのときに偶然、Google Brain の co-founder の一人のトークがあることを知った。トークが終わった後に懇親会に出ずすぐ帰ろうとしていたその方を捕まえて、ちょっと強引に自己紹介し、受験に向けたコツはあるか? ということを聞いた。先方の答えは “do something interesting” というものだった。多分向こうはもう覚えていないだろうが。

こうして改めて書いてみるとわかるが、思っているよりも情報収集の可能性は転がっているかも知れない。場合によっては足を使っても取れる情報はある。

履歴書の準備

もらったアドバイスを元にしつつ、11月頃から履歴書(CV)の準備を始める。履歴書は友人のイギリスの大学院生に何回か添削をしてもらった。CVの書き方というのは日本の履歴書と少し違うので、英語を含めてきちんと準備をしなければならない。気安く頼める外国人の友達が身近にいなければ、大学に来ている留学生と知り合うか、そうでなければ英文校閲サービスを使用するといい。ちなみに最近の流行はgrammarlyだ。

参考までに書いておくと、CVに書いた内容は、自分の名前所属とgithubやLinkedInのリンクの他下記の7点である。ホームページがあればそれでも良いだろう。

①簡単なキャリアサマリ

②学歴

③インターンシップ経験

④出版物・学会経験

⑤その他の活動

⑥機械学習の実装やkaggleの経験

⑦その他スキル(プログラミング言語とかコミュ力などのアピールポイント)

僕は2ページに収めたが、後から情報を集めていると1ページの方が好ましいということがわかった。できるだけ短くすることはもちろん大事だが、2ページでも書類審査には通ったので、無理して1ページにこだわる必要はないと思う。

さらに、情報系の友人にアドバイスをもらいつつ、履歴書の中身を強くしていく。「大学院受験と違ってTOEFLもGREも必要ないんだから、その受験料だと思って…」などとAmazon GPUインスタンスに溶けたお金は一体いくらになっただろうか。

推薦状の準備

最後に推薦状の準備である。推薦書は多いほうがいいのは間違いないだろう。思っている以上にコネのものいう力が強いというのはよく聞く話である。そのへんは海外大学院受験と似ているかもしれない。

僕は3通用意した。1つは、僕の研究室の教授(日本国籍)。行動学や神経科学をちゃんとやってきたよ、ということを書いてもらう。ちゃんと英文校閲もしてもらった。もう1つは、アメリカの大学の情報科学の教授(米国籍)。最後に、元Google関係者(米国籍)。日本人だけでは推薦状は心もとないと考えたためだ。ここでは名前や詳しい素性は伏せる。

その他の書類の準備

最終学歴の成績証明書(もちろん英語)が必要になる。念のため、年末年始は大学での証明書発行ができないこともあるので気をつけたほうがいい。

それから忘れてはいけないのがカバーレターだ。多くの応募者のカバーレターは読まれない。しかし、選考を進むにつれてカバーレターも読まれる可能性が高くなることは想像に難くないので、きちんと書くにこしたことはない。1文で自己紹介して、なぜ自分はこのプログラムに行かなければならないのか、自分が他の参加者に比べて適している理由は何か、ということを書く。手紙と同じように “To the committee of the Google Brain Residency 2017 Program” で始めることと、結びの文句を忘れずに。これもイギリスの友人に添削してもらった。彼女には大変お世話になった。

書類通過後の連絡

書類通過の連絡は出願から約1ヶ月後にメールで受け取った。RedditやTwitterを見ていると、サイレントで落ちた人、落ちた連絡を受けた人、通過連絡が2ヶ月近く後に来た人など様々いるらしい。その場で最終までの残りのインタビュー日程全てのスケジューリングをする。また、リクルーターがつくのでその人に何でも質問をすると良いだろう。カメラやマイクのテストもすることができる。候補者さえも大事に扱ってくれるところは、この企業の良いところの1つだと思う。

インタビュー準備

インタビューも、研究内容を話すだけの人やコーディングをする人などがいたようだ。僕の場合はコーディングだった。コーディングインタビューは人生で1度しか受けたことがない。しかもその時も、出された問題が解ける関数を含むようなライブラリを1行目でimportしたという常識の無さを発揮していた(これは笑い話)。それまで何も準備をしていなかったため、そこから数週間は受験勉強のようにインタビューの準備を進める。というか正直、まさか書類に通ると思っていなかった。

具体的な対策内容はここでは伏せる(例によって、自分が受験したいと思っている人は直接聞いてほしい)。さらに、知り合いの外国人エンジニアにインタビューの練習を何回かしてもらった。彼らにも大変お世話になった。

インタビューの結果

残念ながら秘密保持のため、これ以上のインタビューの詳細についてはここには書けないし、おそらく聞いても答えられないだろう。

インタビューの結果についての連絡は電話だった。電話での連絡というのも丁寧な印象を受ける(ちなみに何度かあった電話のやりとりは、全て時差を考慮してくれた時間にかかってきていた)。多くの人がメールで受け取っているようだが、なぜ自分が電話だったかはわからない。直接フィードバックなども聞くことができたのでありがたかった。結果としては、現地での最終インタビューの1つ手前のラウンドでお祈りされてしまうという結果になった。残念だったが、フィードバックについては納得感もあった。なるほどと思ったが、逆に次はもっとうまくできるという自信にもなった。この辺りは日本の就活と通じるものもあるかもしれない。

おわりに

この記事は合格報告ではないが、これも1つの縁である。事実、準備の過程で様々な方に出会い、お世話になって、すでに次の仕事に繋がっているし、関係者には他にここ受けたら? と企業の紹介もしてもらった。他の仕事についてはおいおいアウトプットしていこうと思う。Google Brain は現時点で最も競争が激しい就職先の1つなので、その努力を他の企業に応用することはそこまで難しくないだろう(と願いたい)。

少ない経験から伝えたいことを言わせてもらうなら、大事なのは情報の集め方とスキルだ。多くの人が Residency Program を知らないし、ダメ元でも co-founder にコンタクトを取ってみたりしない。書類だけで競争率はゆうに50倍を超えていることが予想され、対策を立てなければ書類にも通らなかった。

情報の集め方についてはこれまでに書いた通りだが、スキルについても少しだけ書くなら、小手先のことを考えずに本質的なことを主体的に勉強していくことが重要だと思う。僕は環境に恵まれて、周囲の人に本当にお世話になってきた。この記事の読者に需要があるかはわからないが、具体的に英語とプログラミングについて少しだけ書いておく。

まず英語について。例えば留学経験等のない日本人からは、英語が話せない、という声はよく聞く。僕自身英語は話せる方だが、留学経験はなく、話す機会を自分で作りにいっていた。例えば東京大学には、留学生のチューターという制度があり、実際僕もチューターとして彼らの生活をサポートしていたことがある(住民票や健康保険の手続きなんかまで一緒にやった)。実は僕が英文校閲をお願いしたのはかつてチューターとしてサポートした学生だった。大学に入ってから英語の勉強をほぼ辞めてしまう場合、英語力は大学受験時のままであり、冷静に考えて海外の大卒レベルに話せるようになるはずはない。話せないなら話す機会を作ったり、TOEFLの勉強をすればいい。

また、プログラミングについてもよく、「研究で使うわけでもないのにどうやってプログラミング勉強したの」とか「モチベーション保つのは大変じゃないの」とか聞かれるが、その時点で選抜がかかっていることを理解したほうがいい。今は様々な学習チャンネルがある。例えばUdacityには無料でDeep Learningのコースがあるkaggleに参加すれば様々なデータ解析技術を勉強しながら試すことができる。今はエンジニアが足りていないので、日本ではプログラミング未経験でも歓迎、のようなインターンの募集も多々ある。そういうインターンに飛び込んで、勉強せざるを得ない環境に自分を置くというのも手だろう。自分が作ったものはなるべく結果が見えるように、githubで公開したりkaggleという形に残したりすることも大事だ。

最近は人工知能という言葉の入ったニュースを目にしない日はない。日本でも、(実態はどうあれ、少なくともプレスリリースでは)多くの企業が人工知能に力を入れているが、全ての企業で計算リソースや、特に人材が潤沢なわけではない。技術のあるエンジニア同士は引かれあうので、人材が局在している印象を受ける。そういった意味では、名実ともに本当に実力のある会社を中の人を見ながら見極める必要があるだろう。スキルベースで話が進んでいくエンジニアであれば、自分に必要なスキルは何で、どこならばそれを最も実現できるのかを考えることが最も誠実な道の一つであり、その中でもしかすると世界を見てみるのも1つの選択肢かもしれない。ちなみにこういう挑戦をしていると日本での就活には苦労しない、ということも付け加えておこう。

ここまで読んでいただいて、Google Brainに限らず、挑戦してみようと思った読者が1人でもいれば嬉しい。来年のプログラム出願まであと10ヶ月ある。そもそも普通の海外企業は就活時期に決まりなどなく、自分の履歴書を送るだけだ。ぜひ挑戦してみてほしい。もしかすると来年、このプログラムに応募するライバルになっているかもしれない。

Unlisted

--

--