對於word embedding的理解和感悟1

2021-09-16 12:53:49 字數 2540 閱讀 4061

地點:武漢

狀態:離職在家

今天天氣很好,陽光照射到綠葉上,一片興興向榮。不談未來職業規劃,不論工作面試準備,拋去這些讓人疲憊的東西,突然想回歸到純粹知識的本質之中。

復興的深度學習讓人們試圖用計算機模擬人類的感知,認知,決策和自我學習能力。計算機能處理的東西只有數字,所以我們第一步是要把現實世界的東西用數字盡可能的描述出來。比如:一張圖可以表示成三維(長,寛,通道數(rgb)),而對於文字而言,如何用數字描述一段文字場景下的字,詞,句子,甚至是整幅篇章,這是nlp的乙個熱門研究領域。word-embedding乃方法之一。

舉個例子作為引子:如何定義「人」?《馬克思恩格斯選集》中說道:「人的本質是一切社會關係的總和」。人脫離了社會關係無法體現其意義,同理,詞(字等類似)也可以參照這個思路,即:使用詞的上下文來表示其含義(基於一種分布假說理論上下文相似的詞,其語義也相似

emmm,於是,現在問題變成了,我們需要定義一種詞表示模型來描述其上下文(即描述詞的本身)

(1)基於矩陣的分布表示

lsa,glove等。

(2)基於聚類的分布表示

略(3)基於神經網路的分布表示

我們來重點討論基於神經網路的分布表示。代表演算法:word2vec(skip-gram,cbow),elmo,gpt,bert。

相較於前者,這類演算法的最大優勢:可以用來表達複雜的上下文。(本質區別:不在統計詞頻,而是用模型擬合的方式逼近真實的分布)

其實,基於nn的所有方法都是在訓練語言模型(lm)的同時,順便得到詞向量的。

那麼什麼是語言模型任呢?

語言模型通常構建為字串s的概率分布p(s),這裡的p(s)實際上反映的是s作為乙個句子出現的概率。

這裡的概率指的是組成字串的這個組合,在訓練語料**現的似然,與句子是否合乎語法無關。假設訓練語料來自於人類的語言,那麼可以認為這個概率是的是一句話是否是人話的概率。

對於乙個由t個詞按順序構成的句子

從上面可以看到,乙個統計語言模型可以表示成,給定前面的的詞,求後面乙個詞出現的條件概率。

如何求解上述問題呢?

(1)自由引數數目:

假定字串中字元全部來自與大小為v的詞典,上述例子中我們需要計算所有的條件概率,對於所有的條件概率,這裡的w都有v種取值,那麼實際上這個模型的自由引數數目量級是v^6,6為字串的長度。

從上面可以看出,模型的自由引數是隨著字串長度的增加而指數級暴增的,這使我們幾乎不可能正確的估計出這些引數。

(2)資料稀疏性:

從上面可以看到,每乙個w都具有v種取值,這樣構造出了非常多的詞對,但實際中訓練語料是不會出現這麼多種組合的,那麼依據最大似然估計,最終得到的概率實際是很可能趨近於0。

為了解決傳統語言模型的問題,提出n-gram語言模型與神經網路語言模型

重點-引入了馬爾科夫假設,即:隨意乙個詞出現的概率只與它前面出現的有限的n個詞有關。其他計算類似,

n=1,一元語言模型

n=2,一階馬爾科夫鏈,此時自由引數數量級是v^2

n=3,即乙個詞的出現僅與它前面的兩個詞有關,叫三元語言模型,也叫二階馬爾科夫鏈,此時自由引數數量級是v^3

n-gram語言模型的求解跟傳統統計語言模型一致,都是求解每乙個條件概率的值,簡單計算n元語法在語料**現的頻率,然後歸一化

我們在傳統統計語言模型提出了兩個問題:自由引數數目和資料稀疏,上述n-gram只是解決了第乙個問題,而平滑化就是為了解決第二個問題。

假設有乙個片語在訓練語料中沒有出現過,那麼它的頻次就為0,但實際上能不能認為它出現的概率為0呢?顯然不可以,我們無法保證訓練語料的完備性。那麼,解決的方法是什麼?如果我們預設每乙個片語都出現1次呢,無論片語出現的頻次是多少,都往上加1,這就能夠解決概率為0的問題了。

上述的方法就是加1平滑,也稱為拉普拉斯平滑。

n-gram缺陷:

無法建模更遠的關係。

無法建模出詞之間的相似度。

訓練語料裡面有些 n 元組沒有出現過,其對應的條件概率就是 0,導致計算一整句話的概率為 0。解決這個問題有兩種常用方法: 平滑法和回退法。

學習任務是輸入某個句中單詞

前面任意單詞

公式如下:

輸入層:

隱層:

輸出層:

接下篇見word2vec

Word Embedding 知識總結

一 word embedding的基本概念 二 word embedding的型別 word embedding也是有流派的,主流有以下兩種 1 基於頻率的word embedding frequency based embedding 2 基於 的word embedding prediction...

理解詞嵌入WordEmbedding

詞嵌入,英文為 word embedding,這是語言表示的一種方式。它可以讓演算法理解一些類似的詞。我們可以用one hot向量來表示詞,如下圖所示。這種表示方式,我們需要首先獲取乙個字典,比如字典中有100000個詞。對每乙個詞,都得到乙個向量,其中該詞對應位置上置一,其他位置置零。比如man這...

什麼是詞嵌入(word embedding)

整理自知乎 embedding在數學上表示乙個maping,f x y,也就是乙個function。其中該函式是 那麼對於word embedding,就是將單詞word對映到另外乙個空間,其中這個對映具有injective和structure preserving的特點。通俗的翻譯可以認為是單詞嵌...