在這篇文章里,我綜述一下在自然" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 網(wǎng)絡(luò)營(yíng)銷 > 自然語(yǔ)言處理的單詞嵌入及表征方法

自然語(yǔ)言處理的單詞嵌入及表征方法

時(shí)間:2022-05-24 23:39:01 | 來源:網(wǎng)絡(luò)營(yíng)銷

時(shí)間:2022-05-24 23:39:01 來源:網(wǎng)絡(luò)營(yíng)銷

在過去的幾年中,深度神經(jīng)網(wǎng)絡(luò)在模式識(shí)別中占據(jù)著絕對(duì)主流,它們?cè)谠S多計(jì)算機(jī)視覺任務(wù)中完爆之前的頂尖算法,在語(yǔ)音識(shí)別上也有這個(gè)趨勢(shì)了,雖然結(jié)果好,但我們也必須思考,它們?yōu)槭裁催@么好使呢?

在這篇文章里,我綜述一下在自然語(yǔ)言處理(NLP)上應(yīng)用深度神經(jīng)網(wǎng)絡(luò)得到的一些效果極其顯著的成果,但我寫這篇文章的主要?jiǎng)恿κ菫橹笠獙懙囊黄剿魃疃葘W(xué)習(xí),類型論(type theory)和功能性編程(functional programming)之間關(guān)系的文章鋪路,希望能提供一個(gè)能解釋為何深度神經(jīng)網(wǎng)絡(luò)好用的理由,億企邦覺得這是個(gè)非常簡(jiǎn)練而優(yōu)美的視角。

1、單隱層神經(jīng)網(wǎng)絡(luò)

單隱層神經(jīng)網(wǎng)絡(luò)有一個(gè)普適性(universality):給予足夠的隱結(jié)點(diǎn),它可以估算任何函數(shù),這是一個(gè)經(jīng)常被引用的理論,它被誤解和應(yīng)用的次數(shù)就更多了。

本質(zhì)上這個(gè)理論是正確的,因?yàn)殡[層可以用來做查詢表。

簡(jiǎn)單點(diǎn),我們來看一個(gè)感知器網(wǎng)絡(luò)(perceptron network),感知器 (perceptron)是非常簡(jiǎn)單的神經(jīng)元,如果超過一個(gè)閾值它就會(huì)被啟動(dòng),如果沒超過改閾值它就沒反應(yīng),感知器網(wǎng)絡(luò)的輸入和輸出都是是二進(jìn)制的(0和1)。

注意可能的輸入個(gè)數(shù)是有限的,對(duì)每個(gè)可能的輸入,我們可以在隱層里面構(gòu)建一個(gè)只對(duì)這個(gè)輸入有反應(yīng)的神經(jīng)元(億企邦注解:當(dāng)你有n個(gè)輸入神經(jīng)元時(shí),構(gòu)建所有可能的輸入情況需要2^n個(gè)隱神經(jīng)元,在實(shí)際操作中,通常不會(huì)這么嚴(yán)重,你可以采取能夠包含不同輸入的情況,你也可以采用重疊的情況,他們利用疊加的方式來在交集處獲得正確的輸入)。

然后我們可以利用這個(gè)神經(jīng)元和輸出神經(jīng)元之間的連接來控制這個(gè)輸入下得到的結(jié)果(億企邦注解:不僅是感知器網(wǎng)絡(luò)才有普適性,多層感知器(sigmoid neurons)網(wǎng)絡(luò)(及其他激發(fā)函數(shù))也具有普適性:給予足夠的隱節(jié)點(diǎn),他們估算任何連續(xù)函數(shù)都可以得到不錯(cuò)的結(jié)果,因?yàn)槟悴荒芎?jiǎn)單地孤立輸入,所以想看明白這點(diǎn)是十分復(fù)雜的)。

這樣可以說明單隱層神經(jīng)網(wǎng)絡(luò)的確是有普適性的,但是這也沒啥了不起的呀,你的模型能干和查詢表一樣的事,并不能說明你的模型有任何優(yōu)點(diǎn),這只能說明用你的模型來完成任務(wù)并不是不可能的罷了。

在億企邦看來,普適性的真正意義是:一個(gè)網(wǎng)絡(luò)能適應(yīng)任何你給它的訓(xùn)練數(shù)據(jù),這并不代表插入新的數(shù)據(jù)點(diǎn)的時(shí)候它能表現(xiàn)地很理想。

所以,普適性并不能解釋為什么神經(jīng)網(wǎng)絡(luò)如此好用,真正的原因比這微妙得多,為了理解它,我們需要先理解一些具體的成果。

2、單詞嵌入(Word Embeddings)

我想從深度學(xué)習(xí)研究的一個(gè)非常有意思的部分講起,它就是:?jiǎn)卧~嵌入(word embeddings)。

在我看來,單詞嵌入是目前深度學(xué)習(xí)最讓人興奮的領(lǐng)域之一,盡管它最早是由Bengio等人在十多年前提出的,除此之外,我認(rèn)為它們能幫助你通過直覺來了解為什么深度學(xué)習(xí)如此有效。

單詞嵌入W:words→Rn是一個(gè)參數(shù)化函數(shù),它把某個(gè)語(yǔ)言里的單詞映射成高維向量(大概200到500維),例如這樣:

W(‘‘cat”)=(0.2, -0.4, 0.7, …)
  W(‘‘mat”)=(0.0, 0.6, -0.1, …)

一般這個(gè)函數(shù)就是一個(gè)查詢表,用一個(gè)矩陣θ來參數(shù)化,每行是一個(gè)單詞:Wθ(wn)=θn.

初始化時(shí),W中每個(gè)詞對(duì)應(yīng)一個(gè)隨機(jī)的向量,它會(huì)學(xué)習(xí)出有意義的向量以便執(zhí)行任務(wù)。

舉個(gè)一個(gè)可能的任務(wù)的例子:訓(xùn)練一個(gè)網(wǎng)絡(luò)讓其預(yù)測(cè)一個(gè)5元組(5-gram)(連續(xù)的5個(gè)詞)是否‘成立’,我們可以隨便從百科上選一堆5元組(比如cat sat on the mat)然后把其中一個(gè)詞隨便換成另外一個(gè)詞(比如cat sat song the mat),那么一半的5元組估計(jì)都會(huì)變得荒謬且沒意義了。

我們訓(xùn)練的模型會(huì)通過W把5元組中每個(gè)詞的表征向量取出來,輸入給另外一個(gè)叫R的模塊,模塊R會(huì)試圖預(yù)測(cè)這個(gè)5元組是‘成立的’或者是‘破碎的’,然后我們希望看見:

R(W(‘‘cat”), W(‘‘sat”), W(‘‘on”), W(‘‘the”), W(‘‘mat”))=1
  R(W(‘‘cat”), W(‘‘sat”), W(‘‘song”), W(‘‘the”), W(‘‘mat”))=0

為了準(zhǔn)確地預(yù)測(cè)這些值,這個(gè)網(wǎng)絡(luò)需要從W以及R中學(xué)習(xí)到好的參數(shù)。

現(xiàn)在看來這個(gè)任務(wù)并沒什么意思,也許它能用來檢測(cè)語(yǔ)法錯(cuò)誤什么的,沒什么大不了,但是極其有趣的部分是這個(gè)W。

事實(shí)上,對(duì)我們來說,這個(gè)任務(wù)的意義就是學(xué)習(xí)W,我們當(dāng)然也可以做一些其他的任務(wù),一個(gè)很常見的任務(wù)是預(yù)測(cè)句子中下一個(gè)單詞,但我們實(shí)際上并不在乎任務(wù)是什么,這節(jié)后面我們會(huì)談到許多單詞嵌入成果,但并不會(huì)區(qū)分得到這些成果的方法的不同。

想直觀感受一下單詞嵌入空間的話,我們可以用t-SNE來對(duì)它進(jìn)行可視化,t-SNE是一個(gè)復(fù)雜的高維數(shù)據(jù)可視化技術(shù)。


t-SNE對(duì)單詞嵌入的可視化結(jié)果,左圖:數(shù)字區(qū)間;右圖:工作崗位區(qū)間

