あおのたすのブログ

Deep Learningと自然言語処理と機械学習に興味がある大学院生のブログ。最近は強化学習・Semi-Supervisedなどに興味が出てきた。

PFNに入社して1年が経ちました

Googlerの皆様のブログを発端として、自分も感化されて記事を書いてみます。
note.mu

medium.com

ctrl-x-s.blog


今回書きたいのは主に:

  1. どうやって自分がPFNに入ったか
  2. この1年PFNでどんなことをやっていたか

を振り返りたいと思います。

学生時代(中学生・高校生〜)

自分がPFNに入社するまでの話をする前に、中学生の頃に話をさせてください。(どれだけナルシストナンダ)

中学生の頃、僕はウェブサービスを作るのが好きでした。
父親からもらったPCで簡単なhtmlを書いたり、掲示板をカスタマイズしたりしていました。

全くプログラミング分からなかったので、PHPの本を買って勉強して、
ウェブサービスを作って、はてなブックマークのホットエントリーに入るかどうか、にすべてをかけていました。
当時、Google検索エンジンに興味を持ち、自然言語処理という技術らしいということを知り、
自然言語処理に興味を持つようになります。

当時はMashup Awardなどコンテストに応募してたりしていました。
gihyo.jp


また個人サービスを作っている方も多く、
satoru.net
ropross.net
読んだ本を記録して、新しい本に出会おう - 読書メーター
など個人で活躍されている方々を尊敬な眼差しで見ていました。

ウェブサービス時代

大学生の頃もウェブサービスなど作っていて、ある時思いました。
Webサービスを開発している会社が本気を出したら、僕の作っているサービスはすぐ作ることが出来るだろうし、
僕が今やっていることは意味あることなのだろうか・・・


そこで自然言語処理を使っているGoogleのようなコピーできないサービスを作ることに価値があるし、
自分も自然言語処理を勉強したいと思い始めます。

自然言語処理に興味がありつつ、名古屋工業大学の学部時代の卒論は独学でParagraph Vectorに関するテーマを選択したのですが、
限界を感じ、将来は、機械学習に関わる会社(PFIとか)で就職したいと思っていたので、学部時代は悶々としていました。
推薦で大学院に進学したのですが、このまま大学院の2年間を過ごしていいのだろうか・・・と悩みました。

将来、機械学習の会社に就職したいと思っていたので、思い切って休学し、NAISTの松本研に入学し直します。

NAIST時代

自然言語処理の研究室である「NAIST 松本研究室」に入学しました。
(その間、東京のベンチャーでウェブ関係の会社で半年間、正社員で働いたり、お世話になりました)

NAIST入学を決意した年くらいにYANSに参加しました。
YANSとは、自然言語処理の分野の若手の会(合宿形式)のことです。
そこで現在の職場の海野さん(@unnonouno)とたまたま、同じ部屋で泊まることになります。
YANS中で同じ部屋になり、寝る前にChainerのこととか質問したり、LSTMのバッチ学習法について話して、関わりができました。
当時LSTMをバッチ処理するためにはpadding処理をする必要があり、直接話を聞けたのはとても貴重な体験でした。

PFNインターン時代

NAIST修士1年の時にインターンシップに応募し、2ヶ月間お世話になりました。
周りの同期がめちゃくちゃ優秀な人が多く、充実したインターンシップでした。

その反面、同期が優秀過ぎてツライ思いをしつつ、
PFNに就職したい気持ちと、PFNに対する不安(周りが優秀でツライのでは・・・)がありつつ、応募には悩みました。

正直、インターン2ヶ月間の中で自分が満足いくような実績が出来たわけではないので、正社員として応募するときは悩みました。

修士2年の言語処理学会の若手懇親会(YANS懇)で、当時Appleで働いていた羽鳥さん(後にPFNに入社)と話をして、
メンヘラな悩みを相談しました。

以下のような会話をした気がします。
自分
「僕、インターンシップ経験したんですが、技術的にPFNで働ける気がしないし、就活悩んでいます」

羽鳥さん
「ん〜まあ技術的に突出している部分があると良いけど、企業としては1人増えることで、1つ考え方の視点が増えること、多様性が増えること、が大事なので、あまり技術的に今足りていなくても、技術的なことは後からカバーすれば良いのでは?」

と僕のメンヘラな悩みに優しく答えて頂き、勇気を出して応募しました。


その他、修士2年の時に、PFN以外の会社の見学をさせていただいたりして、とても勉強になりました。


(現在の採用プロセスと自分の時は少し違うため、こうすれば受かる!みたいなテクニックはないのですが、
 例えば、Chainerで再現実装を上げている人であったり、学会で面白い発表している人であれば、
 パーソナリティがわかりますし、インターン参加したい人は少し意識すると少し有利になるかも?しれません)

PFN時代

入社後のことを書きます。
言語処理をNAISTではやっていたのですが、入社後は、音声認識に関する仕事をしています。
音声認識は、 Speech to Textのタスクなので自然言語処理も関わりあるタスクで面白いです。
例えば、(自分の)自然言語処理では、あまりリアルタイム性を求められることは少なかったのですが、
音声になると特にリアルタイム性が求められます。

入社して半年くらいは、以下のお掃除ロボットの展示デモの音声認識部分の仕事をしていました。
projects.preferred.jp
CEATECという展示会で個人向けロボットの展示を行いました。
散らかった部屋をロボットが深層学習で認識をして、どこに何があるのか、どう掴めば良いのか、どこにどう置けば良いのかを自動で判断するデモです。
「パーソナルコンピュータのようにパーソナルロボットを普及させる」というのが会社のVisionです。

この1年はわりと音声関連のプロジェクトに関わらせて頂きました。

研究

今年1年では一応1本論文を出すことが出来ましたが(査読中)、来年度はもっとと表に出る仕事をやっていきたいです。
1年で1本は通せるようになりたいです。

PFNでは、最先端の研究をするチームも存在していて、彼らの研究は国内でもトップクラスの研究をやっていると思います。

openreview.net

openreview.net

以下、自分が入社して感じたPFNのポジティブな面です。

PFNのポジティブな面

社内の人材が豊富

社内の人材が相当豊かです。
NAIST時代も同期には濃厚な人材に恵まれて、とても楽しかったのですが、それ以上に濃厚な同期が居ます。
これは就職したら、少なくとも社内の方が、研究室時代よりは多様性があり、楽しい、というのはある気がします。

経営陣の判断が早い

恐らく200人規模の会社とは思えないほど経営判断が早い気がします。
また、チーム間の隔たりがありません。
部署間の隔たりがありすぎて、社外の方が協力しやすい、みたいな企業では無いです。

PFNのネガティブな面

入社前までは、Twitterで読んだ論文の感想などつぶやいたりしていたのが、
社内Slackでコミュニケーションが完結するので、Twitterにつぶやいたりするのが減った気がします。
それだけ、社内のメンバーが面白く、社内コミュニケーションだけで自尊心が保たれる、とうことかもしれません。

また、ベンチャーなので制度的に未熟な点があると思います。
これは一見ネガティブかもしれないのですが、自分たちで制度を作っていけるという意味では良いのかもしれません。

最後に

もし昔の自分のように、応募に悩んでいる人いたら一度、インターンシップ・採用に応募お願いします。
www.preferred-networks.jp


また自然言語処理の夏のYANSの運営も今年も関わる予定なので、ぜひ皆さん参加してください。
yans.anlp.jp

Twitterもやっています。
twitter.com