日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习(三)——Autoencoder, 词向量

發布時間:2023/12/20 pytorch 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习(三)——Autoencoder, 词向量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://antkillerfarm.github.io/

粗看起來,這類恒等變換沒有太大意義。然而這類恒等變換之所以能夠成立,最根本的地方在于,隱藏層的神經元具有表達輸出樣本的能力,也就是用低維表達高維的能力。反過來,我們就可以利用這一點,實現數據的降維操作。

但是,不是所有的數據都能夠降維,而這種情況通常會導致Autoencoder的訓練失敗。

和Autoencoder類似的神經網絡還有:Denoising Autoencoder(DAE)、Variational Autoencoder(VAE)、Sparse Autoencoder(SAE)。

參考:

http://ufldl.stanford.edu/tutorial/unsupervised/Autoencoders/

http://blog.csdn.net/changyuanchn/article/details/15681853

深度學習之autoencoder

http://www.cnblogs.com/neopenx/p/4370350.html

降噪自動編碼器(Denoising Autoencoder)

https://zhuanlan.zhihu.com/p/27549418

花式解釋AutoEncoder與VAE

https://mp.weixin.qq.com/s/lODy8ucB3Bw9Y1sy1NxTJg

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

詞向量

One-hot Representation

NLP是ML和DL的重要研究領域。但是多數的ML或DL算法都是針對數值進行計算的,因此如何將自然語言中的文本表示為數值,就成為了一個重要的基礎問題。

詞向量顧名思義就是單詞的向量化表示。最簡單的詞向量表示法當屬One-hot Representation

假設語料庫的單詞表中有N個單詞,則詞向量可表示為N維向量[0,,0,1,0,,0]

這種表示法由于N維向量中只有一個非零元素,故名。該非零元素的序號,就是所表示的單詞在單詞表中的序號。

One-hot Representation的缺點在于:

1.該表示法中,由于任意兩個單詞的詞向量都是正交的,因此無法反映單詞之間的語義相似度。

2.一個詞庫的大小是105以上的量級。維度過高,會妨礙神經網絡學習到稀疏特征。

Word Embedding

針對One-hot Representation的不足,Bengio提出了Distributed Representation,也稱為Word Embedding。

Word Embedding的思路如上圖所示,即想辦法將高維的One-hot詞向量映射到低維的語義空間中

Bengio自己提出了一種基于神經網絡的Word Embedding的方案,然而由于計算量過大,目前已經被淘汰了。

參考:

http://www.cnblogs.com/neopenx/p/4570648.html

詞向量概況

word2vec

除了Bengio方案之外,早期人們還嘗試過基于共生矩陣(Co-occurrence Matrix)SVD分解的Word Embedding方案。該方案對于少量語料有不錯的效果,但一旦語料增大,計算量即呈指數級上升。

這類方案的典型是Latent Semantic Analysis(LSA)。參見《機器學習(二十一)》。

Tomas Mikolov于2013年對Bengio方案進行了簡化改進,提出了目前最為常用的word2vec方案。

介紹word2vec的數學原理比較好的有:

《Deep Learning實戰之word2vec》,網易有道的鄧澍軍、陸光明、夏龍著。

《word2vec中的數學》,peghoty著。該書的網頁版:

http://blog.csdn.net/itplus/article/details/37969519

老慣例這里只對最重要的內容進行摘要。

CBOW & Skip-gram

上圖是word2vec中使用到的兩種模型的示意圖。

從圖中可知,word2vec雖然使用了神經網絡,但是從層數來說,只有3層而已,還談不上是Deep Learning。但是考慮到DL,基本就是神經網絡的同義詞,因此這里仍然將word2vec歸為DL的范疇。

注:深度學習不全是神經網絡,周志華教授提出的gcForest就是一個有益的另類嘗試。

研究一個神經網絡模型,最重要的除了神經元之間的連接關系之外,就是神經網絡的輸入輸出了。

CBOW(Continuous Bag-of-Words Model)模型和Skip-gram(Continuous Skip-gram Model)模型脫胎于n-gram模型,即一個詞出現的概率只與它前后的n個詞有關。這里的n也被稱為窗口大小.

上圖中,窗口大小為5,即一個中心詞{wt}+前面的兩個詞{wt?1,wt?2}+后面的兩個詞{wt+1,wt+2}

