1. 程式人生 > >更別緻的詞向量模型(一):simpler glove

更別緻的詞向量模型(一):simpler glove

如果問我哪個是最方便、最好用的詞向量模型,我覺得應該是word2vec,但如果問我哪個是最漂亮的詞向量模型,我不知道,我覺得各個模型總有一些不足的地方。且不說試驗效果好不好(這不過是評測指標的問題),就單看理論也沒有一個模型稱得上漂亮的。

本文討論了一些大家比較關心的詞向量的問題,很多結論基本上都是實驗發現的,缺乏合理的解釋,包括:

如果去構造一個詞向量模型?

為什麼用餘弦值來做近義詞搜尋?向量的內積又是什麼含義?

詞向量的模長有什麼特殊的含義?

為什麼詞向量具有詞類比性質?(國王-男人+女人=女王)

得到詞向量後怎麼構建句向量?詞向量求和作為簡單的句向量的依據是什麼?

這些討論既有其針對性,也有它的一般性,有些解釋也許可以直接遷移到對glove模型和skip gram模型的詞向量性質的詮釋中,讀者可以自行嘗試。

圍繞著這些問題的討論,本文提出了一個新的類似glove的詞向量模型,這裡稱之為simpler glove,並基於斯坦福的glove原始碼進行修改,給出了本文的實現,具體程式碼在Github上。

為什麼要改進glove?可以肯定的是glove的思想是很有啟發性的,然而儘管它號稱媲美甚至超越word2vec,但它本身卻是一個比較糟糕的模型(後面我們也會解釋它為什麼糟糕),因此就有了改進空間。

內容概覽:

1 對語言進行建模
1.1 從條件概率到互資訊
1.2 互資訊的可加性
1.3 插播:番外篇

2 描述相關的模型
2.1 幾何詞向量
2.2 機場-飛機+火車=火車站
2.3 模型的形式
2.4 忘記歸一化

3 模型的求解
3.1 損失函式
3.2 互資訊估算
3.3 權重和降取樣.
3.4 Adagrad

4 有趣的結果
4.1 模長的含義
4.2 詞類比實驗
4.3 相關詞排序
4.4 重新定義相似.
4.5 關鍵詞提取
4.6 句子的相似度.
4.7 句向量


轉載到請包括本文地址: