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