1. 程式人生 > >[NLP]word2vec原理

[NLP]word2vec原理

Hierarchical Softmax

Cbow:

    原理:用中心詞作為預測的值(輸出),輸出可看做一個點,和其他點(詞語)做區分,共同構成了一個霍夫曼樹,要求Xw經過層次softmax函式,達到輸出預測值概率最大。

    用周圍的詞做輸入,通過查表的形式,將原輸入的one-hot編碼形式轉換為詞向量形式,詞向量表初始化時為隨機值。然後簡單相加,得到Xw

    霍夫曼樹建立,先將所有詞按頻率排序,按頻率從小到大結合成霍夫曼樹(http://www.cnblogs.com/pinard/p/7160330.html)

       周圍的詞通過查表(詞向量表)加和得到xw,在通過層次softmax得到x3的概率最大值,注意,損失函式即為,採用極大似然法,概率最大化x3的值

    其中代表一個softmax概率,代表正概率,即霍夫曼樹向左傳播,代表覆蓋率,即霍夫曼樹向右傳播。

    最後要最大化這個損失函式,將這個損失函式求導,更新softmax中的sita值,和詞向量表中的值。我們要的是詞向量表中的詞。

層次softmax的skip-gram模型

    輸入xw就是x3的詞向量(需要訓練)

    輸出是x1245中的一個詞,即一個詞的概率

    損失函式即是,採用極大似然法,概率最大化x1(或x245)的值

    迴圈極大似然x1245,更新sita的改變數g,和xw的改變數e

    最後對所有的x1245統一進行更新

    注:本來每次訓練是對xw進行更改(即x3),為了整體迭代更加均勻,且為了效率,對x3進行的更新可看做對x1245進行更新,如何理解——當w3+e(迭代更新)能使

(即周圍是x1245預測出x3的概率)增大,同樣能使(即周圍是x3,預測出x1245的概率)增大。即對x3+e的更新,對x1245+e的更新同樣適用。


    HierarchicalSoftmax 的缺點:當面對一個頻率出現小的詞,他的霍夫曼樹要走很久,霍夫曼樹還是很複雜。

Negative Sampling負取樣方法

    概率性的選擇N個詞,作為可能輸出的值,代替了詞庫所有的詞,作為softmax輸出的選項。

    以一個詞的頻率作為詞的長度,概率性的選擇N-1個負樣例,與正樣例組成N個softmax輸出的可能性。


    最後通過softmax x0最大化為損失函式。反向求導,更新sita值和xw值

    對於skip-gram模型,輸入輸出組成兩兩一隊形式進行訓練,即(x1,x3),(x2,x3),(x4,x3),(x5,x3)這四隊,分別進行訓練

參考:http://www.cnblogs.com/pinard/p/7249903.html

相關推薦

[NLP]word2vec原理

Hierarchical SoftmaxCbow:    原理:用中心詞作為預測的值(輸出),輸出可看做一個點,和其他點(詞語)做區分,共同構成了一個霍夫曼樹,要求Xw經過層次softmax函式,達到輸出預測值概率最大。    用周圍的詞做輸入,通過查表的形式,將原輸入的on

word2vec原理(三) 基於Negative Sampling的模型

轉自http://www.cnblogs.com/pinard/p/7249903.html   在上一篇中我們講到了基於Hierarchical Softmax的word2vec模型,本文我們我們再來看看另一種求解word2vec模型的方法:Negative Sampling。

word2vec原理(二) 基於Hierarchical Softmax的模型

轉自http://www.cnblogs.com/pinard/p/7243513.html  在word2vec原理(一) CBOW與Skip-Gram模型基礎中,我們講到了使用神經網路的方法來得到詞向量語言模型的原理和一些問題,現在我們開始關注word2vec的語言模型如何改進傳統的神經網路

(六) word2vec原理

Word2Vec 的有兩種訓練模型:CBOW (Continuous Bag-of-Words Model) 和 Skip-gram (Continuous Skip-gram Model)。 1、步驟(以CBOW為例) (1)處理語料庫:把語料庫劃分成一連串的單詞,把這些一連串

word2vec原理(一) CBOW與Skip-Gram模型基礎

word2vec是google在2013年推出的一個NLP工具,它的特點是將所有的詞向量化,這樣詞與詞之間就可以定量的去度量他們之間的關係,挖掘詞之間的聯絡。雖然原始碼是開源的,但是谷歌的程式碼庫國內無法訪問,因此本文的講解word2vec原理以Github上的wor

Word2vec原理與應用

用一個普通的向量表示一個詞,將所有這些向量放在一起形成一個詞向量空間,而每一向量則為該空間中的一個點,在這個空間上的詞向量之間的距離度量也可以表示對應的兩個詞之間的“距離”。所謂兩個詞之間的“距離”,就是這兩個詞之間的語法,語義之間的相似性。 只介紹基於Hie

Word2Vec原理詳解

寫在前面 為了更方便讀者學習,筆者下載了word2vec原始碼共享在雲盤(google官網有時會訪問不了),地址。 還有關於word2vec實戰的 地址 下面是轉載內容: word2vec 是 Google 於 2013 年開源推出的一個用於獲取 wo

Word2vec 原理公式推到和程式碼實現

本文摘錄整編了一些理論介紹,推導了word2vec中的數學原理;並考察了一些常見的word2vec實現,評測其準確率等效能,最後分析了word2vec原版C程式碼;針對沒有好用的Java實現的現狀,移植了原版C程式到Java。時間和水平有限,本文沒有就其發展歷史展開多談,只

Word2vec 原理解析

Word2vec 背景知識Word2vec 的兩種模型 cbow 和 skip-gram 兩種學習框架 Hierarchical Softmax 和 Negative Samping 的原理分析Word2vec 的拓展與應用一場場看太麻煩?訂閱GitChat體驗卡,暢享300

NLPword2vec詞向量簡介

NLP處理的資料都是文字,而文字是無法直接被計算機計算的,於是人們想出了使用獨熱編碼的方式來表示單詞。浙江 [0,0,0,0,0,0,0,1,0,......0,0,0,0,0,0,0] 江蘇 [0,0

自然語言處理之word2vec原理詞向量生成

前言 word2vec是如何得到詞向量的?這個問題比較大。從頭開始講的話,首先有了文字語料庫,你需要對語料庫進行預處理,這個處理流程與你的語料庫種類以及個人目的有關,比如,如果是英文語料庫你可能需要大小寫轉換檢查拼寫錯誤等操作,如果是中文日語語料庫你需

word2vec 原理

轉自:http://www.cnblogs.com/iloveai/p/word2vec.htmlSVD分解:低維詞向量的間接學習既然基於co-occurrence矩陣得到的離散詞向量存在著高維和稀疏性的問題,一個自然而然的解決思路是對原始詞向量進行降維,從而得到一個稠密的連

深度學習----NLP-fastext原理細解

文章目錄 @[toc] 1. 前言 2. FastText原理 2.1 模型架構 2.2 層次SoftMax 2.3 N-gram子詞特徵

Word2Vec原理推導

本文摘錄整編了一些理論介紹,推導了word2vec中的數學原理;並考察了一些常見的word2vec實現,評測其準確率等效能,最後分析了word2vec原版C程式碼;針對沒有好用的Java實現的現狀,移植了原版C程式到Java。時間和水平有限,本文沒有就其發展歷史展開多談,

Word2Vec原理分析

目錄 六、總結 CBOW: glove 一、Doc2vec 可以直接將Sentence/Document中所有詞的向量取均值作為Sentence/Document的向量表示,但是這樣會忽略了單詞之間的排列順序對

Word2Vec原理及代碼

path 神經元 容易 num pyplot -h 改變 exist 除了 一、分布式詞表示(Distributed Represantation)   Word2Vec 是 Google 於 2013 年開源推出的一個用於獲取 word vector 的工具包,具

[Algorithm & NLP] 文本深度表示模型——word2vec&doc2vec詞向量模型

www. 頻率 cbo homepage 算法 文章 有一個 tro 概率 閱讀目錄 1. 詞向量 2.Distributed representation詞向量表示 3.詞向量模型 4.word2vec算法思想 5.doc2vec算法思

NLP漢語自然語言處理原理與實踐》結構圖

自然語言處理 後續博客會根據上面的圖 結合一些其他資料更新 自然語言處理的朋友多多交流《NLP漢語自然語言處理原理與實踐》結構圖

word2vec 中的數學原理二 預備知識 霍夫曼樹

append 哈夫曼編碼 har html ant 世界 word2vec tree plus 主要參考: word2vec 中的數學原理詳解 自己動手寫 word2vec 編碼的話,根是不記錄在編碼中的 這一篇主要講的就是

word2vec 中的數學原理三 背景知識 語言模型

tps 詳解 art 技術 nbsp log 分享圖片 word2vec 自己 主要參考: word2vec 中的數學原理詳解 自己動手寫 word2vec word2vec 中的數學原理三 背景知識 語言模型