学部生での研究インターンでの学びと現在の博士課程留学 (MSR Internship アルムナイ Advent Calendar 2020)

この記事は Microsoft Research Internship アルムナイ Advent Calendar 2020 - Adventar の22日目の記事です。

はじめに

アメリカシアトルにあるワシントン大学コンピュータサイエンス博士課程に在籍している浅井明里と申します。 専門は自然言語処理 (Natural Language Processing, NLP) で主に質問応答や多言語自然言語処理といった分野を中心に研究をしています。

昨年の3月に東京大学工学部の電子情報工学科を卒業し、学部時代は他に自然言語処理の心理学分野への応用や深層学習の不確かさ推定のような研究にも取り組んでいました。 様々な巡り合わせと当時の指導教官や学部の先生方のご尽力により、学部4年次の10-1月にMSRAの自然言語処理グループでインターンをさせていただくことができました。 より詳しいプロフィールはこちらをご覧ください。 akariasai.github.io

この記事では今回の記事ではMSRAインターンの経験や現在の博士課程留学を中心に、当時のインターン経験で得た反省が現在にどう活きているかなど書いていきたいと思います。

MSRAインターン

f:id:akaringo030402:20201216213526j:plain
インターン最終日に同じ時期に日本からインターンに来られていた皆さんと撮影した写真。

インターンに行くことになった経緯

学部3年次から卒業後はアメリカの大学院のコンピューターサイエンス (CS) 博士課程に進学したいと考え始めました。しかし北米トップ大学のCSの博士課程は合格率5~10%前後と競争がかなり激しく、学部生であっても入学前にある程度の研究経験と出版論文が要求されるようになりつつあります。そのため学部生の間は研究できる機会があれば学内外問わず積極的に挑戦するようにしていました。

学部3年後期の情報可視化実験 (以前MSRAで研究されていた矢谷先生による演習型授業の一つ)がきっかけで、MSRAアウトリーチの鎌倉さんから研究インターンの募集をしているという話を伺い、ダメもとで応募してみました。当時は出版論文や研究経験的にもかなり心許なかったのですが、大変幸運なことに希望していた質問応答グループの方からオファーをいただくことができました。竹岡さんのアドベントカレンダー記事でもあったように応募して損はないので興味があったらとりあえず応募してみるのが大切だと思いました。

卒業論文を早めに進め、夏までにメインの実験や執筆を完了させてインターン期間中はできるだけインターンの研究に集中するようにしていました。ちょうど同じ時期に大学院の出願作業*1を行う必要があり、当時はあまり他のインターンの方と交流したりできなかったのが心残りですが、とても充実した3.5ヶ月を過ごすことができました。

研究について

インターン中はMSRAのQuestion Answering (QA) - Microsoft Researchチームに所属し、様々なKnowledge Sources (知識グラフや大規模なウェブコーパスなど) の情報を活用してより性能の良く説明性の高いCommon Sense Reasoningモデルを作る研究を行っていました。2018年の冬はちょうど大規模事前学習モデル (BERT) の登場によりNLP分野が大きな転換点を迎えたタイミングであり、自分自身とてもわくわくしていたものの、インターンのプロジェクトとしては難しい舵取りが必要になり多くの学びがありました。

大規模事前学習モデル (BERT) の登場とその衝撃

MSRAに滞在し始めた直後の2018年10月、GoogleからNLP分野の大きな転換点となる大規模事前学習モデル (BERT) の論文が発表されました。 arxiv.org これは大きな深層学習モデルを大量のウェブ文書を使い、予め欠損させた単語を予測させるなどのシンプルなタスクで学習させ、その後質問応答や分類など様々なNLPタスクに転用するもので、従来モデルを大幅に上回る性能を多数のタスクで示しました。さらにいくつかのタスクではHuman Performanceさえも上回る性能を叩き出しました。まだ発表されてから2年ほどしか経っていないにも関わらず、すでに1万引用を超えており、現在様々なNLPタスクにおいて、BERTもしくはそれの派生モデルが最高性能を誇っています。また実世界においても、BERTは現在Google検索などに幅広く活用されているようです。

