日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习-自然语言处理中的近似训练

發布時間:2024/8/23 pytorch 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习-自然语言处理中的近似训练 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自然語言處理中的近似訓練

跳字模型的核心在于使用softmax運算得到給定中心詞wcw_cwc?來生成背景詞wow_owo?的條件概率

P(wo∣wc)=exp(uo?vc)∑i∈Vexp(ui?vc).P(w_o \mid w_c) = \frac{\text{exp}(\boldsymbol{u}_o^\top \boldsymbol{v}_c)}{ \sum_{i \in \mathcal{V}} \text{exp}(\boldsymbol{u}_i^\top \boldsymbol{v}_c)}.P(wo?wc?)=iV?exp(ui??vc?)exp(uo??vc?)?.

該條件概率相應的對數損失

?log?P(wo∣wc)=?uo?vc+log?(∑i∈Vexp(ui?vc)).-\log P(w_o \mid w_c) = -\boldsymbol{u}_o^\top \boldsymbol{v}_c + \log\left(\sum_{i \in \mathcal{V}} \text{exp}(\boldsymbol{u}_i^\top \boldsymbol{v}_c)\right).?logP(wo?wc?)=?uo??vc?+log(iV?exp(ui??vc?)).

由于softmax運算考慮了背景詞可能是詞典V\mathcal{V}V中的任一詞,以上損失包含了詞典大小數目的項的累加。不論是跳字模型還是連續詞袋模型,由于條件概率使用了softmax運算,每一步的梯度計算都包含詞典大小數目的項的累加

對于含幾十萬或上百萬詞的較大詞典,每次的梯度計算開銷可能過大。為了降低該計算復雜度,我們可以使用兩種近似訓練方法,即負采樣(negative sampling)或層序softmax(hierarchical softmax)。由于跳字模型和連續詞袋模型類似,本節僅以跳字模型為例介紹這兩種方法。

負采樣(negative sampling)

負采樣修改了原來的目標函數。給定中心詞wcw_cwc?的一個背景窗口,我們把背景詞wow_owo?出現在該背景窗口看作一個事件,并將該事件的概率計算為

P(D=1∣wc,wo)=σ(uo?vc)P(D=1\mid w_c, w_o) = \sigma(\boldsymbol{u}_o^\top \boldsymbol{v}_c)P(D=1wc?,wo?)=σ(uo??vc?)

其中的σ\sigmaσ函數與sigmoid激活函數的定義相同:

σ(x)=11+exp?(?x).\sigma(x) = \frac{1}{1+\exp(-x)}.σ(x)=1+exp(?x)1?.

我們先考慮最大化文本序列中所有該事件的聯合概率來訓練詞向量。具體來說,給定一個長度為TTT的文本序列,設時間步ttt的詞為w(t)w^{(t)}w(t)且背景窗口大小為mmm考慮最大化聯合概率

∏t=1T∏?m≤j≤m,j≠0P(D=1∣w(t),w(t+j)).\prod_{t=1}^{T} \prod_{-m \leq j \leq m,\ j \neq 0} P(D=1\mid w^{(t)}, w^{(t+j)}).t=1T??mjm,?j?=0?P(D=1w(t),w(t+j)).

然而,以上模型中包含的事件僅考慮了正類樣本。這導致當所有詞向量相等且值為無窮大時,以上的聯合概率才被最大化為1。很明顯,這樣的詞向量毫無意義。

負采樣通過采樣并添加負類樣本使目標函數更有意義。設背景詞wow_owo?出現在中心詞wcw_cwc?的一個背景窗口為事件PPP,我們根據分布P(w)P(w)P(w)采樣KKK個未出現在該背景窗口中的詞,即噪聲詞。設噪聲詞wkw_kwk?k=1,…,Kk=1, \ldots, Kk=1,,K)不出現在中心詞wcw_cwc?的該背景窗口為事件NkN_kNk?。假設同時含有正類樣本和負類樣本的事件P,N1,…,NKP, N_1, \ldots, N_KP,N1?,,NK?相互獨立,負采樣將以上需要最大化的僅考慮正類樣本的聯合概率改寫為

∏t=1T∏?m≤j≤m,j≠0P(w(t+j)∣w(t)),\prod_{t=1}^{T} \prod_{-m \leq j \leq m,\ j \neq 0} P(w^{(t+j)} \mid w^{(t)}),t=1T??mjm,?j?=0?P(w(t+j)w(t)),

其中條件概率被近似表示為 P(w(t+j)∣w(t))=P(D=1∣w(t),w(t+j))∏k=1,wk~P(w)KP(D=0∣w(t),wk).P(w^{(t+j)} \mid w^{(t)}) =P(D=1\mid w^{(t)}, w^{(t+j)})\prod_{k=1,\ w_k \sim P(w)}^K P(D=0\mid w^{(t)}, w_k).P(w(t+j)w(t))=P(D=1w(t),w(t+j))k=1,?wk?P(w)K?P(D=0w(t),wk?).

設文本序列中時間步ttt的詞w(t)w^{(t)}w(t)在詞典中的索引為iti_tit?,噪聲詞wkw_kwk?在詞典中的索引為hkh_khk?。有關以上條件概率的對數損失為

?log?P(w(t+j)∣w(t))=?log?P(D=1∣w(t),w(t+j))?∑k=1,wk~P(w)Klog?P(D=0∣w(t),wk)=?log?σ(uit+j?vit)?∑k=1,wk~P(w)Klog?(1?σ(uhk?vit))=?log?σ(uit+j?vit)?∑k=1,wk~P(w)Klog?σ(?uhk?vit).\begin{aligned} -\log P(w^{(t+j)} \mid w^{(t)}) =& -\log P(D=1\mid w^{(t)}, w^{(t+j)}) - \sum_{k=1,\ w_k \sim P(w)}^K \log P(D=0\mid w^{(t)}, w_k)\ \\ =&- \log \sigma\left(\boldsymbol{u}_{i_{t+j}}^\top \boldsymbol{v}_{i_t}\right) - \sum{k=1,\ w_k \sim P(w)}^K \log\left(1-\sigma\left(\boldsymbol{u}_{h_k}^\top \boldsymbol{v}_{i_t}\right)\right)\\\ =&- \log \sigma\left(\boldsymbol{u}_{i_{t+j}}^\top \boldsymbol{v}_{i_t}\right) - \sum{k=1,\ w_k \sim P(w)}^K \log\sigma\left(-\boldsymbol{u}_{h_k}^\top \boldsymbol{v}_{i_t}\right). \end{aligned} ?logP(w(t+j)w(t))==?=??logP(D=1w(t),w(t+j))?k=1,?wk?P(w)K?logP(D=0w(t),wk?)??logσ(uit+j???vit??)?k=1,?wk?P(w)Klog(1?σ(uhk???vit??))?logσ(uit+j???vit??)?k=1,?wk?P(w)Klogσ(?uhk???vit??).?

現在,訓練中每一步的梯度計算開銷不再與詞典大小相關,而與KKK線性相關。當KKK取較小的常數時,負采樣在每一步的梯度計算開銷較小。

總結

以上是生活随笔為你收集整理的深度学习-自然语言处理中的近似训练的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。