cs224n第二讲词向量表示:word2vec
1、如何表示一個單詞的含義?
- 定義單詞的含義:語言學方式上單詞的含義是一種指代,指代世界上的某些具體事物(該單詞的指代物,denotations)。字典含義:
- 在計算機中使用有用的單詞含義:使用像WordNet(分類資源,taxonomic resource)提供很多詞匯相關的分類信息,如上位詞、下義詞、反義詞和同義詞(hypernym, hyponym, antonym and synonym)
- 大部分基于規則和基于統計的nlp工作將單詞視作原子符號,用一串只有一個1其余為0的向量來表示這個原子符號(獨熱表示,one-hot representation),這種方法存在問題,因為它沒有給出任何詞匯之間的內在關系概念(inherent notion of similarity)
- 分布式表示(distributed representation)指用一個dense vector來表示詞匯
- 分布相似性(distributional similarity)是一種關于詞匯語義的理論,可以通過理解單詞出現的上下文,來描述詞匯的意思
2、word2vec
定義:一種軟件,利用語言的意義理論,預測每個單詞和它上下文的詞匯
- Skip-grams pediction:
- details of word2vec:
——在機器學習領域喜歡將事情最小化,跟上面對應起來得到一個負的對數似然(negative log likelihood)目標函數。
——目標函數(代價函數、損失函數)
當目標函數為上面的負的對數似然準則的話意味著我們使用的是交叉熵損失函數(cross-entropy loss)
——公式
結果形式:
?
其中,vc是中心單詞的向量表示,uo是上下文單詞的向量表示,c和o分別是它們的單詞索引值,即它們在同種單詞類型集合中的位置。
?
推導過程:
Softmax模型:利用c的信息獲得o的輸出概率(選取兩個向量的點積)
softmax形式:將數值轉換成概率分布(指數化使其變為正的;歸一化處理)
- Skipgram的一個具體實例
3、計算出Skipgram模型(思路是調整參數,讓負的對數似然這一目標函數最小化,從而使預測的概率最大化)
?
?
4、最優化(利用梯度下降,gradient descent,可以觀看cs221或229課程補充相關知識)
梯度下降:梯度下降法的計算過程就是沿梯度下降的方向求解極小值(梯度即導數或偏導數)
python實現梯度下降的一般算法:
1 while True: 2 theta_grad = evaluate_gradient(J, corpus,theta) 3 theta = theta - alpha * theta_grad這里的J,corpus,theta分別表示目標函數值,函數本身和當前參數。
在這里,我們一般使用的梯度下降法是隨機梯度下降方法(stochastic gradient descent, SGD)
??
SGD的Python實現:
1 while True: 2 window = sample_window(corpus) 3 theta_grad = evaluate_gradient(J, window, theta) 4 theta = theta - alpha * theta_grad?
轉載于:https://www.cnblogs.com/py-fwg/p/9929324.html
總結
以上是生活随笔為你收集整理的cs224n第二讲词向量表示:word2vec的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql InnoDB 数据更新/删除
- 下一篇: ML激活函数使用法则