這種單詞構(gòu)成的“地圖”對(duì)我們來說更直觀,相似的詞離得近,另一種方法是看對(duì)一個(gè)給定單詞來說,哪些其他的單詞離它最近,我們可以再一次看到,這些詞都很相似。

網(wǎng)絡(luò)能讓意義相似的詞擁有相似的向量,這看起來是很自然的事,如果你把一個(gè)詞換成它的同義詞(例如 “a few people sing well” → “a couple people sing well”),句子的成立性并沒有變化。

雖然從字面上看,句子變化很大,但如果W把同義詞(像“few”和”couple”這種)映射到相近的空間,從R的角度來看句子的變化很小,這就牛了。

可能的5元組的數(shù)目是巨大的,相比之下我們的訓(xùn)練數(shù)據(jù)量很小,相似的單詞距離近能讓我們從一個(gè)句子演變出一類相似的句子,這不僅指把一個(gè)詞替換成一個(gè)它的同義詞,而且指把一個(gè)詞換成一個(gè)相似類別里面的詞(如“the wall is blue” → “the wall is red” )。

進(jìn)一步地,我們可以替換多個(gè)單詞(例如“the wall is blue” → “the ceiling is red”),它的影響對(duì)單詞數(shù)目來說是指數(shù)級(jí)的。

很明顯,這是W的一個(gè)用武之地,但它是如何學(xué)會(huì)做這個(gè)的呢?看起來很可能很多情況下它是先知道“the wall is blue”這樣的句子是成立的,然后才見到“the wall is red”這樣的句子,這樣的話,把“red”往”blue”那邊挪近一點(diǎn),網(wǎng)絡(luò)的效果就更好。

我們并沒見過每個(gè)單詞使用的例子,但是類比能讓我們泛化衍生出新的單詞組合,你懂的單詞你都見過,但是你能懂的句子你并沒有都見過,神經(jīng)網(wǎng)絡(luò)也是如此。

單詞嵌入展示了一個(gè)更引人注目的屬性:?jiǎn)卧~間的類比仿佛是被編碼在了單詞向量的區(qū)別中,比如,這個(gè)看來是個(gè)男-女區(qū)別向量:

W(‘‘woman”)-W(‘‘man”) = W(‘‘aunt”)-W(‘‘uncle”)
  W(‘‘woman”)-W(‘‘man”) = W(‘‘queen”)-W(‘‘king”)

也許這看起來并不奇怪,畢竟表性別的代詞意味著換一個(gè)詞整個(gè)句子的語(yǔ)法就錯(cuò)了,正常話是這么說的“she is the aunt”,“he is the uncle.”,同樣的,“he is the King”, “she is the Queen.”,如果你看見“she is the uncle,” 最可能的解釋就是這句話有語(yǔ)法錯(cuò)誤,這個(gè)情況看起來很可能是:一半的時(shí)候單詞都被隨機(jī)地替換了。

也許我們會(huì)放馬后炮:“當(dāng)然是這樣啦!單詞嵌入會(huì)學(xué)著把性別按照一致的方式來編碼,事實(shí)上也許就存在一個(gè)性別的維度,對(duì)單復(fù)數(shù)來說也是一樣,找出這些明顯的關(guān)系太簡(jiǎn)單了!”

然而,更復(fù)雜的關(guān)系也是這樣被編碼的,這看起來幾乎像奇跡一樣!


單詞嵌入中的關(guān)系對(duì)

能夠充分意識(shí)到W的這些屬性不過是副產(chǎn)品而已是很重要的,我們沒有嘗試著讓相似的詞離得近,我們沒想把類比編碼進(jìn)不同的向量里,我們想做的不過是一個(gè)簡(jiǎn)單的任務(wù),比如預(yù)測(cè)一個(gè)句子是不是成立的,這些屬性大概也就是在優(yōu)化過程中自動(dòng)蹦出來的。

