丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
人工智能開發(fā)者 正文
發(fā)私信給AI研習社-譯站
發(fā)送

0

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

本文作者: AI研習社-譯站 2018-06-19 14:43
導語:讓我們推導、舉例和用數(shù)學方法來闡釋 word2vec。

雷鋒網按:本文為雷鋒網字幕組編譯的技術博客,原標題 A、Word2Vec?—?a baby step in Deep Learning but a giant leap towards Natural Language Processing,作者為機器學習工程師 Suvro Banerjee

翻譯 | 于志鵬 林驍    校對 | 程思婕   整理  |  孔令雙

原文鏈接:

https://towardsdatascience.com/word2vec-a-baby-step-in-deep-learning-but-a-giant-leap-towards-natural-language-processing-40fe4e8602ba

引言

Word2Vec 模型用來學習單詞的向量表示,我們稱為「詞嵌入」。通常作為一種預處理步驟,在這之后詞向量被送入判別模型(通常是 RNN)生成預測結果和執(zhí)行各種有趣的操作。 

為什么要學習 word2vec

圖像和聲音處理系統(tǒng)所需豐富、高維的數(shù)據集,按各原始圖像的像素強度被編碼為向量的形式,所有信息都被編碼在這樣的數(shù)據中,因此就可以在系統(tǒng)中建立各種實體(如 cat 和 dog)之間的關系。

但是,傳統(tǒng)的自然語言處理系統(tǒng)通常將單詞視為離散的原子符號,所以 cat 可以被表示為 Id537,dog 可以表示為 Id143。這些編碼是任意的并且不能向系統(tǒng)提供任何關于各個原子符號之間關系的信息。這意味著,模型在處理 dogs 的數(shù)據時不能與模型已經學習過的 cats 的特征聯(lián)系起來(如它們都有是動物,都有四條腿,都是寵物等等)。

將單詞表示為唯一的、離散的 ID 還會進一步導致數(shù)據稀疏,還意味著我們可能需要更多的數(shù)據才能成功訓練統(tǒng)計模型。使用向量表示就可以避免這些問題。

讓我們來看一個例子 

傳統(tǒng)的 NLP 方法涉及許多語言學領域知識,要求你理解諸如「音素」及「詞素」等術語,因為語言學中有很多分類,音素學和詞素學是其中的兩種。讓我們來看看傳統(tǒng)的 NLP 方法如何嘗試理解下面的單詞。 

假設我們要獲取關于單詞的一些信息(諸如它所表達的情緒、它的定義等),運用語言學的方法我們將詞分為 3 個部分。即前綴、后綴、詞干。

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

比如,我們知道「un」前綴表示相反或否定的意思,我們也知道「ed」可以指定表示單詞的時態(tài)(過去時)。我們可以從「interest」的詞干中很容易的推斷出整個詞的含義和表達的情感. 是不是非常簡單?然而,當考慮所有不同的前后綴時需要非常嫻熟的語言學家來理解所有可能組合的含義。

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

深度學習,本質上就是表示學習。我們將要采用一些方法通過大數(shù)據集的訓練來創(chuàng)建單詞的表示。

詞向量

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

假設我們用一個 d 維向量表示每一個單詞,假設 d=6。我們想要為句子中的每個不重復單詞創(chuàng)建單詞詞向量。

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

現(xiàn)在來考慮一下如何賦值,我們希望可以用某種方式來表示這個單詞和它的上下文、含義、語義。一種方法是創(chuàng)建一個共生矩陣。 

共生矩陣是這樣一種矩陣,它包含這個詞在所有語料庫(或訓練集)中和所有其他詞組合出現(xiàn)的次數(shù)。我們來看一下共生矩陣的樣子。

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

通過上面這個簡單的共生矩陣的例子,我們可以獲得很多相當有用的信息。比如,我們注意到「love」和「like」這兩個詞向量中都含有若干個 1,這是對他們所接名詞(NLP 和 dogs)的記數(shù)。對「I」的記數(shù)也含若干個1,因此表明這個單詞一定是某個動詞。當處理多句的大數(shù)據集時,你可以想象這種相似性會變得更加清晰,比如「like」、「love」和其他同義詞將具有相似的詞向量,因為他們在相似的語境中。 

