word2vec工具的技術演進

2021-06-20 06:48:43 字數 1164 閱讀 7032

google目前開源了一款深度學習工具word2vec,該工具有很多有意思的特性。

顧名思義,word2vec就是將詞語轉換為向量,通過轉換為向量,複雜的自然語言處理就可以轉換為簡單的向量代數運算。

word2vec技術基於神經網路模型,可以簡單地將神經網路模型分為三層,分別為輸入層、隱含層和輸出層。

神經網路模型經歷了很長時期的發展,以03年為分界點,03年bengio等人提出了著名的nnlm模型(

),算是總結了前面的研究工作,因此,03年之前的關於神經網路在自然語言處理中的研究**拿來翻翻就可以了,不用細看。03年之後神經網路模型有了較大的改進和發展,發展出的技術千奇百怪,但是,總的而言,所有的改進和提高都緊緊圍繞神經網路三層結構,分別在各層進行改進。

在輸入層,有rnnlm模型,改進的思想是快取上一次計算完畢之後的狀態,這樣計算當前詞時就不需要重新計算已經輸入的詞,節省了計算量。具體可參考文獻:

在隱含層,有cbow技術和skip-gram技術。這也是神經網路模型核心架構方面的改進。cbow技術很好理解,就是利用上下文**當前詞出現的概率;skip-gram技術比較難理解,顧名思義,skip-gram就是允許某些詞被「跳過」,而不像cbow那樣按照順序來。被跳過的結果就是語料更加豐富了,因為允許跳過的組合更多,變相增加了語料。有關skip-gram技術可參考文獻:

在輸出層,或者可以理解為在訓練演算法方面,有分層softmax技術和負取樣技術。分層softmax技術使用二叉樹(例如哈夫曼樹)將詞典裡的詞編碼,這樣使得訪問每乙個詞語的平均步長縮短,大大加快了訓練速度,分層softmax技術可以參考文獻:

;負取樣技術原理同nce,nce的原理本質是使用已知的概率密度函式估計未知的概率密度函式,設未知的概率密度函式位x,已知的為y,如果求的了x和y的關係,y又已知,那麼x也就不難求出來了,有關負取樣技術可參考:

最後一點,在神經網路模型中,如」the」、」a」等頻繁詞會降低訓練的速度以及損害訓練結果準確性,為了解決這個問題,引入了欠取樣技術,技術原理很簡單,就是以某個隨機的概率捨棄詞典中的詞,越頻繁的詞被捨棄的概率越大,因此,在不改變詞頻排列順序的前提下,大大減小了頻繁詞與非頻繁詞的比例,從而突出了非頻繁詞,訓練結果更加準確,訓練的速度也更快。欠取樣技術請參考文獻:

word2vec工具是上述技術的合集,分別學習了解上述技術就能夠很好地理解word2vec工具的原理,word2vec工具有很多有趣的、不可思議的地方,讀者慢慢發掘吧。

與word2vec 原來word2vec那麼簡單

說到word2vec,它可謂非結構化資料裡面的佼佼者,尤其是在推薦和nlp當中,足以體現它的優勢所在,並且多年一直備受工業界喜愛.那麼word2vec到底是怎麼個原理的,發現身邊總是有很多人問,確不能準確的說出為什麼是兩個矩陣,到底是怎麼自動反向傳播的,以及對於softmax之後那麼大的維度資料,是...

word2vec學習參考

最近看nlp的東西比較多。就拿現在google 基於神經網路做的 word2vec 作為部落格的開始吧,今後會陸陸續續補充內容。基本是分4塊內容 1.神經網路語言模型 2.語言模型分層優化 3.word2vec 原理 4.google word2vec 看一點寫一點,先扔些參考資料鏈接上去。附上在研...

Word2Vec知識總結

word2vec是乙個產生詞向量的模型,是乙個雙層的神經網路 非常善於找出詞彙的相似度,同時可用於處理之前的技術 像one hot編碼和wordnet 處理不了的語義關係。它可以利用神經網路從大量的無標註的文字中提取有用資訊。我們也可以將它看成是乙個工具,它裡面包含了三種重要的模型 1 nnlm 神...