這看來是神經(jīng)網(wǎng)絡(luò)的一個(gè)非常強(qiáng)大的優(yōu)點(diǎn):它們能自動(dòng)學(xué)習(xí)更好的數(shù)據(jù)表征的方法,反過來講,能有效地表示數(shù)據(jù)對(duì)許多機(jī)器學(xué)習(xí)問題的成功都是必不可少的,單詞嵌入僅僅是學(xué)習(xí)數(shù)據(jù)表示中一個(gè)引人注目的例子而已。

3、共同表征

單詞嵌入的這些屬性當(dāng)然非常有意思,但是除了判斷5元組是不是成立這種傻問題還能干點(diǎn)啥有用的么?


W和F學(xué)習(xí)完成任務(wù)A,G可以根據(jù)W來學(xué)習(xí)完成任務(wù)B

之前我們學(xué)習(xí)單詞嵌入是為了在簡(jiǎn)單任務(wù)上有出色的表現(xiàn),但基于我們從單詞嵌入中發(fā)現(xiàn)的好屬性,你也許會(huì)猜想它們對(duì)自然語(yǔ)言處理任務(wù)整體都適用,實(shí)際上,這樣的單詞特征表示(word representations)是極其有用的:

利用單詞特征表示,已經(jīng)成為近年來許多NLP系統(tǒng)成功的秘密武器,包括命名實(shí)體識(shí)別,詞性標(biāo)注,語(yǔ)法分析和語(yǔ)義角色標(biāo)注。

在深度學(xué)習(xí)工具箱里,把從任務(wù)A中學(xué)到的好表征方法用在任務(wù)B上是一個(gè)很主要的技巧,根據(jù)細(xì)節(jié)不同,這個(gè)普遍的技巧的名稱也不同,如:預(yù)訓(xùn)練(pretraining),遷移學(xué)習(xí)(transfer learning),多任務(wù)學(xué)習(xí)(multi-task learning)等,這種方法的好處之一是可以從多種不同數(shù)據(jù)中學(xué)習(xí)特征表示。

這個(gè)技巧有個(gè)對(duì)應(yīng)面,除了在一種數(shù)據(jù)上學(xué)習(xí)表征然后應(yīng)用在不同任務(wù)上,我們還可以從多種數(shù)據(jù)中學(xué)習(xí)出一種單個(gè)的表征!

一個(gè)很好的例子就是Socher et al. (2013a)提出的雙語(yǔ)單詞嵌入,我們可以從兩種不同語(yǔ)言中把單詞嵌入到一個(gè)共享的空間去,在這個(gè)例子里,我們學(xué)習(xí)把漢語(yǔ)和英語(yǔ)嵌入到同一個(gè)空間去。

我們用和上面差不多的方法來訓(xùn)練Wen和Wzh兩種嵌入,但是我們已知某些中文和英文的詞匯有相似的意思,所以,我們追加一個(gè)屬性優(yōu)化:我們已知的翻譯過后意思相似的詞應(yīng)該離得更近。

理所當(dāng)然,我們會(huì)發(fā)現(xiàn)我們已知的有相似意思的詞在最后結(jié)果中離得很近,我們本來就是針對(duì)這個(gè)做的優(yōu)化,這個(gè)結(jié)果沒什么讓人驚訝的,但更有意思的是我們未知的翻譯后意思相似的詞結(jié)果距離也很近。

鑒于我們前面有關(guān)單詞嵌入的經(jīng)驗(yàn),這個(gè)也許并不太讓你感到驚奇,單詞嵌入就是會(huì)把相似的詞聚到一起,所以,如果我們已知的中英詞匯離得近,它們的同義詞自然離得近。

我們還知道類似性別差異趨向于可以用一個(gè)常數(shù)的差異向量表示,看起來,對(duì)齊足夠多的點(diǎn)會(huì)讓這些差異向量在中文和英文的嵌入中保持一致,這樣會(huì)導(dǎo)致如果我們已知兩個(gè)男性詞互為翻譯,最后我們也會(huì)得到一對(duì)互為翻譯的女性詞。

直觀來講,仿佛就是兩種語(yǔ)言有著相似的“形狀”,通過對(duì)齊不同的點(diǎn),兩種語(yǔ)言就能夠重疊,其他的點(diǎn)就自然能被放在正確的位置上。