目前,雖然我們有了一個很好的開端,但是我們也要注意到每個單詞的維度將隨著語料庫的增大而線性增加。如果我們有 100 萬個單詞 (在 NLP 的標準中并不是很多),我們將會有一個 100 萬*100 萬大小的矩陣,并且是非常稀疏的(大量 0 元素)。在存儲效率方面這個顯然不是最好的方案。在尋找表示這些詞向量的最佳方法中有很多改進。其中最著名的就是 Word2Vec 。

正式介紹 

向量空間模型(VSMs)在連續(xù)向量空間中表示(嵌入) 單詞,其中語義相似的單詞被映射到臨近點(嵌入在彼此附近)。VSMs 在 NLP 發(fā)展中有著悠久的歷史,但都依賴于分布式假設,該假設指出,出現(xiàn)在相同語境中的單詞具有相似語義。利用這一原則的方法可以分為兩類:

  1. 1.基于記數(shù)的方法(例如:潛在語義的分析);

  2. 2.預測方法(例如:神經概率語言模型)

他們的區(qū)別是--

用計數(shù)的方法計算某個詞在大型文本語料庫中與其相鄰詞匯共同出現(xiàn)的頻率的統(tǒng)計數(shù)據,然后將這些統(tǒng)計數(shù)據的每個詞映射為小且密集的向量。  

預測模型直接嘗試根據學習的小密集嵌入向量(考慮模型的參數(shù))來預測來自其鄰居的單詞。

 Word2vec 是一種特別有效的計算預測模型,用于從原始文本中學習單詞嵌入。它有兩種形式,即連續(xù)字袋模型(CBOW)和 the Skip-Gram 模型。在算法上,這些模型是相似的,除了 CBOW 從源上下文單詞中預測目標單詞,而 the skip-Gram 相反并預測來自目標單詞源上下文的單詞。

在接下來的討論中,我們將重點討論 skipg 模型。

數(shù)學運用  

傳統(tǒng)上,神經概率語言模型使用最大似然原理進行訓練,以 softmax 函數(shù)的形式使給定前面的單詞 h(「history」)的下一個單詞 wt(「target」)的概率最大化。

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

利用 score(wt, h) 計算目標詞 wt 與上下文 h 的兼容性(通常使用點積運算)。

我們通過在訓練集上最大化它的對數(shù)似然來訓練這個模型。所以,我們最大化以下?lián)p失函數(shù)。

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

這為語言建模提供了一個合適的標準化概率模型。  

這個相同的論點也可以用稍微不同的公式來表示,它清楚地顯示了為了使這個目標最大化而改變的變量(或參數(shù))。  

我們的目標是找到一些詞匯表示,這些詞匯可以用于預測當前單詞的周圍詞匯。特別是,我們希望最大化我們整個語料庫的平均對數(shù)概率:

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

這個方程從本質上說,有一些概率 p 觀察當前單詞 wt 的大小為 c 的窗口內的特定單詞。這個概率取決于當前單詞 wt 和參數(shù)θ的一些設置(由我們的模型確定)。我們希望設置這些參數(shù)θ,以便在整個語料庫中這個概率最大化。

基本參數(shù)化:Softmax 模型 

基本 skip-gram 模型定義了通過 softmax 函數(shù)的概率 p,正如我們前面看到的那樣。如果我們認為 wi 維數(shù)為 N 和θ的單熱編碼矢量,并且它是一個 N×K 矩陣嵌入矩陣,這表示我們的詞匯表中有 N 個詞,而我們學習的嵌入具有維數(shù) K,那么我們可以定義 -

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

值得注意的是,在學習之后,矩陣theta可以被認為是嵌入查找矩陣。

在架構方面,它是一個簡單的三層神經網絡。

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

  1. 搭建三層網絡結構(一個輸入層,一個隱藏層,一個輸出層)

  2. 傳入一個單詞,并讓它訓練其附近的單詞

  3. 移除輸出層,但保留輸入層和隱藏層

  4. 接著,從詞匯表中輸入一個單詞。隱藏層給出的輸出是輸入單詞的「單詞嵌入」

這種參數(shù)化有一個主要的缺點,限制了它在大型的語料庫中的用處。具體來說,我們注意到為了計算我們模型的單個正向通過,我們必須對整個語料庫詞匯進行總結,以評估 softmax 函數(shù)。對于大型數(shù)據集來說這是非常奢侈的,所以我們?yōu)榱擞嬎阈士紤]這個模型的替代近似。