blog.google

学部4年生前半は深層学習の予測不確かさ推定という研究をいくつかのコンピュータビジョン (Computer Vision, CV) タスクで行っていたのですが、CV分野では一般的な事前学習モデルの活用をNLPで行うならどういったアプローチがあるのだろうかと当時考えていました。BERTにより大規模な事前学習及その広範なタスクへの転移が極めて強力であると示されたこと、またすぐにモデルがリリースされ、PyTorch*2でのオープンソースライブラリの開発が急ピッチで進む様はとても刺激的でした。 MSRAのQAグループでも毎週のようにBERTをどう今の研究に取り入れていくかなどを活発に議論したり、Bing検索の改善に活用できないか様々な実験などを行っていたのもとても印象に残っています。

インターンへの影響

BERTの登場をとても興味深く思う一方で、インターンの研究プロジェクト的にはかなり困った状況になっていました。実はMSRAに着いてから最初の一ヶ月ほどは別の研究を行っていたのですが、当時私はBERTが「人間の性能を超えてしまった」データセットの一つに取り組んでおり、従来型のモデルを改善した提案手法はBERTの性能に遠く及びませんでした。もちろんBERTをさらに改善すると言う方向性もあったとは思うのですが、「既にHuman performanceを上回る性能が出ているのにこれ以上の改善したとしてもそれは評価されるのか、そもそもデータセットの方になんらかの問題があったのではないか」とメンターと話し合い、プロジェクトの方向性自体を考え直すことにしました。その結果、インターン開始から一ヶ月以上経ってから前述のプロジェクトに新しく着手することになりました。

インターンプロジェクトでの反省

残り時間が限られていたことから、当時はあまりじっくりと新しいテーマの方向性についてメンターと議論をしたり事前実験をすることなく、大まかに全体像を決めたあとすぐに細かい実装や実験を開始してしまいました。個人的にはその当時の進め方には反省している部分も多いのですが、自分のその後の研究の進め方やスタイルを大きく修正するきっかけになりました。

反省 (1) 予めその研究のContributionsが十分に考えられていなかった

「限られた時間の中でなんとか区切りのいいところまで終わらせられそうな研究を」という視点から新しいテーマを考えてしまったために、既存手法に要素を追加していくインクリメンタルな方向性になってしまい、具体的にどこに新規性があり、何がコントリビューションとなるのかが明確ではないまま研究を開始してしまったと思います。そのためにプロジェクトの終盤付近で「一応結果は出ているがこれだけではContributionsが小さくトップ会議は難しいので、この手法もなんとか取り入れられないか」とメンターから提案をされ議論になったりもしました。ベースラインを実装し、そこにいくつかの有効な手法を積み上げ state of the art (SOTA)を目指すというのも一つの研究の仕方ではある (そして特に最近そういった論文は増えている) とは思いつつ、自分の中で関連性の薄い既存手法を繋ぐことに納得ができていなかった部分があったと思います。

現在の指導教官からは新しい研究プロジェクトに取り組む際によく「私がこの研究のコントリビューションを簡潔に3つ挙げてと言ったら今すぐに答えられる?」と聞かれます。これはコントリビューションが不十分な研究の場合、なんとか論文化まで仕上げたとしても、トップの会議やジャーナルには採択されずPublicationにつながらない(そしてインパクトが限られた研究になる)ためらしいです。また即座に自分の言葉でContributionsが語れないならばまだ自身で考えが整理できていないということでもあるので、プロジェクト途中で立ち止まるリスクも大きいからのようです。

厳密に何個コントリビューションがあるから必ずしも良い研究になるというわけではないのですが、まず新たなプロジェクトを始める前にどの問題に取り組みたいのか、どういった手法が有効になりうるのか、またその研究が結果的に分野にどのようなコントリビューションをもたらすのかを事前に徹底的に考える必要性を強く感じました。

