美國 EECS 博士班申請經驗分享 (ML/DL/NLP/Speech)

2021 Fall NLP/Speech PhD Application

Posted by Jexus on March 20, 2021

You may find interesting:


Which layer preserves the best cross-lingual representations in multilingual-BERT?

Small experiments on multilingual-BERT


What has the positional "embedding" learned?

Small probing experiments on the positional embeddings

美國 EECS 博士班申請經驗分享 (ML/DL/NLP/Speech)

這篇同時也發在PTT studyabroad版: https://www.ptt.cc/bbs/studyabroad/M.1616171844.A.181.html

研究領域

Machine Learning for Natural Language Processing, Speech Processing

Admission

(都是申請2021 Fall)
MIT EECS PhD (1/20 interview, 1/27 accept, 我最早拿到的正式offer, 其他間都要說掰掰了…)
CMU LTI MLT (1/20 interview, 2/4 accept, 投PhD降轉Master)
UCSB CS PhD (1/5 interview, 2/5 accept, 教授1/7口頭上給我offer)
UW ECE PhD (no interview, 2/5 accept)

Rejection

UC Berkeley EECS PhD (1/12 interview, 2/20 reject)
USC CS PhD (no interview, 3/16 reject)

Pending

(以下大概都不會再收到admission了)
Georgia Tech CS PhD (1/8+1/19 two interviews,原本有要發offer給我,但聽到我已經有MIT,就沒發了…)
UCLA CS PhD
NYU CS PhD

Background

NTU EE, BS, 2016-2020
GPA: overall 4.18/4.3, major 4.22/4.3
Rank: 15/177 (8%) 書卷獎 x4

GRE: 322 (V152/Q170/AW3.0)
TOEFL: 102 (R30/L26/S22/W24)

Publications

Interspeech 2020 x1 (first author)
EMNLP 2020 x2 (first author/long/main + co-first author/short/findings)
EMNLP 2019 workshop x1 (co-first author/long)
Under review: NAACL 2021 x2, ICASSP 2020 x1 (second author)

其他經歷

TA: Deep Learning for Human Language Processing 2020
Intern/RA@中研院(2018-2019)

推薦信

台大專題教授 x3

其他經歷詳細可以看我網站或 Google Scholar

Research Experience

當初大二下修完ML,開始覺得機器能夠理解及生成人類的語言(語音or文字),用來回答問題or生成句子是一件很amazing的事情。加上當時覺得這個領域還有很多未知或是做得不夠好的部分尚待探索(那時候BERT還沒出來…),心中期待著有一天我們能用電腦運算理解人類語言的秘密,就一頭栽進來做研究,也漸漸產生興趣(如: Multilingual BERT 竟然能unsupervised把不同語言的embedding space很準地align起來,完全不需要paired data等等神秘現象)。

大三到大四前三個學期的研究其實一直都沒有很順利,每次想了一個新idea想做做看,寫code跑實驗出來結果總是會遇到各式各樣的問題,一直面對失敗換方向寫code跑實驗,每週都花上大把時間栽在研究上,有去無回,經歷多次conference deadline前連續幾天趕到早上才入睡,數據跑出來不如預期膽戰心驚痛苦失眠etc…。幸好最後研究慢慢漸入佳境,在大四下好不容易擠出一些成果上了幾篇conference。

真的非常感謝我的恩師李宏毅老師一路上給我的支持,從大二開始就看老師的Youtube入門ML,老師總是能化繁為簡,把很複雜的概念用low-dimensional的manifold(?)傳達給學生瞭解,也能很快瞭解我在做的研究想法細節,做進一步延伸討論。老師看似不拘小節,實際上是個心思很細膩的人,總是能看到很細節的地方,也非常在乎學生做研究的心情與感受。大三上開始跟老師做專題,記得大三暑假兩個月做同一個題目做不出來,大四上第一次投conference被慘遭reject,都是老師一直不斷的加油打氣給予方向,才讓我慢慢調整心態堅持下去,最後大四下才順利投上了人生第一篇conference。

再來要感謝陳縕儂老師一路上給我的幫忙,在大三上加入Miulab當專題生,做過一堆最後沒成功的題目,還記得那時連續好一段時間跟學長討論到深夜兩三點,最後還是一直失敗。雖然如此,老師總是給我很多鼓勵跟研究方向上的建議,細心地幫我修paper,最後終於在大四下投上了兩篇EMNLP,在申請學校時也給了我很多選校建議跟幫助,讓我順利錄取了很多學校。

最後要感謝李琳山老師,雖然跟老師直接的討論跟交流不是前面兩位老師那麼多,但在跟老師改paper的過程中,學習到如何把研究內容說成一個好的故事(整篇paper每一句話都老師被仔細地刪掉重新寫+重排順序),從大二修課以來也不斷學習到老師豐富的人生經驗,最後老師也不吝幫我寫了第三封推薦信,在我申請過程中幫了很大的忙。

p.s. 老師的信號與人生 2019 & 2020 有錄影在Youtube 對才剛大一大二、對未來還很迷惘的學生很有幫助。 https://www.youtube.com/watch?v=PtmthIH1JJs https://www.youtube.com/watch?v=mBsdgTYqMio

另外這讓我想到最近大神我同學開辦的 NTUEE podcast,專訪一些在北美業界的畢業校友學長姐,各大平台皆有上線,有興趣可以聽看看: https://open.firstory.me/story/cklv1nqvxw5uo0996i1tc9x67/platforms

說到podcast,我剛好可以分享NLP領域、AI2做的一個不錯的podcast,會請很多當紅教授或PhD學生來訪談,可以挑有興趣的題目來聽。 https://podcasts.apple.com/us/podcast/nlp-highlights/id1235937471 https://soundcloud.com/nlp-highlights

心得

最近幾年作AI/ML方向的CS PhD申請一年比一年競爭,你如果點開一些名校大咖實驗室的網頁,可能會發現他們收的學生早在大學時期早已周旋於美國各大名校大咖實驗室做研究or visiting,手拿一堆first-author頂會paper外加大佬推薦信(當然也有少數例外不是這樣)。我自己覺得”connnection, publication, align程度”這三者是在申請時的必要條件。我自己在選校時幾乎一半都是選擇投有台灣人學長姐去過的實驗室,至少確定教授會對台灣學校畢業的學生有興趣,而且他們也多半知道或認識我在台大的老師。另外就算沒connection,也可以多找找剛加入faculty的新老師,剛加入的第一兩年正在擴張期,通常比較缺學生,願意多面試看看不同適合的人選,而且最近很多學校開始建立或擴張NLP group,加入了一些有實力的新老師前途無量,可以考慮。

p.s. 可以辦一個twitter帳號用來追蹤教授,通常大家會在上面分享自己group的新paper,可以收到第一手資訊,甚至一些新教授收學生的資訊也會出現。 這是我的帳號:https://twitter.com/YungSungChuang,有追蹤很多相關領域的教授。

Publication的話,這年頭AI/ML方向的PhD申請者大家手中都有個兩三篇top conference paper已經是標配。我覺得比數量更重要的是,跟你面試的教授對你做的東西有沒有fu,你跟他研究方向的align程度有多大。就算有很多篇paper,但是教授不懂這研究的價值跟厲害在哪,就比較沒用處(除非他真的缺人那可能比較沒差,能做研究的學生就收)。

我自己面試的時候,有遇到方向很吻合的教授,做的方向跟我之前的paper有重疊,甚至有一個教授說他們前陣子投了一篇paper到NAACL,發現內容跟我去年EMNLP long paper長得很像…。反之,我連面試都沒拿到的學校(USC, NYU),其實大部分都是方向有點小歧異(即使都是做NLP研究的),雖然我讀了很多他們實驗室的paper,也在SoP裡面闡述很多我對這些研究的看法,但教授們還是沒有買單…,可能他們已經有一堆更align的人選,所以自然輪不到我。

對於現在還在選題目做研究,有一兩年可以慢慢準備的學生,我覺得可以多考慮看看去作跟自己有興趣的實驗室相近的研究主題(所以可能要先定下目標),有了那個方向的研究成果,之後在寫SoP的時候也會變得很流暢。另一方面,如果做的方向太過單一集中,而只適合用來申請特定實驗室的話,也是有點危險的。像我自己就是有同時做多個主題(NLP+Speech),所以這兩邊都可以申請,降低風險,這部分就是一個trade-off。

SoP

因為我做過很多不同的研究主題,一開始寫出來的第一版SoP非常零散,像是記流水帳一樣,羅列我之前做的東西,也想不出什麼好的故事可以把他們串起來。後來有一天看到了Stanford大神Nelson Liu(Percy Liang的PhD學生)在他的部落格提供他自己的SoP https://blog.nelsonliu.me/2020/11/11/phd-personal-statement/,才學習他的方式,把所有的project集中框出兩個大主題,圍繞這兩個大主題去介紹,為何自己要做這些小project?(為了這個大主題) 如此一來,整篇SoP就會比較像是一個整體。像我自己是選擇用 1. Generalizability 2. Efficiency of NLP models 來當主題。在面試第一位教授時,他就有說我的SoP寫的兩個方向就正是他想要做的兩個方向(雖然project細節方向沒有完全一樣),後來面試完隔天就給了我口頭offer。

另外Nelson Liu在他的部落格裡也有說到,他在SoP裡沒有很具體講述自己未來想做什麼樣的project,怕如果想法沒有很好,反而造成反效果,但是事後來看如果有這樣做應該更好:

