深度学习与自然语言处理
(純屬為了記錄自己學(xué)習(xí)的點(diǎn)滴過(guò)程,引用資料都附在參考列表)
1 傳統(tǒng)方法的局限
1.1 傳統(tǒng)方法的套路
傳統(tǒng)方法的處理流程簡(jiǎn)單來(lái)說(shuō)就是:特征提取+傳統(tǒng)機(jī)器學(xué)習(xí)模型訓(xùn)練;
特征提取:
使用了特征模板、TF-IDF、詞袋向量等特征提取方法;
常用的機(jī)器學(xué)習(xí)模型:
HMM、perceptron、CRF、NBM、SVM;
這些方法屬于普遍規(guī)律,要解決具體的nlp問題還需要具體問題具體分析(特殊規(guī)律),nlp難就難在這個(gè)地方,你找不到稍微普適一點(diǎn)公式可以套用很多問題。就好比韓寒說(shuō)過(guò)的一句話,懂得很多道理,但還是過(guò)不好這一生。所以學(xué)習(xí)人工智能也沒有什么捷徑,就是keep your hands dirty,讓你的手沾滿數(shù)據(jù),不斷在真實(shí)的問題中踩坑,坑踩多了就有經(jīng)驗(yàn)了。
1.2 局限性
- 數(shù)據(jù)稀疏
統(tǒng)計(jì)機(jī)器學(xué)習(xí)的前提假設(shè)是隨機(jī)現(xiàn)象是大量發(fā)生、具有某種平均特性,如果發(fā)生一次兩次,就不適合概率統(tǒng)計(jì)框架。
首先,傳統(tǒng)的機(jī)器學(xué)習(xí)方法不善于處理數(shù)據(jù)稀疏問題,這在自然語(yǔ)言處理領(lǐng)域顯得尤為突出,語(yǔ)言是離散的符號(hào)系統(tǒng),每個(gè)字符、單詞都是離散型隨機(jī)變量。我們通常使用獨(dú)熱向量(one-hot)來(lái)將文本轉(zhuǎn)化為向量表示,指的是只有一個(gè)元素為1,其他元素全部為 0 的二進(jìn)制向量。 - 特征模板
一方面特征模板同樣會(huì)帶來(lái)數(shù)據(jù)稀疏,另一方面高級(jí)的NLP任務(wù)需要更復(fù)雜的特征,這對(duì)手工設(shè)計(jì)特征模板是個(gè)很大的挑戰(zhàn)。 - 誤差傳播
現(xiàn)實(shí)世界中的項(xiàng)目,往往涉及多個(gè)自然語(yǔ)言處理模塊的組合。比如在情感分析中,需要先進(jìn)行分詞,然后進(jìn)行詞性標(biāo)注,根據(jù)詞性標(biāo)注過(guò)濾掉一些不重要的詞,最后送入到樸素貝葉斯或者支持向量機(jī)等機(jī)器學(xué)習(xí)模塊進(jìn)行分類預(yù)測(cè)。這種流水線式的作業(yè)方式存在嚴(yán)重的誤差傳播問題。
2 深度學(xué)習(xí)的優(yōu)勢(shì)
2.1 深度學(xué)習(xí)的精髓
深度學(xué)習(xí)(Deep Leaming, DL )屬于表示學(xué)習(xí)( Representation Learning )的范疇,指的是利用具有一定“深度”的模型來(lái)自動(dòng)學(xué)習(xí)事物的向量表示(vectorial rpresenation)的一種學(xué)習(xí)范式。目前,深度學(xué)習(xí)所采用的模型主要是層數(shù)在一層以上的神經(jīng)網(wǎng)絡(luò)。如果說(shuō)在傳統(tǒng)機(jī)器學(xué)習(xí)中,事物的向量表示是利用手工特征模板來(lái)提取稀疏的二進(jìn)制向量的話,那么在深度學(xué)習(xí)中,特征模板被多層感知機(jī)替代。而一旦問題被表達(dá)為向量,接下來(lái)的分類器一樣可以使用單層感知機(jī)等模型,此刻深度學(xué)習(xí)與傳統(tǒng)手法毫無(wú)二致,殊途同歸。所以說(shuō)深度學(xué)習(xí)并不神秘,通過(guò)多層感知機(jī)提取向量才是深度學(xué)習(xí)的精髓。
2.2 用稠密向量解決數(shù)據(jù)稀疏
神經(jīng)網(wǎng)絡(luò)的輸出為樣本 x 的一個(gè)特征向量 h。由于我們可以自由控制神經(jīng)網(wǎng)絡(luò)隱藏層的大小,所以在隱藏層得到的 h 的長(zhǎng)度也可以控制。即便輸人層是詞表大小的獨(dú)熱向量、維度高達(dá)數(shù)十萬(wàn),隱藏層得到的特征向量依然可以控制在很小的體積,比如100維。
這樣的 100 維向量是對(duì)詞語(yǔ)乃至其他樣本的抽象表示,含有高度濃縮的信息。相較于獨(dú)熱向量,h的每一維不再對(duì)應(yīng)特征模板中的某個(gè)特征,而可能代表某些特征的組合強(qiáng)度。
正因?yàn)橥ㄟ^(guò)多層學(xué)習(xí)得到的稠密向量短小精悍,其對(duì)應(yīng)了低微空間中的一個(gè)點(diǎn)。無(wú)論數(shù)據(jù)所處的原始空間的維數(shù)有多高、數(shù)據(jù)的分布有多稀疏,將其映射到低維空間后,彼此的距離就會(huì)縮小,相似度就體現(xiàn)出來(lái)了。
2.3 用多層網(wǎng)絡(luò)自動(dòng)提取特征表示
神經(jīng)網(wǎng)絡(luò)兩層之間一般全部連接(全連接層),并不需要人們根據(jù)具體問題具體設(shè)計(jì)連接方式。這些隱藏層會(huì)根據(jù)損失函數(shù)的梯度自動(dòng)調(diào)整多層感知機(jī)的權(quán)重矩陣,從而自動(dòng)學(xué)習(xí)到隱陬層的特征表示。
該過(guò)程完全不需要人工干預(yù),也就是說(shuō)深度學(xué)習(xí)從理論上剝奪了特征模板的用武之地。
2.4 端到端的設(shè)計(jì)
由于神經(jīng)網(wǎng)絡(luò)各層之間、各個(gè)神經(jīng)網(wǎng)絡(luò)之間的“交流語(yǔ)言”為向量,所以深度學(xué)習(xí)工程師可以輕松地將多個(gè)神經(jīng)網(wǎng)絡(luò)組合起來(lái),形成一種端到端的設(shè)計(jì)。比如之前談到的情感分析案例中,一種最簡(jiǎn)單的方案是將文檔的每個(gè)字符的獨(dú)熱向量按順序輸入到神經(jīng)網(wǎng)絡(luò)中,得到整個(gè)文檔的特征向量。然后將該特征向量輸入到多項(xiàng)邏輯斯諦回歸分類器中,就可以分類出文檔的情感極性了。
整個(gè)過(guò)程既不需要中文分詞,也不需要停用詞過(guò)濾。因?yàn)樯窠?jīng)網(wǎng)絡(luò)按照字符順序模擬了人類閱讀整篇文章的過(guò)程,已經(jīng)獲取到了全部的輸人。
3 展望自然語(yǔ)言處理
3.1 理論上數(shù)學(xué)基礎(chǔ)越高越好
說(shuō)是人工智能的時(shí)代,也可以說(shuō)數(shù)學(xué)的最好的時(shí)代,只要你的算法復(fù)雜度不是特別過(guò)分,現(xiàn)在的算力都可以解決,有多少數(shù)學(xué)天分都可以展示出來(lái)。
3.2 工程上多多踩坑
找到一個(gè)切實(shí)的任務(wù),站在別人的肩上,不斷嘗試,直到成功!
總結(jié)
以上是生活随笔為你收集整理的深度学习与自然语言处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成功通过pmp_这就是你为啥要学PMP!
- 下一篇: 梳理百年深度学习发展史-七月在线机器学习