名稱CBOWSkip-gram
輸入{wt?1,wt?2,wt+1,wt+2}{wt}
輸出{wt}{wt?1,wt?2,wt+1,wt+2}
目標在輸入確定的情況下,最大化輸出值的概率。在輸入確定的情況下,最大化輸出值的概率。

Hierarchical Softmax

word2vec的輸出層有兩種模型:Hierarchical Softmax和Negative Sampling。

Softmax是DL中常用的輸出層結構,它表征多分類中的每一個分類所對應的概率

然而在這里,每個分類表示一個單詞,即:分類的個數=詞匯表的單詞個數。如此眾多的分類直接映射到隱層,顯然并不容易訓練出有效特征。

Hierarchical Softmax是Softmax的一個變種。這時的輸出層不再是一個扁平的多分類層,而變成了一個層次化的二分類層。

Hierarchical Softmax一般基于Huffman編碼構建。在本例中,我們首先統計詞頻,以獲得每個詞所對應的Huffman編碼,然后輸出層會利用Huffman編碼所對應的層次二叉樹的路徑來計算每個詞的概率,并逆傳播到隱藏層。

由Huffman編碼的特性可知,Hierarchical Softmax的計算量要小于一般的Softmax。

Negative Sampling

在CBOW模型中,已知w的上下文Context(w)需要預測w,則w就是正樣本,而其他詞是負樣本。

負樣本那么多,該如何選取呢?Negative Sampling就是一種對負樣本采樣的方法。

上圖是Negative Sampling的原理圖。L軸表示的是詞頻分布,很明顯這是一個非等距剖分。而M軸是一個等距剖分。

每次生成一個M軸上的隨機數,將之映射到L軸上的一個單詞。映射方法如上圖中的虛線所示。

除了word2vec之外,類似的Word Embedding方案還有SENNA、RNN-LM、Glove等。但影響力仍以word2vec最大。

Skip-Gram Negative Sampling,又被簡稱為SGNS。

doc2vec

我們知道,word是sentence的基本組成單位。一個最簡單也是最直接得到sentence embedding的方法是將組成sentence的所有word的embedding向量全部加起來。

顯然,這種簡單粗暴的方法會丟失很多信息。

doc2vec是Mikolov在word2vec的基礎上提出的一種生成句子向量的方法。

論文:

《Distributed Representations of Sentences and Documents》

http://cs.stanford.edu/~quocle/paragraph_vector.pdf

上圖是doc2vec的框架圖,可以看出doc2vec的原理與word2vec基本一致,區別僅在于前者多出來一個Paragraph Vector參與CBOW或Skip-gram的訓練。

Paragraph Vector可以和Word Vector一起生成,也可以單獨生成,也就是訓練時,采用預訓練的Word Vector,并只改變Paragraph Vector的值。

https://www.zhihu.com/question/33952003

如何通過詞向量技術來計算2個文檔的相似度?

FastText

Word2Vec作者Mikolov加盟Facebook之后,提出了文本分類新作FastText。

FastText模型架構和Word2Vec中的CBOW模型很類似。不同之處在于,FastText預測標簽,而CBOW模型預測中間詞。

http://www.algorithmdog.com/fast-fasttext

Github:

https://github.com/facebookresearch/fastText

Item2Vec

本質上,word2vec模型是在word-context的co-occurrence矩陣基礎上建立起來的。因此,任何基于co-occurrence矩陣的算法模型,都可以套用word2vec算法的思路加以改進。

比如,推薦系統領域的協同過濾算法。

協同過濾算法是建立在一個user-item的co-occurrence矩陣的基礎上,通過行向量或列向量的相似性進行推薦。如果我們將同一個user購買的item視為一個context,就可以建立一個item-context的矩陣。進一步的,可以在這個矩陣上借鑒CBoW模型或Skip-gram模型計算出item的向量表達,在更高階上計算item間的相似度。

論文:

《Item2Vec: Neural Item Embedding for Collaborative Filtering》

word2vec/doc2vec的缺點

1.word2vec/doc2vec基于BOW(Bag Of Word,詞袋)模型。該模型的特點是忽略詞序,因此對于那些交換詞序會改變含義的句子,無法準確評估它們的區別。

總結

以上是生活随笔為你收集整理的深度学习(三)——Autoencoder, 词向量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。