上下文窗口中的單詞共現可能攜帶豐富的語義信息。例如,在大型語料庫中,“固體”一詞與“冰”比“蒸汽”更可能同時出現,但“氣體”一詞與“蒸汽”一起出現的頻率可能高于“冰”。此外,可以預先計算此類共現的全球語料庫統計數據:這可以提高培訓效率。為了利用整個語料庫中的統計信息進行詞嵌入,讓我們首先重新審視第 15.1.3 節中的 skip-gram 模型,但使用全局語料庫統計信息(例如共現計數)來解釋它。
15.5.1。Skip-Gram 與全球語料庫統計
表示為qij條件概率 P(wj∣wi)詞的wj給定的詞wi在 skip-gram 模型中,我們有
(15.5.1)qij=exp?(uj?vi)∑k∈Vexp(uk?vi),
任何索引在哪里i載體vi和 ui代表詞wi分別作為中心詞和上下文詞,并且 V={0,1,…,|V|?1}是詞匯表的索引集。
考慮詞wi可能在語料庫中多次出現。在整個語料庫中,所有上下文詞無論在哪里wi被作為他們的中心詞形成一個多重集 Ci允許同一元素的多個實例的單詞索引。對于任何元素,其實例數稱為其多重性。為了舉例說明,假設這個詞wi在語料庫和上下文詞的索引中出現兩次 wi作為他們在兩個上下文窗口中的中心詞是 k,j,m,k和k,l,k,j. 因此,多重集 Ci={j,j,k,k,k,k,l,m},其中元素的多樣性j,k,l,m分別為 2、4、1、1。
現在讓我們表示元素的多重性j在多重集中 Ci作為xij. 這是單詞的全局共現計數wj(作為上下文詞)和詞 wi(作為中心詞)在整個語料庫中的同一上下文窗口中。使用這樣的全局語料庫統計,skip-gram 模型的損失函數相當于
(15.5.2)?∑i∈V∑j∈Vxijlogqij.
我們進一步表示xi上下文窗口中所有上下文詞的數量wi作為他們的中心詞出現,相當于|Ci|. 出租pij是條件概率xij/xi用于生成上下文詞 wj給定的中心詞wi, (15.5.2) 可以改寫為
(15.5.3)?∑i∈Vxi∑j∈Vpijlogqij.
在(15.5.3)中, ?∑j∈Vpijlogqij計算條件分布的交叉熵pij全球語料庫統計和條件分布qij模型預測。這種損失也由xi如上所述。最小化(15.5.3)中的損失函數 將使預測的條件分布接近全局語料庫統計的條件分布。
雖然通常用于測量概率分布之間的距離,但交叉熵損失函數在這里可能不是一個好的選擇。一方面,正如我們在 第 15.2 節中提到的,適當歸一化的成本 qij導致整個詞匯表的總和,這在計算上可能很昂貴。另一方面,來自大型語料庫的大量稀有事件通常由交叉熵損失建模,以分配過多的權重。
15.5.2。手套模型
鑒于此,GloVe模型對基于平方損失的 skip-gram 模型做了三處改動(Pennington et al. , 2014):
使用變量pij′=xij和 qij′=exp?(uj?vi)不是概率分布,取兩者的對數,所以平方損失項是 (logpij′?logqij′)2=(uj?vi?logxij)2.
為每個單詞添加兩個標量模型參數wi:中心詞偏差bi和上下文詞偏差ci.
用權重函數替換每個損失項的權重 h(xij), 在哪里h(x)在增加的間隔[0,1].
綜上所述,訓練 GloVe 就是最小化下面的損失函數:
(15.5.4)∑i∈V∑j∈Vh(xij)(uj?vi+bi+cj?logxij)2.
對于權重函數,建議的選擇是: h(x)=(x/c)α(例如α=0.75) 如果 x
需要強調的是,如果單詞wi出現在單詞的上下文窗口中wj,則反之。所以, xij=xji. 不像word2vec那樣擬合非對稱條件概率pij, GloVe 適合對稱 logxij. 因此,任何詞的中心詞向量和上下文詞向量在 GloVe 模型中在數學上是等價的。然而在實踐中,由于不同的初始化值,同一個詞在訓練后仍然可能在這兩個向量中得到不同的值:GloVe 將它們相加作為輸出向量。
15.5.3。從共現概率比解釋 GloVe
我們還可以從另一個角度解讀 GloVe 模型。使用第 15.5.1 節中的相同符號,令 pij=defP(wj∣wi)是生成上下文詞的條件概率wj給予 wi作為語料庫中的中心詞。表 15.5.1 列出了給定單詞“ice”和“steam”的幾個共現概率及其基于大型語料庫統計數據的比率。
我們可以從表 15.5.1中觀察到以下內容:
一句話wk與“冰”相關但與“蒸汽”無關的,例如wk=solid,我們期望更大的共現概率比,例如 8.9。
一句話wk與“蒸汽”有關但與“冰”無關的,例如wk=gas,我們期望更小的共現概率比,例如 0.085。
一句話wk與“冰”和“蒸汽”都相關的,例如wk=water,我們期望共現概率的比率接近 1,例如 1.36。
一句話wk與“冰”和“蒸汽”均無關,例如wk=fashion,我們期望共現概率的比率接近 1,例如 0.96。
可以看出,共現概率的比值可以直觀地表達詞與詞之間的關系。因此,我們可以設計一個三個詞向量的函數來擬合這個比例。對于共現概率的比率pij/pik和wi 作為中心詞和wj和wk作為上下文詞,我們想使用一些函數來擬合這個比率f:
(15.5.5)f(uj,uk,vi)≈pijpik.
在許多可能的設計中f,我們只在下面選擇一個合理的選擇。由于共現概率的比率是一個標量,我們要求f是標量函數,例如 f(uj,uk,vi)=f((uj?uk)?vi). 切換單詞索引j和k在(15.5.5)中,它必須認為f(x)f(?x)=1, 所以一種可能性是 f(x)=exp?(x), IE,
(15.5.6)f(uj,uk,vi)=exp?(uj?vi)exp?(uk?vi)≈pijpik.
現在讓我們選擇 exp?(uj?vi)≈αpij, 在哪里α是一個常數。自從pij=xij/xi, 兩邊取對數后得到 uj?vi≈logα+logxij?logxi. 我們可能會使用額外的偏差項來適應 ?logα+logxi, 比如中心詞偏差 bi和上下文詞偏差cj:
(15.5.7)uj?vi+bi+cj≈logxij.
用權重測量式(15.5.7)的平方誤差,得到式(15.5.4)中的GloVe損失函數。
15.5.4。概括
skip-gram 模型可以使用全局語料庫統計信息(例如詞-詞共現計數)來解釋。
交叉熵損失可能不是衡量兩個概率分布差異的好選擇,尤其是對于大型語料庫。GloVe 使用平方損失來擬合預先計算的全局語料庫統計數據。
對于 GloVe 中的任何單詞,中心詞向量和上下文詞向量在數學上是等價的。
GloVe 可以從詞-詞共現概率的比率來解釋。
15.5.5。練習
如果的話wi和wj在同一個上下文窗口中同時出現,我們如何利用它們在文本序列中的距離重新設計計算條件概率的方法 pij?提示:請參閱 GloVe 論文 (Pennington等人,2014 年)的第 4.2 節。
對于任何一個詞,它的中心詞偏向和上下文詞偏向在 GloVe 中在數學上是否等價?為什么?
Discussions
wk=
堅硬的
氣體
水
時尚
p1=P(wk∣ice)
0.00019
0.000066
0.003
0.000017
p2=P(wk∣steam)
0.000022
0.00078
0.0022
0.000018
p1/p2
8.9
0.085
1.36
0.96
-
pytorch
+關注
關注
2文章
808瀏覽量
13201
發布評論請先 登錄
相關推薦
評論