雙語(yǔ)單詞嵌入的t-SNE可視化圖,綠色是中文,黃色是英文

在雙語(yǔ)單詞嵌入中,我們對(duì)兩種很相似的數(shù)據(jù)學(xué)習(xí)了一個(gè)共享表征,我們也可以學(xué)習(xí)把非常不同的幾種數(shù)據(jù)嵌入到同一個(gè)空間去。

近期,深度學(xué)習(xí)已經(jīng)開始探索能夠把單詞和圖像嵌入到同一個(gè)表征下的模型(之前也有對(duì)圖像和標(biāo)簽聯(lián)合分布建模的工作,但他們的觀點(diǎn)和我們要描述的截然不同)。

基本思路就是你可以通過單詞嵌入輸出的向量來對(duì)圖像進(jìn)行分類,狗的圖像會(huì)被映射到“狗”的單詞向量附近,馬的圖像會(huì)被映射到“馬”的單詞向量附近,汽車的圖像會(huì)被映射到“汽車”的單詞向量附近,以此類推。

有趣的是如果你用新類別的圖像來測(cè)試這個(gè)模型會(huì)發(fā)生什么呢?比如,如果這個(gè)模型沒訓(xùn)練過如何分類“貓”,也就是把貓的圖像映射到“貓”向量附近,那當(dāng)我們?cè)噲D對(duì)貓的圖像進(jìn)行分類的時(shí)候會(huì)發(fā)生什么呢?

結(jié)果表明,這個(gè)網(wǎng)絡(luò)是可以很合理地處理新類別的圖像的,貓的圖片并沒有被映射到單詞嵌入空間的隨機(jī)的點(diǎn)中。

相反的,他們更傾向于被映射到整體上相近的“狗”的向量中去,并且事實(shí)上更接近于“貓”的向量,相似的,卡車的圖片最后離“卡車”向量相對(duì)也比較近,“卡車”向量和與它相關(guān)的“汽車”向量很近。

這個(gè)圖是斯坦福一個(gè)小組用8個(gè)已知類(和2個(gè)未知類別)做的圖,結(jié)果已經(jīng)很可觀了,但因?yàn)橐阎悢?shù)目小,能夠用來插入圖像和語(yǔ)義空間的關(guān)系的點(diǎn)就很少了。

差不多同時(shí)期,Google的小組做了一個(gè)大得多的版本,他們用了1000個(gè)類別而不是8個(gè),之后他們又做了一個(gè)新的版本,兩者都基于非常有效的圖像分類模型,但它們使用了不同的方式把圖像嵌入到單詞嵌入空間去。

他們的成果是很贊的,雖然他們不能把未知類的圖片準(zhǔn)確放到代表這個(gè)類的向量上去,但是他們能夠把它放到正確的區(qū)域,所以,如果你用它來對(duì)區(qū)別比較大的未知類的圖片來分類,它是能夠區(qū)分類別的不同的。

即使我從來沒見過艾斯庫(kù)拉普蛇和穿山甲,如果你給我看這兩樣?xùn)|西的照片,我能告訴你哪個(gè)是哪個(gè)因?yàn)槲掖笾轮肋@兩個(gè)詞和什么樣的動(dòng)物有關(guān),這些網(wǎng)絡(luò)可以做到同樣的事情。

在億企邦看來,共享嵌入是一個(gè)非常讓人興奮的研究領(lǐng)域,它暗示著為何深度學(xué)習(xí)中這個(gè)注重表征方法的角度是如此的引人入勝。

4、遞歸神經(jīng)網(wǎng)絡(luò)

我們之前是用下面這個(gè)網(wǎng)絡(luò)開始談單詞嵌入的:


學(xué)習(xí)單詞嵌入的模塊化網(wǎng)絡(luò)

上面的圖描繪了一個(gè)模塊化網(wǎng)絡(luò),R(W(w1), W(w2), W(w3), W(w4), W(w5)),它是由兩個(gè)模塊構(gòu)建的W和R,這個(gè)用能拼在一起的小一些的神經(jīng)網(wǎng)絡(luò)模塊來構(gòu)建神經(jīng)網(wǎng)絡(luò)的方法傳播并不是十分廣泛,然而,在NLP中它很有效。

