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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Word2Vec学习笔记(四)——Negative Sampling 模型

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Word2Vec学习笔记(四)——Negative Sampling 模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????前面講了Hierarchical softmax 模型,現在來說說Negative Sampling 模型的CBOW和Skip-gram的原理。它相對于Hierarchical softmax 模型來說,不再采用huffman樹,這樣可以大幅提高性能。

一、Negative Sampling

????在負采樣中,對于給定的詞www,如何生成它的負采樣集合NEG(w)NEG(w)NEG(w)呢?已知一個詞www,它的上下文是context(w)context(w)context(w),那么詞www就是一個正例,其他詞就是一個負例。但是負例樣本太多了,我們怎么去選取呢?在語料庫C\mathcal{C}C中,各個詞出現的頻率是不一樣的,我們采樣的時候要求高頻詞選中的概率較大,而低頻詞選中的概率較小。這就是一個帶權采樣的問題。
設詞典D\mathcal{D}D中的每一個詞www對應線段的一個長度:
len(w)=counter(w)∑u∈Dcounter(u)(1)len(w) = \frac{counter(w)}{\sum_{u \in \mathcal{D}}counter(u)} (1) len(w)=uD?counter(u)counter(w)?(1)
式(1)分母是為了歸一化,Word2Vec中的具體做法是:記l0=0,lk=∑j=1klen(wj),k=1,2,…,Nl_0 = 0, l_k = \sum_{j=1}^{k} len(w_j), k=1,2, \dots, Nl0?=0,lk?=j=1k?len(wj?),k=1,2,,N,其中,wjw_jwj?是詞典D\mathcal{D}D中的第jjj個詞,則以{lj}j=0N\{l_j\}_{j=0}^{N}{lj?}j=0N?為點構成了一個在區間[0,1]非等距離的劃分。然后再加一個等距離劃分,Word2Vec中選取M=108M=10^8M=108,將M個點等距離的分布在區間[0,1]上,這樣就構成了M到I之間的一個映射,如下圖所示:

圖例參考:http://www.cnblogs.com/neopenx/p/4571996.html ,建議大家讀下這篇神作

????選取負例樣本的時候,取[M0,Mm?1][M_0, M_{m-1}][M0?,Mm?1?]上的一個隨機數,對應到I上就可以了。如果對于詞wiw_iwi?,正好選到它自己,則跳過。負例樣本集合NEG(w)NEG(w)NEG(w)的大小在Word2Vec源碼中默認選5.

二、CBOW

