word2vec與深度學習 隨記

2021-09-24 07:41:36 字數 1927 閱讀 9246

fasttext就是一種word2vec,只不過fasttext更加目標化。

給你前面的句子,我來告訴你應該回答什麼。不一定是句子,可以是字或符號。

這裡有乙個問題,如果你把每個單字作為模型輸入的話,你把x1,x2,x3輸入分類器,而分類器每次只能處理乙個x。例如當你輸入"你",我告訴你下乙個字是"瞅",你告訴我"瞅",我告訴你下乙個字是"啥",你告訴我"啥",我告訴你"瞅你咋地?!",用人的思維想就知道,這是不可能的,因為歧義太多了,如果我們是乙個乙個塞進我們的分類器的話,他們之間的關係是不能被保證的,不知道整個語境有多長,不知道語境下面它到底是什麼意思,這時我們需要一種帶記憶的神經網路來解決這個問題。

x1輸入保留它的狀態,x2輸入保留它的狀態,x3輸入後,輸出整體的ot

s是指記憶的狀態。

如果說我的(context)對話非常長,例如今天吃 吃的怎麼樣,今天天氣 天氣怎麼樣,然後你又問剛剛 穿山甲說了什麼?對於這種情況,如果我們只考慮前面的對話的話,穿山甲說了什麼?你是完全不記得的。穿山甲說的話在很早之前就說過了,而現在又有人問這句話,最好的方式是 比如說把整個對話句子都囊括進rnn的n(context裡面),但這件事有個非常大的問題是不經濟實惠,要花太多的計算量來記住太多的東西。對於這問題怎麼辦,於是就有個rnn的公升級版lstm。

rnn的n(context)是要設定的,你要告訴它看有多長的路要看,多長的歷史要看,把xt的關聯關係都得考慮上。

題目原型:what's next? 可以在不同的維度上:

把乙個句子看成一幅畫,然後用卷積神經網路來看這幅畫。

用濾鏡處理出各種不同的特徵圖

每個詞處理成6維的向量,每個句子組成乙個矩陣,矩陣的高是句子的長,寬是詞向量。

把每個句子做成特徵向量,然後用乙個一維的filter來掃瞄。

rnn它認為它是在模擬我們人類在看到句子的時候是乙個單詞乙個單詞進入我們的眼睛的。rnn被用在生成模型上。對生成而言我們是不能容忍語病存在的,我們要保證每句話從頭到尾邏輯嚴謹,前後之間關係都是好的。

我們人在看到一句話時,是以一幅畫的形式進入眼睛的。cnn被用在分類模型上。cnn可以把語病的句子也模擬的很好,就是說意思上相近的東西,都能被cnn認為是一種分類。對分類而言我們要容忍語病的存在。

上面句子中的關鍵字(看,話,感)當做是注意力。

我們該如何申請乙個filter。申請乙個3*3的filter在矩陣的中心會工作的很好,但是在矩陣的邊際會怎樣呢?矩陣的第乙個元素,其頂部和左邊都沒有相鄰元素,你該如何將filter應用到這樣的元素上?你可以使用zero-padding(0填充)所有落到矩陣以外的元素都將用0代替。這樣你就可以將filter應用到你輸入的任何矩陣中了,並且可以得到乙個更大或等大的矩陣作為輸出。新增zero-padding也被稱為wide convolution,而不使用zero-padding的將稱為narrow convolution。下圖是乙個1維的例子:

narrow vs. wide convolution. filter size 5, input size 7. source: a convolutional neural network for modelling sentences (2014)

當你的filter比輸入的size還大時,你可以看到wide convolution是多麼的有用,甚至說是必須的。如上所示,narrow convolution產出的尺寸是(7-5)+1=3,而wide convolution產出尺寸是(7+2*4-5)+1=11。通常,輸出尺寸的規則表示式為:

stride size,定義了你的filter在每步中滑動多少。上面提到的所有例子中都是預設為1,並且是連續重疊的應用filter。stride size越大,filters的應用次數就會越少,輸出的size就會越小。下圖描述了stride size分別為1和2,應用到1維的輸入上:

在上圖我們可以看到乙個典型的stride size為1的convolution,而更大的stride size可以讓你建立乙個類似與rnn結構的模型,也就是看起來像一棵樹。

與word2vec 原來word2vec那麼簡單

說到word2vec,它可謂非結構化資料裡面的佼佼者,尤其是在推薦和nlp當中,足以體現它的優勢所在,並且多年一直備受工業界喜愛.那麼word2vec到底是怎麼個原理的,發現身邊總是有很多人問,確不能準確的說出為什麼是兩個矩陣,到底是怎麼自動反向傳播的,以及對於softmax之後那麼大的維度資料,是...

word2vec學習參考

最近看nlp的東西比較多。就拿現在google 基於神經網路做的 word2vec 作為部落格的開始吧,今後會陸陸續續補充內容。基本是分4塊內容 1.神經網路語言模型 2.語言模型分層優化 3.word2vec 原理 4.google word2vec 看一點寫一點,先扔些參考資料鏈接上去。附上在研...

word2vec學習筆記

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