NLP應該如何學、如何教?斯坦福大學大牛Dan Jurafsky教授專訪

AI 科技評論按:自然語言處理是一個高度跨學科的領域,包含了語言學、計算機科學、統計學等等許多傳統學科的內容。在課堂中,自然語言處理的教師者們要根據課程長度、學生的水平、領域近期發展、課程目標甚至教師的個人興趣選在涵蓋哪些內容。形成的結果就是,同樣是針對自然語言處理的課程,不同老師在不同學校教授的課程可能會完全不一樣。

而自然語言處理課程很多時候是學生們接觸到現代人工智能技術的第一門課程,這對他們未來的人生髮展可能會有深遠的影響!密歇根大學信息學院助理教授 David Jurgens 就對不同老師教授的課程中的區別非常感興趣,或者說他也很關心這些老師們是如何看待這個領域、如何看待自己的教學的,畢竟這直接關係着這個領域未來幾十年的人才會如何成長。他和自己的學生 Lucy Li 一起打算對教授自然語言處理的教授們做一系列採訪,解答自己的問題,也是從這個常被忽略的角度向大衆展現這個領域的現狀。

他們 NLP 教育系列訪談邀請到的第一位嘉賓是斯坦福大學語言學和計算機科學的 Dan Jurafsky 教授,他的研究主要集中在 NLP、語言學和社會科學的交叉學科。Dan 可以說是這個系列博客最合適的開篇之人,是因爲本文作者之一的 Lucy 正是從 Dan 的課程 《CS 124/LING 180:從語言到信息》開始了她的 NLP 之旅。這個課程也是以下高級課程的入門良選,如 CS 224N(NLP深度學習),224W(社交網絡),224U(自然語言理解),276(信息檢索),224S(語音和對話處理)和246(數據挖掘)。目前,它是一個Flipped Classroom(翻轉課堂)的模式,即在課外時間觀看一些講座視頻,課堂時間專門用於做項目。根據斯坦福公報的存檔,自2004-2005學年以來,Dan 一直在斯坦福大學教授 NLP 入門課程。他還與 James·H·Martin 共同發行了暢銷教科書《語音和語言處理》,目前該著作的第三版正在修訂中。

AI 科技評論把採訪內容全文編譯如下。

:我們將從您爲大二年級開設的課程《CS 124:從語言到信息》開始聊起,您爲什麼選擇將課堂設置爲翻轉課堂的模式呢?

Dan:首先是看 Daphne Koller 和 Andrew Ng (吳恩達)的課讓我有所啓發,然後我開始閱讀教育文獻,尤其是有心理學家家得出結論,翻轉課堂是一種更好的教學方式。這是讓我確信我應該這樣做的部分原因,而其他原因則是出於想偷懶和圖方便。Chris Manning 和我完成了 NLP MOOC 課程,一旦我們完成了這些講座,很明顯我們可以將其中一些用於 CS 124 中,而我們也可以使用 CS 124 來測試一些MOOC 講座。

:開放式課程如何改變了您的教學方法?您是否認爲提供在線資料會對未來的學生產生長期影響?

Dan:目前我 20 個講座中有 8 個現場直播,其餘的在 EdX 上可在線觀看,然後我用其餘的課堂時間進行小組練習和實驗,意在加強概念性理解。

對於翻轉課堂,我看到了兩大好處。一個是這種模式迫使我以 8 分鐘爲時間塊思考每個主題,並明確學習目標。這有助於解構我希望學生真正學到的東西。另一個好處是,我本需要對課堂內部分的主動學習花費心思:他們需要了解的概念性內容是什麼,以及如何讓他們在課堂上或團隊裏爲學習到一些東西進行概念性思考,而在這方面翻轉課堂可以做的更好。

開放式課程的缺陷是這樣的,因爲準備,錄製和編輯單個錄製講座需要 20-30 個小時,所以課程中的資料更新很容易就會變得不及時,那麼就只能告訴學生「哦,請暫時忽略該視頻的最後一點,」這其實挺不好的。我現場演講的 8 個講座資料有許多全新的資料,或者多年來發生了很多變化的資料,因爲是現場講,所以這 8 個講座幾乎每年都有更新

