結論:我做了 8 個加分實驗(實驗 ①~⑧,對照筆記本第 5 題 (a)~(h),見用語表)。最有價值的是:①先量雜訊(讓後面每個比較都知道算不算數);②停用詞實驗(整體沒超過雜訊、家人/性別卻掉 14.82 個百分點,證明只看整體會被騙);③調參數(300 維只用 5% 教材就贏過 Wiki 20% 字典);⑤錯題分析(45% 的錯題,正確答案就在第 2~10 名)。實驗 ⑧ 覆蓋率在第 10 節用到。
每個實驗都照同一個格式:想知道什麼 → 怎麼做 → 結果 → 學到什麼。
| 想知道什麼 | 同樣的設定再跑一次,結果會不會一樣?差多少? |
|---|---|
| 怎麼做 | 5% 維基、參數全部一樣,只換亂數種子(42、1、2、3),訓練 4 次。第 9 節有一步一步的手算。 |
| 種子 42 | 種子 1 | 種子 2 | 種子 3 | 雜訊(最高−最低) | |
|---|---|---|---|---|---|
| 整體 | 46.12 | 46.05 | 47.10 | 46.34 | 1.05 |
| 語意類 | 55.35 | 54.18 | 55.98 | 54.72 | 1.80 |
| 語法類 | 38.45 | 39.30 | 39.72 | 39.37 | 1.26 |
| 各小類 | (見 In [34]) | 1.50~4.74(家人/性別、比較級、-ing 最大,約 4.7) | |||
學到什麼:整體的雜訊約 1 個百分點,小類的雜訊最大到 4.74 個百分點。所以後面每個比較,筆記本都自動印一欄「beyond noise?」,差距沒超過雜訊的,不下結論。這是讓報告可信的關鍵。
下圖把後面實驗 ②③ 的整體正確率放到這把尺上看:粉紅帶子是「基準 46.12 ± 雜訊 1.05」,落在帶子裡的分不出來,落在帶子外的才算真的有差。
⟦IMG:noise_band⟧
| 想知道什麼 | 老師建議可以試「移除停用詞」,我沒做。真的做了會怎樣? |
|---|---|
| 怎麼做 | 先數考卷有幾題含停用詞(NLTK 的英文停用詞表),再拿同一份 5% 維基,一份保留、一份刪掉停用詞,一樣的參數各訓練一次。 |
考卷裡有 206 題含停用詞:家人/性別 86 題(he、she、his、her)、形容詞→副詞 62 題、貨幣 58 題(Korea won 的 won——NLTK 把它當成 won't 的一部分)。
| 保留 | 刪掉 | 差 | 超過雜訊? | |
|---|---|---|---|---|
| 整體 | 46.12 | 45.25 | −0.87 | 否 |
| 語意類 | 55.35 | 55.41 | +0.06 | 否 |
| 語法類 | 38.45 | 36.81 | −1.65 | 是 |
| 家人/性別 | 68.77 | 53.95 | −14.82 | 是 |
| 動詞第三人稱 | 37.82 | 26.55 | −11.26 | 是 |
| 比較級 | 44.14 | 37.01 | −7.13 | 是 |
| 名詞複數 | 38.59 | 41.89 | +3.30 | 是 |
| 國名→國籍 | 78.42 | 80.61 | +2.19 | 是 |
| 過去式 | 44.29 | 41.09 | −3.21 | 是 |
| 查不到字的題目 | 107 | 284 | 多 177 題 |
表裡列了 In [35] 所有「超過雜訊」的小類,加上整體、語意類;其他沒超過雜訊的小類見 In [35]。查不到字只多 177 題、不是 206 題:206 題裡有些在保留版本就已經查不到了(推論,筆記本沒有印重疊題數)。
| 學到什麼 |
整體的變化沒超過雜訊,底下卻有明顯的此消彼長。只看整體會以為「刪不刪都沒差」。
|
|---|
| 想知道什麼 | Skip-gram 換 CBOW、視窗變大、向量變長,各會怎樣? |
|---|---|
| 怎麼做 | 都用 5% 維基,以「Skip-gram、window 5、100 維」為基準,每次只改一個(控制變因)。 |
| 設定 | 訓練時間 | 整體 | 語意類 | 語法類 | 整體差 |
|---|---|---|---|---|---|
| 基準 | 9.1 分 | 46.12 | 55.35 | 38.45 | — |
| CBOW | 9.3 分 | 52.58 | 58.60 | 47.58 | +6.46 |
| window=10 | 15.2 分 | 41.75 | 51.22 | 33.87 | −4.37 |
| vector_size=300 | 17.9 分 | 57.44 | 68.54 | 48.22 | +11.32 |
三個整體差距(4.37~11.32 個百分點)都遠大於雜訊 1.05。
| 學到什麼 |
|
|---|
定義(照做):電腦列出相似度最高的 k 個字,正確答案只要在這 k 個裡面,這題就算對。k=1 就是原本的正確率。
用第 7 節那一題走一次:boy girl father mother,電腦第 1 名 stepmother(錯)、第 2 名 mother(對)。
| 規則 | 這一題算 |
|---|---|
| 只看第 1 名(k=1) | 錯 |
| 前 3 名(k=3) | 對 |
19,544 題都這樣算,就得到下表:
| 第 1 名 | 前 3 名 | 前 5 名 | 前 10 名 | |
|---|---|---|---|---|
| GloVe 字典 | 63.11 | 73.68 | 77.73 | 82.01 |
| Wiki 20% 字典 | 48.39 | 61.53 | 66.32 | 71.74 |
學到什麼:Wiki 20% 字典從第 1 名到前 3 名,正確率多了 13.14 個百分點(GloVe 多 10.57)。很多題不是「完全不懂」,而是「差一點」——呼應老師說 queen「可能在前三名」(W3 00:31:24)。
Wiki 20% 字典答錯 10,087 題。其中 0 題是因為查不到字,4,563 題(45%)正確答案在第 2~10 名。錯法很有規律:
| 錯法 | 例子(題目第三個字 → 電腦答 / 考卷答案) | 說明 |
|---|---|---|
| 拼法不同 | Argentina → argentinian / argentinean Belarus → belarusian / belorussian Slovakia → slovak / slovakian | 電腦其實答對了,是考卷用另一種拼法。考卷本身也有限制。 |
| 方向相反 | large → smaller / larger long → shorter / longer | 反義詞的詞向量太近,加減時走到對面(推論)。 |
| 同類、選錯一個 | Baghdad → syria / iraq Armenia → hryvnia(烏克蘭的錢)/ dram Cambodia → kyat(緬甸的錢)/ riel | 知道答案是「一個國家」「一種貨幣」,但對不到正確那個。 |
| 近親字 | father → stepmother / mother groom → bridesmaid / bride | 用法太像(推論)。 |
| 被別的意思帶走 | great → britain / greater child → childbearing / children | (推論)great 常出現在 Great Britain 這類專有名詞裡,詞向量被這個用法拉走;沒有回教材驗證。 |
學到什麼:錯題分析把「分數低」拆成好幾種原因:有的是詞向量的缺點(反義詞),有的是教材的偏差,有的根本是考卷的問題(拼法)。這種拆解,就是老師說考試要看的「做作業的過程跟 insight」(W3 02:48:55)。
| 想知道什麼 | b − a + c(3CosAdd)之外,學術界還提過 3CosMul(用乘除,Levy & Goldberg 2014)。會更好嗎? |
|---|---|
| 結果 | 同一份 Wiki 20% 字典:48.39 → 44.66,14 個小類全部下降。 |
| 學到什麼 | 論文說常常比較好的方法(外部知識:Levy & Goldberg 2014),換到你的教材不一定成立。原因沒驗證(推論:可能跟字典裡很多冷門字有關)。 |
3CosAdd 是「算出 ★ = b − a + c,找最靠近 ★ 的字」。
3CosMul 是對每個候選字 d 算:相似度(d, b) × 相似度(d, c) ÷(相似度(d, a) + 一個很小的數),挑最大的。gensim 會先把相似度換到 0~1。
白話:要「像 b、也像 c,但不像 a」,用乘除而不是加減。
⟦IMG:pca_tsne⟧
| PCA(左) | t-SNE(右) | |
|---|---|---|
| 它在做什麼 | 找「點分布最長的方向」,用前兩個方向當畫圖的座標(線性) | 盡量讓「原本是鄰居的點」畫出來還是鄰居(非線性) |
| 圖上看到什麼 | 上下方向只有微弱的男女傾向:he、his、king 在最上;mom、grandma、aunt 在下。但分不乾淨(she、her、queen 在上半;dad、grandpa、husband 在下半) | 沒有男女軸,但每一對都貼得很緊(boy/girl、groom/bride、dad/mom、king/queen),分群清楚 |
| 適合看什麼 | 有沒有一條「關係方向」 | 誰跟誰是一群 |
因為只是「換個角度看」(線性),原本平行的線投影後還是平行;t-SNE 會把空間扭曲,所以不保證。
每個小類有多少題「四個字都在字典裡」。GloVe 字典和 Wiki 20% 字典的貨幣都是 100%,所以它們答錯貨幣題不是因為查不到字。這個量法在第 10 節比論壇時最有用(論壇字典的貨幣只有 39.0%)。