Enriching Word Vectors with Subword Information——FastText算法學(xué)習(xí)

Model

模型在考慮形態(tài)(morphology)的同時(shí),學(xué)習(xí)單詞表示。通過(guò)考慮子詞單元并將單詞表示為其字符n-grams之和,作者對(duì)形態(tài)進(jìn)行建模。下面,將開(kāi)始介紹訓(xùn)練詞向量的一般結(jié)構(gòu),隨后介紹子詞模型,最后介紹如何處理n-grams字符字典。

General model

首先對(duì)continuous skip-gram模型進(jìn)行回顧。給定一個(gè)大小為W的詞匯表,其中每個(gè)單詞由其對(duì)應(yīng)的索引w\in\{1,...,W\}表示。目標(biāo)任務(wù)是為每個(gè)單詞w學(xué)習(xí)一個(gè)向量表示。受分布假設(shè)(distributional hypothesis)的啟發(fā),詞表示被訓(xùn)練來(lái)預(yù)測(cè)在其上下文中出現(xiàn)的“恰當(dāng)”單詞。正式地,給定一個(gè)被表示為詞序列w_1,……,w_T的大型訓(xùn)練語(yǔ)料庫(kù),skip-gram模型的目的是最大化下面的log-似然:

\sum_{t=1}^{T}\sum_{c\in\mathcal{C}_t}logp(w_c|w_t)

其中上下文\mathcal{C}_t是單詞w_t周圍單詞的索引。在給定w_t下,觀察一個(gè)上下文單詞w_c的概率將使用前面提到的單詞向量進(jìn)行參數(shù)化。從現(xiàn)在起,給定一個(gè)得分函數(shù)s,其將(單詞,上下文)對(duì)映射到\mathbb{R}空間上的得分。定義一個(gè)上下文單詞概率可使用softmax:

p(w_c|w_t) = \frac{e^{s(w_t,w_c)}}{\sum_{j=1}^{W}e^{s(w_t,w_j)}}

然而,該模型意味著,給定一個(gè)單詞w_t,僅預(yù)測(cè)一個(gè)上下文單詞w_c。

預(yù)測(cè)上下文單詞的問(wèn)題可以改為一組獨(dú)立的二元分類任務(wù)。因此,目標(biāo)是獨(dú)立地預(yù)測(cè)上下文單詞的存在(或不存在)。對(duì)在位置t的單詞,將其所有上下文單詞作為正樣本,其隨機(jī)從詞匯表中取樣負(fù)樣本。對(duì)在位置為c的上下文單詞,使用二元logistic損失,將獲得以下的負(fù)對(duì)數(shù)似然:

\begin{aligned} &-log(\frac{1}{1+e^{-s(w_t,w_c)}}) - \sum_{w_n\in\mathcal{N}_{t,c}}log(1-\frac{1}{1+e^{-s(w_t,w_n)}}) \\ & = log(1+e^{-s(w_t,w_c)}) - \sum_{w_n\in\mathcal{N}_{t,c}}log(\frac{e^{-s(w_t,w_n)}}{1+e^{-s(w_t,w_n)}}) \\ & = log(1+e^{-s(w_t,w_c)}) - \sum_{w_n\in\mathcal{N}_{t,c}}log(\frac{1}{1+e^{s(w_t,w_n)}}) \\ & = log(1+e^{-s(w_t,w_c)}) + \sum_{w_n\in\mathcal{N}_{t,c}}log(1+e^{s(w_t,w_n)}) \\ \end{aligned}

注意:這里每個(gè)正樣本對(duì)應(yīng)的是一組負(fù)樣本?。?!

其中,\mathcal{N}_{t,c}是一組從詞匯表中采樣的負(fù)樣本。令l: x\mapsto log(1+e^{-x})為logistic損失函數(shù),上式可寫為:

\sum_{t=1}^{T}[\sum_{w_c\in\mathcal{C}_t}l(s(w_t,w_c))+\sum_{w_n\in\mathcal{N}_{t,c}}l(-s(w_t,w_n))]

單詞w_t和上下文單詞w_c之間的評(píng)分函數(shù)的自然參數(shù)化是使用單詞向量。在詞匯表中的每個(gè)單詞w上定義了\mathbb{R}^d上的兩個(gè)單詞向量\vec{u}_w\vec{v}_w。

注意:\vec{u}_w是skip-gram模型隱藏層權(quán)重矩陣對(duì)應(yīng)的向量,\vec{v}_w是skip-gram輸出層的權(quán)重矩陣對(duì)應(yīng)的向量。skip-gram隱藏層的輸入是one-hot向量。因此,其輸出也是隱藏層權(quán)重矩陣中對(duì)應(yīng)的向量。

\vec{u}_{wt}\vec{v}_{wt}為單詞w_tw_c對(duì)應(yīng)的向量。因此,得分可以是單詞向量和上下文向量的標(biāo)量?jī)?nèi)積:s(w_t, w_c) = \vec{u}_{wt}^T\vec{v}_{wt}。

Subword model

通過(guò)使用不同的向量表示每個(gè)單詞,skip-gram模型忽略了單詞的內(nèi)部結(jié)構(gòu)。為了考慮到這種信息,文章提出了一種不同的得分函數(shù)s。

每個(gè)單詞w被表示為n-gram字符袋(bag of character n-gram)。特殊的約束符號(hào)<和>分別加在單詞前和單詞后,使得能夠?qū)⑶熬Y和后綴與其他字符序列區(qū)分開(kāi)來(lái)。同樣,為了學(xué)習(xí)每個(gè)單詞的表示(除了n-gram字符),單詞w自身也被包括在其n-gram字符袋中。例如,令n=3,單詞"where"被表示為下面的n-gram字符:
<wh,wheher,erere>
以及特殊的序列
<where>。

值得注意的是,對(duì)應(yīng)單詞“her”的序列<her>和來(lái)自單詞“where”的her是不同的。實(shí)際上,文章提取n大于等于3以及小于等于6的所有n-gram。這是一種非常簡(jiǎn)單的方法,可以考慮不同的n-gram集,例如采用所有前綴和后綴。

給定一個(gè)大小為G的n-gram字典。給定一個(gè)單詞w,假設(shè)G_w\subset\{1,...,G\}為出現(xiàn)在w中的n-gram字符集。每個(gè)n-gram字符g與一個(gè)向量表示\vec{z}_g關(guān)聯(lián)。單詞被表示為其所有n-gram字符對(duì)應(yīng)的向量表示之和。因此新的得分函數(shù)為:

s(w_c) = \sum_{g\in G_w}\vec{z}_g^T\vec{v}_c

這個(gè)簡(jiǎn)單的模型允許跨單詞共享表示,從而允許學(xué)習(xí)罕見(jiàn)單詞的可靠表示。

為了滿足模型的內(nèi)存要求,文章使用一個(gè)哈希函數(shù),將n-gram字符映射到1到K的整數(shù)中。我們使用Fowler-Noll-Vo哈希函數(shù)(特別是FNV-1a變體)對(duì)字符序列進(jìn)行哈希處理。最終,一個(gè)單詞由它在單詞字典中的索引和它所包含的哈?;膎-gram字符集來(lái)表示。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容