今年我正在重新設計兩個現場講座,並取代其中一個錄製的講座,目的是在早期課程中加入深度學習和嵌入。

當然,在網上講課產生了很大的影響,我總是能收到在線學習的學生的郵件。

:您使用您的教材作爲課程的基礎,但此書中涵蓋的主題比您在十週課程中涵蓋的主題更多,那麼您如何選擇課程主題呢?

Dan:由於斯坦福大學的奇怪設置,我們的班級不僅僅是一個 NLP 班級,它涵蓋了 NLP 的研究生課程的介紹,也包括了社交網絡課程、IR、推薦系統的介紹。每個主題都有不同的課本,現在我將我的教材用於 NLP 部分,並用其他教材來教其他部分。

Chris Manning 創建我的課程的最初想法是吸引人們參與斯坦福大學的信息/數據科學課程以及 AI / NLP 課程等。我認爲這是一個非常成功,有趣的想法,但在斯坦福就有點特殊化。如果我只是開設一個本科的NLP 課程,我不會講協同過濾,我可能不會講所有的 IR,當然我也不會講社交網絡。我可以看到當前這種設置更適用於其他地方(如信息科技學院),或者可能只爲每個主題開設單獨的本科課程。

:你是否將選擇將自己的研究納入到你的教學中?

Dan:最近沒有多少。除此之外,我嘗試在 NLP for Social Good 上做一個演講,我也經常要求我的博士後和學生在那裏展示他們的工作。最大的例外是,我在講課中的特別素材來自教科書的寫作,所以我當然會使用我的教材章節演講教學。我在教科書中的觀點肯定是在課堂上得到的,但我的研究論文從中得到的觀點很少,因爲它只是一個本科課程。

:斯坦福大學 224D 的深度學習 NLP 課程和 224N 的研究生 NLP 課程在過去兩年合併。這會影響你的 124 計劃嗎?

Dan:總的來說,這個領域發生了變化,因此 NLP 課程必須包含深度學習!斯坦福大學目前沒有一般的本科人工智能課程,相反,我們有 3 門獨立的課程:視覺,語言和機器人,現在學生們直到研究生學校纔開始深度學習是很瘋狂的一件事。

但我也非常希望我的目標受衆——二年級和三年級學生可以訪問該課程。所以我正在努力重編課程。今年夏天,我正在編寫教材中的深度學習章節,因此在秋冬季,我可以就此章節編寫 cs124 課程的深度學習部分。目前的計劃是在明年冬天做這件事,並增加 3 個「深度學習」講座和一個「嵌入」講座,然後把拼寫檢查作業換成邏輯迴歸作業,把問答的作業換成一個深度學習版本的,對本科生只教前饋網絡,把循環網絡留給研究生。

困難的部分是我們沒辦法給所有學生提供 GPU,我不想每年都向商業公司尋求 GPU。另外,我也不希望學生花費整個季度的時間僅用來調參——這更適合機器學習方向的研究生課程。我希望他們直觀的理解深度學習中的分類器,所以就要設計一個可行且有趣的作業,並且希望深度學習實際上比邏輯迴歸效果更好。而事實證明,如果你不能使用 GPU,邏輯迴歸優於大多數深度學習的東西。作業的結果就是得出我們不想要的結論,「嘿,深度學習爲何比迴歸效果更差?你爲什麼不給我們更多的 GPU,這樣我們才能得到更好的結果?」

無論如何,未來六個月,我們可以看到情況如何!

:您想要教授的內容與學生想要學習的內容之間是否存在重大差異?

Dan:目前沒有這個問題,我認爲當前的主要問題是深度學習需要放在課程中。也許一個完美的情況就是,我可以在去年的課程中及時完成新的章節和講座!

:除了您目前計劃將深度學習引入現有內容之外,如果您可以擴展 CS 124來涵蓋額外的 NLP 主題的課程,您想添加什麼課程?

