[機器學(xué)習(xí)入門] 李宏毅機器學(xué)習(xí)筆記-15 (Unsupervised Learning: Word
Embedding;無監(jiān)督學(xué)習(xí):詞嵌入)
VIDEO |
---|
Word Embedding
Word Embedding 是前面講到的dimension reduction一個很好的應(yīng)用。
1-of-N Encoding,是把所有的word用一個向量表示,每個向量都不一樣,我們沒辦法從中獲得更多的信息,比如貓和狗都屬于動物,所以這時我們用Word Class將其分為n個類型,但又有了另一個問題,我們同樣無法得知兩個類型之間的相關(guān)性,所以要采用Word Embedding方法,就是把每一個word都投射到一個高維空間里,兩個相似的類型隔得距離較近,這樣就能得到相關(guān)性。
那么怎樣讓機器讀懂詞匯呢?
只知道輸入,不知道輸出,這就是一個無監(jiān)督學(xué)習(xí)。
核心思想就是,通過該詞語的上下文。
How to exploit the context?
有兩個方法:
1.Count based
這里寫圖片描述
2.Prediction-based
用 前面words 作為neural network的輸入 預(yù)測下一個詞的幾率。
這里寫圖片描述
Prediction-based
訓(xùn)練出neural network,所以我們將他的第一個hidden layer拿出來,就能將它們對應(yīng)到相應(yīng)的空間。
但是,僅通過一個詞匯就要預(yù)測下一個詞匯是很難的,所以通過Sharing Parameters來進行增強。
Sharing Parameters
不僅用前一個word,還用前n個詞來一起預(yù)測。
同樣的weight是為了讓同一個word放在i-1的位置和i-2的位置都有同樣的transform,Or, one word would have two word vectors.另外的好處是可以減少參數(shù)量。
計算過程:
怎樣讓W(xué)1,W2等參數(shù)的weight一樣呢?
那么怎樣來訓(xùn)練這個network呢?
Training
完全是無監(jiān)督的。
Various Architectures 有幾招:
回到Word Embedding
Word Embedding
可以發(fā)現(xiàn),我們把同樣類型的word擺在一起,他們之間是有固定的關(guān)系的。
所以就可以從中發(fā)現(xiàn)一些關(guān)系。
比如讓兩個word兩兩相減,然后project到一個space上,如果落到同一處,則他們之間的關(guān)系是很類似的。
有了這個特性,這樣我們就可以做一些預(yù)測工作。