反省 (2) 十分な事前実験や分析を行わずに研究に着手した

また、提案する手法が実際に有効となりうるのか検証するために、必要な予備実験を行ったり、ベースライン手法で何ができていないかなどを徹底的に分析するなどが不十分であったこともよくなかったと思います。(1) と関連するのですが、まず現状の課題 (e.g., SOTAモデルに何ができて何ができていないのか) をきちんと理解し、提案手法がその課題に有効に作用しうるかをコンロール実験で検証したり、データを徹底的に分析してタスクやデータセットの特色を把握してから実際の提案手法の実装なりを開始すべきであったと思います。当時はこの検証が十分でなかったために、ある程度時間をかけて実装した手法がベースラインと比較して性能的に大きな差はないというような結果になったりし、結果的に遠回りすることになってしまったりもしました。

現在ではまず研究を始める前に 「①ベースライン手法のエラー分析を徹底的に行う→②どういった問題が解けていないのかを定性的定量的に調べる→③見えてきた特に興味深い問題に効果的に作用しそうな大枠の手法の方向性を考える→④ナイーブではあるが大枠の方向性と似た特徴のあるベースラインモデルを実装し、実験する」のサイクルをひたすら回すようにし、④で有効性が見えて始めてメインの手法の実装を本格的に始めるようになりました。

反省を踏まえて

最近では研究は始める前にブレインストーミングや事前実験に1~2ヶ月近く費やすことが多くなったのですが、おかげでプロジェクト中盤や終盤での大幅な軌道修正を行ったり、査読でContributionsが不明確だとコメントを付けられることがかなり減ったような気がします。 近年NLP分野ではPublicationのサイクルが早いため、思いついたアイディアをすぐに実践し誰よりも早く世に出さなくてはいけないとプレッシャーを当時は感じすぎていたような気がします。提案手法は手段であり目的ではないことを忘れず、まず解決したいコアの問題を明確に把握し、どんな提案を行うのかを事前に考えるようにしたいと考えるようになりました。

日々の研究の進め方に関して

MSRでは週のグループミーティングに加え、担当のメンターと毎日のようにチャットをする機会があり研究のペースを保つ良いマイルストーンになっていました。次までにどんな進捗を出しておきたいか、ミーティング直後にフィードバックを踏まえて短期的な目標を立てるようになりました。またそれを達成するため、日々その日行ったことを全て記録に残しつつ、次の日に行いたい作業を洗い出しておくようになりました。

当初は日々の実験や作業のログを紙に残したたりしていたために、検索したりメンターとのチャットでそれらを出すのに時間がかかったりしていました。他の博士学生インターンの日々のルーティンを参考にして、一括してGoogle Docs (実験ノートと作業ログ) とGoogle Sheets (実験の結果とモデルやデータのファイル名、コマンドなど)、そしてGoogle Slides (進捗報告スライド) で管理して相互に参照できるようにするなど行うようになりました。これは今でも続けていて振り返りにとても役立っています。

他のインターン生との交流について

そんな感じでメインの研究が炎上気味少し大変だったたり大学院出願作業を業務時間後行ったりしていて他のインターンの方とあまり交流できなかったのは大きな心残りでした。それでも日本からのインターンの方々がよく昼ご飯や夜ご飯に誘ってくださったり、QAグループの他のインターン生とも少し交流できました。北京は外食のコスパの良さは東京以上で、「北京ダックと巨大な煮魚とその他名前はわからないけど美味しい中華料理大皿を大量に食べたのに一人1500円」といったことが多く、料理が全体的にやや脂質多めなことを除けば大満足でした。

f:id:akaringo030402:20201217145944j:plain:w200f:id:akaringo030402:20201217145908j:plain:w200f:id:akaringo030402:20201217145947j:plain:w200
会社の近くのレストランで食べたものたち。どれも本当に美味しい上にお手頃価格でした。

