谈谈对CNN在NLP中可行性的理解
談?wù)剬?duì)CNN在NLP中可行性的理解
談到CNN,人們的直觀感受還是其在圖像處理領(lǐng)域取得的巨大成就,雖然近幾年越來(lái)越多的論文使用到CNN與RNN的模型來(lái)探索卷積網(wǎng)絡(luò)在自然語(yǔ)言處理中的應(yīng)用,但始終還是無(wú)法取代CNN在圖像中的地位,或是RNN之于NLP的地位。所以想談?wù)勛约簩?duì)于CNN在NLP中可行性的一點(diǎn)個(gè)人理解。
CNN到底在干什么
提起CNN的作用,或者是原理,所有博客,教程等等,都會(huì)使用一個(gè)詞:特征提取!那么,特征到底是個(gè)什么玩意兒?對(duì)于傳統(tǒng)機(jī)器學(xué)習(xí),無(wú)論分類還是擬合,都是靠著特征的組合進(jìn)行學(xué)習(xí)與訓(xùn)練的,打個(gè)不太恰當(dāng)?shù)谋确?#xff0c;就擬合而言,最終擬合出的曲線看作是各個(gè)特征的函數(shù)結(jié)果的話,那么特征就是各個(gè)自變量,而擬合的結(jié)果就是因變量。到這里還是比較好理解的,那么圖像的特征是什么?語(yǔ)言文本的特征又是什么呢?一張照片擺在你面前,或者一段文字?jǐn)[在書桌上,什么是他們的特征,又怎么去提取這些特征呢?
特征
先從我們?nèi)祟惖慕嵌葋?lái)理解下,當(dāng)我們?nèi)タ匆环鶊D畫,一張照片時(shí),我們所關(guān)注的,其實(shí)是顏色的變化,或者線條的形狀等等,如果有畫商給你一張純白的嶄新的A4紙,告訴你這是畢加索的名畫,你肯定不會(huì)相信,因?yàn)槟闶裁串嬅娑紱]有看到。也就是說(shuō),你什么特征都沒有提取到!舉個(gè)例子,最近非?;鸬囊粡垐D片:
如果圖片變成這樣,你依舊認(rèn)得出來(lái):
甚至變成這樣,你還是認(rèn)得出來(lái):
雖然沒有了那么多細(xì)節(jié),但是只憑這些顏色線條,你就能知道這張圖在代表什么。而這些讓你能夠認(rèn)出圖片本質(zhì)的玩意兒,就是圖像的特征。現(xiàn)在我們來(lái)說(shuō)說(shuō)計(jì)算機(jī),眾所周知的,計(jì)算機(jī)是處理數(shù)字的,無(wú)論是圖片還是文字,終究逃不過(guò)一串?dāng)?shù)字表征。而通過(guò)對(duì)比圖片相鄰的像素點(diǎn),計(jì)算機(jī)就能夠?qū)υ谒氖澜缋铩翱吹健迸c我們相同的景象了。
對(duì)于NLP來(lái)說(shuō),人們靠什么去理解讀懂一篇文章?用詞,斷句,標(biāo)點(diǎn)等等,這些其實(shí)都可以看做是文本的特征,比如“這篇博客很有用?!焙汀斑@篇博客很有用!”,僅僅符號(hào)之差,意義就大不相同。或者說(shuō)“這篇博客挺有用”和“這篇博客很有用”,一字之差,情感也有所差異。我們知道圖像可以用 RGB 三色值來(lái)進(jìn)行數(shù)字化的表示,文字也同樣可以通過(guò)詞向量等方式將文字利用數(shù)字組合進(jìn)行特征表示。
提取
特征提取的方法不止CNN一種,我們也不能說(shuō)CNN是最為可靠的一種,但是至少現(xiàn)在看來(lái),CNN算是絕對(duì)高效的。為什么說(shuō)他高效,就在于其卷積核共享權(quán)重值的方法。無(wú)論是圖像還是文本,卷積核口每次都只關(guān)注于其中的一小部分特征,對(duì)于圖像可能就只是一條邊界線,對(duì)于文本可能就只是一個(gè)四字成語(yǔ),但是將這些小特征重新的加權(quán)組合起來(lái),就能夠用一組全新的數(shù)據(jù)重新對(duì)原目標(biāo)進(jìn)行表示。解釋下filter,作為一個(gè)電子信息工程專業(yè)出身,半道出家的碼農(nóng)來(lái)說(shuō),濾波器這個(gè)詞實(shí)在是再熟悉不過(guò)。信號(hào)中的濾波器在做什么?扔掉沒用的,只看有用的,細(xì)看有用的。對(duì)于一個(gè)混有多頻的信號(hào),我可以只看一個(gè)頻段的部分,其余的無(wú)論多么復(fù)雜,都與我無(wú)關(guān)。對(duì)于我只關(guān)心的部分,我還可以進(jìn)行相應(yīng)的放大進(jìn)行細(xì)看。從這個(gè)角度來(lái)看,就會(huì)對(duì)CNN的filter有一層更深的理解。
就好像上面的三幅畫一樣,CNN其實(shí)在做的是一種”虛化“的工作,將圖像的邊邊角角虛化為寥寥幾筆的簡(jiǎn)筆畫,將繁雜的文字精簡(jiǎn)為大意,而這些保留下來(lái)的線條,詞句,就是新的圖像表示或者句子表示,能夠作為下一步分類或者生成的基礎(chǔ)。
CNN為什么可以用在NLP
上面已經(jīng)說(shuō)過(guò),無(wú)論多么美麗的圖畫,無(wú)論多么華麗的辭藻,到了計(jì)算機(jī)那邊,統(tǒng)統(tǒng)成為了無(wú)法直觀理解的數(shù)字組合。如何使用盡量少的數(shù)字,同時(shí)又盡可能避免信息的丟失,這就是不同模型在盡力所做的事情。CNN希望使用權(quán)重共享的卷積核,捕捉重復(fù)性更強(qiáng)的特征信息,也就是說(shuō),它在找尋更為通用的特征。偷一張論文里的圖片來(lái)說(shuō),
卷積核在句子中進(jìn)行卷積,比如紅色的來(lái)說(shuō),每次我只看兩個(gè)詞組合的效果,于是我得到了”wait for“,”for the”…”rent it”7中雙詞組合,從中我選取最有可能的那一個(gè),即maxpooling的操作,不同的濾波器得到不同的結(jié)果最終進(jìn)行加權(quán)組合,從而能夠得到一個(gè)新的句子表示。從這個(gè)角度來(lái)看,這個(gè)過(guò)程就是N-Gram模型的思想!說(shuō)白了,CNN就是在找相鄰N個(gè)詞的相關(guān)性,找出出現(xiàn)頻率高的N元詞。而這個(gè)N,就體現(xiàn)在卷積核的寬度。與RNN對(duì)比來(lái)看,RNN更側(cè)重的是序列模型,也就是從頭到尾讀下來(lái),沒加入一個(gè)新的詞匯,重新更新句子的表示。而CNN側(cè)重于以小見大,在細(xì)節(jié)處做文章(文本的用詞組合等等),最后將不同的小細(xì)節(jié)挑選完重新組合起來(lái),進(jìn)行完整句子的表示。
從這個(gè)角度上來(lái)看,CNN的思想與樹結(jié)構(gòu)模型有些相似。樹結(jié)構(gòu)自下而上,將語(yǔ)法樹中同級(jí)的子節(jié)點(diǎn)進(jìn)行整合,只不過(guò)它更多的還要參考語(yǔ)法結(jié)構(gòu),相較于CNN又多了一些需要考慮的部分。CNN這種卷積加池化的模式,使得特征的空間性消失,對(duì)于文本來(lái)說(shuō),特征的空間性就是對(duì)應(yīng)的語(yǔ)序,當(dāng)語(yǔ)序意義不再存在,CNN就像是把所有關(guān)鍵詞,更確切的說(shuō)是常用詞提取出來(lái),在通過(guò)訓(xùn)練出來(lái)的網(wǎng)絡(luò)把這些常用詞安排成整個(gè)句子,最終得到的就是新的句子表示向量。而這與我們所說(shuō)的文本信息是相悖的,也就是為什么CNN在NLP中無(wú)法做到在圖像中那種統(tǒng)治地位。
總結(jié)
以上是生活随笔為你收集整理的谈谈对CNN在NLP中可行性的理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SAP信函设置简介
- 下一篇: IOS UTI(统一类型标识符) 根据文