こんな夢を見た

修士学生による自然言語処理研究の記録。主にDeep LearningやEmbedding関連論文の軽い自分用まとめとして。内容に誤りが含まれている場合があります。お気軽にご指摘ください。

2015 PFIインターン

8/3から9/30までの2ヶ月間、株式会社Preferred Infrastructureでのインターンシップに参加してきました。
今後、PFI & PFNのインターンに興味を持つ方の役に立つかもしれないので、一応記録に残すことにします。ほとんどは選考の個人的な話です。

エントリーと選考

はじめは、PFIインターンも知っていましたが、エントリーする気は全然なく呑気に暮らしていました。とはいえ、インターンのテーマのひとつでもあった自然言語処理のDeep Learningには少なからず興味がありました。このブログを書き始めたのも、今年の5月頭からです。
そうしていると、ある日とある研究員さんに勧められました。そんなそんな受かるはずもないと渋っていると「ああいう選考は、受かったら本人が大変な思いをする人を帰すためにあるだけだからとりあえず受けといたらいいんだよ」と言われ、なるほどいい言葉だと思ってエントリーすることにしました。今思い起こしても、現実的な真理はさておき、なるほどいい言葉です。
この思いつきが5月15日(金)で、インターンの応募締切は翌々日の17日(日)でした。急いでアピールポイントをかき集めたものと履歴書と志望動機書を用意しました。アピールポイントの方は、過去の他企業との共同研究の話と、冬に行った他企業のインターンコンペの話と、自然言語処理関連の研究経験を載せて、プログラミング言語Pythonだけ一応まともに使えて他はだめですとも書きました。このブログのURLも載せました。また、いつぞやの小町先生の言っていたことを思い出して、C言語もTAやってました、というような小さい小さい情報も一応は書いておきました。志望動機の方は、Deep Learningの知見とか勘を盗ませてくださいよ、開発経験無いんですが興味はあるんです、新たな環境って単純に良いですよね、あたりの気持ちをある程度ちゃんと仕立てた文で書きました。 履歴書には写真不要だったのですが、昔の誰かインターン生のブログ記事で写真を貼ったと書いてありました。自分の履歴書を見ると写真欄が空いていて、これまた寂しい気もしたので自分も貼ってみました。手元にある固い写真は暗い写真ばかりだったので、Facebookのプロフィールに設定しているようなフランクな写真を貼りました。本来要らない写真を貼るくらいだからこれくらいしても問題あるまいという、変に勢いづいた出来心からでした。

しばらくすると書類選考通過の連絡が来て、面接を受けられることになりました。また、事前課題ということで、基本的な機械学習関連のスクリプトを幾つか書くのと、謎の素性データを用いてそこそこの精度の二値分類を達成するべしという課題でした。後者の方は適当な手法であっというまに規定の精度は出るもので、オプション課題としてもう一段階上の精度が設定されていました。オプションやりすぎないで学業優先してね、と書かれていたので、結局はその精度は達成しないまま提出しました。なんにせよずっとは取り組むつもりがなかったので、早めに取り組んで、パッパと終えて締切よりそこそこ早く提出しました。「まだ余力を残しているな」と思われる幸いを狙った浅はかな計略からでもありました。
面接の方は、自分は仙台にいる身なのでSkype面接で済ませてもらいました。内容は基本的には、自己紹介、それへの質問、事前課題(のコード)の説明、それへの質問、今後(短期的そして長期的に)なにをやりたいかという質問、あたりでした。全て完璧にいったかというとそうではなく、幾つか良くなさそうな対応もしちゃいましたが、ビビらず堂々と話し続けられればそれでいいのではと思います。コードや手法の説明がちゃんと出来るか、というのが結構大事で、コード自体も超高速化とかするよりは普通に読みやすい形で書ければそれで良さそうでした。でも内包表記ぐらいはほいほい使ってしまっても問題なさそうでした。自分がPFIの面接としてイメージしていた「さて、この処理をこのメモリでこの速度でこういう感じにするにはどうする?」というプロコンチックなゴリゴリアルゴリズム問題は今回はありませんでした。自分としては大いに助かりました。来年以降はもちろんどうなるか分かりません。
後から社員さんに聞きましたが、もっともっと皆応募してほしいということでした。自分のような、ダメもとの思いつき滑り込み応募のSkype面接で事前課題は普通の出来、という感じでも受かったりすることはあるくらいです。とりあえず重く考えすぎず応募してみるのが大事だと自分も思います。

何はともあれ無事合格し、通わせてもらいました。

本当はこれ以降のことを重く書くべきかもしれませんが、自分はおそらく「業務上知り得た内容」の線引きが未熟ですし、下手な誤解を与えることもしばしばですので、これ以降の内容については控えめにしようと思います。

取り組んだこと

コールセンター用対話システム、という大目標につながるような研究(開発)をあれこれ行いました。最終発表ではNeural Conversational Modelに関して、少ないパラメータで色々検証してみたり、新たに拡張を行ってより良い返答文生成が行えるように(少なくともそう見えるように)した、という話をしました。
2ヶ月ある中でずっとそれに取り組んでいたわけではなく、他の出来立てホヤホヤ研究の追試や応用を行ったりもしていました。昨今のNeural Network系のアプローチでよくあるらしい、全然再現出来ない問題に悩まされたり大変でしたが、そういうどん詰まりに対してもメンターさんを始めとした皆さんは結構寛容でした。自分自身、軽々しく発案して実験して失敗してを力づくでひたすら繰り返す研究スタイルなので、割と性に合っていました。
毎日のようにGPUで学習を回して試行錯誤を繰り返していました。自分は育成ゲーが好きなようで、毎日「ああ、昨日回したあいつは天才に育っているかなあ」と思いながらの通勤時間徒歩10分が至高でした。そして通勤直後に「ああ、駄目なやつだ……」と悟ることで気持ちを静めるという、安定したルーティンを行えた毎日でした。

PFIという企業

色んな人材がいると思いました。分野別という意味合いで色んな人がいるというのはもとから予想していたのですが、研究-開発-運営?-営業というような縦の広さも感じました。後者はむしろ当たり前すぎることなのですが、自分の社会経験の薄さからすると、今まで研究開発側に偏った一面的なイメージでしかPFIという企業を見ていなかったなあと思わされました。 昔の誰かのインターン生の記事ではレッドブルが盛んであるというように聞いていましたが、そこまででもありませんでした。むしろ業界からすれば時間的にも余裕がある方の白めの企業に感じました。ちなみに自分はインターン中にレッドブルを一切飲まなかったので、インターンに黒みがあるとかいうこともありません。

まとめ

楽しかったです。研究室とは異なる世界で、自分の立ち位置を考える非常にいい機会になったと思います。また、2ヶ月で新しい尖ったものに飛びついて畳むというハイペースなこの気持ちは今後の研究生活にも役に立ちそうです。
ここまでお読みいただいた方、PFI & PFNの方々、それから他のインターン生の皆さん、ありがとうございました。