斯坦福CS224N深度學習自然語言處理(二)



(之前表徵word的方式,使用分類學的方法,考慮上位詞以及同義詞集合。這樣帶來的問題有:)

不論是基於大量規則的方式,還是統計性NLP方式,都是在基本詞粒度上處理成one-hot形式。

(這種one-hot形式,還不能直接用來處理word之間的關係,雖然向量的點乘操作結果可以表徵兩個向量的相似程度,但是one-hot的特殊性決定了兩個不同word的向量點乘結果為0。)


(這裡給出了一個NLP中簡單而又非常好用的假設,即可以通過一個詞周圍詞集合當中提取出有價值的信息。並給出了一個"banking"的例子,想像一下,雖然在大規模語料中,此時這種統計就是非常有價值的了。)

(將之前稀疏的的向量,壓縮到一個稠密的向量中,以此來表示該詞,至於這裡每維特徵的意義,對於人來說是感知不出來的,它是在計算機的角度來看的。)
此時,我們的任務就很明晰了,設計一個model來刻畫一個詞和其context的概率,整體越大說明學習的越好。也可以寫成loss形式,此時越銷越好。



主要包括兩個模型:SG、CBOW,以及兩種訓練方法:Hierarchicaltsoftmax和Negativetsampling)



通常對於概率分布選擇交叉熵作為loss。但這裡使用的向量(即分布)是onehot形式,此時計算結果時只有trueclass對應位置有值,這樣的話有些不當)

其中:

(點乘的意義是兩個向量越是近似,則點乘結果越大。)



(如何獲得模型,其實就是已知模型結構,如何獲得參數。對於每一個word,都會受到上述W和W兩個矩陣的影響,因此就是有d*V+d*V個參數需要優化)
(為了介紹梯度下降,先說下基礎數學知識,視頻中老師管這個叫baby math~)


(其實就是求導和鏈式法則。下面才是我們真正的開始。)

對於logp(...),式子2中給出了詳細的softmax形式,帶入即可。即有:)




這裡的最後形式:其實個人感覺式子1更好記和更好理解。

(後面都是介紹梯度下降:)




推薦閱讀:
※從CNN視角看在自然語言處理上的應用
※完結篇|一文搞懂k近鄰(k-NN)演算法(二)
※揭開知識庫問答KB-QA的面紗9·動態模型篇
※如何評價SyntaxNet?
※「關鍵詞」提取都有哪些方案?
TAG:自然语言处理 | 深度学习DeepLearning | 世界名校公开课推荐 |
