GloVe理解

1. 背景介紹

詞向量在很多應(yīng)用中都有重要作用〈虿現(xiàn)今學(xué)習(xí)詞向量的方法主要分兩類:1)Global Matrix Factorization Methods和2)Local context window methods照皆,它們各有優(yōu)缺點(diǎn)嚼锄,下面分別進(jìn)行說(shuō)明。

1.1 Matrix Factorization Methods

這類方法的主要思想是:對(duì)于一個(gè)描述語(yǔ)料庫(kù)統(tǒng)計(jì)信息的大型矩陣珠叔,對(duì)其進(jìn)行分解炉峰,用低秩近似生成詞向量复颈。

比較有代表的算法有:LSA、HAL(Hyperspace Analogue to Language)架谎、COALS炸宵、Hellinger PCA(HPCA)

這類算法的優(yōu)點(diǎn)是:

  1. 訓(xùn)練速度快;
  2. 充分利用了語(yǔ)料庫(kù)的統(tǒng)計(jì)信息

但也有缺點(diǎn):

  1. 比如LSA谷扣,它在詞類比任務(wù)上表現(xiàn)較差土全;
  2. 比如HAL捎琐,在計(jì)算詞的相似性時(shí),一些高頻詞裹匙,比如the瑞凑、and和其它詞同時(shí)出現(xiàn),它們對(duì)相似計(jì)算有較大影響概页,但實(shí)際上籽御,它們和其它詞在語(yǔ)義上沒多大聯(lián)系。

1.2 Shallow Window-Based Methods

這類方法主要通過預(yù)測(cè)窗口內(nèi)的上下文詞來(lái)學(xué)習(xí)詞向量惰匙。

基于這種思想的算法有:

  1. Bengio et al.(2003)

    應(yīng)該是最早提出詞向量的學(xué)者技掏,他們用一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)來(lái)學(xué)習(xí)詞向量。

  2. Collobert and Weston(2008)

    他們將詞向量的學(xué)習(xí)和下游任務(wù)分離项鬼,從而可以使用單詞完整的上下文學(xué)習(xí)詞向量哑梳。

  3. Mikolov et al(2013a)提出的CBOW和Skip-Gram

    基于向量?jī)?nèi)積的單層神經(jīng)網(wǎng)絡(luò)

  4. vLBL和ivLBL:

以上這些模型學(xué)得詞向量能很好通過詞類比任務(wù)(word analogy task),但也有明顯缺點(diǎn):
它們不是直接使用語(yǔ)料庫(kù)的共現(xiàn)統(tǒng)計(jì)绘盟,而是滑動(dòng)窗口掃描上下文詞鸠真,因此計(jì)算書無(wú)法利用重復(fù)數(shù)據(jù)。

2. GloVe Model

2.1 GloVe模型介紹

在詞向量的無(wú)監(jiān)督學(xué)習(xí)中龄毡,語(yǔ)料庫(kù)中的詞頻統(tǒng)計(jì)信息是非常重要的信息吠卷。GloVe模型就用到了基于窗口的詞共生矩陣。

假設(shè)語(yǔ)料庫(kù)中有下面三句話:

  • I like deep learning.
  • I like NLP.
  • I enjoy flying.

通過滑動(dòng)窗口沦零,遍歷一遍語(yǔ)料庫(kù)祭隔,可以得到如下共生矩陣:

counts I like enjoy deep learning NLP flying .
I 0 2 1 0 0 0 0 0
like 2 0 0 1 0 1 0 0
enjoy 1 0 0 0 0 0 1 0
deep 0 1 0 0 1 0 0 0
learning 0 0 0 1 0 0 0 1
NLP 0 1 0 0 0 0 0 1
flying 0 0 1 0 0 0 0 1
. 0 0 0 0 1 1 1 0

符號(hào)定義:

X:共生矩陣;

X_{ij}:詞條j出現(xiàn)在詞條i的上下文中的次數(shù)蠢终;

X_{i}=\sum_{k}X_{ik}:任意詞出現(xiàn)在詞條i上下文中的次數(shù)序攘;

P_{ij}=P(j|i)=\frac{X_{ij}}{X_{i}}:詞j出現(xiàn)在詞i上下文中的概率。

作者從預(yù)料庫(kù)中對(duì)目標(biāo)詞icestream的上下文詞出現(xiàn)概率和比率進(jìn)行了統(tǒng)計(jì)寻拂,統(tǒng)計(jì)結(jié)果如下表:

Co-occurrence probabilities.png