“I also regret not being more concrete about maybe specific projects I want to do in the future, but I recognize that it’s easy to say that in hindsight. As I was writing the statement, I was definitely afraid that my misinformed senior-year undergraduate research opinions would turn off any NLP faculty with the misfortune of reading my application, so I chose to be conservative instead and say less. Looking back, I think it might have actually looked better to have stronger personal opinions with more evidence for why I feel the way I do.”

一開始我寫SoP針對每個教授的段落時,其實也是怕自己的idea太naive,所以只有很保守地寫說「我對XXX主題有興趣」,但後來學長強力建議之下,我就改成幫每一個教授想一個與他之前發的paper有相關(或是也結合自己的work)的延伸題目,也就是:

「我對XXX主題有興趣,想朝YYY方向發展」
「我對XXX主題有興趣,想說可以結合AAA跟BBB達到CCC的效果」

為了寫出這些,每一個教授我都花了蠻多時間先看一輪他的paper,然後再想出可行一點的idea寫上去,這麼做雖然很累,我大概花了一兩個禮拜在做這件事,但至少能告訴教授說,我很認真在看你的work,而且我對這領域有想法、有概念可以往哪裡發展。

p.s. Nelson Liu 的部落格還有一篇好文章,是訪問+統計了很多他同學的申請NLP PhD過程經驗總結,非常值得一看: https://blog.nelsonliu.me/2019/10/24/student-perspectives-on-applying-to-nlp-phd-programs/

Interview

面試的部分,除了第一個面試我的教授有問了一些機率模型的數學問題,另外一個教授叫我回去推導backpropagation寫在overleaf隔天交,其他教授大部分像是純聊天,讓你介紹你的work(可做個簡單投影片),他再針對細節問問題,或是問你一些延伸的看法。我自己覺得,如果教授在跟你面試時,可以跟你聊到研究很detail的內容(代表他有興趣),而且談得愉快,甚至最後開始跟你推銷我們學校很好,那大概蠻大機率會上。反之如果他聽完好像沒問什麼細節問題(沒fu),像是面試我的Berkeley教授,也沒有相談甚歡的感覺,那可能就不會上QQ。不過當然這只是我面試了少數幾個教授的經驗,僅供參考而已,其他領域的面試可能就不太一樣。

套辭

套辭信這東西,有的人說有用,有的人說沒用,不過我是覺得寄一下沒關係(當然內容要花時間好好雕琢一下,按下寄出之前你會猶豫再三XD),沒有收到回信也沒損失,除非那個教授網站上有寫說不要寄信給他、很煩,那就真的不要寄比較好。

我自己寄信的時間點在申請deadline剛過,聖誕節之前。跟SoP很像,除了介紹一下我是誰我做過什麼之外,我也放了一些我對該教授研究想的idea,但不要讓信變的太長會讓人不想看完。我寫的6封信3封有被回,但有一封沒回也沒面試的卻有拿到offer(上了之後才聯絡我),所以感覺也跟套辭信不一定有太大的關係。

另外,在申請deadline之前剛好我去參加EMNLP 2020,因為疫情關係是線上舉行的,有提供一個Rocket.chat聊天室,可以直接密任何一位與會者,包括一些你想申請的教授。如果是現場會議,我英文又很破,一定不太敢路邊亂搭訕教授XD,但這次是傳文字訊息就比較沒壓力。於是那時我就趁亂密了一些教授看看,大部分教授都會回(畢竟那幾天就是專心來交流的),就有問到他們明年實驗室有沒有收人的資訊,如果當時教授就說不收的話,就可以換申請別的教授,也有一個教授當時有跟我約視訊聊聊研究(半面試),所以如果有機會參加conference要好好把握這個機會,就算是virtual conference也是行的。

總結

其實一直到大三之前都還沒有很確定自己是不是想要出國,我的爸媽都是沒上過大學的平凡人,本來也不太支持我出國留學,希望我找個穩定工作餬口飯吃能養家就好,如果想出國讀碩士,家裡也是付不起昂貴學費的。

後來我在大三大四開始做研究之後,開始覺得自己不想只是當個engineer照著spec刻好需求做優化(雖然這樣其實也很快樂也很有貢獻),而是能想出一些別人沒想過的東西,然後實現出來。每次讀paper看到國外學校實驗室做的好多有貢獻有想法的研究,想著有一天也要跟他們一樣厲害。

於是,我漸漸把目標轉為申請PhD(博士也才有薪水養活自己),努力衝publication,申請的時候也就賭一把都沒有投master program,父母也才轉為支持態度。

大學這四年後兩年幾乎都在研究,灑下大把時間,沒什麼生活品質,寫code到深夜,近視也加深了,真的不太優,希望以後博士生活可以work/life balance一點(有可能嗎?XD

以上寫的都是針對我這個領域,其他領域的話就不一定適用了。
如果有想到什麼新東西會再補充。
希望這篇可以幫助到需要的人!