學習筆記(1) Word2vec

2021-10-08 11:21:54 字數 2092 閱讀 7700

優缺點優化方法

word2vec 是 word embedding 的方法之一,屬於 nlp 領域。

word embedding是將不可計算、非結構化的詞轉化為可計算、結構化的向量——詞向量。

word2vec 在整個 nlp 裡的位置可以用下圖表示:

one-hot encoder:自然語言處理經常把字詞轉為離散的單獨的符號。

對於詞袋模型,文字的語序特徵喪失,也就喪失了語義的資訊。分布式假說的提出解決了語義資訊的問題。該方法的思想是:上下文相似的詞,其語義也相似,隨後就有了基於上下文分布表示詞義的方法,這就是「詞空間模型「。word2vec可以將one-hot encoder轉化為低維度的連續值,也就是稠密向量,並且其中意思相近的詞將被對映到向量空間中相近的位置。而使用神經網路可以靈活的對上下文進行建模,也因此成為用的比較多的方法。

one-hot向量作為word2vec的輸入,通過word2vec訓練低維詞向量(word embedding)

我們要獲取的dense vector其實就是hidden layer的輸出單元。有的地方定為input layer和hidden layer之間的權重,其實說的是一回事。

詞袋模型(bag-of-words model)是最早的以詞語為基本處理單元的文字向量化演算法,即借助於詞典把文字轉化為一組向量。

基於詞袋的文字向量是根據詞出現的次數構建的。但是此向量與文字中單詞出現的順序沒有關係,只是一種頻率的表示,該方法易實現,但存在很大的問題:

最近詞袋模型也被應用在計算機視覺領域。詞袋模型被廣泛應用在檔案分類,詞出現的頻率可以用來當作訓練分類器的特徵。

通過上下文來**當前值。相當於一句話中扣掉乙個詞,來猜這個詞是什麼。cbow對小型資料庫比較合適。

所以,需要定義loss function(一般為交叉熵代價函式),採用梯度下降演算法更新w和w′。訓練完畢後,輸入層的每個單詞的one-hot向量與矩陣w相乘就得到自身的詞向量(word embedding),矩陣w(所有單詞的word embedding)也叫做look up table。有了look up table就可以免去訓練過程直接查表得到單詞的詞向量了。

用當前詞來**上下文。相當於給出乙個詞,來猜前面和後面可能出現什麼詞。skip-gram在大型語料中表現更好。

n元模型中,因為視窗大小的限制,導致超出視窗範圍的詞語與當前詞之間的關係不能被正確地反映到模型之中,如果單純擴大視窗大小又會增加訓練的複雜度。skip-gram 模型的提出很好地解決了這些問題。顧名思義,skip-gram 就是「跳過某些符號」。

例:句子「中國足球踢得真是太爛了」有4個3元片語,分別是「中國足球踢得」、「足球踢得真是」、「踢得真是太爛」、「真是太爛了」,可是我們發現,這個句子的本意就是「中國足球太爛」可是上述 4個3元片語並不能反映出這個資訊。skip-gram 模型卻允許某些詞被跳過,因此可以組成「中國足球太爛」這個3元片語。 如果允許跳過2個詞,即 2-skip-gram 。

訓練步驟:

說明:word2vec 是上一代的產物(18 年之前), 18 年之後想要得到最好的效果,已經不使用 word embedding 的方法了,所以也不會用到 word2vec。

優點:

缺點:

為提高速度,word2vec 經常採用 2 種加速方式:

參考文獻

表示學習1 word2vec

幾點基礎工作 distributed representation softmax function 函式公式 si ezj kk 1ezk for j 1,k 具體softmax function的特點可以參考softmax function 的特點和應用 word2vec 總體上,構建乙個多層神...

BERT學習過程記錄1 Word2vec

資料 自知乎,僅作摘錄之用 在聊 word2vec 之前,先聊聊 nlp 自然語言處理 nlp 裡面,最細粒度的是 詞語,詞語組成句子,句子再組成段落 篇章 文件。所以處理 nlp 的問題,首先就要拿詞語開刀。舉個簡單例子,判斷乙個詞的詞性,是動詞還是名詞。用機器學習的思路,我們有一系列樣本 x,y...

word2vec學習筆記

常見面試問題 問題 1,介紹一下 word2vec word2vec 的兩個模型分別是 cbow 和 skip gram,兩個加快訓練的 loss 是 hs hierarchical softmax 和負取樣。假設乙個訓練樣本是又核心詞 w和其上下文 context w 組成,那麼 cbow 就是用...