12 報告第 5 題:加分實驗(5%,但最能拉開差距)

結論:我做了 7 個加分實驗。最有價值的是:①先量雜訊(讓後面每個比較都知道算不算數);②停用詞實驗(整體沒變、家人類掉 14.82,證明只看整體會被騙);③調參數(300 維只用 5% 資料就贏過 20%+100 維);⑤錯題分析(45% 的錯題,正確答案就在前 10 名)。

每個實驗都照同一個格式:想知道什麼 → 怎麼做 → 結果 → 學到什麼。

實驗 ①:先量雜訊——同樣的設定,結果會晃多少?

想知道什麼同樣的設定再跑一次,結果會不會一樣?晃多大?
怎麼做5% 維基、參數全部一樣,只換亂數種子(42、1、2、3),訓練 4 次。
最低最高範圍(雜訊)
整體46.0547.101.05
語意54.1855.981.80
語法38.4539.721.26
各小類—1.50~4.74(家人、比較級、-ing 最大,約 4.7)

學到什麼:整體很穩(晃 1 分左右),小類會晃到快 5 分。所以後面每個比較,筆記本都自動印一欄「beyond noise?」,差距沒超過雜訊的,不下結論。這是讓報告可信的關鍵。

實驗 ②:移除停用詞到底會怎樣?

想知道什麼老師建議可以試「移除停用詞」,我沒做。真的做了會怎樣?
怎麼做先數考卷有幾題含停用詞(NLTK 的英文停用詞表),再拿同一份 5% 維基,一份保留、一份刪掉停用詞,一樣的參數各訓練一次。

考卷裡有 206 題含停用詞:家人 86 題(he、she、his、her)、形容詞→副詞 62 題、貨幣 58 題(Korea won 的 won——NLTK 把它當成 won't 的一部分)。

保留刪掉差超過雜訊?
整體46.1245.25−0.87否
語意55.3555.41+0.06否
語法38.4536.81−1.65是
家人68.7753.95−14.82是
動詞第三人稱37.8226.55−11.26是
比較級44.1437.01−7.13是
名詞複數38.5941.89+3.30是
查不到字的題目107284多 177 題
學到什麼 整體的變化在雜訊範圍內,底下卻有明顯的此消彼長。只看整體會以為「刪不刪都沒差」。
  • 家人類大跌:he、she、his、her 被刪了,這些題目連字都查不到。
  • 語法類下跌(推論):停用詞(is、has、more、than)是判斷字形的線索。
  • 整體差異小的另一個可能(推論):參數 sample=1e-3 本來就會隨機跳過 the、of 這類高頻字,效果有點像「部分刪掉停用詞」。
結論:支持不刪停用詞。也呼應老師說停用詞「現在一點都不重要也不會去做」(老師是在講搜尋引擎建索引時說的;本作業的停用詞實驗也支持同樣的結論),投影片也說「Avoid to broke the semantics」。

實驗 ③:調參數——一次只改一個設定

想知道什麼Skip-gram 換 CBOW、視窗變大、向量變長,各會怎樣?
怎麼做都用 5% 維基,以「Skip-gram、window 5、100 維」為基準,每次只改一個(控制變因)。
設定訓練時間整體語意語法整體差
基準9.1 分46.1255.3538.45—
CBOW9.3 分52.5858.6047.58+6.46
window=1015.2 分41.7551.2233.87−4.37
vector_size=30017.9 分57.4468.5448.22+11.32

三個整體差距(4~11 分)都遠大於雜訊 1.05。

學到什麼
  • 300 維最驚人:只讀 5% 資料(57.44)就贏過讀 20%、100 維的主模型(48.39)。在這個設定下,向量維度的影響比資料量大(資料 5%→20% 只多 2.27)。但只做了一次,老師也說維度不是越大越好(「設一萬……效果不會比較好」),所以不推到其他設定。
  • CBOW 在語法類大勝:比較級 +25.00、最高級 +20.59。老師上課以 Skip-gram 為主,原論文也是 Skip-gram 語意類較好;這裡 CBOW 在整體、語意、語法都較好,但 14 個小類裡有 3 類較差(國籍 −1.81,超過雜訊)——這是「這份資料、這組參數」的結果。
  • 視窗變大反而變差:家人 −18.18、常見國家首都 −9.29。(推論)一般說法是大視窗偏向「主題相關」而非「用法相似」;但語意類整體也下降,跟這個說法不完全吻合,只能當可能的解釋。
如果你想讓主模型分數更高
改成 300 維或 CBOW 都會大幅提高分數。但作業評分看的是分析,不是準確率;而且改了主模型,報告其他題的數字都要重跑重寫。我維持 100 維 Skip-gram 當主模型(跟 GloVe-100 同維度、是老師教的重點),把這個發現放在加分題。

實驗 ④:前 k 名命中率

第 1 名前 3 名前 5 名前 10 名
GloVe63.1173.6877.7382.01
Wiki 20%48.3961.5366.3271.74

學到什麼:從第 1 名到前 3 名就多了 13 分。很多題不是「完全不懂」,而是「差一點」——呼應老師說 queen「可能在前三名」。

實驗 ⑤:錯題分析——電腦答錯時猜了什麼?

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。

實驗 ⑥:換一種算答案的公式(3CosMul)

想知道什麼b − a + c(3CosAdd)之外,學術界還提過 3CosMul(用乘除,Levy & Goldberg 2014)。會更好嗎?
結果同一份 Wiki 20% 字典:48.39 → 44.66,14 個小類全部下降。
學到什麼論文說常常比較好的方法,換到你的資料不一定成立。原因沒驗證(推論:可能跟字典裡很多冷門字有關)。

實驗 ⑦:同一批字,PCA 和 t-SNE 畫出來一樣嗎?

⟦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),分群清楚
適合看什麼有沒有一條「關係方向」誰跟誰是一群