Dan:選擇空間沒有限制的話我至少會放入一些核心 NLP 內容:詞性標註,命名實體識別,語法解析和機器翻譯。雖然我不知道它們的排序如何,但在這四個話題中機器翻譯絕對是最有趣的,大家都因爲機器翻譯很有趣而喜歡機器翻譯,而且在機器翻譯中你可以仔細地辨析語言。所以如果我只能加一個課程,我可能會選擇機器翻譯。如果我可以加兩個,我會選詞性標註和實體標註,以幫助學生建立對單詞和單詞組的一些基本原理的理解。然後,如果我還有空間,我會添加語法解析。

:我們查看了大量 NLP 課程的教學大綱,發現包括你的 NLP 課程在內的很多 NLP 課程都常以 n-gram (多元組)和正則表達式作爲開頭部分。你對此有什麼看法?

Dan:嗯,我認爲,作爲教材中的第一章節,人們先教正則表達式是很正常的,我們之所以把它放在第一位,是因爲它可以自然的引出有限狀態自動機,而當時有限狀態自動機是 NLP 的重要組成部分。雖然現在人們不經常教他們這部分內容了,但我懷疑他們可能還要返回來學! Chris Manning 和我都很喜歡 Ken Church UNIX 工具,而我們在課堂上教如 grep 和正則表達式等 UNIX 工具的課程,這可能是學生可以從語言中汲取到的最實用的東西,這對於他們之後的職業生涯非常有用,所以教正則表達式非常有必要。事實上,對話系統仍然主要是 ELIZA 加上一堆附加功能和更多的正則表達式,因此正則是一個很有價值的行業工具。

N-gram 也是我們剛開始必用到的工具,因爲它們是教授學生概率論的一種非常簡單的方法,它們可以非常直觀地計算,它們是樸素貝葉斯模型。所以我們完全可以用它得到非常可靠的概率,並從中深刻且直觀地理解它們,然後你可以直接從那裏引入神經語言建模。

:即使現在有很多神經網絡的方法,你是否仍然認爲語言模型建模是一個重要的教學內容?

Dan:好問題!我一直在思考這個問題,因爲所有的研究,包括我們自己的研究,都專注於更強大的神經語言模型(LMs)。然而,對於許多任務,n-gram LMs 仍然比神經 LM 更好。對於相同數量的數據來說,神經 LM 更好,但訓練大神經 LM 非常慢,學習大規模的老式 n-gram 模型就不一樣了。因此,大規模老式 n-gram 最終成爲人們在大數據系統中仍在使用的東西。它們是非 NLP 的機器學習課程中沒有教授的東西,所以它對語言來說是獨一無二的。

最重要的是,我想現在,是的,我仍然會做語言建模,但我不會做高級平滑的東西,只做基礎的東西並跳過所有的 Kneser-Ney 和 Good-Turing。也許一旦訓練神經語言模型變得足夠快,幾年內人們就會停止使用 N-gram LMs?也許吧。在那種情況下,N-gram 那一章可能會被取消,我將不得不弄清楚如何重新編排章節,可能使用樸素貝葉斯概率,然後直接進行神經語言建模?問題是即使對於樸素貝葉斯進行文本分類,bigrams 仍然是一個非常有用的特徵。看過語言模型後,學生們習慣於思考二元組和三元組,因此語言建模教會他們使用雙字和三字組塊的想法。我認爲答案是,N-gram 在我的課程所佔比重會越來越小,但仍然存在不會取消。

:當你設計家庭作業時,你如何決定涉及數學和編程的部分?

Dan:測驗是數學,家庭作業是編程。在CS 124中,每週測驗是多項選擇。測驗是爲了概念性理解,並確保學生動手完成數學計算。編程的家庭作業讓你知道如何構建樸素貝葉斯和語言模型等工具;我們希望你可以通過知道如何構建工具來牢牢的掌握這些知識。。

:自從你開課以來,你對設計這個課程的看法有何改變?