通過分析可以發(fā)現(xiàn):

  1. P_{ik}/P_{jk}越大,則說(shuō)明詞k與詞i在語(yǔ)義上比詞j更接近丈牢;
  2. P_{ik}/P_{jk}越小祭钉,則說(shuō)明詞k與詞j在語(yǔ)義上比詞i更接近;
  3. P_{ik}/P_{jk} \approx 1己沛,則說(shuō)明詞k在語(yǔ)義上與詞ij要么都接近慌核,要么都相差很遠(yuǎn)。

既然共現(xiàn)概率比能體現(xiàn)詞在語(yǔ)義上的相似程度申尼,作者希望構(gòu)造一個(gè)函數(shù)垮卓,輸入為詞向量w_{i},w_{j},w_{k},輸出為共現(xiàn)概率比P_{ik}/P_{jk}师幕,那么應(yīng)該有:
F(w_{i},w_{j},\tilde{w}_{k})=\frac{P_{ik}}{P_{jk}} \tag{1}
因?yàn)橄蛄靠臻g是線性的粟按,那么F可以定義在兩個(gè)向量差上:
F(w_{i}-w_{j},\tilde{w}_{k})=\frac{P_{ik}}{P_{jk}} \tag{2}
等式(2)右邊是個(gè)標(biāo)量诬滩,而F可能是一個(gè)復(fù)雜函數(shù),F可改寫為:
F\left ( (w_{i}-w_{j})^{T}\tilde{w}_{k} \right )=\frac{P_{ik}}{P_{jk}} \tag{3}
在詞條共現(xiàn)矩陣中灭将,目標(biāo)詞和上下文詞是任意的疼鸟,也就是說(shuō)可以交換的:w\leftrightarrow \tilde{w}、X \leftrightarrow X^{T}庙曙。因此所求模型也應(yīng)該是關(guān)于參數(shù)對(duì)稱的空镜,這里分兩步求解。首先要求F在群(\mathbb{R},+)(\mathbb{R_{>0},\times})之間是同態(tài)的:
F\left( (w_{i}-w_{j})^{T} \tilde{w}_{k} \right)=\frac{F(w_{i}^{T}\tilde{w}_{k})}{F(w_{j}^{T}\tilde{w}_{k})} \tag{4}
帶入(3)式捌朴,有:
F(w_{i}^{T}\tilde{w}_{k})=P_{ik}=\frac{X_{ik}}{X_{i}} \tag{5}
(4)式的解為F=\text{exp}吴攒,帶入(5)式有:
w_{i}^{T}\tilde{w}_{k}=\text{log}(P_{ik})=\text{log}(X_{ik})-\text{log}(X_{i}) \tag{6}
上式等式左邊滿足交換,但右邊不滿足砂蔽,可以將\text{log}(X_{i})吸收到偏置項(xiàng)b_{i}中舶斧,同時(shí)添加\tilde{w}_{k}的偏置項(xiàng)\tilde_{k}使等式滿足對(duì)稱性:
w_{i}^{T}\tilde{w}_{k}+b_{i}+\tilde察皇_{k}=\text{log}(X_{ik}) \tag{7}
但(7)是病態(tài)的茴厉,因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=X_%7Bik%7D" alt="X_{ik}" mathimg="1">可能會(huì)是0。

其中一種做法是在對(duì)數(shù)項(xiàng)中添加偏移解決什荣,即\text{log}(X_{ik}) \rightarrow \text{log}(1+X_{ik})矾缓,這種做法的主要缺點(diǎn)是:給共現(xiàn)矩陣中的每一項(xiàng)權(quán)值都相同,而我們知道共現(xiàn)矩陣中值很小的兩個(gè)詞其實(shí)在語(yǔ)義上沒多大聯(lián)系稻爬。

作者的做法是使用加權(quán)的最小二乘法作為損失函數(shù):
J=\sum_{i,j=1}^{V}f\left(X_{ij}\right)\left( w_{i}^{T}\tilde{w}_{j}+b_{i}+\tilde嗜闻_{j}-\text{log}(X_{ij}) \right)^{2} \tag{8}
V是字典大小,權(quán)重函數(shù)f需滿足下面的條件:

  1. f(0)=0. 同時(shí)當(dāng)x趨近于0時(shí)桅锄,f(x)能快速收斂到0. 即\lim_{x\rightarrow 0}f(x)\text{log}^{2}x是有限的琉雳;
  2. f(x)是非減函數(shù),這樣能保證很小的X_{ij}不會(huì)被過度加權(quán)友瘤;
  3. f(x)x取很大值時(shí)翠肘,f(x)也不會(huì)太大。