ちょうどインターン時期はCVPR (コンピュータビジョンの最難関国際会議) やNAACL (NLPの難関国際会議) の論文締切もあり、締切前には周辺の座席の学生が連日深夜 (もしくは早朝) まで残って研究しており、彼らの熱気には驚かされました。特にCVPR前は半分以上の席でインターン生たちがギリギリまで作業しており、相当数の論文がMSRAインターンたちが主体になってに投稿されていたようです (MSRAからは毎年膨大な数のCVPR論文が採択されています)。 MSRAには博士学生インターンの他に学部卒業後アメリカなどの大学院に進学したい学部生インターンも多く在籍しており、少しでも多くの論文をトップ会議に通したいといつも熱心に研究していました。自分と歳の変わらない野心的で優秀なインターン達を見て自分も頑張らなくてはと強く思わされました。

隣の席のインターンの方には中国語がわからないときによく助けていただいたのですが (中国版ウーバーのDidiの使い方がわからず半泣きになっていたら代わりに配車の手配をしてもらったり…)、次の年のCVPRのMicrosoftのパーティーで偶然再会し、近況報告ができたりしました。その際、実は当時私が「日本人インターン生がオフィスに四六時中いてワーカーホリックでヤバい」と噂になっていたらしいことを教えてくれました。実際はMSRAのネットワーク環境が快適すぎてずっといただけなのですが*3

アメリカでの博士課程留学

MSRA中には同時並行してアメリカの博士課程への出願を行っており (出願についての詳細な話はこちらを参考にしてください)、オファーをいただいた中から最終的にワシントン大学に進学しました。留学して以降のことは奨学金の報告書に書くのみだったので、今回のブログに少し振り返りをまとめてみました。

また最近米国大学院学生会主催のコンピューターサイエンス分野の留学説明会で少しお話させていただきました。私以外にMIT博士課程の五十嵐祐花さん、ベルリンのHasso Plattner Instituteの茂山丈太郎さん、Oxfordを卒業し現在国立情報学研究所助教の五十嵐歩美さんと大学院出願や博士課程での経験、新型コロナウィルス感染拡大下での研究など様々なトピックについて話しています。 www.youtube.com

研究について

ワシントン大学では主に自然言語処理分野の中でも質問応答や推論といった分野に取り組んでいます。博士課程進学前のMSRAや別の研究所でのインターンを通して卒論で自分の中である程度研究のやり方や興味分野が定まったこと、また指導教官や同グループの学生からかなり手厚くサポートしてもらえるおかげで順調に研究できているように思います。

最初の一年目は直前の夏のインターンで行った研究を仕上げてICLRに投稿したのと並行して新しい推論系の研究を始め、一学期目の終わりにACLに投稿して採択されました。その次のプロジェクトを見つけるために少し苦戦したのですが (細かい事前実験と指導教官との相談の結果、10近いアイディアが没になりました…) ちょうど冬学期が終わるくらい*4比較的興味のあるプロジェクトを見つけることができ、長期戦にはなりましたが先日公開することができました。

また別のNLPグループの教授から「慣れないうちは一つのプロジェクトに集中し、やり切るのが大切。ある程度経験を積んできたら、複数の研究をうまくマネージするスキルを身に付けることも大切。アカデミアでもインダストリーでも、研究者は年次が上がるほど複数の研究プロジェクトや雑務をやりくりする (juggling) スキルが必要になってくる」と言われなるほどと思い、一年目の2学期目以降からは積極的に他のグループとのコラボレーションや副プロジェクトにも参加するようになりました。結果的に二つの論文がNLPの最難関会議の一つであるEMNLPに採択され、またもう一つ共同で行っていたプロジェクトも9月に機械学習系の国際会議に投稿することができました。

