吳恩達深度學習總結(15)
自然語言處理與詞嵌入
- 詞彙表徵
- 基於遷移學習訓練word embedding
- 類比推理演算法
- Embedding matrix
- GloVe(Global vectors for word representation)
- 情緒分類
- 除偏
詞彙表徵
之前我們表示一個詞彙都是建立一個詞典,然後基於詞彙在詞典中的位置建立一個在該位置為1其他位置為0的向量表示詞彙。比如我們建立一個10000個單詞構成的字典,那麼每個單詞的向量維度為10000,apple在字典中的第1個位置,那麼apple的表示為
另一種表述方法:特徵表述(word embedding),即用其他的詞來表述當前詞彙。
通過這種表述可以更好地發現兩個詞之間的相似度,embedding是指將詞彙以向量的形式嵌入到空間的某點上
基於遷移學習訓練word embedding
步驟
- 從大量文集中訓練word embedding或者直接從網上下載開源的預訓練模型
- 根據新任務給定的小資料集,轉換embedding(比如新的任務中有100k個詞彙,對embedding進行轉換)
- (可選)基於新的資料集對embedding進行調整(只有當新任務的資料集很大時才需要這樣做)
這種word embedding的方法通常用於命名實體識別,文字摘要,文字解析,對擁有大量資料的任務應用不是很多。
分析可知 word embedding方法和人臉識別中的 face encoding方法類似,都是將待識別的目標轉換為一個向量,但是這兩個任務存在著一些不同:Face encoding可以對任意一張圖片識別出人臉,而word embedding 只能學習詞彙表中的單詞,對於未在單詞表中的單詞標記為 “UNK”
類比推理演算法
類比推理演算法時由已知的兩個詞A、B,根據給定的單詞C,找出詞彙表中與C的關係最像A、B之間關係的詞。
例如:我們已知women對應著men,那麼在詞彙表中與Queen相對應的詞是?
對於這個問題,我們可以將詞彙表示為word embedding的形式
,這個問題可以轉化為找到一個單詞
使得
,其中
是指輸入之間的相似度,通常我們可以使用 cosine similarity描述相似度,即
Embedding matrix
embedding matrix是由一系列表徵單詞的向量構成的矩陣,矩陣中的每一列代表一個單詞,在矩陣
中單詞的位置與one-hot中單詞的位置一致,在神經網路的框架中,通常會有專門的方法從embedding matrix中提取單詞,不需要其與one-hot vector相乘。
從這個網路中我們可以瞭解Neural language model的工作模式,首先從embedding matrix中提取出需要的向量,將向量放到網路中進行訓練,最後經過softmax得到one-hot中的一個向量。
在訓練過程中存在一個超引數:相關詞彙的數目。在圖示的網路結構中,我們選擇了前6個作為預測值的相關詞彙,在實際的除錯過程中,常見的選擇方式有:1. 前4個詞彙;2. 前後各4個;3. 前1個; 3. 附近的一個詞彙;4. skip gram。
skip gram
skip gram:skip gram時選擇一個詞作為context,另一個詞作為target,選擇的方法有很多,前一個或者前幾個,後一個或後幾個。
在計算softmax時,我們計算的是一個整個詞彙表大小的向量,這大大增加了計算複雜度。為了減小計算量提出了hierarchical softmax:先看屬於那一部分,再繼續分類(類似於建立了一個決策樹)。在實際應用時,hierarchical softmax不會是一個balance tree,通常將常用的詞放到tree優先順序較高的節點上(即靠近root)不用的歸為葉節點。
CBOW
CBOW與skip gram類似,將兩邊的詞選做context,然後將中間的詞作為target
負取樣
先選擇一個詞作為context,在context一定範圍內選擇一個詞作為正樣本;負樣本選擇同樣的context,再隨機選擇一個詞作為負樣本,因此是隨機選擇,我們認為負樣本與context無關。負樣本的數目k一般在5-20,若資料集很大,那麼k在2-5之間,這裡用sigmoid函式來訓練loss function。
負樣本的選取:綜合考慮出現頻率和重要性(因為出現頻率最多的單詞如the,of,and的重要性一般不高),使用
作為每一個詞彙的選擇概率,其中
為總詞彙量(embedding的列數),
為詞彙的出現頻率。
GloVe(Global vectors for word representation)
我們用
表示單詞
出現在單詞
周圍的次數,這裡
類似於 target,
類似於 context。
將差距最小化:
其中
給不常出現的單詞有意義的運算,給經常出現的單詞更大但不過分的權重,當
為0時,
也為0
情緒分類
由於情緒分類時不僅僅需要簡單的單詞識別,也需要先後順序的判定才能正常識別出情緒,因此在文字識別的基礎上引入了RNN網路。
除偏
- 分辨偏見存在的方向,即用座標軸將存在偏見的詞彙與不存在偏見的詞彙分隔開(不一定是一維的)
- 基於偏見座標軸建立無偏座標軸,將不存在偏見的詞彙對映到無偏座標軸上
- 使得有偏見的詞彙到對映後無偏見詞彙的距離相等(基於無偏見座標軸等距,與偏見座標軸平行)