作者找到一個(gè)比較理想的f(x):
f(x)=\begin{cases} (x/x_{max})^{\alpha} \space \text{if} \space x<x_{max} \\ 1 \space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space \text{otherwise}\end{cases} \tag{9}
本文中辫秧,x_{max}=100,\alpha=3/4.

2.2 與其它模型的關(guān)系

2.3 模型復(fù)雜度分析

3. 實(shí)驗(yàn)及結(jié)果

作者分別在詞類比任務(wù)束倍、詞相似度任務(wù)和命名體識(shí)別(NER)任務(wù)上對(duì)模型進(jìn)行了評(píng)估。

3.1 Word analogies

word analogy分兩種盟戏,一種是語(yǔ)義推理绪妹,比如:“Athens is to Greece as Berlin is to ___?”;另一種是語(yǔ)法推理柿究,比如:“a is to b as c is to __?”.

實(shí)驗(yàn)結(jié)果見下表:

Results on the word analogy task.png

作者對(duì)實(shí)驗(yàn)結(jié)果做了如下總結(jié):

  1. GloVe模型的實(shí)驗(yàn)結(jié)果要比其他模型好邮旷;
  2. 作者使用了word2vec模型,它的效果也要比之前的模型更好蝇摸,作者分析是用了負(fù)采樣方法婶肩,因?yàn)樨?fù)采樣方法要比層序softmax更好办陷,同時(shí)和負(fù)采樣的個(gè)數(shù)和語(yǔ)料庫(kù)的選擇也有關(guān);
  3. GloVe模型在很大的語(yǔ)料庫(kù)上也能輕松訓(xùn)練狡孔,同時(shí)語(yǔ)料庫(kù)越大懂诗,模型的效果也會(huì)更好;
  4. 但更大的語(yǔ)料庫(kù)苗膝,并不會(huì)讓SVD方法得到的結(jié)果更好殃恒,這也從側(cè)面證明了我們的模型使用加權(quán)的必要性。

3.2 Word similarity

在5個(gè)數(shù)據(jù)集上做了對(duì)比實(shí)驗(yàn)辱揭,結(jié)果如下:

word similarity test result.png

實(shí)驗(yàn)結(jié)果表明:GloVe模型得到的詞向量在word similarity任務(wù)上也是表現(xiàn)最好的离唐。CBOW表現(xiàn)也不錯(cuò),但是CBOW用到的語(yǔ)料庫(kù)是GloVe的兩倍多一點(diǎn)问窃。

3.3 Named entity recognition

作者在ConLL-03訓(xùn)練數(shù)據(jù)集上訓(xùn)練模型亥鬓,在 1) ConLL-03 testing data, 2) ACE Phase 2 (2001-02) and ACE-2003 data, 3) MUC7 Formal Run test set上進(jìn)行測(cè)試

F1 score on NER task.png

作者訓(xùn)練了一個(gè)CRF模型用于NER任務(wù)。實(shí)驗(yàn)結(jié)果表名域庇,除了在CoNLL測(cè)試集上嵌戈,HPCA模型表現(xiàn)更好外,在其它數(shù)據(jù)集上听皿, 都是GloVe模型表現(xiàn)更好熟呛。因此作者認(rèn)為GloVe詞向量在NLP的下游任務(wù)中都是很有用的。

4. 模型分析

4.1 Vector Length and Context Size

analysis on vector length and window size.png

名詞解釋:

  1. Symmetric context:能擴(kuò)展到目標(biāo)詞左右詞的窗口為Symmetric context尉姨;
  2. Asymmetric context:只擴(kuò)展到左邊的上下文窗口稱為非對(duì)稱窗口庵朝。

實(shí)驗(yàn)結(jié)果分析:

  1. 通過圖(a)可以發(fā)現(xiàn),當(dāng)詞向量長(zhǎng)度超過200維后又厉,維度的提升并不會(huì)帶來(lái)結(jié)果的顯著變化九府;

  2. 通過圖(b)(c)可以發(fā)現(xiàn),在窗口比較小或使用非對(duì)稱滑動(dòng)窗口時(shí)覆致,語(yǔ)法類任務(wù)的結(jié)果要比語(yǔ)義類任務(wù)結(jié)果好侄旬。

    從直觀上理解,可能語(yǔ)法推理對(duì)緊挨著的詞即詞的順序比較敏感篷朵,而語(yǔ)義推理的任務(wù)需要更大的滑動(dòng)窗口勾怒,從而獲取更多的信息。

4.2 Corpus Size

作者在不同的預(yù)料庫(kù)上訓(xùn)練了300維的詞向量用于詞類比任務(wù)声旺,其對(duì)比結(jié)果如下:

Analysis on corpus size.png

通過實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn):

  1. 在語(yǔ)法類比任務(wù)(Syntactic analogy task)上,隨著語(yǔ)料庫(kù)規(guī)模的增加段只,準(zhǔn)確率呈單調(diào)上升趨勢(shì)腮猖;

  2. 但是語(yǔ)料庫(kù)規(guī)模的增加,語(yǔ)義類比任務(wù)(Semantic analogy task)的準(zhǔn)確率并不是單調(diào)上升的赞枕。

    比如在Wiki2010和Wiki2014語(yǔ)料庫(kù)上訓(xùn)練的詞向量表現(xiàn)要比更大的語(yǔ)料庫(kù)Gigaword5更好澈缺!

    作者分析原因如下:

    1. 測(cè)試數(shù)據(jù)集里包含很多地名和國(guó)家名的類比坪创,而Wikipedia可能包含更多的可以理解這些地名和國(guó)家名的文檔;
    2. Wikipedia會(huì)吸收新知識(shí)姐赡,而Giagaword庫(kù)中都是不變的新聞莱预,可能會(huì)有過時(shí)的或錯(cuò)的信息。

4.3 Run-time

整個(gè)訓(xùn)練過程時(shí)間開銷分兩部分:統(tǒng)計(jì)得到共現(xiàn)矩陣X和模型訓(xùn)練项滑。

作者分別作了GloVe和基于負(fù)采樣的CBOW和Skip-Gram模型的對(duì)照試驗(yàn)依沮,結(jié)果如下:

Training time contrast on GloVe CBOW and Skip-Gram.png

試驗(yàn)結(jié)果分析:

  1. 作者在前文提到,訓(xùn)練300維以下的詞向量枪狂,迭代50次停止危喉,從試驗(yàn)結(jié)果看,基本上迭代到20次之后州疾,效果提升并不明顯辜限;
  2. Skip-Gramp模型比CBOW要好;
  3. CBOW模型負(fù)樣本越多严蓖,效果反而越差薄嫡。(==why?==)

4.4 與word2vec的比較

精確定量地比較GloVe和word2vec很難,因?yàn)橛绊懩P偷膮?shù)有很多颗胡。前面已經(jīng)從向量長(zhǎng)度毫深、窗口大小和語(yǔ)料庫(kù)大小方面做了比較。

對(duì)于word2vec模型隨著負(fù)樣本的增加杭措,表現(xiàn)反而不好的原因费什,作者估計(jì)是負(fù)樣本并沒有很好近似目標(biāo)概率分布。

5. 結(jié)論

對(duì)于分布式詞向量的學(xué)習(xí)手素,很多人都在關(guān)注到底是基于計(jì)數(shù)統(tǒng)計(jì)的方法(count-based methods)好鸳址,還是基于預(yù)測(cè)的方法更好(prediction-based methods)。作者通過本文所做的工作認(rèn)為:兩種方法本質(zhì)上不會(huì)有太大的差別泉懦!因?yàn)樗鼈兌祭昧嗽~的共現(xiàn)統(tǒng)計(jì)信息稿黍。

但是,作者認(rèn)為因?yàn)镚loVe用到的是基于全局的統(tǒng)計(jì)崩哩,所以效果會(huì)更好巡球。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市邓嘹,隨后出現(xiàn)的幾起案子酣栈,更是在濱河造成了極大的恐慌,老刑警劉巖汹押,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矿筝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡棚贾,警方通過查閱死者的電腦和手機(jī)窖维,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門榆综,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人铸史,你說(shuō)我怎么就攤上這事鼻疮。” “怎么了琳轿?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵判沟,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我利赋,道長(zhǎng)水评,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任媚送,我火速辦了婚禮中燥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘塘偎。我一直安慰自己疗涉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布吟秩。 她就那樣靜靜地躺著咱扣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涵防。 梳的紋絲不亂的頭發(fā)上闹伪,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音壮池,去河邊找鬼偏瓤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛椰憋,可吹牛的內(nèi)容都是我干的厅克。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼橙依,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼证舟!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起窗骑,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤女责,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后创译,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鲤竹,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年昔榴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辛藻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡互订,死狀恐怖吱肌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仰禽,我是刑警寧澤氮墨,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站吐葵,受9級(jí)特大地震影響规揪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜温峭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一猛铅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凤藏,春花似錦奸忽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蹄梢,卻和暖如春疙筹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背禁炒。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工而咆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人齐苛。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓翘盖,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親凹蜂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子馍驯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354