人在斯坦福,刚上CS224n
文 | Jazon
大家好,我是Jazon,現在是Stanford計算機碩士項目的一只學生,非常榮幸加入小夕的大家庭!請各路大神多多指教呀。
2021年1月12日,又一季Stanford CS224n——自然語言處理開課了,我和很多MSCS同學一起加入了這門課。由于疫情,今年的課程是以線上Zoom的方式進行,由 Prof. Manning 在他的書房遠程授課。第一節課的Zoom有400多位同學參加,足見這門課有多么火爆。如果是線下授課的話,肯定能把教室擠爆。
彼時的Stanford微信和Slack群里十分熱鬧,大家都在各種找課友、隊友。上這門課的主力軍是碩士生,當然也有本科生和博士生。能在Stanford親身體驗這門傳說中的神課,有一種朝圣的感覺,感覺特別幸運!
課程新設置
今年的課程設置,和2019年版的公開課相比,有不少小變化,這也反映了NLP領域發展之快。具體不同的地方,我會在下文里穿插著介紹~所有的課件都在課程網站(cs224n.stanford.edu)上,而今年Lecture的錄播視頻在幾個月后也會在YouTube上公開,到時候大家就可以看到全新的Lectures啦!
前半學期的課程由10次Lecture和5個作業組成,覆蓋NLP和神經網絡的核心概念,如詞向量、RNN、梯度下降等。第8節課是Final Projects的建議。
后半學期的第11 ~ 18次Lectures則主要是“嘉賓講座”(Guest Lectures),如T5的提出者Colin Raffel來講了T5,又或者是一些選學的話題,如 Coreference Resolution。不強制上課,沒有什么作業,這樣可以讓我們專心做Project。
特別值得提及的是今年的第9、10節課,Transformers和預訓練模型首次進入了核心概念的部分,而不是像以前那樣屬于選聽的嘉賓講座。授課人是今年224n的Head TA(總助教)——John Hewitt。John是Stanford NLP組的博三學生,講得真的非常棒!以前我看paper看不懂的 Transformer 和 BERT,他講得真的是深入淺出,我很快就明白了。
▲BERT Lecture重磅新作業
和前10次講座相輔相成的是這門課的5次作業。作業1里大家簡單探索了詞向量的性質;作業2里我們推導了訓練詞向量的公式(這是這節課最calculus-intensive的作業);作業3算是唯一一個涉及比較傳統的語言學概念與算法的作業,是關于 Dependency Parsing(依存句法分析)的。
前3次作業都和去年的一致,作業4和5則是今年新出的。在這里要感謝出作業的TA們!作業4仍然是要搭建一個機器翻譯模型,只是目標語言變成了Cherokee(美國原住民的語言之一)。這次作業的編程部分,讓我們熟悉了PyTorch模型里的各種Tensor操作。
作業5是今年緊跟NLP大趨勢,“重磅”新推出的:在數學部分,我們探索了Multi-head Attention的性質;在編程部分,我們需要復現一些預訓練數據處理的代碼(span corruption),以及實現Attention的一個變種。
這次作業出乎大家意料地難,我和不少同學們都至少花了25小時才做完。由于是今年首次發布,作業里還有很多說得不清楚的地方,本來Instruction已經9頁紙了,TA們又寫了一篇很長的Clarification。
那一周我們還需要提交Project Proposal,所以大家都很爆炸。2月20號早上,作業已經截止了一天,Office Hours卻排起了可怕的50人長隊。這門課的學生總數是475,可想而知有多大比例的同學沒能按時寫完,不得不用late days。
作業5的主要作者正是我們的John,據說他本來還想讓我們 Encoder-Decoder 也自己寫,被其他TA制止了。顯然,他嚴重高估了同學們的實力,對這次失控的局面,他的心里也十分愧疚,一直守在論壇、Office Hours上回答同學們的問題。這也許印證了,特別優秀的人,對別人也會有意無意地設定很高的標準吧!
當然,做完作業5也讓我收獲很多,作業里我們需要分別訓練一個“vanilla”模型和預訓練模型、比較結果,于是我對預訓練的效果、性質有了更直觀的了解。
▲狂肝作業5的時刻224n是怎么來的?
話說斯坦福一年有4個學期,這么火的課為什么只有冬季學期開呢?這里我想偏個題,講講我校NLP組的特點。Chris Manning教這門課已經20多年了,他算是NLP領域開山鼻祖級別的人物,224n課程材料里有講到他自己發明的技術(比如 GloVe),這是件很神奇的事!
但顯然,他是位大忙人,手下有十幾位PhD學生,沒有精力每學期都教NLP。Stanford NLP組另外3位主要的教授可能也沒有時間來教224n:Dan要教CS124(低階NLP課),Percy要教CS221(人工智能),Potts要教CS224U(自然語言理解)。
Stanford NLP組只有4 ~ 7位教授,相比之下,CMU的LTI(Language Technologies Institute)有30位教授,其中不少大方向都是做NLP的科研,人手要多得多。因此CMU在NLP方面的課程多樣得多,除了NLP以外,機器翻譯、問答系統、搜索引擎等等,都有專門的課(羨慕臉)。
NLP很大,可惜時間太少
好了,回到224n。像我們Quarter制(4學期制)的學校,一學期是11周,今年由于疫情,學期強行縮減到10周,時間更加緊張。這么短的時間里要塞進整個NLP的內容,顯然不可能,所以NLP里很多任務,如信息抽取、對話系統,課程里都沒有涉及到(當然124、224U有補充一些概念)。也許224n可以像Data Mining一樣,概念部分是一節課(CS 246),Project專門另外一節課來做(CS 341),可能就不用這么趕時間了。
同時,由于時間限制、科技趨勢,課程里偏語言學的概念也越來越少。前面有提到,核心課程里唯一比較硬核Linguistics的內容是Dependency Parsing。19年的公開課里Manning花了一節講Constituency Parsing,今年這節課已被其他內容取代,以后可能也不會再講這個概念了,有些令人唏噓。
我第一次接觸NLP,應該是讀吳軍老師的《數學之美》,當初花了不少功夫理解信息論、隱馬爾可夫、TF-IDF、分詞等等概念,但是224n完全沒有涉及它們。這本書是2014年寫的,也許其中一些概念在這個BERT的時代已經變得不太相關了吧,真是讓人感嘆技術迭代的速度之快啊。
完成了前半學期的學習,大家也準備好肝Final Project啦!224n的重頭戲還在后半學期,下篇文章會更精彩哦!
后臺回復關鍵詞【入群】
加入賣萌屋NLP/IR/Rec與求職討論群
后臺回復關鍵詞【頂會】
獲取ACL、CIKM等各大頂會論文集!
總結
以上是生活随笔為你收集整理的人在斯坦福,刚上CS224n的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这个开源数据集要在全球扩大中文NLP影响
- 下一篇: 谷歌大改Transformer注意力,速