語言學家j. r. firth提出,通過乙個單詞的上下文可以得到它的意思,所以我們可以定義乙個以**某個單詞的上下文的模型:
p(context|wt)=...
我們的目標當然是希望概率p越大越好,所以我們可以定義乙個目標函式:
j′(θ)=∏t=1t∏?m≤j≤m,j≠0p(wt+j|wt;θ)
我們的目的就是最大化上面這個目標函式。但一般來說,我們都是想最小化目標函式的,所以我們可以改寫目標函式為:
j(θ)=?1t∑t=1t∑?m≤j≤m,j≠0logp(wt+j|wt;θ)
所以我們接下來的目標就是如何計算p(wt+j|wt;θ),或者說如何定義p(wt+j|wt;θ)。
定義p(wt+j|wt;θ)
p(wt+j|wt;θ)?exp(utovc)∑vw=1exp(utwvc)
其中,vc就是中心詞wt的詞向量,uo就是wt+j的詞向量,這就是softmax。所以我們的目標就是不斷調整詞庫中每個詞的詞向量,使得這個p最大。所以我們的引數就是詞庫中的這些詞向量,並且每個詞都有兩個詞向量,乙個是作為中心詞的時候(即v),乙個是作為上下文的時候(即u)。所以引數θ如下:
在對上式進行求梯度時,其實只對2m+1個詞向量進行了求導(乙個vc,2m個uo),所以?θjt(θ)是非常稀疏的。即:
**中只是演示了對vc的求導,其實還需要對uo求導,因為θ裡面包含有v,u兩部分向量,當然都需要求導啦。
glove模型的目標函式是:
j(θ)=12∑i,j=1wf(pij)(utivj?logpij)2
其中,pij是兩個詞的共現頻次,也就是兩個詞同時出現的次數(在拿到資料的時候就可以統計出來了)。f是乙個max函式,如下所示:
從圖中可以看出,頻次pij越高,f(pij)的值一開始也會越大,達到xmax之後,即使頻次再高,f(pij)值也不會再增加了,這在一定程度上對共現頻次太高的詞起到了抑制作用。 前面說到的θ包含了v和u兩部分向量,也就是每個詞都有兩個詞向量的,那麼最後究竟要選哪乙個作為最終的詞向量呢?最佳方案是將它們相加作為最終的詞向量:
xfinal=u+v
CS224N 子詞模型(subwords)
二 subword model 三 subword level language model 四 hybrid nwt 五 character level 因為人類書寫系統多種多樣,同時詞語存在形態變換,音譯,縮寫以及網路用語等現象,所以僅在word level進行建模是不夠的,需要model bl...
cs224u word2vec詞向量模型
word2vec詞向量模型從乙個單詞w 與w共同出現的單詞。這種直覺可以通過多種方式實現。在這裡,我們回顧一下skip gram模型,這是由mikolov等人提出的,鏈結為 模型是一種有效的學習高質量分布式向量表示的方法,它可以捕捉大量精確的句法和語義詞彙關係。提出了一些改進措施,使skip gra...
CS224N 語言模型介紹
語言模型實現 語言模型是指根據給定序列 下乙個單詞的任務,其形式化表達為 給定單詞序列x 1 x 2 x t 然後 單詞x t 1 的概率分布 語言模型的另一種定義是給給定文字序列分配概率 這個概率代表了該文字序列出現的可能性大小 例如,給定一段文字x 1 x 2 x t 那麼這段文字出現的概率為 ...