Dan:課程規模現在變大了,起初它是 20 人,現在它有 350 人。一開始,它是一個偏向 NLP 的課程幷包括了我們在 Chris Manning 的研究生課程名中沒有涉及的 NLP 內容。那時候,Chris 教授語法解析,機器翻譯和信息抽取,而我負責其他課的教授,包括詞彙語義、共現、話語和對話行爲,我讓他們構建了一個聊天機器人。因此,所有不在研究生課程中的內容在本科課程中都有。我爲本科生做了一些易於理解的課程,這與我們的課程結構明顯不同。

然而,後來我創建了一個面向研究生的自然語言理解課程,以便處理一些缺失的內容,然後創建了一個面向研究生的對話課程。這意味着 CS 124 的角色發生了變化,現在它可以作爲 NLP 之外的多個主題的簡介,因此我們仍然需要所有內容都涉及一點,但不希望家庭作業會與研究生課程完全重疊。因此每次研究生課程改變時,我們的作業也會受到影響。例如,其中 3 門課程現在有關於嵌入的作業,並且有太多的重疊。但是,嵌入對於一切都非常重要,所以只要你沒有完全相同的作業就可以了。

:您認爲語言學在 NLP 課程中發揮了多少作用?

Dan:我肯定會嘗試在 NLP 課程中加一些語言學,部分原因是,在課程結束時學生常常會說,「我沒有系統地學習語言」或「我不瞭解性別指代或情感。」我這裏就有很多語言學專業和符號系統專業背景的學生,他們在參加了一系列系統課程後,最終成爲了CS 專業的學生。CS 124 就是他們的啓蒙課。對於 AI 學生來說,它仍然是斯坦福大學人工智能課程中所有課程中最以人爲本的。通過該課程,我的目的肯定是想讓 CS 的學生在學過我的課之後繼續學更多的人文科學和社會科學的課程。出於這個原因,我儘可能地涵蓋語言學,尤其是最新的社會語言學。在我上課的時候,我也會講很多類型學和語言變種以及形態學上的語言差異的內容,因爲這對於機器翻譯很重要,我想讓他們系統地思考語言。

:你認爲在 NLP 課程和機器學習課程之間的正確聯繫是什麼?

Dan:這個問題很好,因爲兩者之間有很多重疊;在很多 NLP 任務中,我們把機器學習作爲一種工具。之前我把梯度下降分在機器學習的課程裏,但我現在已經把它添加到了 NLP 的教材中,所以我可能還會把它添加到我的課程中。從某種程度上來說,這只是我的主觀意見,但也可能會改變。

一般來說,在我的課程中,我不會做任何證明,學生們也不會花很多時間從頭開始構建機器學習算法,如 SVM、LSTM等,那些應該是工具,所以你只需要瞭解它們,但不需要從底層一點點動手構建。

還有一部分原因是,我們要看深度學習是否會取代所有 NLP 可能涉及的算法,這樣未來就只需要一種機器學習方法即可;但這似乎不太可能發生,而這就是我們認爲會在 20 世紀 90 年代發生的事情,但當時並沒有發生。事實證明,視覺、語言和機器人有他們自己的重重約束和學科自己帶來的偏倚。

David:在 90 年代,大家比較看好哪種機器學習算法?SVM?

Dan:哦,從 1988 年來看大概是無監督聚類或無監督學習。大家都認爲你只能使用 EM 來完全無監督地引出語言結構,所以在這個領域,大家都普遍看好 EM。並且有些早期的論文提出 EM 用於學習詞性標註,然後結果證明只需要一點點訓練數據就可以了。現在,我們知道如果你有可以在一兩個小時內就完成標註的一千個標記的觀察結果或類似的東西,那麼你可以做得比使用擁有大量數據的無監督 EM 效果更好。一切都很快轉向監督機器學習,然後所有研究都集中在架構和特徵上,但實際的機器學習算法就像標準迴歸或 SVM 一樣,所以沒有什麼研究可以教你如何構建 SVM 或 CRF,只需要知道它們的一些應用以及如何構建這些特徵。

