2019年CS224N課程筆記-Lecture 2: Word Vectors and Word Senses

資源鏈接:https://www.bilibili.com/video/BV1r4411f7td?p=1(中英文字母版)

word2vec的複習

其實沒什麼內容就是將上節課說的複習了一遍,不過最後又添加了一下新內容,如下:word2vec是根據語義進行訓練的,相同語義的詞在空間上是比較靠近的,而且能很好的表示類比關係,例如:國王-男人+女人=王后/皇后;相對於瓶子和蓋子的關係,類比暖壺,可能輸出壺塞。

上節課也說了,word2vec的計算是很大的。一種方法是使用SGD/隨機梯度下降方法,對於θ(超參數列表)來說,每次更新的只有極少數參數

(該矩陣中大量元素爲0,如果做矩陣減法,很多元素-0,大量浪費時間)

解決方法:去矩陣中的需要更新的值進行更新,而不是直接矩陣減法

正課內容

近似算法-負採樣

爲什麼word2vec會消耗大量時間呢?

歸根結底就是上述公式的分母和整個語料庫有關/呈線性關係,所以計算量超級大

負採樣思想:

1、爲對中心詞向量和外圍詞向量的點乘進行sigmoid計算,把softmax變成sigmoid。

2、選取了K個負樣本,負樣本爲窗口之外的樣本。對於窗口中的每個詞u,計算uo*vc的sigmoid,計算負樣本和中心詞的點乘uj*vc,求sigmoid。最大化uo*vc,最小化uj*vc,得出目標函數如下所示。

其實如果沒接觸過的話,這個地方會非常蒙的(下面放一段李沫老師的動手學深度學習nlp部分的一些內容)

可以看出來,課程中的公式是經過需要推導纔過來的,因爲省略了太多導致很不容易讓別人理解。

(層序softmax沒講,大家有興趣可以看看李沫老師的課~)

共現矩陣

(這一部分我不是很理解,可能之前學其他課程的時候也沒怎麼接觸過這個概念)

共現矩陣的例子如下:(其中窗口大小設置爲1)

共現矩陣存在的問題:

  1. 隨着語料庫的大小的增大,向量的大小會增長
  2. 非常高維,需要大量的存儲空間
  3. 子序列分類問題模型有非常稀疏的問題
  4. 模型可能不健壯

解決方案:

採用奇異值分解的方法,把所有信息量都濃縮在一個小的維度向量中。(將原矩陣轉化爲低維度矩陣)

(該方法我不會。。。就不詳細介紹了)

基於計數的模型和根據文本語義預測的模型比較:

計數模型:(例如即將要說的GloVe)

  1. 訓練速度快
  2. 有效的利用數據
  3. 主要用來獲取單詞的相似度
  4. 對於出現次數多的單詞基於重視

語義預測:(例如Word2Vec)

  1. 與語料庫大小有關
  2. 數據使用不高效
  3. 提高其他任務的性能
  4. 能捕捉到複雜的語義模式

(這一部分其實也比較難懂,如果不理解,我後面會放李沫老師課程中的介紹,大家相互結合着看吧)

共現概率的比值可以體現出單詞之間的類比關係的是否接近(舉例說明就是,冰ice和固體soild與蒸汽steam和固體soild比較,因爲是8.9所以說明,前者關係更大,也就是冰與蒸汽相比,冰與固體關係更大,或者說越接近)

共現概率的比率

glove模型

(李沫老師的內容)

(在glove中,中心詞和背景詞是等價的,因爲是對稱矩陣嘛,但是實際中訓練過程可能有一點點小微差別,因爲隨機初始化參數造成的影響,所以最終的選擇還是求和/求平均)

後續內容

說一些glove的各種優勢,這裏就不總結了,大家理性看待就行

還有一些後續內容不是很理解,看其他人的筆記有說是:如何評估一個詞向量的

那就根據別人的筆記和自己瞭解的一些整理一些吧

評估一個詞向量?

從內在方面和外在方面兩個方面說(我也不是很瞭解。。)

內在方面

在一個特殊的子任務上評估結果(使用該詞向量,看看效果咋樣,例如用某詞向量生成文章、古詩很符合我們的認知,那麼肯定很不錯~)

能夠讓模型更快的訓練(也就是詞向量維度等少一點,例如one-hot和分佈式詞向量,明顯後者更快)

幫助理解其他系統(不瞭解含義)

除非與實際任務建立了相關性,否則不清楚是否真的有用(不瞭解含義)

外在方面

在一個真正的任務上評估(不瞭解含義)

可能會花很長一段時間計算準確度(不瞭解含義)

不清楚子系統是問題所在,還是它的交互作用,還是其他子系統(不瞭解含義)

如果用另一個子系統替換一個子系統可以提高精確度——>獲勝!(類似用A詞向量生成的古詩狗屁不通,用B後勝似李白,那肯定B>A)

內在詞向量評估

詞向量類比:使用餘弦cos計算兩個詞向量的相似度。(其實就是相似詞,在空間中接近)

如果相同的單詞有不同的含義,怎麼辦?

答案:使用加權求不同含義的和。

比如pike這個單詞,不同場景下有多個不同的含義,計算公式如下圖所示。其中f爲權重。(爲什麼f爲權重呢,因爲雖然不同單詞有不同語義,但是不同的語義的權重是不一樣的,例如jack,大部分是名字,少部分是搶劫~)

外在單詞向量評估

該類中的後續任務。

一個例子:命名體識別:識別出名字,組織和位置等。詞向量表示的好效果就好。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章