Task2 GloVe原理介紹

2021-10-07 13:30:39 字數 1117 閱讀 5671

使用skipgram和cbow兩種模型進行詞向量預訓練,我們會發現word2vec模型是乙個超級大的神經網路(權重矩陣規模非常大)。舉個栗子,我們擁有10000個單詞的詞彙表,我們如果想嵌入200維的詞向量,那麼我們的輸入-隱層權重矩陣和隱層-輸出層的權重矩陣都會有 10000 x 200 = 200萬個權重,在如此龐大的神經網路中進行梯度下降是相當慢的。更糟糕的是,你需要大量的訓練資料來調整這些權重並且避免過擬合。百萬數量級的權重矩陣和億萬數量級的訓練樣本意味著訓練這個模型將會是個災難。

為解決計算災難我問題,主要有如下兩種:

cbow 或者skip-gram取得了很大的成功,不管在訓練效率還是在詞向量的計算效果上面。

但是cbow和skipgram只是乙個local context window的方法,只能看到區域性,而忽略了這個句子與詞的關係。負樣本採用sample的方式會缺失詞的關係資訊。另外,直接訓練skip-gram型別的演算法,很容易使得高**詞彙得到過多的權重

global vector融合了矩陣分解latent semantic analysis (lsa)的全域性統計資訊和local context window優勢。融入全域性的先驗統計資訊,可以加快模型的訓練速度,又可以控制詞的相對權重。

首先用符號x來表示詞和詞之間的表示:

xijxij:詞i在詞j的window context裡面的次數,同樣也是j出現在i window context的次數 (說白了就是,在整個語料庫中,單詞i和單詞j共同出現在乙個視窗中的次數。 )

xi=∑kxikxi=∑kxik:詞i的window context裡面的詞的總次數

pij=p(j∣i)=xij/xi

pij=p(j∣i)=xij/xi: 詞j出現在詞i 的context裡面的概率

我們知道solid是ice的形狀,gas是steam的狀態,如果用概率表示,我們希望

p(solid∣ice)>p(solid∣steam),

p(solid∣ice)>p(solid∣steam),

p(gas|ice)下一步:pikpjk=p(k|i)/p(k|j) 在機器學習裡面怎麼計算?

Druid原理介紹 2

如果某一列的取值的維度比較大,則不太適合建立位圖索引。因為位圖索引會非常大,則不太適合建立點陣圖索了。但是對於olap框架而言,這個問題時不可避免的,舉例而言,我們需要儲存和統計公司的所有 的訪問記錄,那麼ip的範圍就會比較大。此時如果直接對ip建立位圖索引的話就會導致該索引非常大,不太現實,那麼怎...

Gradle系列 2 Task的介紹和用法

概念介紹 用法介紹 2 多種訪問任務的方式 3 任務分組和描述 def mytask task grouptask group 在as的task列表中就能體現出來 mytask.group baseplugin.build group mytask.description 這是給認為新增描述的示例 ...

HTML5 開發移動app教程2 原理介紹

html頁面負責內容 ui負責頁面樣式 這裡並沒有侷限於用那種ui,比較常見的適配移動端的ui框架有 介紹 twitter開發的ui框架,特點是可以簡介美觀,可以適配移動端 例如本站 中文官網 介紹 國人模仿bootstrap做的乙個ui框架,個人感覺有點多餘,有興趣的可以看看 官網 介紹 hbui...