[自然語言處理](https://app.notion.com/p/3e6fc631b03081b4a9e8f91f3411f61f) › [W2(9/17)](https://app.notion.com/p/3e6fc631b03081a18b13fad72a8874fd) › 04|影片 [1:08:43–1:20:25](https://www.youtube.com/watch?v=MnA5KUETSg4&t=4123s)|投影片 W1_NLP_brief_v2 p.33–37|上一章 [03 LLM 之前的應用與分析層次(0:41–0:58)](https://app.notion.com/p/3e6fc631b0308187ae81c0e0fefb77f7)|下一章 [05 資訊檢索、索引與前處理(1:20–1:48)](https://app.notion.com/p/3e6fc631b0308148a521f4d07ae31526)
## 重點
- 傳統 NLP 靠 syntax(句法,研究字怎麼組成句子):先標詞性,再把句子拆成一棵語法樹(名詞片語、動詞片語、介系詞片語),從結構推出意思。這條路大約十年前就碰到天花板。
- 傳統 NLP 有四個難處:名詞片語的角色、抽象概念、同義詞、一段話有幾個概念。語言學途徑主張不要把文件當成「一袋字」(bag of words),要抽出概念;今天的 LLM 用「帶前後文的向量」做到了一部分。
- Manning 的定義:NLP 是資工、AI、語言學的交集,完美的語言理解是 AI-complete(難度等於做出通用 AI)。深度學習把整條流程重做:word2vec、GloVe、ELMo、BERT 學表示,再接模型與應用。效果好,但可解釋性差。
## Exam-ready
- **Syntax**: "the study of how words and phrases form sentences"(W1_NLP_brief p.30)
- **Syntax example**: "Ex: The Bank of Canada will curb inflation with higher interest rates."(W1_NLP_brief p.33,樹的第一層是 Noun phrase + Verb phrase)
- **Problems with NLP**: "Limitations of Natural Language Processing: Correctly identifying the role of noun phrases; Representing abstract concepts; Classifying synonyms; Representing the number of concepts"(W1_NLP_brief p.34)
- **Text**: "Text is unstructured, ambiguous, and language dependent."(W1_NLP_brief p.35)
- **The Linguistic Approach**: "Does not treat a document as a bag of words" / "Removes ambiguity by extracting structured concepts" / "Concepts are the DNA of text."(W1_NLP_brief p.35)
- **What is NLP?**: "Natural language processing is a field at the intersection of computer science, artificial intelligence and linguistics."(W1_NLP_brief p.36)
- **Meaning**: "Fully understanding and representing the meaning of language (or even defining it) is a difficult goal."(W1_NLP_brief p.36)
- **AI-complete**: "Perfect language understanding is AI-complete. (Christopher Manning)"(W1_NLP_brief p.36)
- **AI-enhanced NLP**: "Data Preprocessing" → "Model Building" → "Applications"; "Representation Learning: Word2Vec. GloVe. ELMo. BERT..."(W1_NLP_brief p.37)
- **Static vs contextual**: "contextual embeddings (e.g., BERT), vs. static embeddings (e.g., Word2Vec, GloVe)."(W1_NLP_brief p.94,本週沒講到這頁,但正好是老師 1:15:53 講的差別)
## [1:08:43](https://www.youtube.com/watch?v=MnA5KUETSg4&t=4123s) 續課:每一頁都是一篇論文的故事
下課回來,老師先講清楚今天的節奏:講得很快,只是「看故事」,看以前的人做過哪些事,不談細節。像上一頁(p.32,把詞素變成向量)其實就是一整篇論文的技術。老師前面提過的史丹佛課程(CS224N,Natural Language Processing with Deep Learning)就是 NLP 加上深度學習。老師覺得資工系(尤其研究所)的課都得跟著 AI 調整,他自己一半甚至三分之二的教材要一直更新;中文系的課本質就不太會變。
上一頁那篇論文在做什麼?
p.32 引用的是 Luong、Socher、Manning 2013 年在 CoNLL 發表的 "Better Word Representations with Recursive Neural Networks for Morphology"([ACL Anthology 頁面](https://aclanthology.org/W13-3512/))。每個 morpheme(詞素,字裡最小、有意義的零件)有一個向量,一個神經網路把兩個向量合成一個:
1. un(字首)+ fortunate(字根)→ unfortunate 的向量。
2. unfortunate + ly(字尾)→ unfortunately 的向量。
好處是沒看過的新字,也能用看過的零件拼出向量。
老師原話是什麼?
「主要並不是要探討裡面的細節而是一個看看故事這樣以前人做過這些事」(1:08:53)
「我大概有一半甚至三分之二的教材是要一直被 update」(1:10:16)
## [1:10:27](https://www.youtube.com/watch?v=MnA5KUETSg4&t=4227s) 沒學過機器學習會不會吃力
有同學問:沒修過機器學習或 AI,上這門課會不會很吃力?老師說寫作業應該還好。但理解上課內容就不一樣了:有親手訓練過模型的人,看到這些架構圖馬上知道在做什麼。所以下面補一份最短的「訓練」入門,後面幾章都用得到。
要先懂什麼?模型「訓練」到底在做什麼?
**模型**:一個有很多旋鈕(parameter,參數)的函數,輸入文字的數字表示,輸出答案(例如正面/負面)。**loss(損失)**:模型這次錯了多少。**gradient descent(梯度下降)**:算出 loss 對每個旋鈕的斜率(gradient,梯度),往讓 loss 變小的方向轉一點,轉多少由 learning rate(學習率)決定。**backpropagation(反向傳播)**:用連鎖律從輸出一層層往回算出每個旋鈕的梯度。**embedding(詞向量)**:訓練時順便學出來的「每個字的一組數字」。
手算一次。模型只有一個旋鈕 w,預測=w × x。資料一筆:x=2,答案 6(理想的 w 是 3)。loss=(預測 − 6)²,梯度=2 ×(預測 − 6)× x,學習率 0.1,新 w=w − 0.1 × 梯度。
| 回合 | w | 預測 | loss | 梯度 | 新 w |
| 1 | 1.0 | 2.0 | 16 | −16 | 1.0 + 1.6 = 2.6 |
| 2 | 2.6 | 5.2 | 0.64 | −3.2 | 2.6 + 0.32 = 2.92 |
| 3 | 2.92 | 5.84 | 0.0256 | −0.64 | 2.92 + 0.064 = 2.984 |
三回合,loss 從 16 掉到 0.0256,w 逼近 3。真正的語言模型是把一個旋鈕換成幾億個,道理完全一樣。
別人怎麼教這個?
- 3Blue1Brown,神經網路是什麼:https://www.youtube.com/watch?v=aircAruvnKk
- 3Blue1Brown,反向傳播在做什麼:https://www.youtube.com/watch?v=Ilg3gGewQ5U
老師原話是什麼?
「以寫作業來講我是覺得可能還好啦」(1:10:37)
「如果你有學過機器學習或是這種 Deep Learning 的學生你可能看到這個圖你就知道他們在幹什麼事情」(1:11:02)
## [1:11:22](https://www.youtube.com/watch?v=MnA5KUETSg4&t=4282s) 語法層:從詞性到語法樹
以前做 syntax,是用語言學規則加一點統計,先標出每個字的詞性(part of speech,名詞、動詞這類),再組成一棵語法樹(parse tree)。有了樹,就知道句子從根該怎麼切成兩大塊、名詞片語在修飾誰,才能從 syntax 長出 semantics(語意)。這些步驟現在都能用類神經網路重做。老師說這條路曾幾乎到瓶頸:Google 出現後,大量資料的統計又往上推了一把,但大約十年前又停住,因為很多問題不是資料多就能解決。
[[IMG: C:\D槽\TAICA課程\_work\notes-v2\nlp-w2\img\nlp_w2_ch04_brief_p033.png | p.33 語法樹:Sentence 先切成名詞片語(誰)和動詞片語(做什麼),紅框是原句的字;左邊是中研院平衡語料庫的詞類標記集]]
它到底怎麼運作?一步一步讀這棵樹
1. 根 Sentence 切成兩塊:Noun phrase「The Bank of Canada」(主詞,誰)+ Verb phrase「will curb inflation with higher interest rates」(做了什麼)。
2. Noun phrase 拆成 The(投影片標 Adjective)+ Bank of Canada(Noun)。
3. Verb phrase 拆成四塊:will(Aux,助動詞)+ curb(Verb)+ inflation(Noun,被抑制的東西)+ Prepositional phrase(介系詞片語)。
4. Prepositional phrase 拆成 with + Noun phrase,後者再拆成 higher(Adjective)+ interest rates(Noun)。
5. 從樹讀出意思:誰=加拿大央行,做什麼=抑制,對象=通膨,用什麼方法=更高的利率。這就是「從 syntax 長出 semantics」。
畫不出樹時,可以寫成括號形式:(S (NP The Bank of Canada) (VP will curb inflation (PP with (NP higher interest rates))))
**注意:投影片的樹是簡化版。標準標記(例如 Penn Treebank)會把 The 標成 Determiner(限定詞),inflation 也會先包成一個 Noun phrase。考試照投影片的版本寫即可。**
為什麼一定要有樹?同一串字可以長出兩棵樹
"I saw the man with the telescope." 有兩種切法:
- (I (saw (the man) (with the telescope))):with the telescope 掛在動詞 saw 底下,意思是「我用望遠鏡看到那個人」。
- (I (saw (the man (with the telescope)))):掛在 the man 底下,意思是「我看到那個拿著望遠鏡的人」。
字一模一樣,樹不同,意思就不同(上一章的結構歧義)。p.33 的 with higher interest rates 也一樣:文法上可以掛在 inflation 底下(「利率更高的通膨」),人一看就知道要掛在 curb 底下(用升息來抑制)。電腦要靠語料和常識才分得出來。
要先懂什麼?詞性標記和中研院平衡語料庫
詞性標記(POS tagging)就是替每個詞貼上「名詞」「動詞」這類標籤。中研院平衡語料庫是現代漢語語料庫,每個詞都人工標好詞性。投影片左邊是它的詞類標記集,例如「我的書」標成 我(Nh 代名詞)、的(DE)、書(Na 普通名詞);「在台北」標成 在(P 介詞)、台北(Nc 地方詞)。
這種標記要人工介入,很花成本。老師說這類語料現在多半已被大型模型當訓練資料「用掉了」,比較少直接引用,但還是有機會用到。
老師原話是什麼?
「以前都必須要這樣去理解句子的構造」(1:12:07)
「從 Syntax 再長出所謂的 Semantics」(1:12:12)
「有太多的是不是靠著大量資料就可以做的」(1:13:13)
## [1:13:19](https://www.youtube.com/watch?v=MnA5KUETSg4&t=4399s) NLP 的四個限制與語言學途徑
p.34 列出傳統 NLP 做不好的四件事,下表每項配一個例子。而且語言學分析換一種語言就要重來,研究的人少的語言(low-resource language,低資源語言)可參考的東西更少。p.35 的語言學途徑主張:不要把文件當成一袋字,要抽出結構化的概念來消除歧義,「概念是文字的 DNA」。老師補充:LLM 雖然也用字的向量來算,但那個向量已經把前後文的概念學進去了。
| 限制(p.34) | 例子 | 難在哪 |
| **Correctly identifying the role of noun phrases** | "The Bank of Canada will curb inflation." 和 "Inflation will be curbed by the Bank of Canada." | 名詞位置相反,誰抑制誰卻一樣;Canada 在主詞片語裡,卻不是做動作的一方 |
| **Representing abstract concepts** | 「物價一直漲」和「通膨很嚴重」 | 沒有共同的字,卻是同一個概念 |
| **Classifying synonyms** | car 和 automobile(不同字同意思);bank 是河岸還是銀行(同字不同意思) | 老師把兩個方向都算進來 |
| **Representing the number of concepts** | 「新手機發表了。售價 999 美元。評論說太貴。」 | 算三個概念,還是合成一個「新手機太貴」?老師說做過摘要就知道 |
它到底怎麼運作?把句子當成一袋字會丟掉什麼?
Bag of words(詞袋)只記每個字出現幾次,字的順序和文法全部丟掉。
手算一次(例子出自本份投影片 p.55,第 08 章會講):
- 「錢,不是問題」切成 錢/不/是/問題,每個字各出現 1 次。
- 「不,錢是問題」切成 不/錢/是/問題,也是每個字各 1 次。
照「錢、不、是、問題」的順序寫成向量,兩句都是 [1, 1, 1, 1]。cosine similarity(兩個向量夾角的餘弦,1 代表方向完全相同)= 1。電腦認為兩句一模一樣,意思卻剛好相反。英文版的例子是 dog bites man 和 man bites dog。
這就是老師說的「把前後文的關係都打爛」。基本的統計方法會這樣做,語言學途徑不會。
用生活例子講,「概念是文字的 DNA」是什麼意思?
同一個人換衣服、換髮型,DNA 不變。同一個意思換不同的字講(「物價飛漲」「通膨嚴重」「錢越來越薄」),概念也不變。語言學途徑想抓的是 DNA,不是衣服。
同一頁紅字的三個詞:unstructured(不像表格有固定欄位)、ambiguous(一句話有好幾種解讀)、language dependent(中文要先斷詞、英文有字形變化,規則各不相同)。
LLM 不也是用字的向量嗎?差在哪?
老師在 1:15:53 自問自答了這題。關鍵在向量裡裝了什麼:
- static embedding(靜態詞向量,例如 word2vec、GloVe):一個字只有一個向量。river bank 的 bank 和 bank account 的 bank 拿到同一組數字。
- contextual embedding(前後文相關的詞向量,例如 ELMo、BERT、LLM):同一個字在不同句子裡拿到不同向量,前後文的概念已經算進去了。
所以老師的回答是:LLM 的向量代表的不是「這個字」,而是「這個字在這句話裡的意思」。
老師原話是什麼?
「一句話的概念大概知道兩句話三句話這三句話如果把它變成一個概念這件事情就越來越複雜」(1:13:48)
「當一個稀少資源的語言要做的時候其實不太容易」(1:14:37)
「就把所有的語法所有的這種前後文的關係都把它打爛」(1:15:12)
「前後文的 concept 都有 embed 在那個這個他的 vector 裡面」(1:16:08)
## [1:16:17](https://www.youtube.com/watch?v=MnA5KUETSg4&t=4577s) Manning:完美的語言理解是 AI-complete
p.36 的 NLP 定義出自史丹佛的 Christopher Manning。第一,NLP 是資工、AI、語言學三者的交集。第二,要完全理解並表示語言的意思很難,連「意思」本身都很難定義。第三,「完美的語言理解是 AI-complete」:要做到它,等於要先做出跟人一樣聰明的通用 AI。老師提醒這個詞不是正式定義,是大師的論斷。Manning 在資訊檢索和 NLP 都是權威,常用的 GloVe 詞向量就出自他的實驗室;投影片右邊是老師 2023 年在 ACL(NLP 領域的頂尖國際會議)和他的合照。
用生活例子講,為什麼語言理解需要整個 AI?
AI-complete 這個說法借自演算法的 NP-complete:解出其中一題,就等於解出同一類的全部難題。
經典例子叫 Winograd schema(威諾格拉德題型):
- "The trophy doesn't fit in the suitcase because it is too big." 這裡的 it 是獎盃。
- "The trophy doesn't fit in the suitcase because it is too small." 這裡的 it 是行李箱。
兩句只差一個字,文法完全一樣,it 指的東西卻換了。要答對,得先知道「大的東西塞不進小的容器」這種常識。完美的語言理解需要常識、推理、世界知識,也就是需要整個 AI。
Manning 是誰?為什麼老師特別介紹他?
- 史丹佛教授,CS224N 長年由他主講。
- 資訊檢索教科書 Introduction to Information Retrieval 的作者之一(和 Raghavan、Schütze 合著),所以老師說他在 IR 領域「說了算」。下一章就開始講資訊檢索。
- GloVe(2014,Pennington、Socher、Manning)出自他的實驗室:[GloVe 專案頁](https://nlp.stanford.edu/projects/glove/)。
別人怎麼教這個?
- Stanford CS224N Winter 2021 第 1 講(Intro & Word Vectors):https://www.youtube.com/watch?v=rmVRLeJRkl4
- CS224N 課程網站:https://web.stanford.edu/class/cs224n/
老師原話是什麼?
「Perfect language understanding 是 AI complete」(1:16:55)
「當然這個詞並不是很 formal 去定義啊」(1:17:00)
「他以前在做資訊檢索領域是一個幾乎就是他說了算」(1:17:15)
## [1:18:28](https://www.youtube.com/watch?v=MnA5KUETSg4&t=4708s) AI 加值的 NLP:流程不變,手法全換
深度學習之後,斷詞、命名實體辨識(NER,找出人名、地名、機構名)這些任務還是要做,只是手法換了。p.37 把流程分成三段,見下表。以前的應用多半靠規則、人工和字典,很少用訓練;算力和資料起來之後,改成訓練模型。老師說 2019 到 2021 年幾乎所有 NLP 研究都以 BERT 為核心。代價是可解釋性很差:效果好卻說不出為什麼,模型可能只是把資料記起來,不代表真的解決了問題。
| 階段 | 投影片列的 | 白話 |
| **Data Preprocessing** | Representation Learning(Word2Vec, GloVe, ELMo, BERT…);Named Entity Recognition and Normalization | 把字變成向量;找出實體,並把不同寫法統一(台北、臺北、Taipei 算同一個) |
| **Model Building** | Seq2Seq、AutoEncoders、Attention Mechanism、Reinforcement Learning、GAN | 拿這些向量去建模型 |
| **Applications** | News/Document Summarization、Toxic Comment Classification、Rumor Detection、Text/Report Generation、Sentiment Analysis、Latent Aspect Mining、Dialogue System | 做成使用者用得到的功能,例如摘要、抓惡意留言、從評論挖出隱藏面向(服務、價格、口味) |
它到底怎麼運作?表示學習學到了什麼?
假設字典只有 cat、dog、truck 三個字。
one-hot(獨熱編碼,每個字只有自己的位置是 1):cat=[1, 0, 0],dog=[0, 1, 0],truck=[0, 0, 1]。任兩個字的 cosine 都是 0,電腦看不出 cat 和 dog 比較像。
學出來的 dense vector(稠密向量)。下面數字是示意值,假設第一維是「像動物」、第二維是「像交通工具」:cat=[0.9, 0.1],dog=[0.8, 0.2],truck=[0.1, 0.9]。
手算 cos(cat, dog):
1. 內積:0.9 × 0.8 + 0.1 × 0.2 = 0.74
2. 長度:cat 是 √0.82 ≈ 0.906,dog 是 √0.68 ≈ 0.825
3. 0.74 ÷ (0.906 × 0.825) ≈ 0.99
手算 cos(cat, truck):內積 0.09 + 0.09 = 0.18,兩個長度都是 0.906,0.18 ÷ 0.82 ≈ 0.22。
cat 和 dog 很像(0.99),cat 和 truck 不像(0.22)。word2vec、GloVe 就是從大量文字自動學出這種向量。真正的維度通常有幾百維,而且每一維沒有人看得懂的名字。下週從 p.64 的貓、狗、卡車圖接著講。
word2vec、GloVe、ELMo、BERT 各是什麼?
依年代排:
- word2vec(2013,Google 的 Mikolov 等人):用周圍的字學一個字的向量,一字一向量(static)。
- GloVe(2014,史丹佛 Manning 實驗室):用「兩個字一起出現幾次」的全域統計學向量,也是一字一向量。
- ELMo(2018,Allen Institute for AI):雙向 LSTM 讀整句,同一個字在不同句子有不同向量(contextual)。老師說後來也不太用了。
- BERT(2018,Google):Transformer 讀整句,也是 contextual,老師稱它那個年代的「一代宗師」。
- 再來是 LLM 時代,老師最後帶一句:現在很多情況可能直接用 LLM。
圖解版可以看 [The Illustrated BERT, ELMo, and co.](https://jalammar.github.io/illustrated-bert/)。
**注意:老師 1:18:45 口頭把 word2vec 和 GloVe 接在一起講,聽起來像同一個東西。word2vec 是 Google 的,GloVe 才是史丹佛的,考試別寫混。**
模型「記住資料」和「真的會」差在哪?
interpretability(可解釋性)是指能不能說出模型為什麼這樣判斷。規則式系統的規則寫得清清楚楚;神經網路是幾百萬個數字,答不出「為什麼」。
示意例子:模型在 1,000 句訓練資料上全對(100%),換 200 句沒看過的新句子只對 124 句(62%)。訓練分數漂亮、新資料差一大截,代表它比較像在背答案,這叫 overfitting(過度擬合)。這就是老師說的「fit 得很好不代表解決了問題」,所以評估一定要用沒看過的測試資料。
老師原話是什麼?
「大概在 2019 2020 2021 這三年所有做 NLP 的全部不是全部啦幾乎都是用 BERT 當成是一個大的核心的角色出發」(1:19:05)
「以前的應用比較是一個規則式的人工介入式的甚至字典的方式極少用訓練的」(1:19:29)
「厲害歸厲害但是其實它可解釋性就很差」(1:19:50)
「這個模型可以把這個問題 fit 的相當的好但是並不代表你解決這個問題而是說他記住了以前的所有的資料」(1:20:03)
## Self-check
Q1. Using "The Bank of Canada will curb inflation with higher interest rates." as an example, describe its syntax tree. What are the two constituents directly under Sentence, and what does the prepositional phrase contain?
**Answer**: Sentence splits into a Noun phrase ("The Bank of Canada") and a Verb phrase. The Verb phrase contains Aux (will), Verb (curb), Noun (inflation) and a Prepositional phrase: "with" + Noun phrase (Adjective "higher" + Noun "interest rates"). The tree tells us who does what to what and how, so semantics is derived from syntax.
中文重點:根先切成名詞片語+動詞片語;介系詞片語=with + 名詞片語。
Q2. List the four limitations of NLP given in the lecture. Then explain why a bag-of-words representation cannot tell "dog bites man" from "man bites dog".
**Answer**: (1) Correctly identifying the role of noun phrases, (2) representing abstract concepts, (3) classifying synonyms, (4) representing the number of concepts. A bag of words keeps only word counts and discards word order and syntax, so both sentences become the same vector (cosine similarity = 1) although the roles are reversed. The linguistic approach instead extracts structured concepts.
中文重點:詞袋丟掉順序,所以「誰咬誰」分不出來;這正是限制第一條「名詞片語的角色」。
Q3. Explain the statement "Perfect language understanding is AI-complete." Who said it, and why is it considered true?
**Answer**: Christopher Manning (Stanford). A problem is AI-complete if solving it is as hard as building general, human-level AI. Perfect understanding of language requires world knowledge, common sense and reasoning, for example deciding what "it" refers to in "The trophy doesn't fit in the suitcase because it is too big." The term is not formally defined.
中文重點:語言理解要用到常識和推理,做到完美就等於做出通用 AI;這不是正式定義。
Q4. Describe the three stages of AI-enhanced NLP and name one drawback of the model-training approach compared with rule-based methods.
**Answer**: Data Preprocessing (representation learning such as Word2Vec, GloVe, ELMo, BERT; NER and normalization) → Model Building (Seq2Seq, AutoEncoders, attention, RL, GAN) → Applications (summarization, sentiment analysis, dialogue systems, etc.). Drawback: poor interpretability. A model may fit the data very well, even memorize it, without anyone knowing why, which does not mean the problem is solved.
中文重點:前處理→建模→應用;訓練出來的模型效果好但說不出為什麼,可能只是背資料。