實驗 ④:調參數——一次只改一個設定
| 想知道什麼 | Skip-gram 換成 CBOW、視窗變大、向量變長,各會怎樣? |
| 怎麼做 | 都用 5% 維基,以「Skip-gram、window 5、100 維」為基準,每次只改一個設定(控制變因),其他完全一樣。 |
| 設定 | 訓練時間 | 整體 | 語意 | 語法 | 跟基準比 |
| 基準(Skip-gram、window 5、100 維) | 9.1 分 | 45.22 | 53.93 | 37.99 | — |
| CBOW | 9.6 分 | 52.71 | 59.16 | 47.34 | +7.5 |
| window=10 | 15.1 分 | 41.86 | 50.70 | 34.51 | −3.4 |
| vector_size=300 | 16.6 分 | 56.95 | 68.16 | 47.63 | +11.7 |
| 學到什麼 |
- 300 維最驚人:只讀 5% 的資料,就贏過讀 20%、100 維的主模型(48.29);語意類 68.16 甚至贏過 GloVe-100(65.34)。白話:100 個數字裝不下那麼多細節,換成 300 個數字,字典的「容量」變大了。在這個規模下,容量比讀多少書更重要。
- CBOW 在語法類大勝:比較級 43 → 68、最高級 17 → 37。CBOW 是「看左右猜中間」,對「這個位置該放 big 還是 bigger」很敏感。(推論。)
- 視窗變大反而變差,家人類掉 12.5:看太遠的鄰居,學到的是「同主題」(king 跟 kingdom),不是「同用法」(king 跟 queen)。(推論。)
- 這些差距(3~12 點)遠大於隨機晃動(整體約 0.1 點),所以結論可信。
|
對你自己重做的建議
主模型可以考慮用 300 維或 CBOW,分數會好看很多。但「300 維+CBOW 一起用」我沒有試過,不確定效果會不會疊加——這本身就可以是你的加分實驗。
實驗 ⑤:換一種算答案的公式(3CosMul)
| 想知道什麼 | b − a + c(叫 3CosAdd)之外,學術界還提過 3CosMul(用乘除取代加減,Levy & Goldberg 2014)。換了會更好嗎? |
| 結果 | 同一份 Wiki 20% 字典:3CosAdd 48.29 → 3CosMul 44.61,14 個小類全部下降。 |
| 學到什麼 | 論文說通常比較好的方法,換到你的資料和設定上不一定成立。要自己驗證,不要直接相信。 |
實驗 ⑥:同一批字,PCA 和 t-SNE 畫出來一樣嗎?
⟦IMG:pca_tsne⟧
| PCA(左) | t-SNE(右) |
| 它在做什麼 | 找「資料變化最大的方向」,用前兩個方向當座標 | 盡量讓「原本是鄰居的點」畫出來還是鄰居 |
| 圖上看到什麼 | 上下方向大致是性別軸:mom、grandma、girl、woman、bride、wife 在上;man、boy、father、king、sons、nephew 在下。(例外:she、her 跟 he、his 擠在下面——代名詞的特性比性別更強。) | 沒有明顯的男女軸,但每一對都貼得很緊(boy/girl、groom/bride、dad/mom),群分得很清楚 |
| 適合看什麼 | 有沒有一條「關係方向」 | 誰跟誰是一群 |
學到什麼:降維一定會失真,不同方法保留不同的東西。老師上課也說可以這樣比較。
實驗 ⑦:同一個設定跑兩次,結果一樣嗎?
Wiki 20% 這組我完整跑了兩次(同資料、同參數、同 seed):
| 第一次 | 第二次 | 差 |
| 整體 | 48.21 | 48.29 | 0.08 |
| 語意 | 56.09 | 55.60 | 0.49 |
| 比較級 | 45.95 | 54.88 | 8.93 |
| 常見國家首都 | 77.47 | 73.72 | 3.75 |
學到什麼:用 15 個執行緒同時訓練,計算順序每次不同,結果就會有一點不同。整體很穩,但小類可能晃好幾點。所以兩組實驗只差 1~2 點時,不要下「A 比較好」的結論。