現在の指導教官は質問応答や推論などの分野をリードしているAssistnt Professorで、毎週1時間程度の個別ミーティング (+Slackやメールなどでのやりとりやグループミーティング) などでかなり密にコミュニケーションがとっています。また彼女とは研究興味や分野の中でこういうことはまだできていないなどの課題意識が近く、研究の方向性やアイディアなど大きな方向性を一緒に考えたりより実践的な細かい実装や手法の改善を一緒に議論することができいつも大きな刺激を受けています。 博士課程入学前は他の博士学生と比較して論文数や研究経験が少ないことに大きなコンプレックスがあり、必要以上にPublicationへの意識が先行していました。それに対して「論文の数だけ多くとも意味がない、代表作だと思ってもらえるようなクオリティが高くかつ分野への影響力が大きい数本の論文を丁寧に仕上げていくことが大事」と研究の質に拘ること、前述の研究のコントリビューションを強く意識することをよく諭され、今は一つ一つの研究を丁寧に、かつ研究のインパクトを強く意識するようになりました。

同じ研究室の学生も似たようなトピックに取り組んでいる人がいるため、初期のアイディアについてディスカッションをしたり締切前に内部でPaper Clinic (グループ内で投稿予定の論文に1~3名程度ずつ学生を割り振り、相互に査読で指摘されそうな問題点などを事前にコメントし合う) を行うこと投稿時点での論文のクオリティをグループ内で底上げできているような気がします。コンスタントに論文を難関会議に採択させている学生は投稿に対してかなり余裕を持って研究しクオリティに拘っている人が目立ち (例えば投稿前一ヶ月までにだいたいの実験を完了し、残り一ヶ月はひたすら執筆の改善や追加的な実験を行っているなど) 、原稿がいつもギリギリ間に合っていなかった学部時代の自分を大いに反省しました。 UW NLPグループはNLP分野において世界的有数の研究グループの一つで、毎年複数本の主著論文を出版したり著名な学会でOutstanding PaperやBest Paper Awardを獲得する博士学生も毎年います。適度なピアプレッシャーはあるものの、学生同士がお互いにリスペクトし合いとても居心地の良い環境だなと思います。

特に一年目の後半になってからは、シアトルという地の利と強固な周辺の研究機関との繋がり故のメリットも強く感じるようになりました。シアトル市内及び周辺エリアはMicrosoftAmazonの本社だけでなく、FacebookGoogleなども拠点を拡大しつつあり、テックハブとなりつつあります。そのため各社のNLP研究グループもいくつかシアトルに存在し、UWNLPグループとはかなり活発に交流や共同研究が行われています。またAllen institute for AI*5Facebook AI Research SeattleのNLP研究グループはUWNLPグループの教授がマネージャーを兼任しているため、彼彼女らの博士学生たちがよくPart timeで働いていたりします。こういった体制は大型のプロジェクトを行う際のリソース的なメリットを産むと同時に、現役のトップ研究者たちから学生が学んだりネットワーキングをするとても良い機会となっていると思います。

授業について

アメリカの博士課程は日本や欧米のものと比べ授業の負担が重く最初はあまり研究に時間を取れないと言われることも多いですが、所属している学部では一学期に一授業を取れば十分程度のようです。課題の提出締切前などは週20時間近くを費やす必要はあるのですが、特に専門に近い授業ですと忘れかけていた知識を補填する良い機会になりました。Breadth Requirementsというものがあり、専門外の授業もある程度履修する必要もあるため、最近はシステム系の授業で分散処理の論文を読んだり、来学期は理論系の授業を取ったりする予定です。直接的に研究に役に立つのかはやや不明ですが知識の幅を広げる良い機会になりそうです。

新型コロナウィルス感染拡大による変化

特にアメリカは新型コロナウィルスの感染拡大の影響が深刻で、今年の3月ごろからずっとフルリモート状況が続いています。今年の春ごろと最近になってまたロックダウンや外出制限が厳しくなっており、研究や生活面も大きな変化がありました。

研究面での変化

所属学部では春の時点でほとんどのミーティングや授業がフルリモートになりました。それまでは一日中オフィスに籠もって研究するようなスタイルだったのですが、Work from homeがほぼ強制になったことで住宅での仕事環境を整えるようになりました。比較的どこからでもsshでサーバーにアクセスできる環境があれば研究を進められるのはNLP分野の良い側面だなとは思います。

