[Embeding-3]综述:词嵌入以及与分布式语义模型的关联
1. 前言
近年來,在許多NLP任務中,無監督學習單詞嵌入已經取得了巨大的成功。他們的效果如此之好,以至于在許多NLP體系結構中,幾乎完全取代了更傳統的分布式表示,如LSA特征和Brown聚類。
可以看看2017的EMNLP和ACL會議,他們都及其關注詞嵌入,即使最近的ACL Communication,也直言道詞嵌入是NLP突破的催化劑,這時候我們不僅要仔細思考,詞嵌入真的需要如此的大肆宣傳嗎?
本綜述旨在深入了解單詞嵌入及其有效性。我們將討論它們的起源,比較流行的嵌入單詞模型和與之相關的挑戰,并嘗試回答/揭穿一些常見的問題和誤解。然后,我們將通過將它們與分布語義學中的文獻聯系起來,并強調實際上能夠解釋單詞嵌入模型成功的因素,來消除單詞嵌入的假象。
2. 詞嵌入簡史
向量空間模型自20世紀90年代以來一直被應用于分布語義學中,從那時起,我們已經看到了一個用于估計詞的連續表示的數字模型的發展,潛在dirichlet分配(LDA)和潛在語義分析(LSA)就是兩個典型技術。
詞嵌入一詞最初是由bengio等人創造的。2003年,他用神經語言模型和模型的參數訓練他們。然而,collobert和weston無疑是第一個在2008年的論文中展示了預先訓練過的單詞嵌入威力的研究學者,這是一個統一的自然語言處理架構,在該架構中,當在下游任務中使用時,他們將單詞嵌入作為一種非常有效的工具,同時也將其應用于解開今天許多方法所建立的神經網絡結構。Mikolov等人(2013年)通過創建Word2vec(一種能夠訓練和使用預訓練的詞嵌入的工具包)真正將嵌入單詞推向了前臺。2016年,Pennington等人向我們介紹了Glove,一組更具競爭力的預訓練詞嵌入模型,使得詞嵌入突然成為主流。
目前,詞匯嵌入被認為是少數成功應用于無監督學習的方法之一。他們不需要昂貴的詞性標注,這是主要優勢,它們可以從已經存在的未經標記的語料庫中派生出來新的詞向量表示。
3. 詞嵌入模型
- Embedding Layer :(Bengio et al., 2006)
自然地,每一個前饋神經網絡將詞匯作為輸入,并將它們作為向量嵌入到一個較低維的空間中,然后通過反向傳播對其進行微調,必然產生詞匯嵌入作為第一層的權重,這通常被稱為layer emdbeding。
像這樣的網絡和像word2vec這樣的方法的關鍵區別在于其計算復雜性,這解釋了為什么直到2013年,單詞嵌入才在nlp空間變得如此突出。近年來,計算能力的迅速發展和可承受性無疑幫助了它的出現。
Glove和Word2vec的訓練目標是另一個不同之處,相同之處兩者都是為了產生編碼一般語義關系的詞嵌入,并在許多下游任務中提供好處。相比之下,常規神經網絡通常產生特定于任務的嵌入,但在其他地方使用它們時存在局限性。
在接下來的模型對比中,約定一下符號是成立的:
4. Classic neural language model 經典的語言模型
Figure2:經典的自然語言模型(Bengio et al., 2003) one-shot編碼Bengio等人(2013[1])提出了最經典神經語言模型。[它由一個隱藏層的前饋神經網絡組成,該網絡可以預測圖2中序列中的下一個單詞。他們的模型最大化了我們上面描述的原型神經語言模型目標(為了簡單起見,省略了正則化項):
模型的輸出是f(wt,wt?1,?,wt?n+1);意味著p(wt|wt?1,?,wt?n+1)通過softmax計算的概率;n表示該該單詞所在序列的前n個單詞;畢竟Bengio想利用前n-1個單詞作為輸入,預測第n個單詞。
Bengio等人最先介紹的這種模型被稱為詞嵌入的先驅(就是emgbeding layer),即R空間中的實值詞對應的特征向量。他們的模型的基礎仍然可以在今天的神經語言和嵌入單詞的模型中找到。包括:
- Embedding Layer: 該層通過一個索引詞向量與詞嵌入矩陣相乘,從而生成詞嵌入;
- Intermediate Layer(s): 通過一個或多個層將輸入映射為中間層,例如,采用非線性全連接層將前n個單詞的詞嵌入連接;
- Softmax Layer:對應于單詞庫V,最終模型對每個word產生一個概率分布(概率最大的單詞對應的應該是下一個要預測的詞,訓練的目的就是使得概率最大的單詞逼近金標準);
Bengio等人也揭示了當時最先進模型遇到的兩個問題:
- 首先,可以利用LSTM進行替換,引入上下文的記憶,該方法被[6][7]所采用;
- 最終的SoftMax層(更準確地說,歸一化項)確定為網絡的主要瓶頸,因為計算SoftMax的成本與vocabulary 中的單詞數量成比例,而vocabulary通常包含數十萬個,百萬個words;
因此,在Large Vocaburary[9]上減輕計算SoftMax的成本是神經語言和嵌入單詞模型的主要挑戰/機遇之一。
5.?C&W model
Figure 3 :The C&W model without ranking objective (Collobert et al., 2011)在Bengio等人在神經語言模型方面的初步探索之后,隨著計算能力和算法還沒有達到能夠訓練大量詞匯的水平,對單詞嵌入的研究一直停滯不前。2008年,collobert和weston[4](就是c&w)證明了在足夠大的數據集上訓練的單詞嵌入具有語法和語義意義,并提高了下游任務的性能。在他們2011年的論文中,他們進一步解釋了這一點[8]。
為了避免計算昂貴的SoftMax,collobert和weston[4]的解決方案是使用一個可以替代的目標函數:而不是Bengio等人的交叉熵準則,該準則最大化給定前面n個詞的下一個詞的概率,Collobert和Weston訓練一個網絡輸出一個更高分數fθ,作為正確的單詞預測(而在Bengio的模型中可能是單詞序列)。為此,他們使用pairwise ranking criterion,如下所示:
在語料庫中,他們從所有可能的窗口X中采樣包含n個words的正確窗口x。然后,對于每個窗口x,他們生成一個錯誤的x)。進而,他們的目標是使模型輸出的分數之間的距離最大化,以獲得正確和錯誤的窗口,并留有1的margin。如果沒有ranking objective,他們的模型架構如圖3所示,類似Bengio等人的模型。
由此生成的的語言模型的embeding,已經擁有語義關聯,例如,國家聚集在一起,語法上相似的詞在vector空間中形成聚類效應。盡管ranking objective 舒緩了softmax的復雜性,他們保留了中間的全連接隱含層和hardTanh層,這仍然是計算代價的主要來源,在詞匯量|V|=130000情況下,訓練這樣的模型也需要幾周的時間。
6. Word2Vec
Word2vec可以說是最流行的嵌入模型。由于單詞嵌入是NLP深度學習模型的一個關鍵元素,因此一般認為它也屬于深度表示的一種。然而,從技術上講,word2vec并不被視為深度學習的一個組成部分,理由是它的架構既不深入,也不使用非線性(與bengio的模型和C&W模型相比)。
Mikolov等人[2]給出了學習單詞嵌入的兩種架構,與以前的模型相比,這種架構的計算成本更低。這些體系結構比Bengio和C&W模型有兩個主要優點;
- 丟棄了高昂的隱含層
-
允許語言模型考慮word的上下文,雖然最終目的就是為了學習word embeding
模型的成功不僅可以歸因于神經網絡結構差異,更重要的是來自于具體的訓練策略。
6.1?Continuous bag-of-words (CBOW)
Figure 4:ontinuous bag-of-words (Mikolov et al., 2013)與只能基于過去單詞序列進行預測的語言模型不同,CBOW的上下文策略明顯不受這種限制,如圖4所示。當我們看到他的目標函數的時候,更會恍然大悟。Mikolov等人將Bengio等人的生成模型變成了判別模型:
所以,談到該模型的時候,我們應該認識到,上下文和判別目標函數是他的創新點。當然,我們也會問,該模型仍然面臨Vocaburary中那么多words進行softmax的高昂操作。其實作者在原文中也進行了改進,提出了分層softmax及其近似的策略。
6.2?Skip-gram
Figure 5:Skip-gram (Mikolov et al., 2013)乍一看該模型,我們會感覺這就是CBOW的逆過程。通過目標函數也能看出來,確實是這樣:
不過,在真實用到他們時,還是有不同的。上一篇博客中也談到過,由于訓練方式的不同,CBOW在句法syntactic分析上效果顯著,skip-gram在語意semantic和句法syntactic性能都很優秀。
7.?GloVe
Figure 6: Vector relations captured by GloVe (Stanford)Glove在保留Word2vec優勢的同時,引入了全局的統計信息。在后面我會仔細分析Glove的成功原因。具體來說,Glove的創建者闡明兩個單詞的共現概率的比率(而不是它們的共現概率本身)是包含信息的,因此希望將這些信息編碼為矢量差異。為了實現這一點,他們提出了加權最小二乘目標J,其直接目的是減少兩個詞的矢量的點積與其共現次數的對數之間的差異:
其中,wi和bi表示第i個單詞的矢量和偏置;帶有~標識的wj和bj上下文第j個單詞對應的矢量和偏置;Xij指包含單詞j的上下文環境中出現單詞i的次數;f(Xij)是權重函數,對于很低的共現頻率將會賦予非常小的權重。
由于共現計數可以直接編碼在word-context共現矩陣中,所以Glove采用這樣的矩陣而不是整個語料庫作為輸入。
8.?Word embeddings vs. distributional semantics models?
Word2vec和Glove等嵌入詞模型因其具有規律性和顯著性優于傳統的分布語義模型(DSMs)而獲得了廣泛的應用。許多人把這歸因于word2vec的神經結構,或者它預測單詞的事實,而單詞似乎天生就比僅僅依靠共現計數有優勢。DSMs可以看作是計數模型,因為它們通過在共現矩陣上操作來“計數”單詞間的共現。相反,神經嵌入模型可以被看作是預測模型,因為它們試圖預測周圍的單詞。2014年,Baroni等人[11]證明,在幾乎所有任務中,預測模型始終優于計數模型。
但是,)Levy等人(2015)在英語維基百科上訓練所有模型,并根據常用的單詞相似性和類比數據集對其進行評估。得到了以下結論:
- Levy等人發現SVD——而不是單詞嵌入算法——在相似性任務上表現最好,而SGN【Skip-gram with Negative Sampling (SGNS)】在相似性數據集上表現最好。此外,與其他選擇相比,它們還揭示了超參數的重要性:超參數設置通常比算法選擇更重要,沒有哪一種算法能比其他方法更好。在更大的語料庫上進行訓練有助于完成某些任務。在6個案例中,有3個案例中,調整超參數更為有益。
- 有了正確的超參數,沒有一種方法比另一種方法具有一致的優勢。在Levy等人的所有比較任務中,SGNS優于Glove。這必須用細粒度處理,因為Glove在其他任務上表現得更好。CBOW在任何任務上都不優于SGN。
目前,研究學者對于word Embeding的初步經驗是:
不要在SVD中使用移位PPMI
不要“正確”使用SVD,即沒有特征向量加權(性能比特征值加權下降15點,p=0.5)。
在短上下文(窗口大小為2)中使用PPMI和SVD。
在SGNS中使用許多負樣本。
對于所有方法,務必使用上下文分布平滑(將unigram分布提高到α=0.75的冪次)。
一定要使用SGNS作為基線(強健、快速和廉價的訓練)。
嘗試在SGNS和Glove中添加上下文向量。
初步結論:
Levy等人的結果與普遍的共識相反,即單詞嵌入優于傳統方法。相反,它們表明無論使用單詞嵌入還是分布方法,它通常都沒有任何區別。真正重要的超參數得到了調整,并且使用了適當的預處理和后處理步驟。Jurafsky的小組[13],[14]最近的研究反映了這些發現,并說明SVD,而不是SGNS,通常是首選,對于準確的words presentation非常重要。
References:
[1]: Bengio, Y., Ducharme, R., Vincent, P., & Janvin, C. (2003). A Neural Probabilistic Language Model. The Journal of Machine Learning Research, 3, 1137–1155. http://doi.org/10.1162/153244303322533223
[2]: Mikolov, T., Corrado, G., Chen, K., & Dean, J. (2013). Efficient Estimation of Word Representations in Vector Space. Proceedings of the International Conference on Learning Representations (ICLR 2013), 1–12.
[3]: Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Distributed Representations of Words and Phrases and their Compositionality. NIPS, 1–9.
[4]: Collobert, R., & Weston, J. (2008). A unified architecture for natural language processing. Proceedings of the 25th International Conference on Machine Learning – ICML ’08, 20(1), 160–167. http://doi.org/10.1145/1390156.1390177
[5]: Pennington, J., Socher, R., & Manning, C. D. (2014). Glove: Global Vectors for Word Representation. Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing, 1532–1543. http://doi.org/10.3115/v1/D14-1162
[6]: Kim, Y., Jernite, Y., Sontag, D., & Rush, A. M. (2016). Character-Aware Neural Language Models. AAAI. Retrieved from http://arxiv.org/abs/1508.06615
[7]: Jozefowicz, R., Vinyals, O., Schuster, M., Shazeer, N., & Wu, Y. (2016). Exploring the Limits of Language Modeling. Retrieved from http://arxiv.org/abs/1602.02410
[8]: Collobert, R., Weston, J., Bottou, L., Karlen, M., Kavukcuoglu, K., & Kuksa, P. (2011). Natural Language Processing (almost) from Scratch. Journal of Machine Learning Research, 12 (Aug), 2493–2537. Retrieved from http://arxiv.org/abs/1103.0398
[9]: Chen, W., Grangier, D., & Auli, M. (2015). Strategies for Training Large Vocabulary Neural Language Models, 12. Retrieved from http://arxiv.org/abs/1512.04906
[10]: Levy, O., Goldberg, Y., & Dagan, I. (2015). Improving Distributional Similarity with Lessons Learned from Word Embeddings. Transactions of the Association for Computational Linguistics, 3, 211–225. Retrieved from https://tacl2013.cs.columbia.edu/ojs/index.php/tacl/article/view/570
[11]: Baroni, M., Dinu, G., & Kruszewski, G. (2014). Don’t count, predict! A systematic comparison of context-counting vs. context-predicting semantic vectors. ACL, 238–247. http://doi.org/10.3115/v1/P14-1023
[12]: Levy, O., & Goldberg, Y. (2014). Neural Word Embedding as Implicit Matrix Factorization. Advances in Neural Information Processing Systems (NIPS), 2177–2185. Retrieved from http://papers.nips.cc/paper/5477-neural-word-embedding-as-implicit-matrix-factorization
[13]: Hamilton, W. L., Clark, K., Leskovec, J., & Jurafsky, D. (2016). Inducing Domain-Specific Sentiment Lexicons from Unlabeled Corpora. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics. Retrieved from http://arxiv.org/abs/1606.02820
[14]: Hamilton, W. L., Leskovec, J., & Jurafsky, D. (2016). Diachronic Word Embeddings Reveal Statistical Laws of Semantic Change. arXiv Preprint arXiv:1605.09096.
總結
以上是生活随笔為你收集整理的[Embeding-3]综述:词嵌入以及与分布式语义模型的关联的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++函数如何操作堆栈指针esp
- 下一篇: 盖茨依然坐镇微软搜索团队 要与谷歌争高下