像上面那樣的模型很有效,但很不幸它們有個(gè)局限:輸入?yún)?shù)的個(gè)數(shù)必須是固定的。

我們可以通過加入一個(gè)關(guān)聯(lián)模塊A來解決這個(gè)問題,這個(gè)關(guān)聯(lián)模塊可以將兩個(gè)單詞或詞組的表征合并起來。

通過合并一系列的單詞,A讓我們不僅能夠表示單詞,而且能夠表示詞組甚至整個(gè)句子!另外因?yàn)槲覀兛梢院喜⒉煌瑪?shù)量的單詞,我們就可以不固定死輸入的個(gè)數(shù)了。

把句子中的單詞線性地合并在一起的做法并不是在所有情況下都講得通,考慮下面這個(gè)句子“the cat sat on the mat”,很自然地它可以被分成下面這樣用括號(hào)分開的不同的段:“((the cat) (sat (on (the mat))”. 我們可以把A應(yīng)用在這個(gè)分段上:

這樣的模型通常被稱作“遞歸神經(jīng)網(wǎng)絡(luò)”因?yàn)橐粋€(gè)模塊經(jīng)常會(huì)使用另外一個(gè)同類型模塊的輸出,有時(shí)候它們也被稱作“樹形神經(jīng)網(wǎng)絡(luò)tree-structured neural networks”。

遞歸神經(jīng)網(wǎng)絡(luò)在一系列NLP任務(wù)中都有很重大的成功,比如Socher et al. (2013c) 就利用了一個(gè)遞歸神經(jīng)網(wǎng)絡(luò)來預(yù)測(cè)句子的情感:

一直以來,一個(gè)很主要的目標(biāo)是如何創(chuàng)建一個(gè)可逆的句子表征(sentence representation),也就是能夠通過這個(gè)表征來構(gòu)建一個(gè)真正的有著相似意思的句子,例如,我們可以嘗試引入一個(gè)分解模塊(disassociation module)D來試著把A分解了:

如果這個(gè)能成功,將會(huì)是一個(gè)極其強(qiáng)大的工具,舉個(gè)例子,我們可以嘗試做一個(gè)雙語(yǔ)句子表征然后把它用在翻譯任務(wù)上。

不幸的是,這個(gè)實(shí)際上是很難實(shí)現(xiàn)的,非常,非常難,同時(shí)因?yàn)樗坏┏晒τ芯薮蟮那巴?,有很多人在為研究它而努力?br>
最近,Cho et al. (2014)在詞組表征上有了一些進(jìn)展,他們做了一個(gè)能把英語(yǔ)詞組編碼,解碼成法語(yǔ)的模型,來看看它學(xué)習(xí)出來的詞組表征吧!


詞組表征的t-SNE的一小部分

有關(guān)上面我們綜述的一些結(jié)果,我也聽說有其他領(lǐng)域的研究人員,尤其是NLP和語(yǔ)言學(xué)的人,對(duì)他們進(jìn)行了批判,他們的顧慮倒不是針對(duì)結(jié)果本身的,反而是從結(jié)果中得出的結(jié)論以及他們和其他方法的區(qū)別。

億企邦點(diǎn)評(píng):

深度學(xué)習(xí)中的表征視角是非常有力的,也似乎能夠解答為何深度神經(jīng)網(wǎng)絡(luò)如此有效,在此之上,我認(rèn)為它還有一個(gè)極美的地方:為何神經(jīng)網(wǎng)絡(luò)有效?因?yàn)樵趦?yōu)化多層模型的過程中,更好的來數(shù)據(jù)表征方法會(huì)自動(dòng)浮現(xiàn)出來。

深度學(xué)習(xí)是個(gè)非常年輕的領(lǐng)域,理論根基還不強(qiáng),觀點(diǎn)也在快速地改變,我感覺神經(jīng)網(wǎng)絡(luò)中重視表征的這個(gè)方面目前是十分流行的。

關(guān)鍵詞:方法,語(yǔ)言,單詞

74
73
25
news

版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