:許多常見的 NLP 技術現在已經在包中預先實現了,如果所有內容都已經爲他們構建好了,那麼學生最終能夠理解他們在課堂上學到的技術細節嗎?

Dan:這事挺複雜的。在這堂課中,直到現在我都要求學生自己搭建框架所以他們不能用庫。例如他們要從底層實現樸素貝葉斯模型並玩轉它,這讓他們對貝葉斯思想、先驗、可能性等概念有了非常直觀的理解。但我認爲,當加入深度學習時,我可以調用更多的庫來使用,因爲在 10 周內你沒有時間去完成機器學習所有基礎知識的作業。

:你現在正在編寫教科書的第三版,您如何確定每個版本中包含哪些主題?

Dan:嗯,一般來說我們的做法是,我們去找使用這本教材上課的教授的教學大綱,看看他們需要哪些章節。你可以很快知道哪些東西該被捨棄,比如沒有一個人在自己的課上教喬姆斯基層次結構,即便它在我們的書裏 —— 說實在的,可能全世界只有他自己會需要把需要喬姆斯基層次這一章作爲 NLP 課程的一部分。所以我們刪除了它。你可以立刻說出人們正在做什麼,比如每個人都在做語法解析,以前每個人都在做 n-gram。現在,很明顯,每個人都在教深度學習,所以他們也用 Yoav Goldberg 的書,這本書寫的真的不錯,或者人們會將我們的書和 Yoav 的書結合使用。這就是告訴我們我們需要編寫神經網絡章節的內容。

但是,對於到底要刪掉什麼,我們還是要謹慎一點的,你早些時候曾問過是否要繼續教 n-gram。是時候捨棄 n-gram 模型了嗎?我不確定。在我看來,不應該捨棄,但也許我會再次精簡它。或者另一個例子,如果所有 NLP 人員都轉向依存句法解析,我們是否還需要成分句法分析?我還是會把它放進去,因爲人們可能會二選一。一些實驗室會選擇一種方法,但我們真正應該做的是調查,看看第三版的哪些章節正在使用。如果事實證明沒有人在教消歧或別的某種東西,那麼也許這就該被刪減掉了。

:展望未來,第四版教科書中會出現哪些第三版中沒有的內容?

Dan:我不知道,這是一個很好的問題。第三版要到明年才能完成,所以我仍然無法確定當前的主題。例如,Jim 現在正在編著的序列建模章節使用的是 LSTM,但當然人們構建序列模型的方式會發生變化,也許你需要的是注意力機制,或者可能會發現我們應該使用擴張卷積或其他東西。因此,我並不認爲明年不會出現最簡單,最通用的算法,sequence-to-sequence 模型隨着時間的推移會發生很大的變化,從 HMM 到 MEMM,到 CRF 再到 RNN ......。或者人們可能會發現,在輸入或其他部分加非常簡單的前饋網絡會有很好的表現,因爲有人可能會提出相關的一些簡化方法。

:NLP 正在快速變化。你如何確保你在不久的將來以及十年或二十年後爲學生做好準備?

Dan:不能做到20年,但你可以盡力。您可以嘗試向學生傳授重要的思想,如訓練集和測試集、監督機器學習、數據查看以及語言思考。你希望那些東西是通用的,並且會在十年內都會存在,但你不知道是否如此。

:你對在設計面向研究生的新 NLP 課程的人有什麼建議?

Dan:顯然,當下研究生的課程將以深度學習爲基礎。但是你還需要確定你真正想要涉足 NLP 的哪些方向,這是一個艱難的決定。你是否要涵蓋對話的內容,或將其放在另一個課程中?在過去對話有不同的數學方法,舊方法是 POMDP,現在是強化學習。你做了多少語義分析?你是否要涵蓋使用嵌入的詞語語義分析和語義分析中常見的邏輯語義分析。即使最好的算法是神經網絡,你也要確保覆蓋重要的內容,現在確保學生學習非神經網絡的基礎知識如 n-gram 和 TF-IDF 仍然很重要。

via medium.com/@jurgens_24580,AI 科技評論編譯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章