詞向量表示

2021-09-16 13:03:34 字數 2053 閱讀 9820

介紹

lsa是基於滑動視窗的共現矩陣(co-occurence)以及svd的方法,通過svd來對共現矩陣進行降維,從而獲得低維度的詞向量。

實現:假設window長度為1

語料庫中包含三個句子:

① i like deep learning.

② i like nlp.

③ i enjoy flying.

通過滑動視窗可得到如下共現矩陣:

共現矩陣已經可以看成是乙個包含詞向量的矩陣,但是維度太高,並且具有稀疏性。因此通過svd降維,獲取矩陣奇異向量。在這裡,獲得的左奇異向量或者右奇異向量均可表示為詞向量。

優點:① 訓練速度快。(對於較小的共現矩陣)

② 只需要遍歷一次語料庫,因此可以有效利用統計資訊。

缺點:① 主要捕獲的詞之間的相似性。

② 對於計數大的詞往往得到不成比例的重要性。

介紹skip-gram通過中心詞來**周圍的詞,cbow則是剛好相反,通過周圍的詞來**中心的詞。cbow對小型資料庫比較合適,而skip-gram在大型語料中表現更好。這裡只介紹一下skip-gram。

skip-gram是對語料庫中每乙個視窗,在某個中心詞下,對周圍詞的概率分布進行**,主要的任務是**周圍詞彙,但我們更關注其產生的附加產物—詞向量。

實現loss函式為:

j (θ

)=−1

t∑t=

1t∑j

=−mm

p(wt

+j∣w

t;θ)

j(\theta)=-\frac \sum^t_\sum^_p(w_|w_t;\theta)

j(θ)=−

t1​∑

t=1t

​∑j=

−mm​

p(wt

+j​∣

wt​;

θ)m為視窗大小。

p (w

t+j∣

wt;θ

)=p(

o∣c)

=exp

(uot

∗vc)

∑w=1

vexp

(uwt

∗vc)

p(w_|w_t;\theta)=p(o|c)=\frac^vexp(u_w^t*v_c)}

p(wt+j

​∣wt

​;θ)

=p(o

∣c)=

∑w=1

v​ex

p(uw

t​∗v

c​)e

xp(u

ot​∗

vc​)

​v為詞庫大小

模型結構

負取樣

由於softmax函式往往需要乙個很大的計算量,因此可以通過負取樣加速。

負取樣loss函式:

其中優點:① 對於下游任務會有更好的表現

② 可以捕獲更複雜的特徵,不只是詞的相似性。

缺點:①會縮放語料庫的尺寸。

②需要遍歷每乙個單一視窗,因此不能有效利用統計資訊。

介紹glove綜合了count-based與direct-prediction的優點,既有全域性統計資訊,也包含了概率模型。

實現loss函式:

f函式用於約束出現次數非常大的單詞產生的損失(α在3/4時效果最好):

05詞向量表示理論篇

語料庫 李杏 喜歡 喝 奶茶 詩雅 也 喜歡 喝 奶茶 李杏 同樣 喜歡 喝 果汁 詞典 one hot 表示 李杏 1,0,0,0,0,0,0,0 喜歡 0,1,0,0,0,0,0,0 果汁 0,0,0,0,0,0,0,1 注意 詞典包含8個單詞,每個單詞有唯一索引 在詞典中的順序和在句子中的順序...

cs224d 詞向量表示

1.1 word meaning的兩種定義 definition meaning 單詞的含義指代了客觀存在的具體事物,如眼鏡。distributional similarity meaning 上下文代表了單詞的含義,如下 distributional similarity meaning也是wor...

字的向量表示

得到乙個字的向量表示,能夠保留字之間共現次數相關的資訊。先得到乙個語料庫的詞庫,然後計算乙個字左邊視窗內和其共同出現的次數的數量,值與距離相反。每個字會對映到乙個整數index,這個index就對映到向量的index。比如 these 對映到index 10,則在 are 這個字的向量表示裡vec ...