一方で、まとまった予算の申請やクラウドソースのための学内での手続きなどが通常より時間がかかり、当時立ち上げたばかりだった大きなプロジェクトが最初の1~2ヶ月は思うように進まず焦りを感じることはありました。また平常時はオフィスメイト (NLPの博士学生6人で一つの部屋をシェアしており年次も近いのでよくご飯に行ったり外出したりもしていました) と雑談する中でアイディアが閃いたり、実装でつまったり変なエラーに遭遇した時にすぐ相談できたりしたのですが、そう言ったコミュニケーションが減ってしまったのは残念に思います。

生活面での変化

通学の必要がなくなり、また友人と外出することもできなくなったことで、研究する時間自体は増えたように思います。一方で、休日も平日もほぼ外出せず朝起きてから寝るまで作業するような生活を一ヶ月程度続けたあたりで生産性が落ちているのを感じるようになりました。そのため4月くらいからはある程度時間を決めて休む時間は休むようになりました。

ただ一時期は本当に食料品の買い出し以外一切の外出ができなかったので、ひたすら電子漫画を読んだり小説を読んだり(サイトの本棚を見ると今年は700冊くらい読んでいたようです)、NetflixSherlockやHouse of Cardsを見たりしていました。時間に余裕が出たことで毎日自炊をしたり筋トレランニングができるようになったので、以前よりもしかしたら健康的になった部分はあるかもしれません。外出禁止令や集会への規制がやや緩和された6月以降はハイキングなどに行くことができるようになりあました。大都市でありながらも周囲にハイキングスポットなどが充実しているのはシアトル市のとても良い点だと思います。

f:id:akaringo030402:20201217163717j:plain
シアトル近郊のハイキングスポットの一つであるOyster Dome。麓に美味しい牡蠣が食べられるお店がいくつかあります。

学会の変化 (バーチャル国際会議)

今年はいくつかの国際会議で研究発表を行ったり聴講をしたりしました。事前に発表動画を録画し、質疑応答のみZoomセッションで行う形式であったため、論文の内容を理解した上で質問に来る参加者も多く質疑応答はかなり密なやりとりができていたような気がします。一方で他の参加者と交流する機会はあまりなく、また「バーチャルだと国際会議期間中であっても通常のミーティングだったり業務が入れられるため、学会に集中できない」という声もよく聞きます。今年はACL、EMNLPそしてICLRという3つの会議に参加しましたが自分の発表以外のセッションはあまりアクティブに参加できていなかった気がします。来年以降、国際会議がどう言ったフォーマットになっていくのか注視していきたいと思います。

振り返ってみて

MSRAで過ごした3ヶ月間は色々苦戦することも多かったですが、改めて自分の研究興味やスタイル、そして足りていない部分を見つめ直すとても良い機会になりました。また昼夜研究に勤しむ他のインターン生らを見て自分ももっと頑張らなくてはと大きな刺激を受けました。また当時はまだ研究実績が少なく、学部生であったので応募自体少し悩んだのですが、一歩踏み出せて本当に良かったと思います。

*1:アメリカの大学院出願は12月中旬締め切りのところが多く、院試などはなく、志望理由書やGREなどのテストスコアや過去のGPA、推薦状など様々な出願書類を提出します。

*2:特に深層学習を扱う研究で広く活用されているPythonベースのライブラリ。https://pytorch.org/

*3:中国本土ではGreat Fire wall によりTwitterGoogle関連のサービスが基本VPNなしでは使えません。大学やMSRAなどの研究機関からは特例的にほぼ全てのサービスにアクセスできます。

*4:UWは4期制なので、秋、冬、春、夏学期があります

*5:マイクロソフト共同研究者の故ポールアレンの設立した非営利の研究機関。特にNLPやCVの研究に力を入れている。