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

想知道什麼Skip-gram 換成 CBOW、視窗變大、向量變長,各會怎樣?
怎麼做都用 5% 維基,以「Skip-gram、window 5、100 維」為基準,每次只改一個設定(控制變因),其他完全一樣。
設定訓練時間整體語意語法跟基準比
基準(Skip-gram、window 5、100 維)9.1 分45.2253.9337.99—
CBOW9.6 分52.7159.1647.34+7.5
window=1015.1 分41.8650.7034.51−3.4
vector_size=30016.6 分56.9568.1647.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.2148.290.08
語意56.0955.600.49
比較級45.9554.888.93
常見國家首都77.4773.723.75

學到什麼:用 15 個執行緒同時訓練,計算順序每次不同,結果就會有一點不同。整體很穩,但小類可能晃好幾點。所以兩組實驗只差 1~2 點時,不要下「A 比較好」的結論。