1. 程式人生 > >《面向機器智慧的tensorflow實踐》第六章筆記

《面向機器智慧的tensorflow實踐》第六章筆記

6.2 詞向量嵌入

      如何將詞表示為向量:最簡單的方式是將詞彙表裡的單詞進行獨熱編碼。但是這種方法有兩個問題:1)對於實際應用,這種方法會導致向量的維數很高2)獨熱編碼無法刻畫不同詞語之間的語義關聯

      

     根據共生關係(co-occurrence)表示單詞。這種方法的基本思路是,遍歷一個大規模文字語料庫,針對每個單詞,統計其在一定距離範圍(例如5)內的周圍詞彙。然後,用附近詞彙的規範化數量表示每個詞語。這種方法背後的思想是在類似語境中使用的詞語在語義上也是相似的。這樣,便可運用PCA或類似的方法對出現向量(occurrence vector)降維,從而得到更稠密的表示。雖然這種方法具有很好的效能,但它要求我們追蹤所有詞彙的共生矩陣,即一個寬度和高度均為詞彙表長度的方陣。



    在2013年,Mikolov等提出了一種依據上下文計算詞表示的實用有效的方法,相應的文章是Mikolov、Tomas等的《Efficient estimation of word representations in vector space》(arXiv preprint arXiv:1301.3781(2013))。他們的skip-gram模型從隨機表示開始,並擁有一個試圖依據當前詞語預測一個上下文詞語的簡單分類器。誤差同時通過分類器權值和詞的表示進行傳播,我們需要對這兩者進行調整以減少預測誤差。研究發現,在大規模語料庫上訓練該模型可表示向量逼近壓縮後的共生向量。下面利用TensorFlow實現skip-gram模型。