[自然語言處理](https://app.notion.com/p/3e6fc631b03081b4a9e8f91f3411f61f) › [W3(9/24)](https://app.notion.com/p/3e6fc631b03081ff9776f36fab3e6e50) › 01|影片 [0:02:31–0:36:38](https://www.youtube.com/watch?v=g0QE6O17BWE&t=151s)|投影片 W1_NLP_brief_v2 p.64–69|上一章 無|下一章 [02 分布假說與 LSA/LSI(0:36–0:53)](https://app.notion.com/p/3e6fc631b030815a90adc80645bf2668) ## 重點 - one-hot 和 TF-IDF 只認得「一模一樣的字」,分不出貓、狗、卡車誰跟誰像。解法是把每個字變成一串實數(continuous, distributed representation,後來叫 word embedding,詞向量),讓意思相近的字在空間裡靠近。 - 源頭很早:Markov(1913)親手數字母,發現「下一步只看目前的狀態」;Shannon(1951)用 entropy(熵)量化資訊量。Bengio 2003 改成用神經網路「學」出詞向量,不再靠人工標特徵或純數數。 - 學到的向量能做類比:king − man + woman ≈ queen,這就是作業一。老師提醒:「貓」的鄰居常常不是貓,Queen 也不一定排第一,這些觀察就是作業要你反思的地方。 ## Exam-ready - **Continuous, Distributed Representations**: "By continuous we mean real-valued" "Distributed means a vector in a space, like …"(W1_NLP_brief p.64;圖中 dog = [0.6, 0.4]、cat = [0.5, 0.4]) - 中文:continuous(連續)指每個數字都是實數;distributed(分散式)指一個字是空間裡的一個向量。白話:每個字變成一個座標點,狗和貓靠得很近。 - **Bengio et al. 2003, A Neural Probabilistic Language Model**: "associate with each word in the vocabulary a distributed word feature vector (a real-valued vector in ℝ^m) … learn simultaneously the word feature vectors and the parameters of that probability function."(W1_NLP_brief p.65,投影片上的論文截圖) - 中文:替字典裡每個字配一個實數向量(word feature vector,詞特徵向量),再和算句子機率的函數一起學出來。白話:詞向量是模型練習「猜下一個字」時順便學會的。 - **Pre-trained vectors**: "We can also pre-train our vectors with encoded world knowledge (e.g. similarity)"(W1_NLP_brief p.65) - 中文:詞向量可以先預先訓練(pre-train)好,把世界知識(例如哪些字相似)編進去,別的任務直接拿來用。 - **Markov**: "[1913] The chance of a letter appearing depends on the letter before it." "Markov demonstrated that the next step depends only on your current state, not your entire past history."(W1_NLP_brief p.66) - 中文:Markov 在 1913 年發現,字母出現的機率取決於前一個字母;他證明下一步只看目前的狀態(current state),不看整段過去。 - **Markov's vowel/consonant finding**: "If a character was a vowel, the probability of the next being a consonant was roughly 87%; if it was a consonant, a vowel followed 66% of the time."(W1_NLP_brief p.66) - 中文:現在是母音(vowel)時,下一個是子音(consonant)約 87%;現在是子音時,下一個是母音約 66%。白話:前一個字母會影響下一個。 - **Information Entropy (Shannon)**: "He coined Information Entropy: the more surprising or unpredictable a message is, the more information it carries."(W1_NLP_brief p.66) - 中文:Shannon 提出資訊熵:訊息越出乎意料(surprising)、越難預測,帶的資訊越多。白話:猜不到的話才有料。 - **Why does this work? (1)**: "Similar words are expected to have similar vector representations (and be closer in vector space)"(W1_NLP_brief p.67) - 中文:意思相近的字,向量表示也應該相近,在向量空間裡靠得比較近。 - **Why does this work? (2)**: "The probability function is a smooth function of feature values … This is not true for unorganized discrete spaces, where small changes in input can lead to large changes in the function value"(W1_NLP_brief p.67) - 中文:機率函數對特徵值是平滑(smooth)的:特徵改一點,機率只改一點。沒有組織的離散空間(unorganized discrete space,例如 one-hot)不是這樣,輸入改一點,輸出可能大跳。 - **Why does this work? (3)**: "Therefore, the presence of one sentence in the training set can effectively distribute probability density in the vector space for a combinatorial number of unseen sentences"(W1_NLP_brief p.67) - 中文:所以訓練資料裡出現一句話,就能把機率分給組合數量(combinatorial number)那麼多、沒看過的相似句子。 - **Word analogy: king − man + woman ≈ queen**: "man:woman :: king:?"; "Paris - France + Italy" → "Rome"(W1_NLP_brief p.68 圖中算式、p.69 圖中表格)【老師強調】(0:31:12) - 中文:詞類比:「man 之於 woman,等於 king 之於什麼?」算 king − man + woman,最近的字是 queen;Paris − France + Italy 最近的是 Rome。這就是作業一。 ## [0:02:31](https://www.youtube.com/watch?v=g0QE6O17BWE&t=151s) 開場與回顧:one-hot 分不出貓狗卡車 今天要講完 intro 投影片,並公布作業一。上週的 one-hot 和 TF-IDF 只能比對「一模一樣的字」,所以在電腦眼中,「貓和狗」跟「貓和卡車」一樣不相干。p.64 的解法是 continuous, distributed representation(連續、分散式表示:每個字變成一串實數),後來叫 embedding(把字的概念「嵌」進數字裡)。老師先預告:做作業時你會發現,「貓」旁邊最近的向量常常不是貓,這就是作業要你反思的地方【老師強調】(0:05:37)。 生活比喻:one-hot 像學號,101 號和 102 號只是編號,看不出兩個人像不像;詞向量像一張「身高、年齡、興趣」的個人檔案,檔案像,人就像。 要先懂的詞:向量(vector)就是「一排有順序的數字」,可以想成地圖上的座標,[0.6, 0.4] 就是往右 0.6、往上 0.4 的那個點;兩個向量指的方向越接近,代表越像。維度就是這排數字有幾格。「互相垂直」是方向完全不搭,像正東和正北,代表毫不相干。(第 2 週學過:one-hot 是一個字只在自己那一格放 1、其他格都是 0,見 [08 從詞袋到詞向量](https://app.notion.com/p/3e6fc631b03081b1aab8f5c4fc716850);TF-IDF 是用「這個字在這篇常出現、在別篇少出現」替字打分數的做法,見 [06 向量空間模型與 TF-IDF](https://app.notion.com/p/3e6fc631b0308121891cc1705fe5be4a)。兩者都只認得一模一樣的字。) 下圖對照兩種做法(數字來自 p.64): ```mermaid flowchart LR A["one-hot:貓、狗、卡車各佔一格"] --> B["任兩個字都互相垂直"] B --> C["相似度都是 0,分不出誰像誰"] D["詞向量:每個字是一串實數"] --> E["狗 [0.6, 0.4]、貓 [0.5, 0.4] 幾乎同方向"] E --> F["狗和貓相似度約 1,卡車比較遠"] ``` 圖的重點:詞向量分得出誰近誰遠,one-hot 分不出來。 考試可能怎麼問:Why can't one-hot vectors tell that "cat" is closer to "dog" than to "truck"?(為什麼 one-hot 分不出貓比較像狗、不像卡車?) 下面摺疊在講什麼:cosine similarity(餘弦相似度)是一把量「兩個字像不像」的尺,只看兩個向量指的方向;算出來越接近 1 越像,0 代表毫不相干。用它一算,狗和貓約 0.996(很像),狗和卡車約 0.67,而 one-hot 任兩個字都是 0。
cosine similarity 怎麼算?(進階,可跳過) cosine similarity(餘弦相似度)看兩個向量「指的方向」有多接近:cos(a, b) = a·b / (|a| × |b|),值在 −1 到 1,1 是同方向,0 是垂直(無關)。 用 p.64 的數字:dog·cat = 0.6×0.5 + 0.4×0.4 = 0.46;|dog| = 0.721、|cat| = 0.640;cos = 0.46 ÷ (0.721 × 0.640) ≈ 0.996。truck 從圖上估約 [0.1, 0.7],cos(dog, truck) ≈ 0.667。 one-hot 的話,不同的字點積都是 0(p.63:"every different words are orthogonal");字典有 10 萬字,向量就有 10 萬維。 注意:老師說「cosine 夾角很低」,意思是夾角很小、cosine 值接近 1。
老師原話是什麼? 「貓附近的向量,就是跟它很接近的向量,其實不是貓」(0:05:21) 「所以這個就可以讓你反思,當你在做assignment,我們會問你這些問題」(0:05:37)
## [0:06:01](https://www.youtube.com/watch?v=g0QE6O17BWE&t=361s) 從數數改成用學的:Bengio 2003 以前的做法是「數數」:數 n-gram、開 sliding window(滑動視窗)算字一起出現的機率,成本高、效果也不好。2000 年後資料和算力變多,大家改成訓練神經網路,讓模型參數「內化」語料裡的知識,詞向量就是其中一組參數,不必再找人手工標特徵。老師說後來各種 word embedding 的架構都不外乎長這樣。 要先懂的詞:n-gram 是「連續 n 個字」,例如 2-gram 是「貓 吃」「吃 魚」這種兩字一組;數 n-gram 就是統計每組出現幾次,再用次數猜下一個字。神經網路是一種會照「答錯多少」自動微調內部數字的程式,這些可以被調整的數字叫參數。矩陣是排成表格的一大堆數字,下面的表 C 每一列放一個字的詞向量。 生活比喻:以前像拿整本書逐字統計頻率;後來像小孩大量聽大人講話,自己抓出語感。 Bengio 模型的步驟(任務:看前面幾個字,猜下一個字): 1. 查表:每個字用編號到一張大表(矩陣 C)取出自己的詞向量。 2. 前面幾個字的向量接起來,送進隱藏層(tanh)。 3. 輸出層(softmax)算出字典裡每個字當「下一個字」的機率。 4. 對照真正的下一個字,同時調整網路和詞向量。訓練完,表 C 的每一列就是詞向量。 下圖左邊由下往上就是這四步;右邊方框是論文的三句摘要。 [[IMG: C:\D槽\TAICA課程\_work\notes-v2\nlp-w3\img\w1_nlp_brief_v2_p065.png | Bengio 2003:查表拿詞向量 → tanh 隱藏層 → softmax 算下一個字的機率]] 圖中虛線表示每個位置查的都是同一張表 C。右下是老師在 AAAI 2019 遇到 Bengio、LeCun、Hinton 的照片(三人同獲 2018 年圖靈獎)。 圖上重點: - 標題:突破性論文,Bengio 等人 2003〈神經機率語言模型〉。 - 左圖由下往上:index for w(字的編號)→ Table look-up in C(到表 C 查出詞向量;shared parameters across words=每個字都查同一張表)→ tanh(隱藏層)→ softmax(輸出層;most computation here=大部分計算在這裡)→ 最上面 P(w_t = i | context):在前文之下,下一個字是第 i 個字的機率。 - 右框三句:1. 替字典每個字配一個分散式的詞特徵向量(m 維實數向量);2. 用這些向量寫出一串字的機率函數;3. 同時學出詞向量和機率函數的參數(learn 被紅框圈起來)。 - 下方紅字:詞向量也可以先預訓練好,把世界知識(例如相似度)編進去。 這張圖在講:詞向量不是人訂的,是模型練習「猜下一個字」時一起學出來的。 考試可能怎麼問:How did Bengio et al. (2003) learn word vectors, and why is this better than counting n-grams?(Bengio 怎麼學出詞向量?為什麼比數 n-gram 好?) 注意:老師說「700 多維度」只是舉例,維度是自己設的,常見 100 或 300 維,BERT-base 是 768 維(我補充)。 下面摺疊在講什麼:補充模型裡兩個零件。神經網路負責把前面幾個字的向量混合整理;softmax 負責把最後一排分數變成「每個字當下一個字的機率」,全部加起來剛好 100%。訓練就是一直調整,讓真正的下一個字機率越來越高。
神經網路和 softmax 要先懂什麼?(進階,可跳過) 神經網路:一層一層做「加權總和,再過非線性函數(例如 tanh)」,權重靠訓練調整。 softmax:把一排分數變成加起來等於 1 的機率。例:分數 [2, 1, 0] → 機率 [0.665, 0.245, 0.090]。 訓練時讓正確答案的機率越大越好(cross-entropy loss:−log P(正確答案)),back-propagation(反向傳播)照這個調整權重。 答案就在文章裡,不用人工標註,所以老師叫它 unsupervised(現在多叫 self-supervised)。 參考:[3Blue1Brown 神經網路入門](https://www.youtube.com/watch?v=aircAruvnKk)、[Bengio 2003 原論文](https://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf)
老師原話是什麼? 「我們能不能透過模型學習的方式,去內化看到的文章」(0:06:58) 「我們不用再用找一大堆的人去標」(0:08:45) 「人學不會就讓電腦自己去學」(0:09:18)
## [0:12:07](https://www.youtube.com/watch?v=g0QE6O17BWE&t=727s) 語言模型的源頭:Markov 在大家用「神的旨意」解釋世界的年代,Markov(1856–1922)堅持實證:拿一本書親手數字母(我補充:普希金的《Eugene Onegin》,約 2 萬個字母),發現母音後面接子音約 87%,子音後面接母音約 66%。他的結論是 Markov property(馬可夫性質):下一步只看目前的狀態,不看整段歷史。這就是 language model(語言模型:算「下一個字是什麼」機率的模型)的核心:下一個字的機率不是平均分配,而是跟著前面的字走。老師藉此勉勵:做研究要有這種實證精神。 補充名詞:母音是 a、e、i、o、u 這類發音的字母,其他字母是子音。「狀態」就是「現在的情況」,在這裡指目前這個字母是母音還是子音。 生活比喻(老師的作弊賭徒):賭徒有正常骰子(每點 1/6)和作弊骰子(6 點機率 1/2),偷換手法很好,你看不到他現在用哪一顆。「用哪顆骰子」就是 hidden state(藏起來看不到的狀態),你只看得到點數。 下圖上方兩顆骰子是看不到的狀態,下方是你看得到的點數。 ```mermaid flowchart TD A["正常骰子:每點 1/6"] -->|"偷換"| B["作弊骰子:6 點 1/2"] B -->|"換回"| A A --> C["你看到:2、5、3…"] B --> D["你看到:6、6、6…"] C --> E["從點數反推:他現在用哪顆骰子?"] D --> E ``` 所以看到一連串 6,就能反推「他換成作弊骰子了」,這種模型叫 hidden Markov model(HMM,隱馬可夫模型)。老師另舉兩例:DNA 某些區段 C 後面接 G 特別多,可用同樣方法判斷「進入這種區段了」;把文字一對一換成看不懂的符號,規律不變,所以語言模型不必「看懂」字也能抓規律,早期破解古文字也靠統計頻率。 考試可能怎麼問:What is the Markov property? Give an example.(什麼是馬可夫性質?舉例說明。) 下面摺疊在講什麼:把「看到連續五個 6」分別用兩顆骰子算一次機率,比比看哪顆骰子比較說得通。結果作弊骰子的可能性大好幾百倍,這就是 HMM「從看得到的結果,反推看不到的狀態」的做法。
連續五個 6,怎麼判斷他換了骰子?(進階,可跳過) 正常骰子連續五個 6 的機率 (1/6)⁵ = 1/7,776;作弊骰子 (1/2)⁵ = 1/32,大 243 倍,所以「他用作弊骰子」合理得多。
老師原話是什麼? 「我覺得做研究就是這樣,你就要把這樣精神用在你現在在做的東西」(0:15:44) 「這個骰子就是我的hidden state」(0:17:43) 「下一個字,它的出現的機率不是uniform」(0:19:17)
## [0:21:08](https://www.youtube.com/watch?v=g0QE6O17BWE&t=1268s) Shannon 與資訊熵 Shannon(1916–2001)延續 Markov 的精神,開創資訊理論;1951 年的論文 Prediction and Entropy of Printed English 在估英文有多好猜。核心想法:越少見、越出乎意料的字,帶的資訊量越高。Entropy(熵)把「平均有多出乎意料」變成一個數字,越好猜,熵越低。後面算 perplexity(困惑度:模型對下一個字有多「猶豫」)會用到。 生活比喻:沙漠的天氣預報說「明天晴天」,你幾乎沒得到新資訊;說「明天下雪」,資訊量就很大。老師的版本:講一堆沒重點的話,資訊量就低。 考試可能怎麼問:What does information entropy measure, and why does a rare or surprising word carry more information?(熵在量什麼?為什麼少見的字資訊量高?) 注意:老師口頭說「用 entropy 代表能量」是比喻;entropy 量的是平均資訊量(不確定性),單位是 bit。 下面摺疊在講什麼:用公式把「出乎意料的程度」變成數字。公式裡的 log(對數)負責一件事:機率越小,算出的資訊量越大;一件事的機率每砍一半,資訊量就多 1 bit(1 bit=一個是非題答案的資訊量)。把所有可能情況的資訊量平均起來就是 entropy;表格顯示越好猜的骰子,entropy 越低。
資訊量和 entropy 怎麼算?(進階,可跳過) 一件事的資訊量 I(x) = −log₂ P(x):機率 1/2 → 1 bit,1/8 → 3 bits,1/1024 → 10 bits。Entropy 是資訊量的平均:H = −Σ P(x) log₂ P(x)。
情況機率Entropy
公平硬幣0.5/0.51 bit
公平骰子每點 1/62.585 bits
作弊骰子(其他點假設各 1/10)6 點 1/22.161 bits
越好猜,entropy 越低;perplexity 就是 2 的 entropy 次方(我補充)。
老師原話是什麼? 「你常常聽到一個人講一堆東西,但是好像沒有什麼重點,聽的跟沒有聽一樣這樣子,那個就是資訊量很低的意思」(0:22:14)
## [0:23:20](https://www.youtube.com/watch?v=g0QE6O17BWE&t=1400s) 為什麼向量表示行得通 貓和狗都會跳、會吃、會咬,卡車不會,所以「一個字常跟哪些字一起出現」有規律,意思相近的字應該有相近的表示(下一章的分布假說會正式講)。representation(表示法)就是機器學習的 feature vector(特徵向量),現在要替每個字做一條。p.67 解釋為什麼能舉一反三:相似的字向量靠近,機率函數又是 smooth(平滑:輸入改一點,輸出只改一點)的,所以小貓、大貓也該靠近貓。老師也提醒:實際做作業會發現沒這麼理想,而且訓練資料會影響學出來的向量。 生活比喻(老師的例子):描述一個學生,可以列出席率、作業分數、坐第幾排,把人變成一排數字;詞向量就是替每個字做這樣一排數字。smooth 像音量旋鈕,轉一點只變一點;one-hot 像開關,按錯一顆就完全不同。 要先懂的詞:機率函數就是「輸入一串字,輸出這句話有多可能出現」的那個計算規則,也就是語言模型本身。 下圖是 p.67 第 3 點的過程(例子出自 Bengio 論文,我補充): ```mermaid flowchart LR A["訓練句:The cat is walking in the bedroom"] --> B["相近的字,向量也相近"] B --> C["cat 近 dog、walking 近 running、bedroom 近 room"] C --> D["機率函數平滑:換成相近的字,機率只變一點"] D --> E["沒看過的句子也拿到高機率:A dog was running in a room"] ``` 一句話總結:學會一句,等於順便學會一大群長得很像的句子。 考試可能怎麼問:Why can a distributed representation generalize to sentences it has never seen?(為什麼詞向量能推廣到沒看過的句子?) 下面摺疊在講什麼:估算一句訓練句能「順便照顧」多少句沒看過的句子。每個位置都有相近的字可以換,換法一相乘就很多,這就是投影片說的組合數量(combinatorial number)。
「組合數量那麼多」是多少?(進階,可跳過) 那句話有 6 個位置(The、cat、is、walking、the、bedroom)各有一個相近的字可換,2⁶ = 64 種組合,一句訓練資料就幫到幾十句沒看過的句子。 在 one-hot 裡,cat 換成 dog 跟換成 truck 一樣遠,改一個字機率可能整個跳掉,就學不到這種推廣。
老師原話是什麼? 「但是當你做完第一個assignment之後,你就發現好像不是這麼一回事」(0:25:54) 「就是這個訓練資料的東西,其實是會影響到這個representation的東西」(0:26:39)
## [0:26:48](https://www.youtube.com/watch?v=g0QE6O17BWE&t=1608s) 詞向量的類比:man:woman=king:queen p.68 把 word2vec、GloVe 學到的向量壓到 2D 平面。重點不是每個字的「絕對位置」,而是字與字的「相對關係」:man→woman 和 king→queen 的箭頭,方向和長度幾乎一樣。所以可以直接做向量運算,而且完全不用人工標註,當年讓 NLP 研究者「下巴掉下來」。這就是作業一的 word analogy;老師提醒,你算出來的 Queen 不一定排第一,可能只在前三名,這可以拿來探討【老師強調】(0:31:12)。 生活比喻:像地圖上的路線指示。「往東北走 400 公尺」從 man 出發會走到 woman,從 king 出發就走到 queen。 要先懂的詞:word2vec(Google 2013 年)和 GloVe(史丹佛 2014 年)是兩套有名的「做詞向量」工具,這週後面的章節會細講;這裡只要知道它們都會替每個字算出一串數字。2D 平面就是只有左右、上下兩個座標的平面圖;真正的詞向量有幾百維,畫圖時才壓成兩維方便看。 怎麼解一題類比(a:b :: c:?): 1. 算 b − a + c,例如 woman − man + king。 2. 在所有字裡找跟這個結果 cosine 相似度最高的字。 3. 排除題目裡的 a、b、c 本身,不然最近的常常是 king 自己(我補充)。 4. 看正確答案排第幾名(作業一就是看 queen 排第幾)。 下圖是 p.68 的幾組類比,先看中上的算式和左邊的性別對應。 [[IMG: C:\D槽\TAICA課程\_work\notes-v2\nlp-w3\img\w1_nlp_brief_v2_p068.png | p.68:性別對應、king − man + woman、公司對 CEO、比較級、frog 的近鄰]] 公司對 CEO、slow→slower→slowest 也有一致的方向,老師說趨勢很接近但不完全一樣。下方 GloVe 找 frog 的近鄰,連冷門蛙類學名(litoria、rana)都抓到,但第 6 名 lizard 是蜥蜴。老師也提醒:拿這種詞向量做 RAG(先搜資料再交給大語言模型回答),搜 King 找到的鄰居可能跟 King 無關,所以實務上不這樣用。 圖上重點: - 標題:學習字的向量表示。 - 左圖:男女配對,brother→sister、nephew→niece、uncle→aunt、man→woman、sir→madam、heir→heiress、king→queen、earl→countess、duke→duchess、emperor→empress,虛線的方向都差不多。 - 中上:man:woman :: king:?(man 之於 woman,等於 king 之於什麼?),king [0.30 0.70] − man [0.20 0.20] + woman [0.60 0.30] = queen [0.70 0.80],旁邊小圖把這幾個點畫出來。 - 中下是公司→執行長(例如 IBM→Rometty);右邊是形容詞原級→比較級→最高級(slow→slower→slowest、strong→stronger→strongest)。 - 最下方:frog(青蛙)的最近鄰依序是 frogs、toad(蟾蜍)、litoria、leptodactylidae、rana、lizard(蜥蜴)、eleutherodactylus,照片是其中四種蛙。 這張圖在講:同一種關係(男→女、公司→執行長、原級→比較級)在向量空間裡是同一個方向。 考試可能怎麼問:Explain how king − man + woman ≈ queen works, and why "queen" may not rank first with real embeddings.(解釋類比怎麼算,以及為什麼 queen 不一定排第一。) 下面摺疊在講什麼:用投影片上的二維小數字,親手做一次「king 減 man 加 woman」,看結果是不是剛好落在 queen。向量相加減就是每一格各自加減。
用 p.68 的數字算一次(進階,可跳過) king [0.30, 0.70] − man [0.20, 0.20] + woman [0.60, 0.30] = [0.70, 0.80] = queen。 為什麼會對?woman − man = [0.40, 0.10],queen − king = [0.40, 0.10],兩個差一樣,就是「男→女」的方向。真實向量不會剛好等於 queen,只是 queen 最靠近。 注意:作業一 PDF p.2 的算式 King + Queen − Man ≈ Woman 是筆誤。照「A is to B as C is to D」應為 D ≈ B − A + C,即 Queen − King + Man ≈ Woman。
老師原話是什麼? 「我們看的並不是字的向量的絕對的向量的東西,而是一種對比的關係」(0:27:56) 「沒有任何的supervised的Data,完全靠它做Unsupervised的方式的訓練」(0:29:46) 「它附近的向量是不是都跟King有關,其實不盡然」(0:30:12) 「這個就是在你們assignment1要做的事情,但是你可能會發現你的Queen並不會在這個數字的附近的第一個選項」(0:31:12)
## [0:32:59](https://www.youtube.com/watch?v=g0QE6O17BWE&t=1979s) 題外話:有了大語言模型還要學這些嗎 電腦學會這些關係後,搜尋就能自動做語意延伸。老師接著談:大語言模型什麼都會,還要學這些嗎?他認為要回頭看以前的人怎麼做、遇到什麼痛點,建立「痛點對解法」的對應,才能自己想出新的對應。凡事都問 AI,表現會停在某個程度;學生的貢獻若只剩下 prompt,就成了沒有新想法的封閉迴圈。 生活比喻:像學數學只抄答案,作業交得出來,但換一題就不會。 考試可能怎麼問:這段是學習態度的題外話,不是考試內容(我判斷)。
老師原話是什麼? 「痛點跟solution之間的mapping」(0:34:49) 「凡事就問AI,你永遠就是,雖然你可以到達一定的表現,但是你的表現就會停留在那裡」(0:35:00)
## [0:35:08](https://www.youtube.com/watch?v=g0QE6O17BWE&t=2108s) 更多類比與跨語言對應 p.69 還有:Paris − France + Italy → Rome(首都)、bigger − big + cold → colder(比較級)、Cu − copper + gold → Au(化學符號)。更神奇的是跨語言:英文 horse、cow、pig、dog、cat 和西班牙文 caballo、vaca、cerdo、perro、gato 分別訓練出的向量,分布形狀很像,所以能拿來做翻譯。老師補充,同語系比較像,換成中文這類不同語系就可能不一樣。最後預告:word2vec、GloVe、FastText 出來後這塊就底定了,下一章從語言學講起。 生活比喻:像同一座城市的中文版和英文版地圖,其中一張轉了個角度;轉正疊上去,同一個位置的地名就是彼此的翻譯。 下圖左邊是類比算式和答案;右邊是英文(紅)和西班牙文(藍)的動物詞向量。 [[IMG: C:\D槽\TAICA課程\_work\notes-v2\nlp-w3\img\w1_nlp_brief_v2_p069.png | p.69:類比算式,以及英文和西班牙文動物詞向量的分布]] 右邊兩張圖座標不同,但五個動物排出的形狀相似,這就是能翻譯的原因。表格最後兩列的答案被圖蓋住了。 圖上重點: - 標題:表示向量的用途。 - 左表 Expression(算式)→ Nearest token(最近的字):Paris − France + Italy → Rome;bigger − big + cold → colder;sushi − Japan + Germany → bratwurst(德國香腸);Cu − copper + gold → Au;Windows − Microsoft + Google、Montreal Canadiens − Montreal + Toronto 的答案被圖蓋住。 - 中圖紅字:英文 horse(馬)、cow(牛)、pig(豬)、dog(狗)、cat(貓)的向量位置。 - 右圖藍字:西班牙文 caballo、vaca、cerdo、perro、gato,括號裡是對應的英文。 這張圖在講:詞向量能做首都、比較級、國家名產這類類比,而且兩種語言的動物詞排出相似的形狀。 考試可能怎麼問:Why can word embeddings trained on two different languages be used for translation?(為什麼兩種語言的詞向量能拿來翻譯?) 下面摺疊在講什麼:把英文地圖「轉一個角度」疊到西班牙文地圖上。先用幾組已知翻譯找出要怎麼轉(這個轉法叫 W),之後任何英文字轉過去,落點最近的西班牙文字就是翻譯。
「形狀很像」怎麼拿來翻譯?(進階,可跳過) 做法(Mikolov 等人 2013,我補充):用一小批已知對照字(horse↔caballo)學一個線性轉換 W,讓 W × 英文向量 ≈ 西班牙文向量;新的英文字乘上 W,再找最近的西班牙文字。 小例子:若西班牙文空間剛好是英文空間逆時針轉 90 度,W 就是「[x, y] 變成 [−y, x]」。英文某字 [0.2, 0.0] 轉完是 [0.0, 0.2],最靠近它的西班牙文字就是翻譯。
## Self-check
Q1. Why can't one-hot vectors capture word similarity? What does a "continuous, distributed representation" mean?(中文:為什麼 one-hot 抓不到字的相似度?「連續、分散式表示」是什麼意思?) **Answer**: In one-hot encoding every different word is orthogonal, so any two different words have cosine similarity 0; "cat" is as far from "dog" as from "truck". Continuous means real-valued; distributed means each word is a dense vector in a space, so similar words end up closer. 中文:one-hot 的每個字只在自己那一格是 1,任兩個不同的字互相垂直,相似度都是 0,所以「貓和狗」跟「貓和卡車」一樣不像。連續指每一維都是實數;分散式指一個字是空間裡的一個向量。這樣意思相近的字(狗和貓)會靠得很近,電腦能用方向判斷相似。
Q2. What does king − man + woman ≈ queen show about word embeddings, and why might "queen" not rank first in your assignment?(中文:king − man + woman ≈ queen 說明詞向量的什麼性質?為什麼作業裡 queen 不一定排第一?) **Answer**: Relations between words are consistent directions: woman − man ≈ queen − king, so adding the "male → female" direction to king lands near queen, learned without labeled data. Real embeddings only get close: the input words are often nearest and must be excluded, and corpus size, rare words, and polysemy can push other words ahead. 中文:詞向量抓到的是「相對關係」:man 到 woman 的方向,和 king 到 queen 的方向幾乎一樣,所以 king 加上「男→女」的方向就走到 queen 附近,而且不用人工標註。但真實向量只會「接近」:king 等輸入字本身常常最近、要排除;語料大小、罕見字、一字多義也會讓別的字排到前面。
Q3. According to Bengio et al. (2003), why does a distributed representation help a language model generalize to unseen sentences?(中文:根據 Bengio 2003,為什麼分散式表示能讓語言模型推廣到沒看過的句子?) **Answer**: Similar words get similar feature vectors, and the probability function is smooth in those features, so a small change in features causes a small change in probability. So one training sentence ("The cat is walking in the bedroom") raises the probability of a combinatorial number of similar unseen sentences ("A dog was running in a room"). This fails in unorganized discrete spaces such as one-hot. 中文:意思相近的字會學到相近的向量,機率函數又是平滑的,向量改一點、機率只改一點。所以訓練資料有「The cat is walking in the bedroom」,把 cat 換成 dog、walking 換成 running 的句子也會拿到高機率。one-hot 這種沒有組織的離散空間做不到,換一個字,輸出可能大跳。
Q4. What did Markov and Shannon contribute to language modeling?(中文:Markov 和 Shannon 對語言模型各有什麼貢獻?) **Answer**: Markov (1913) counted letters by hand and showed that the chance of a letter depends on the letter before it (vowel → consonant about 87%, consonant → vowel about 66%), leading to the Markov property: the next step depends only on the current state. Shannon (1951) coined information entropy: the more surprising a message is, the more information it carries. Language models build on both ideas. 中文:Markov 在 1913 年親手數字母,發現字母的機率取決於前一個字母(母音後接子音約 87%,子音後接母音約 66%),得出馬可夫性質:下一步只看目前的狀態。Shannon 在 1951 年提出資訊熵:訊息越出乎意料,資訊越多。語言模型就建立在這兩件事上:用前文預測下一個字,用熵衡量文字有多好猜。
讀完了嗎?下一章:[02 分布假說與 LSA/LSI(0:36–0:53)](https://app.notion.com/p/3e6fc631b030815a90adc80645bf2668)|回到週頁:[W3(9/24)](https://app.notion.com/p/3e6fc631b03081ff9776f36fab3e6e50)