glove中文词向量_Summary系列glove模型解读
一、Glove模型簡介
語義文本向量表示可以應(yīng)用在信息抽取,文檔分類,問答系統(tǒng),NER(Named Entity Recognition)和語義解析等領(lǐng)域中,大都需要計算單詞或者文本之間的距離或者相似度,因此,能夠表達語義的文本的向量表示非常重要。
單詞的語義向量生成主要有兩種方式:(1)LSA(term-document)、HAL(term-term)等矩陣分解方法利用全局統(tǒng)計信息生成詞向量;(2)skip-gram、CBOW等詞向量利用語言模型的局部信息生成詞向量,在詞類比( king -queen = man-woman)方面具有獨特優(yōu)勢。
作者的想法是將以上兩種方式的優(yōu)點結(jié)合,提出了全局對數(shù)雙線性回歸模型。該模型采用LSA類似想法利用單詞與單詞的共現(xiàn)矩陣獲取全局統(tǒng)計信息,但只使用非零數(shù)據(jù);另一方面采用和skip和cbow一樣的詞向量方式進行訓練。
二、相關(guān)工作
1、矩陣分解方法(全局信息)
LSA(term-document)、HAL(term-term)。
HAL方法的主要缺點是最常出現(xiàn)的單詞在相似性度量中占據(jù)了不合理的分量,比如與the、and協(xié)同出現(xiàn)的單詞,其相似性通常會比較高。論文中提到的解決方法有 positive pointwise mu-tual information (PPMI)和 Hellinger PCA (HPCA) 。
2、詞向量方法(局部信息)
Mikolov在2013年提出的skip-gram、CBOW方法采用語言模型,依據(jù)一個局部窗口中的單詞都是相關(guān)的這個思想來訓練詞向量,在詞類比任務(wù)上具有非常優(yōu)秀的表現(xiàn)。這種方法沒有使用全局統(tǒng)計信息,比如單詞A和單詞B經(jīng)常在一起出現(xiàn),那么就應(yīng)該給予更大的權(quán)重,而該模型則是對所有的訓練語料都給予相同的權(quán)重。
三、Glove建模過程
1、公式的推理過程。
定義好相關(guān)符號:
代表單詞間協(xié)同出現(xiàn)次數(shù)(word-word co-occurrence counts )的矩陣。 表示單詞 在單詞 上下文環(huán)境中出現(xiàn)的次數(shù)。 表示所有在單詞 上下文環(huán)境中出現(xiàn)單詞的次數(shù)之和。 表示單詞 在單詞 上下文中出現(xiàn)的概率。對于冰(ice)與水蒸汽(steam),作者希望訓練得到的詞向量具有如下特性:
(1)與冰具有相似屬性單詞,如固體(solid),要求
值很大(2)與水蒸氣具有相似屬性單詞,如固體(solid),要求
值很小;(3)與冰、水蒸氣不相關(guān)單詞,如時尚(fashion),要求
值接近1;給定單詞
的詞向量, ,有如下等式:現(xiàn)在需要解決的問題是函數(shù)
怎么構(gòu)造,作者做了一些合理的假設(shè)選擇函數(shù) 。首先要考慮單詞
之間的關(guān)系,作者希望在線性空間中考察兩個向量的相似性,不失線性地考察,因此選擇 。其次等式右邊是個標量,那么式子左邊也應(yīng)該是個標量,現(xiàn)在輸入為向量
和 ,那內(nèi)積應(yīng)該是合理的選擇,于是變量應(yīng)該為 。然后作者又往公式的外面套了一層指數(shù)運算exp,最終得到
,為什么是指數(shù)運算呢?套上之后,我們的目標是讓以下公式盡可能地成立:本來我們需要求
,現(xiàn)在通過分子分母相對應(yīng),我們只需要讓 。只需要N?N的復雜度上進行計算,而不是N?N?N,大大減少了復雜度。然后兩邊取log后,得到在這里我們發(fā)現(xiàn)等式左邊是可以交換位置的,可是右邊的
并不等于 。為此,將等式6改寫為:添了一個偏差項b,并將log(Xi)吸收到偏差項bi中。到這里我們就可以寫出損失函數(shù),
作者進行了進一步的優(yōu)化,考慮到語料庫中經(jīng)常協(xié)同出現(xiàn)的單詞具有更為密切的聯(lián)系,作者提出來加權(quán)損失函數(shù)。
權(quán)重函數(shù)要滿足如下特性:
(1) 考慮連續(xù)性,
時, 趨近于0;(2)
非遞減,這樣 很小時就不會有過大的權(quán)重;(3) 當
很大時,f(x)不會過大,這樣高頻詞不會占有過重的權(quán)值;作者選擇的滿足以上要求的函數(shù),如下:
是經(jīng)驗值,是從Mikolov(2013年)的論文中直接拿來用的。2、與skip以及cbow的關(guān)系
我們知道這兩個模型的損失函數(shù)如下,
是一個softmax函數(shù):全局的目標函數(shù)可以寫成:
對于大量的預料計算求和非常消耗資源,為了提高計算效率,可以把提前把那些有相同值的詞分組,目標函數(shù)改寫為按照詞典來統(tǒng)計。
由于之前定義
和,代入方程(12)中得到: 是交叉熵, 是之前定義的 。然而交叉熵對于長尾分布表現(xiàn)不好,并且分布 需要做歸一化操作,求和操作會成為計算的瓶頸。因此,文章又提出了一種不需要歸一化的衡量距離的方式,也就是最小二乘法。其中
都不需要歸一化操作。但是還存在一個問題,就是往往取值較大,會加重優(yōu)化過程的計算復雜性,解決方式是,使用log來代替。同時引入權(quán)重函數(shù),得到:這里的公式與我們最開始推導出來的公式非常相似。從這里可以看出,skip-gram模型與這篇論文提出模型差異,本質(zhì)上是度量概率分布采用的方法不一致。前者使用的是交叉熵損失,后者使用的是加權(quán)平方誤差損失。
3、復雜度估算
模型的復雜度 為
,在詞典V很大時,復雜度遠遠高于skip-gram的復雜度 , C 是語料庫的大小。所以需要對矩陣X做一些限制,比如只取共現(xiàn)次數(shù)非0的詞等。具體的實現(xiàn)方式是假設(shè)詞i和詞j共現(xiàn)的次數(shù) 用詞頻排名 的冪律函數(shù)來表示,語料庫詞的總數(shù)正比于次數(shù)共現(xiàn)次數(shù)矩陣元素的加和,
用調(diào)和級數(shù)來表示冪律求和部分,接下來就是如何確定k了,
是詞頻排序最大值,同時與非0詞頻矩陣X的個數(shù)相等,也就是等于方程(17)中r的最大值。因為矩陣X中的元素都是詞頻大于或等于1的,即 ,根據(jù)方程(17)因此,總是能夠找到一個k使得
,所以 ,代入方程(18)得到根據(jù)調(diào)和基數(shù)展開式
把方程(19)展開得到
是黎曼 函數(shù),在X非常大時,可以看出 與 的關(guān)系取決與 是否 > 1,來決定是 和 誰占比更大,O(1)常數(shù)項不用考慮。因此,Glove模型的復雜度小于等于skip-gram模型的復雜度。如果
, 的復雜度= ,遠遠好于 的復雜度。四、實驗結(jié)果
4.1 word analogy任務(wù)
在詞語類比任務(wù)中,我們看到Glove算法在大多數(shù)情況下取得了更好的指標。在semantic subset/語義子集、syntactic subset/句法子集上均表現(xiàn)更佳,具體如下(此任務(wù)可以測試向量空間的子結(jié)構(gòu)):
4.2 word similarity任務(wù)
本文用多個模型在一系列word similarity任務(wù)上進行測試,結(jié)論是:Glove優(yōu)于其他模型。詳細數(shù)據(jù)如下:
4.3 NER任務(wù)
在此任務(wù)中基于CoNLL-03數(shù)據(jù)集訓練模型,并在多個數(shù)據(jù)集(CoNLL-03、ACE、MUC7)上進行測試,結(jié)果顯示Glove表現(xiàn)最佳。
五、參考文獻
1、官方代碼:https://nlp.stanford.edu/projects/glove/。
2、paper原文:https://www.aclweb.org/anthology/D14-1162.pdf。
3、好文參考:理解GloVe模型(Global vectors for word representation)
總結(jié)
以上是生活随笔為你收集整理的glove中文词向量_Summary系列glove模型解读的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu 4539(状压dp)
- 下一篇: 微博的html,微博输入html