您好,登錄后才能下訂單哦!
Word2Vec是如何工作的及和LDA有什么區別與聯系,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
Question:Word2Vec是如何工作的?它和LDA有什么區別與聯系?
CBOW的目標是根據上下文出現的詞語來預測當前詞的生成概率,如圖(a)所示;而Skip-gram是根據當前詞來預測上下文中各詞的生成概率,如圖(b)所示。
Word2Vec的兩種網絡結構
其中w(t)是當前所關注的詞,w(t?2)、w(t?1)、w(t+1)、w(t+2)是上下文中出現的詞。這里前后滑動窗口大小均設為2。
CBOW和Skip-gram都可以表示成由輸入層(Input)、映射層(Projection)和輸出層(Output)組成的神經網絡。
輸入層中的每個詞由獨熱編碼方式表示,即所有詞均表示成一個N維向量,其中N為詞匯表中單詞的總數。在向量中,每個詞都將與之對應的維度置為1,其余維度的值均設為0。
在映射層(又稱隱含層)中,K個隱含單元(Hidden Units)的取值可以由N維輸入向量以及連接輸入和隱含單元之間的N×K維權重矩陣計算得到。在CBOW中,還需要將各個輸入詞所計算出的隱含單元求和。
同理,輸出層向量的值可以通過隱含層向量(K維),以及連接隱含層和輸出層之間的K×N維權重矩陣計算得到。輸出層也是一個N維向量,每維與詞匯表中的一個單詞相對應。最后,對輸出層向量應用Softmax激活函數,可以計算出每個單詞的生成概率。Softmax激活函數的定義為
其中x代表N維的原始輸出向量,xn為在原始輸出向量中,與單詞wn所對應維度的取值。
接下來的任務就是訓練神經網絡的權重,使得語料庫中所有單詞的整體生成概率最大化。從輸入層到隱含層需要一個維度為N×K的權重矩陣,從隱含層到輸出層又需要一個維度為K×N的權重矩陣,學習權重可以用反向傳播算法實現,每次迭代時將權重沿梯度更優的方向進行一小步更新。但是由于Softmax激活函數中存在歸一化項的緣故,推導出來的迭代公式需要對詞匯表中的所有單詞進行遍歷,使得每次迭代過程非常緩慢,由此產生了Hierarchical Softmax和NegativeSampling兩種改進方法。訓練得到維度為N×K和K×N的兩個權重矩陣之后,可以選擇其中一個作為N個詞的K維向量表示。
Word2Vec與LDA的區別和聯系
首先,LDA是利用文檔中單詞的共現關系來對單詞按主題聚類,也可以理解為對“文檔-單詞”矩陣進行分解,得到“文檔-主題”和“主題-單詞”兩個概率分布。而Word2Vec其實是對“上下文-單詞”矩陣進行學習,其中上下文由周圍的幾個單詞組成,由此得到的詞向量表示更多地融入了上下文共現的特征。也就是說,如果兩個單詞所對應的Word2Vec向量相似度較高,那么它們很可能經常在同樣的上下文中出現。需要說明的是,上述分析的是LDA與Word2Vec的不同,不應該作為主題模型和詞嵌入兩類方法的主要差異。主題模型通過一定的結構調整可以基于“上下文-單詞”矩陣進行主題推理。同樣地,詞嵌入方法也可以根據“文檔-單詞”矩陣學習出詞的隱含向量表示。主題模型和詞嵌入兩類方法最大的不同其實在于模型本身,主題模型是一種基于概率圖模型的生成式模型,其似然函數可以寫成若干條件概率連乘的形式,其中包括需要推測的隱含變量(即主題);而詞嵌入模型一般表達為神經網絡的形式,似然函數定義在網絡的輸出之上,需要通過學習網絡的權重以得到單詞的稠密向量表示。
看完上述內容,你們掌握Word2Vec是如何工作的及和LDA有什么區別與聯系的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。