提高計算效率

對于 word2vec 中的特征學習,我們不需要完整的概率模型。CBOW 和 skip-gram 模型是使用二分類目標(邏輯回歸)來訓練的,以在相同的上下文中將真實目標詞語(wt)與 k 個虛數(shù)(干擾)詞語 w 進行區(qū)分。

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

在數(shù)學上,該操作是對每個對象進行最大化。

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

當模型將高概率分配給真實詞,并將低概率分配給噪音詞,這個目標被最大化。 從技術上講,這被稱為負采樣,它提出的更新近似于極限中softmax函數(shù)的更新。 但是在計算上它特別有吸引力,因為計算損失函數(shù)現(xiàn)在只能根據我們選擇的噪音詞的數(shù)量(k)而不是詞匯表(V)中的所有單詞, 這使它訓練速度更快。 像Tensorflow這樣的軟件包使用了一種非常相似的損失函數(shù),稱為噪聲對比估計(NCE)損失。

Skip-gram 模型的直觀感受

作為一個示例,我們需要考慮數(shù)據集-

the quick brown fox jumped over the lazy dog

我們首先形成一個單詞數(shù)據集和它們出現(xiàn)的上下文?,F(xiàn)在,讓我們堅持使用 the vanilla 定義,并將「上下文」分別將單詞窗口定義為目標單詞左側和右側。使用窗口大小為 1,我們就有了 (context, target) 對的數(shù)據集。

([the, brown], quick), ([quick, fox], brown), ([brown, jumped], fox), ...

回想一下,skip-gram 會顛倒上下文和目標,并試圖從目標詞中預測每個上下文單詞,因此任務將從「quick」,「quick」和「fox」中預測「the」和「brown」」。  

因此我們的數(shù)據集成為(input,output),如下所示:

(quick, the), (quick, brown), (brown, quick), (brown, fox), ...

目標函數(shù)是在整個數(shù)據集上定義的,但我們通常使用隨機梯度下降(SGD)對每個示例(或 batch_size 示例的「minibatch」進行優(yōu)化,其中通常為 16 <= batch_size <= 512)進行優(yōu)化。讓我們來看一下這個過程的一個步驟。

讓我們想象一下,在訓練步驟中,我們觀察上面的第一個訓練案例,其中的目標是快速預測。我們通過從一些噪聲分布(通常是單字符分布)中選擇 num_noise 噪聲(對比)例子的數(shù)目來選擇(該單元假設每個詞語的出現(xiàn)與所有其他詞語的出現(xiàn)無關,也就是說我們可以將生成過程看作是一個骰子序列滾動序列 P(w)。

為了簡單起見,我們假設 num_noise = 1,我們選擇 sheep 作為一個干擾的例子。接下來我們計算這對觀察到的和有噪聲例子的損失,即在時間步驟「t」的目標變成 -

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

我們的目標是對嵌入參數(shù)θ進行更新以最大化該目標函數(shù)。 我們通過推導關于嵌入參數(shù)θ的損失梯度來做到這一點。

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

然后,我們通過向梯度方向的移動來更新嵌入參數(shù)。當這個過程在整個訓練集上重復時,這會對每個單詞產生「移動」嵌入向量的效果,直到模型成功地區(qū)分真實單詞和噪音單詞為止。

我們可以通過將它們向下投影到 3 維來可視化學習向量。當我們觀察這些可視化變量時,很明顯,這些向量捕獲了一些關于單詞的語義信息以及它們之間的關系,在實際應用上時非常有用的。

參考資料

  1. Word2Vec的Tensorflow實現(xiàn)

  2. 詞語和短語的分布式表征及其組合性 - Tomas Mikolov,Ilya Sutskever,Kai Chen,Greg Corrado 和 Jeffrey Dean 的研究論文

  3. Aneesh Joshi對word2vec的實用指南

  4. Adit Deshpande自然語言的評論

  5. Rohan Verma的語言模型

雷鋒網字幕組編譯。

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

Word2Vec —— 深度學習的一小步,自然語言處理的一大步

分享:
相關文章

知情人士

AI研習社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學習知識的門檻。(原雷鋒字幕組)
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說