有人說(shuō),不同語(yǔ)言之間的翻譯,與其說(shuō)是一門(mén)科學(xué),不如說(shuō)是一門(mén)藝術(shù)。 NLP 領(lǐng)域的機(jī)器學(xué)習(xí)工程師 Riccardo Di Sipio 日前提出了一個(gè)觀點(diǎn):使用卷積網(wǎng)絡(luò)要比使用遞歸神經(jīng)網(wǎng)絡(luò)來(lái)做 NLP 研究,要幸福得多——是時(shí)候放棄遞歸神經(jīng)網(wǎng)絡(luò)了! 基于這一觀點(diǎn),他從卷積網(wǎng)絡(luò)本身的基本原理出發(fā),論述了為什么 NLP 不再需要遞歸神經(jīng)網(wǎng)絡(luò)的原因。 我們來(lái)看: 不久前,人工智能科學(xué)家侯世達(dá)(Douglas Hofstadter) 就在 The Atlantic 上發(fā)表的一篇論文中指出,目前機(jī)器翻譯尚處于「淺薄」的階段。
盡管機(jī)器翻譯存在局限性,但難以否認(rèn)的是,自動(dòng)翻譯軟件在許多情況下都有良好的效果,而其背后的技術(shù)在任何存在信息從一個(gè)領(lǐng)域流動(dòng)到另一個(gè)領(lǐng)域的語(yǔ)境中都具有廣泛的應(yīng)用,例如基因組學(xué)中從 RNA 到蛋白質(zhì)編碼的翻譯過(guò)程。 直到 2015年,序列到序列的映射(或者說(shuō)翻譯)使用的主要方法都是遞歸神經(jīng)網(wǎng)絡(luò),特別是長(zhǎng)短期記憶(LSTM)網(wǎng)絡(luò)。 我在前一篇文章中介紹了這些網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)知識(shí),我還談到了 LSTM 被應(yīng)用于大型強(qiáng)子對(duì)撞機(jī)的頂部夸克對(duì)衰變的運(yùn)動(dòng)學(xué)重建過(guò)程。這篇文章鏈接如下:
然后,出現(xiàn)了一些新的方法:比如殘差網(wǎng)路架構(gòu)和注意力機(jī)制的提出,為針對(duì)這類任務(wù)的更通用的框架的實(shí)現(xiàn)鋪平了道路。 值得一提的是,這些新穎的網(wǎng)路架構(gòu)還解決了另一個(gè)問(wèn)題:事實(shí)上,由于 RNN 固有的時(shí)序性,很難利用這種網(wǎng)絡(luò)在像 GPU 這樣的并行系統(tǒng)上進(jìn)行訓(xùn)練。而這一點(diǎn)正是卷積神經(jīng)網(wǎng)絡(luò)使用起來(lái)非常方便的地方。 一、卷積神經(jīng)網(wǎng)絡(luò)在數(shù)學(xué)中,卷積表示的是當(dāng)函數(shù) f 作用于另一個(gè)函數(shù) g 時(shí)生成第三個(gè)函數(shù)的一種運(yùn)算: 此運(yùn)算不應(yīng)與調(diào)制(例如 AM 傳輸中的 EM 信號(hào))混淆,調(diào)制是將兩個(gè)函數(shù)簡(jiǎn)單相乘。求知欲強(qiáng)的人可能會(huì)深究到:時(shí)間空間中的卷積傅里葉變換,實(shí)質(zhì)上是頻率空間中的調(diào)制,即: 所以這兩種運(yùn)算雖然密切相關(guān),但切不可被混淆。 在計(jì)算機(jī)科學(xué)的離散世界中,積分被求和取代,兩函數(shù)之間的乘法由矩陣間的乘法代替。用行話來(lái)說(shuō),就是將卷積核應(yīng)用到圖像上來(lái)生成卷積特征,一次卷積將生成一個(gè)新的特征。在下面每一對(duì)圖像中,當(dāng)對(duì)左邊部分發(fā)生一次卷積變換,將于右邊部分產(chǎn)生一個(gè)新的值,如下圖所示: 在對(duì)這個(gè)序列的操作中,圖像(灰色矩陣)由一個(gè)卷積核(橙色矩陣)卷積操作以獲得卷積特征(綠色矩陣)。 通常來(lái)說(shuō),卷積核是一個(gè)網(wǎng)絡(luò)的權(quán)值矩陣,必須通過(guò)某種算法(如:反向傳播)計(jì)算,才能得到它的期望輸出。 這種操作的一個(gè)很好并且非常重要的特性是,一旦「圖片」被加載到記憶中,不同的卷積核會(huì)對(duì)其進(jìn)行操作,這樣就可以減少輸入/輸出(I/O)次數(shù),從而更好地利用帶寬。通常,卷積操作由以下兩種方式執(zhí)行:
在卷積之后,通常會(huì)進(jìn)行池化操作:在每個(gè)卷積塊中,只將最大值傳遞到下一層。此操作用于降低圖片維數(shù)以及過(guò)濾噪聲。降維的關(guān)鍵是通過(guò)信息壓縮來(lái)尋找更高水平的特征。 常用的做法是,通過(guò)將上述兩個(gè)步驟的板塊鏈合在一起,來(lái)構(gòu)建一個(gè)卷積神經(jīng)網(wǎng)絡(luò)。一些成功的網(wǎng)絡(luò)架構(gòu)案例如下:
二、注意力機(jī)制既然現(xiàn)在我們已經(jīng)了解了卷積神經(jīng)網(wǎng)絡(luò)的基本知識(shí),那么讓我們回到最原始的問(wèn)題:我們?nèi)绾问褂眠@樣的網(wǎng)絡(luò)代替遞歸網(wǎng)絡(luò)來(lái)解析序列呢? 注意力機(jī)制背后的主要觀點(diǎn)是,網(wǎng)絡(luò)應(yīng)該找出輸入序列的哪些部分或元素與給定的輸出序列元素具有更強(qiáng)的相關(guān)性。它通過(guò)為每個(gè)輸入元素創(chuàng)建一個(gè)注意力權(quán)重向量(權(quán)重介于 0 和 1 之間,通過(guò) Softmax 產(chǎn)生),并使用它們來(lái)調(diào)整信息流。如果我們首先關(guān)注基于 RNN 的網(wǎng)絡(luò),這將變得更容易理解。 對(duì)于每個(gè)輸入元素(時(shí)間階),RNN 層會(huì)存儲(chǔ)一個(gè)隱藏狀態(tài)。所以對(duì)于 N 個(gè)輸入將會(huì)有 N 個(gè)隱藏狀態(tài)。此時(shí),我們可以通過(guò)簡(jiǎn)單地讓注意力權(quán)重和隱藏狀態(tài)逐個(gè)元素相乘(也就是哈達(dá)瑪積)。來(lái)生成剩下文向量: 例如,當(dāng)翻譯一個(gè)句子時(shí),兩種語(yǔ)言的專有名詞都是一樣的,因此相應(yīng)的權(quán)重會(huì)非常大(例如 0.95)。相鄰單詞的權(quán)重很可能也是比較大的(例如 0.55),而相距較遠(yuǎn)的單詞權(quán)重則較?。ɡ?nbsp;0.05)。 最后,信息被壓縮成一個(gè)注意力向量,并傳遞到下一層: 在解碼階段,則為每個(gè)輸入的詞計(jì)算上下文向量。 三、Transformer 網(wǎng)絡(luò)現(xiàn)在我們基本掌握和理解了關(guān)于如何在機(jī)器翻譯中擺脫 RNN 網(wǎng)絡(luò)的所有要素。 Transformer 網(wǎng)絡(luò)利用注意力機(jī)制,但這次使用的是前饋網(wǎng)絡(luò)。 首先,輸入序列被嵌入(即被編碼成 N 維空間中的一個(gè)數(shù)字)向量作為補(bǔ)充,該向量跟蹤每個(gè)單詞相對(duì)于彼此的初始位置。現(xiàn)在我們有了序列中所有單詞( K)和一個(gè)給定單詞( Q)的向量表示。 根據(jù)這些材料,我們可以像以前那樣計(jì)算出注意力權(quán)重(d_k 代表了維度,它是一個(gè)標(biāo)準(zhǔn)化因子): 這個(gè)注意力權(quán)重決定了其他每個(gè)單詞對(duì)于給定單詞的翻譯結(jié)果的貢獻(xiàn)程度。 將這些權(quán)重作用于待翻譯的給定序列(值V)的過(guò)程稱為縮放的點(diǎn)積注意力( Scaled Dot-Product Attention)。 多頭注意力是一種注意力機(jī)制的合并方式,被用來(lái)將 Q、K 和 V 線性映射到不同維度的空間中。其思想是,不同的映射可以分別從不同方面突出信息編碼的方式。其中映射是通過(guò)將 Q、K 和 V 乘以訓(xùn)練過(guò)程中學(xué)習(xí)到的矩陣 W 來(lái)實(shí)現(xiàn)的。 最后值得一提的是,在論文《Attention Augmented Convolutional Networks》中,作者提出了一種具有多頭注意力機(jī)制的 CNN ,該論文鏈接如下:
而以上,便是為什么我們不再需要遞歸神經(jīng)網(wǎng)絡(luò)的原因~ via: https:///swlh/attention-please-forget-about-recurrent-neural-networks-8d8c9047e117 點(diǎn)擊“閱讀原文” 前往 AAAI 2020 專題 |
|
來(lái)自: taotao_2016 > 《物理》