一:負取樣
在cbow和skip-gram模型中,最後輸出的都是詞彙的one-hot向量,假如我們的詞彙表的數量是10000,嵌入空間的維度是300,再假設此時是以skip-gram模型只**context內的單獨乙個word的模型為例,那麼從隱藏層到輸出層的引數數量是300 x 10000的。
每次的輸出之前都要做softmax操作,對於如此龐大的詞彙數量,計算softmax是很耗費時間的,不僅僅是前向計算,在反向傳播的時候求偏導數也是很耗費計算的。
負取樣就是乙個簡化計算的辦法,考慮到我們最終樣本輸出的one-hot向量只有乙個點是等於1(稱之為正樣本),其他9999個點都是0(稱之為負樣本)。思想就是,保留這個正樣本,另外從所有的詞典中隨機選取取樣乙個其他的詞語的點作為負樣本,總共選取k個,k個負樣本,這樣一來,我們最後只用管這(k+1)個樣本的計算,反向傳播進行採納數更新也是只更新這(k+1)個樣本對應的引數。每個訓練樣本只會更新一小部分模型權重,而不是所有的詞彙點對應的模型引數,從而降低計算負擔。
有點類似於dropout,保留一些樣本不失活,前向/反向傳播只考慮這存活的節點。
注意,選取節點的時候必須包含乙個正樣本,其他k個都是負樣本。
這樣的話,我們的隱藏層到輸出層的引數就只有300 x (1+k)個了,大大減少了softmax層計算量,也值更新這選中的節點對應的引數。提公升了計算效率。
二:取樣方式
任何取樣演算法都應該保證頻次越高的樣本越容易被取樣出來。
方法就是對預料庫的所有詞語做乙個詞頻統計,求出每個詞語所佔的多少概率。
分子是每個詞語的個數,分母是所有詞語的總數。且佔比之和是等於1。
由於出現頻率高的詞語理應該被較大概率選中。就把所有詞語對應的頻率密切銜接對應到一條直線上,直線長度是1,每個詞語佔一定的長度。接下來我們只要生成乙個0-1之間的隨機數,看看落到哪個區間,就能取樣到該區間對應的單詞了,很公平,如下圖。
實現上需要記錄每個詞語所處的刻度位置和長度,產生的隨機數才能去匹配。
word2vec中,對比有點不一樣的做法就是,小數操作太麻煩了,直接將上述直線劃分成等距離份的m個小線段,接著我們就不生成0-1之間的隨機數了,我們生成0-m之間的整數,去這個刻度尺上一查就能抽中乙個單詞了,如下圖。
word2vec中的頻率計算有些不同,不是直接使用上述的式子,而是使用了乙個更加「平滑」的式子。
這樣做能提小概率的詞彙提高一些選擇的概率,對大概率的詞彙降低一些選擇的概率。
例如:詞彙表只有a和b兩個詞語,a是16個,b是81個。a的數量少於b。
用原始式子是:p(a)=16/97
用「平滑」式子是:p(a)=8/(8+27),很明顯a的概率值提高了。
四級核心詞彙表《五》
401.nuclear a.核子的,核能的 402.nucleus n.核403.retail n.v.ad.零售404.retain vt.保留,保持 405.restrict vt.限制,約束 406.sponsor n.發起者,主辦者vt.發起,主辦,資助 407.spur n.vt.刺激,激...
RELAX NG 表示 XML 詞彙表的語法規則
relax ng 讀音是 relaxing 也是一種xml schema定義語言。relax ng schema 定義了xml文件的結構和內容。而relax ng schema本身是xml文件。下面通過翻譯小段來簡單了解一下relax ng。以郵件位址通訊錄addressbook的表述為例,xml ...
最新大學英語四級詞彙表 A
最新大學英語四級詞彙表 a abandon b nd n vt.丟棄 放棄,拋棄 aboard b d ad.在船 車 上 上船 absolute bs lu t a.絕對的 純粹的 absolutely bs lu tli ad.完全地 絕對地 abundant b nd nt a.豐富的 大量的...