NLP—word2vec詞向量簡介

NLP處理的數據都是文字,而文字是無法直接被計算機計算的,於是人們想出了使用獨熱編碼的方式來表示單詞。

浙江 [0,0,0,0,0,0,0,1,0,......0,0,0,0,0,0,0]
江蘇 [0,0,0,0,1,0,0,0,0,......0,0,0,0,0,0,0]
安徽 [0,0,0,1,0,0,0,0,0,......0,0,0,0,0,0,0]
天津 [0,0,0,0,0,0,0,0,0,......1,0,0,0,0,0,0]

在語料庫中採用這樣一種方式來表示單詞無疑會面臨一些問題,例如忽略了單詞之間的相關性,當語料庫很大的時候,維度太高且矩陣稀疏。隨後出現了word2vec詞向量這種方式,它可以將獨熱編碼轉化爲低維度的連續值即稠密向量,並且其中意思相近的詞被映射到向量空間中相近的位置。如下圖所示經過一個簡單的神經網絡學習到一個權值矩陣,將獨熱編碼轉化爲稠密低維度向量。


word2vec是從大量文本中以無監督學習的方式學習語義知識的模型,其本質就是通過學習文本來用詞向量的方式表徵詞的語義信息,通過嵌入空間將語義上相似的單詞映射到距離相近的地方。即將單詞從原先所屬的空間映射到新的多維空間中。舉例來講,smart和intelligent意思相近,target和goal在意思上比較相近,但是target與apple離的較遠,映射到新的空間中後smart和intelligent、target和goal,它們的詞向量比較相近,而target與apple的詞向量相差較遠。

常見的word2vec詞向量有兩種模式,CBOW(continuous bag of words)和skip-gram,CBOW是根據目標單詞所在原始語句的上下文來推測目標單詞本身,而skip-gram則是利用該目標單詞推測原始語句信息即它的上下文。舉個例子:美國對中國進口鋼鐵採取了反傾銷調查。那麼CBOW的目標可以是:{中國,鋼鐵}—>進口,{採取了,調查}—>反傾銷,{美國,中國}—>對;skip-gram的目標可以是:{進口}—>{中國,鋼鐵},{了}—>{採取,反傾銷}。下面我們將以skip-gram爲例做詳細介紹。

以The president walked into the White House這句話爲例,首先選取句子中的一個詞作爲輸入詞input word,比如我們把president作爲輸入詞;有了輸入詞之後,再定義一個skip_window的參數,當skip_window=2時代表從當前輸入詞input word的左右兩側各選取兩個單詞,即窗口中的詞就是【The,president,walked,into】。另一個重要的參數爲num_skips,當num_skips=2時,代表我們從整個窗口中選取2個不同的詞作爲我們的output word,即(president,The),(president,walked)。神經網絡通過學習這樣的訓練數據最終輸出一個概率分佈,這個概率分佈表徵了詞彙表中每個單詞出現在president之後的概率大小。我們直觀的理解一下就會明白動作詞、政治話題等出現在總統之後的概率將會更大,因爲這些單詞將會有更大的可能性出現在president的窗口之中。


我們的神經網絡模型結構如下:


通過訓練數據學習得到的模型,我們需要的是模型隱藏層的權重矩陣,這些權重實際上就是我們試圖去學習的“詞向量”。通過{ president the }、{ president walked }這樣的樣本,模型就會知道經常出現在“總統”附近的單詞有哪些,在這個過程中我們需要的是訓練模型的副產物即隱藏層權重矩陣,通過這個權重矩陣就可以將獨熱編碼的單詞轉換爲低維的稠密詞向量,而這樣的詞向量恰恰是作爲特徵向量輸入到神經網絡的輸出層softmax層的。我們發現,如果語料庫比較巨大,例如有10萬單詞,隱藏層結點200個,即每個單詞使用200維度特徵表示,那麼權重矩陣就是[100000,200],此時採用隨機梯度下降等方法來訓練神經網絡將是十分緩慢的,所以提出了Hierarchical Softmax、Negative Sampling等方法來加速訓練。

1、詞表當中,有些單詞組合或者詞組在一起的時候有特定的含義,例如“machine learning”在一起代表一個學科領域,而拆開則表示了不同的意義,對於這樣的單詞應該並在一起進行模型訓練。

2、高頻詞抽樣,有些單詞“and”、“but”、“a”等等詞彙出現的頻率要遠遠高於其他一些詞彙,數量遠遠超過了訓練這些詞向量所需的樣本數。定義一個單詞被保留的概率P,單詞出現的頻次越高,則單詞不被抽樣刪除的可能性越低。

3、Negative Sampling負採樣:以目標單詞與窗口內單詞組成的真實單詞對“得分”和目標單詞與詞表中其他單詞隨機組成的單詞對“得分”爲代價函數。不同於原本每個訓練樣本更新所有的權重,負採樣每次讓一個訓練樣本僅僅更新一小部分的權重,這樣就會降低梯度下降過程中的計算量。

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