????假定關于詞www的負例樣本NEG(w)NEG(w)NEG(w)已經選出,定義標簽LLL如下,對于 ?w~∈D\forall \widetilde{w} \in \mathcal{D}?wD
Lw(w~)={1,w~=w;0,w~≠w;L^w(\widetilde{w}) = \Bigg\{ \begin{array} {ll} 1, & \widetilde{w} = w ;\\ 0, & \widetilde{w} \ne w; \end{array} Lw(w)={1,0,?w=w;w?=w;?
對于給定的一個正例樣本(context(w),w)(context(w), w)(context(w),w), 要求:
max?g(w)=max?∏u∈{w}∪u∈NEG(w)p(u∣context(w))\max g(w) = \max \prod_{u \in \{w\} \cup u \in NEG(w)} p(u|context(w)) maxg(w)=maxu{w}uNEG(w)?p(ucontext(w))
其中,
p(u∣context(w))={σ(xwTθu),Lw(u)=11?σ(xwTθu),Lw(u)=0p(u|context(w)) = \Bigg \{ \begin{array}{ll} \sigma(\boldsymbol{x}_w^T \theta^u), & L^w(u) = 1\\ 1-\sigma(\boldsymbol{x}_w^T \theta^u), & L^w(u) = 0 \end{array} p(ucontext(w))={σ(xwT?θu),1?σ(xwT?θu),?Lw(u)=1Lw(u)=0?
把它寫成一個式子:
p(u∣context(w))=σ(xwTθu)Lw(u)+(1?σ(xwTθu))1?Lw(u)p(u|context(w)) = \sigma(\boldsymbol{x}_w^T \theta^u)^{L^w(u)} + (1-\sigma(\boldsymbol{x}_w^T \theta^u))^{1-L^w(u)} p(ucontext(w))=σ(xwT?θu)Lw(u)+(1?σ(xwT?θu))1?Lw(u)
下邊解釋為什么要最大化g(w)g(w)g(w)
g(w)=∏u∈{w}∪u∈NEG(w)p(u∣context(w))=∏u∈{w}∪u∈NEG(w)σ(xwTθu)Lw(u)+(1?σ(xwTθu))1?Lw(u)=σ(xwTθw)∏u∈NEG(w)(1?σ(xwTθu))g(w) = \prod_{u \in \{w\} \cup u \in NEG(w)} p(u|context(w)) \\ =\prod_{u \in \{w\} \cup u \in NEG(w)} \sigma(\boldsymbol{x}_w^T \theta^u)^{L^w(u)} + (1-\sigma(\boldsymbol{x}_w^T \theta^u))^{1-L^w(u)} \\ =\sigma(\boldsymbol{x}_w^T \theta^w)\prod_{u \in NEG(w)} (1-\sigma(\boldsymbol{x}_w^T \theta^u)) g(w)=u{w}uNEG(w)?p(ucontext(w))=u{w}uNEG(w)?σ(xwT?θu)Lw(u)+(1?σ(xwT?θu))1?Lw(u)=σ(xwT?θw)uNEG(w)?(1?σ(xwT?θu))
上式中連乘號前邊的式子可以解釋為最大化正例樣本概率,連乘號后邊解釋為最小化負例樣本概率

同樣的,針對于語料庫,令:
G=∏w∈Cg(w)\mathcal{G} = \prod_{w \in \mathcal{C}} g(w) G=wC?g(w)
可以將上式作為整體的優化目標函數,取上式的最大似然:
L=log?G=∑w∈Clog?g(w)=∑w∈C∑u∈{w}∪u∈NEG(w)Lw(u)log?[σ(xwTθu]+[1?Lw(u)]log?[1?σ(xwTθu)]\mathcal{L} = \log\mathcal{G} = \sum_{w \in \mathcal{C}} \log g(w) \\ =\sum_{w \in \mathcal{C}} \sum_{u \in \{w\} \cup u \in NEG(w)}L^w(u)\log[\sigma(\boldsymbol{x}_w^T \boldsymbol{\theta}^u] + [1-L^w(u)] \log [1-\sigma(\boldsymbol{x}_w^T \boldsymbol{\theta}^u)] L=logG=wC?logg(w)=wC?u{w}uNEG(w)?Lw(u)log[σ(xwT?θu]+[1?Lw(u)]log[1?σ(xwT?θu)]
和之前的計算過程一樣,記
L(w,u)=Lw(u)log?[σ(xwTθu]+[1?Lw(u)]log?[1?σ(xwTθu)]L(w,u) = L^w(u)\log[\sigma(\boldsymbol{x}_w^T \theta^u] + [1-L^w(u)]\log [1-\sigma(\boldsymbol{x}_w^T \boldsymbol{\theta}^u)] L(w,u)=Lw(u)log[σ(xwT?θu]+[1?Lw(u)]log[1?σ(xwT?θu)]
然后分別求:?L(w,u)?Xw\frac{\partial L(w,u)}{\partial\boldsymbol{X}_w}?Xw??L(w,u)??L(w,u)?θu\frac{\partial L(w,u)}{\partial\boldsymbol{\theta}^u}?θu?L(w,u)?,求解過程略過:
?L(w,u)?Xw=[Lw(u)?σ(xwTθu)]θu?L(w,u)?θu=[Lw(u)?σ(xwTθu)]Xw\frac{\partial L(w,u)}{\partial\boldsymbol{X}_w} = [L^w(u)-\sigma(\boldsymbol{x}_w^T \boldsymbol{\theta}^u)]\boldsymbol{\theta}^u \\ \frac{\partial L(w,u)}{\partial\boldsymbol{\theta}^u} = [L^w(u)-\sigma(\boldsymbol{x}_w^T \boldsymbol{\theta}^u)]\boldsymbol{X}_w ?Xw??L(w,u)?=[Lw(u)?σ(xwT?θu)]θu?θu?L(w,u)?=[Lw(u)?σ(xwT?θu)]Xw?
則,可得到如下更新公式:
θu:=θu+η[Lw(u)?σ(xwTθu)]Xwv(w~):=v(w~)+∑u∈{w}∪u∈NEG(w)[Lw(u)?σ(xwTθu)]θu\boldsymbol{\theta}^u:=\boldsymbol{\theta}^u+\eta [L^w(u)-\sigma(\boldsymbol{x}_w^T \boldsymbol{\theta}^u)]\boldsymbol{X}_w \\ v(\boldsymbol{\widetilde{w}}):=v(\boldsymbol{\widetilde{w}}) + \sum_{u \in \{w\} \cup u \in NEG(w)} [L^w(u)-\sigma(\boldsymbol{x}_w^T \boldsymbol{\theta}^u)]\boldsymbol{\theta}^u θu:=θu+η[Lw(u)?σ(xwT?θu)]Xw?v(w):=v(w)+u{w}uNEG(w)?[Lw(u)?σ(xwT?θu)]θu
其中, w~∈context(w)\boldsymbol{\widetilde{w}} \in context(w)wcontext(w).

總結

以上是生活随笔為你收集整理的Word2Vec学习笔记(四)——Negative Sampling 模型的全部內容,希望文章能夠幫你解決所遇到的問題。

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