MetaMind深度解讀NLP研究:如何讓機(jī)器學(xué)習(xí)跳讀
自然語(yǔ)言處理是人工智能研究的核心問(wèn)題之一。近日,已宣布被 Salesforce 收購(gòu)的深度學(xué)習(xí)公司 MetaMind 在其官方網(wǎng)站上發(fā)表了一篇文章,深度剖析了 LSTM 和詞袋模型在自然語(yǔ)言處理上的應(yīng)用。
機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和更廣義上的人工智能的興起是毫無(wú)疑問(wèn)的,而且其已經(jīng)對(duì)計(jì)算機(jī)科學(xué)領(lǐng)域產(chǎn)生巨大的影響。你可能已經(jīng)聽(tīng)說(shuō)過(guò),目前深度學(xué)習(xí)已經(jīng)在圖像識(shí)別和圍棋等很多任務(wù)上實(shí)現(xiàn)了對(duì)人類的超越。
深度學(xué)習(xí)社區(qū)目前將自然語(yǔ)言處理(NLP)看作是下一個(gè)研究和應(yīng)用的前沿。
深度學(xué)習(xí)的一大優(yōu)勢(shì)是其進(jìn)步往往是非常通用的。比如說(shuō),使深度學(xué)習(xí)在一個(gè)領(lǐng)域有效的技術(shù)往往不需要太多修改就能遷移到另一個(gè)領(lǐng)域。更具體而言,為圖像和語(yǔ)音識(shí)別所開(kāi)發(fā)的構(gòu)建大規(guī)模、高計(jì)算成本的深度學(xué)習(xí)模型的方法也能被用于自然語(yǔ)言處理。最近的最先進(jìn)的翻譯系統(tǒng)就是其中一例,該系統(tǒng)的表現(xiàn)超越了所有以往的系統(tǒng),但所需的計(jì)算機(jī)能力也要多得多。這樣的高要求的系統(tǒng)能夠在真實(shí)世界數(shù)據(jù)中發(fā)現(xiàn)偶然出現(xiàn)的非常復(fù)雜的模式,但這也讓很多人將這樣的大規(guī)模模型用在各種各樣的任務(wù)上。這又帶來(lái)了一個(gè)問(wèn)題:
是否所有的任務(wù)都具有需要這種模型才能處理的復(fù)雜度?
讓我們看看一個(gè)用于情感分析的在詞袋嵌入(bag-of-words embeddings)上訓(xùn)練的一個(gè)兩層多層感知器(two layered MLP)的內(nèi)部情況:
一個(gè)被稱為詞袋(bag-of-words)的簡(jiǎn)單深度學(xué)習(xí)系統(tǒng)的內(nèi)部情況,其可以將句子分類為積極的(positive)或消極的(negative)。這張圖是來(lái)自在一個(gè)詞袋上的一個(gè) 2 層 MLP 最后一個(gè)隱藏層的一個(gè) T-SNE。其中每個(gè)數(shù)據(jù)點(diǎn)對(duì)應(yīng)于一個(gè)句子,不同的顏色分別對(duì)應(yīng)于該深度學(xué)習(xí)系統(tǒng)的預(yù)測(cè)和真實(shí)目標(biāo)。實(shí)線框表示句子的不同語(yǔ)義內(nèi)容。后面你可以通過(guò)一張交互式圖表來(lái)了解它們。
上圖中的實(shí)線框提供了一些重要的見(jiàn)解。而真實(shí)世界數(shù)據(jù)的難度遠(yuǎn)不止此,一些句子可以被輕松分類,但另一些卻包含了復(fù)雜的語(yǔ)義結(jié)構(gòu)。在可以輕松分類的句子的案例中,高容量的系統(tǒng)可能并不是必需的。也許一個(gè)簡(jiǎn)單得多的模型就能完成同樣的工作。這篇博客文章探討了這種情況是否屬實(shí),并將說(shuō)明我們其實(shí)往往使用簡(jiǎn)單模型就能完成任務(wù)。
一、對(duì)文本的深度學(xué)習(xí)
大多數(shù)深度學(xué)習(xí)方法需要浮點(diǎn)數(shù)作為輸入,如果你沒(méi)使用過(guò)文本,你可能會(huì)疑問(wèn):
我怎么使用一段文本來(lái)進(jìn)行深度學(xué)習(xí)?
對(duì)于文本,其核心問(wèn)題是在給定材料的長(zhǎng)度的情況下如何表征任意大量的信息。一種流行的方法是將文本切分(tokenize)成詞(word)、子詞(sub-word)甚至字符(character)。然后每一個(gè)詞都可以通過(guò) word2vec 或 Glove 等經(jīng)過(guò)了充分研究的方法而轉(zhuǎn)換成一個(gè)浮點(diǎn)向量。這種方法可以通過(guò)不同詞之前的隱含關(guān)系來(lái)提高對(duì)詞的有意義的表征。
取一個(gè)詞,將其轉(zhuǎn)換成一個(gè)高維嵌入(比如 300 維),然后使用 PCA 或 T-SNE(流行的降維工具,在這個(gè)案例中是降為 2 維),你就可以找到詞之間的有趣關(guān)系。比如,在上圖中你可以看到 uncle 與 aunt 之間的距離和 man 與 woman 之間的距離差不多相等(來(lái)自 Mikolov et al., 2013)
通過(guò)使用 tokenization 和 word2vec 方法,我們可以將一段文本轉(zhuǎn)換為詞的浮點(diǎn)表示的一個(gè)序列。
現(xiàn)在,一個(gè)詞表征的序列有什么用?
二、詞袋(bag-of-words)
現(xiàn)在我們來(lái)探討一下詞袋(BoW),這也許是最簡(jiǎn)單的機(jī)器學(xué)習(xí)算法了!
取一些詞表征(圖下部的灰色框),然后通過(guò)加(sum)或平均(average)得到一個(gè)共同的表征(藍(lán)色框),這個(gè)共同表征(common representation)包含了每個(gè)詞的一些信息。在這篇文章中,該共同表征被用于預(yù)測(cè)一個(gè)句子是積極的還是消極的(紅色框)。
在每個(gè)特征維(feature dimension)上簡(jiǎn)單地取詞的平均(mean)。事實(shí)證明簡(jiǎn)單地對(duì)詞嵌入(word embedding)進(jìn)行平均(盡管這完全忽略了句子的順序)就足以在許多簡(jiǎn)單的實(shí)際案例中取得良好的效果,而且也能在與深度神經(jīng)網(wǎng)絡(luò)結(jié)合時(shí)提供一個(gè)強(qiáng)大的基準(zhǔn)(后面會(huì)解釋)。
此外,取平均的計(jì)算成本很低,而且可以將句子的降維成固定大小的向量。
三、循環(huán)神經(jīng)網(wǎng)絡(luò)
一些句子需要很高的準(zhǔn)確度或依賴于句子結(jié)構(gòu)。使用詞袋來(lái)解決這些問(wèn)題可能不能滿足要求。不過(guò),你可以考慮使用讓人驚嘆的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks)。
在每一個(gè)時(shí)間步驟(從左到右),一個(gè)輸入(比如一個(gè)詞)被饋送入 RNN(灰色框),并整合之前的內(nèi)部記憶(藍(lán)色框)。然后該 RNN 執(zhí)行一些計(jì)算,得到新的內(nèi)部記憶(藍(lán)色框),該記憶表示了所有之前見(jiàn)過(guò)的單元(如,所有之前的詞)。該 RNN 現(xiàn)在應(yīng)該已經(jīng)包含了一個(gè)句子層面的信息,讓其可以更好地預(yù)測(cè)一個(gè)句子是積極的還是消極的(紅色框)。
每個(gè)詞嵌入都按順序被送入一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò),然后該網(wǎng)絡(luò)可以存儲(chǔ)之前見(jiàn)過(guò)的信息并將其與新的詞結(jié)合起來(lái)。當(dāng)使用長(zhǎng)短期記憶(LSTM)或門控循環(huán)單元(GRU)等著名的記憶單元來(lái)驅(qū)動(dòng) RNN 時(shí),該 RNN 能夠記住具有很多個(gè)詞的句子中所發(fā)生的情況!(因?yàn)?LSTM 的成功,帶有 LSTM 記憶單元的 RNN 常被稱為 LSTM。)這類模型中最大的模型將這樣的結(jié)構(gòu)堆疊了 8 次。
都表示帶有 LSTM 單元的循環(huán)神經(jīng)網(wǎng)絡(luò)。它們也應(yīng)用了一些權(quán)衡的技巧,比如跳過(guò) LSTM 層之間的連接和一種被稱為注意(attention)的方法。另外要注意綠色的 LSTM 指向了相反的方向。當(dāng)與一個(gè)普通的 LSTM 結(jié)合時(shí),這被稱為雙向 LSTM(bidirectional LSTM),因?yàn)槠淇梢栽跀?shù)據(jù)序列的兩個(gè)方向上都獲取信息。更多信息可參閱 Stephen Merity 的博客(即機(jī)器之心文章《深度 | 逐層剖析,谷歌機(jī)器翻譯突破背后的神經(jīng)網(wǎng)絡(luò)架構(gòu)是怎樣的?》)(來(lái)源:Wu et al., 2016)。
但是,和簡(jiǎn)單的詞袋模型比起來(lái),LSTM 的計(jì)算成本要高得多,而且需要經(jīng)驗(yàn)豐富的深度學(xué)習(xí)工程師使用高性能的計(jì)算硬件來(lái)實(shí)現(xiàn)和提供支持。
四、例子:情感分析
情感分析(sentiment analysis)是一種量化主觀性文章的極性的文檔分類任務(wù)。給定一個(gè)句子,模型去評(píng)估它的情感是積極、消極還是中性的。
想要在事態(tài)嚴(yán)重前先發(fā)現(xiàn) Twitter 上的憤怒客戶嗎?那么,情感分析可能正是你想要的!
一個(gè)極佳的實(shí)現(xiàn)此目的的數(shù)據(jù)集(我們接下來(lái)會(huì)用到)是 Stanford sentiment treebank(SST):
https://nlp.stanford.edu/sentiment/treebank.html
我們已經(jīng)公開(kāi)了一個(gè) PyTorch 的數(shù)據(jù)加載器:
https://github.com/pytorch/text
STT 不僅可以給句子分類(積極、消極),而且也可以給每個(gè)句子提供符合語(yǔ)法的子短語(yǔ)(subphrases)。然而,在我們的系統(tǒng)中,我們不使用任何樹(shù)信息(tree information)。
原始的 SST 由 5 類構(gòu)成:非常積極、積極、中性、消極、非常消極。我們認(rèn)為二值分類任務(wù)更加簡(jiǎn)單,其中積極與非常積極結(jié)合、消極與非常消極結(jié)合,沒(méi)有中性。
我們?yōu)槲覀兊哪P图軜?gòu)提供了一個(gè)簡(jiǎn)略且技術(shù)化的描述。重點(diǎn)不是它到底如何被構(gòu)建,而是計(jì)算成本低的模型達(dá)到了 82% 的驗(yàn)證精度,一個(gè) 64 大小的批任務(wù)用了 10 毫秒,而計(jì)算成本高的 LSTM 架構(gòu)雖然驗(yàn)證精度達(dá)到了 88% 但是需耗時(shí) 87 毫秒才能處理完同樣的任務(wù)量(最好的模型大概精度在 88-90%)。
下面的綠色框表示詞嵌入,使用 GloVe 進(jìn)行了初始化,然后是取詞的平均(詞袋)和帶有 dropout 的 2 層 MLP。
下面的藍(lán)綠色框表示詞嵌入,使用 GloVe 進(jìn)行了初始化。在整個(gè)詞嵌入中沒(méi)有跟蹤梯度。我們使用了一個(gè)帶有 LSTM 單元的雙向 RNN,使用的方式類似于詞袋,我們使用了該 RNN 隱藏狀態(tài)來(lái)提取均值和最大值,之后是一個(gè)帶 dropout 的 2 層 MLP。
五、低計(jì)算成本的跳讀閱讀器(skim reader)
在某些任務(wù)中,算法可以展現(xiàn)出接近人類水平的精度,但是要達(dá)到這種效果,你的服務(wù)器預(yù)算恐怕得非常高。你也知道,不一定總是需要使用有真實(shí)世界數(shù)據(jù)的 LSTM,用低成本的詞袋(BoW)或許也沒(méi)問(wèn)題。
當(dāng)然,順序不可知的詞袋(BoW)會(huì)將大量消極詞匯錯(cuò)誤分類。完全切換到一個(gè)劣質(zhì)的詞袋(BoW)會(huì)降低我們的總體性能,讓它聽(tīng)上去就不那么令人信服了。所以問(wèn)題就變成了:
我們能否學(xué)會(huì)區(qū)分「簡(jiǎn)單」和「困難」的句子。
而且為了節(jié)省時(shí)間,我們能否用低成本的模型來(lái)完成這項(xiàng)任務(wù)?
六、探索內(nèi)部
探索深度學(xué)習(xí)模型的一種流行的方法是了解每個(gè)句子在隱藏層中是如何表示的。但是,因?yàn)殡[藏層常常是高維的,所以我們可以使用 T-SNE 這樣的算法來(lái)將其降至 2 維,從而讓我們可以繪制圖表供人類觀察。
上面兩張圖是原文中可交互的圖示的截圖。在原交互圖中,你可以將光標(biāo)移動(dòng)、縮放和懸停在數(shù)據(jù)點(diǎn)上來(lái)查看這些數(shù)據(jù)點(diǎn)的信息。在圖中,你可以看到在詞袋(BoW)中的最后一個(gè)隱藏層。當(dāng)懸停在任何數(shù)據(jù)點(diǎn)上時(shí),你可以看到表示該數(shù)據(jù)點(diǎn)的句子。句子的顏色取決于其標(biāo)簽(label)。
Predictions 標(biāo)簽頁(yè):該模型的系統(tǒng)預(yù)測(cè)與實(shí)際標(biāo)簽的比較。數(shù)據(jù)點(diǎn)的中心表示其預(yù)測(cè)(藍(lán)色表示積極,紅色表示消極),周圍的線表示實(shí)際的標(biāo)簽。讓我們可以了解系統(tǒng)什么時(shí)候是正確的,什么時(shí)候是錯(cuò)誤的。
Probabilities 標(biāo)簽頁(yè):我們繪制了在輸出層中被預(yù)測(cè)的類別的概率。這表示了該模型對(duì)其預(yù)測(cè)的信息。此外,當(dāng)懸停在數(shù)據(jù)點(diǎn)上時(shí),也將能看到給定數(shù)據(jù)點(diǎn)的概率,其顏色表示了模型的預(yù)測(cè)。注意因?yàn)樵撊蝿?wù)是二元分類,所以其概率是從 0.5 開(kāi)始的,在這個(gè)案例中的最小置信度為 50/50.
T-SNE 圖容易受到許多過(guò)度解讀的破壞,但這可能能讓你了解一些趨勢(shì)。
七、T-SNE 的解讀
- 句子變成聚類(cluster),聚類構(gòu)成不同的語(yǔ)義類型。
- 一些聚類具有簡(jiǎn)單的形式,而且具有很高的置信度和準(zhǔn)確度。
- 其它聚類更加分散,帶有更低的準(zhǔn)確度和置信度。
- 帶有積極成分和消極成分的句子是很困難的。
現(xiàn)在讓我們看看在 LSTM 上的相似的圖:
上面兩張圖是原文中可交互的圖示的截圖。在原交互圖中,你可以將光標(biāo)移動(dòng)、縮放和懸停在數(shù)據(jù)點(diǎn)上來(lái)查看這些數(shù)據(jù)點(diǎn)的信息。設(shè)置和詞袋的交互圖類似,快來(lái)探索 LSTM 的內(nèi)部吧!
我們可以認(rèn)為其中許多觀察也對(duì) LSTM 有效。但是,LSTM 只有相對(duì)較少的樣本,置信度也相對(duì)較低,而且句子中同時(shí)出現(xiàn)積極和消極的成分時(shí),對(duì) LSTM 來(lái)說(shuō)的挑戰(zhàn)性也要低于對(duì)詞袋的挑戰(zhàn)性。
看起來(lái)詞袋可以聚類句子,并使用其概率來(lái)識(shí)別是否有可能給那個(gè)聚類中的句子提供一個(gè)正確的預(yù)測(cè)。對(duì)于這些觀察,可以做出一個(gè)合理的假設(shè):置信度更高的答案更正確。
為了研究這個(gè)假設(shè),我們可以看看概率閾值(probability thresholds)。
八、概率閾值
人們訓(xùn)練詞袋和 LSTM 為每一個(gè)類提供概率,以度量確定性。這是什么意思?如果詞袋返回一個(gè) 1,那么表示它對(duì)其預(yù)測(cè)很自信。通常在預(yù)測(cè)時(shí)我們采用由我們的模型提供且?guī)в凶罡呖赡苄缘念?。在這種二元分類的情況下(積極或消極),概率必須超過(guò) 0.5(否則我們會(huì)預(yù)測(cè)相反的類)。但是一個(gè)被預(yù)測(cè)類的低概率也許表明該模型存疑。例如,一個(gè)模型預(yù)測(cè)的積極概率為 0.51,消極概率為 0.49,那么說(shuō)這個(gè)結(jié)論是積極的就不太可信。當(dāng)使用「閾值」時(shí),我們是指將預(yù)測(cè)出的概率與一個(gè)值相比較,并評(píng)估要不要使用它。例如,我們可以決定使用概率全部超過(guò) 0.7 的句子?;蛘呶覀円部梢钥纯?0.5-0.55 的區(qū)間給預(yù)測(cè)置信度帶來(lái)什么影響,而這正是在下圖所要精確調(diào)查的。
在這張閾值圖中,柱的高度對(duì)應(yīng)于兩個(gè)閾值內(nèi)的數(shù)據(jù)點(diǎn)的精確度;線表示當(dāng)所有的數(shù)據(jù)點(diǎn)超出給定的閾值時(shí)的類似的精確度。在數(shù)據(jù)數(shù)量圖中,柱的高度對(duì)應(yīng)于兩個(gè)閾值內(nèi) data reciding 的量,線則是每個(gè)閾值倉(cāng)積累的數(shù)據(jù)。
從每個(gè)詞袋圖中你也許發(fā)現(xiàn)增加概率閾值性能也會(huì)隨之提升。當(dāng) LSTM 過(guò)擬合訓(xùn)練集并只提供置信度高的答案時(shí),上述情況在 LSTM 圖中并不明顯就似乎很正常了。
在容易的樣本上使用 BoW,在困難的樣本上使用原始 LSTM |
因此,簡(jiǎn)單使用輸出概率就能向我們表明什么時(shí)候一個(gè)句子是容易的,什么時(shí)候需要來(lái)自更強(qiáng)系統(tǒng)(比如強(qiáng)大的 LSTM)的指導(dǎo)。
我們使用概率閾值創(chuàng)建了一種「概率策略」(probability strategy),從而可為詞袋系統(tǒng)的概率設(shè)置閾值,并在所有沒(méi)有達(dá)到閾值的數(shù)據(jù)點(diǎn)上使用 LSTM。這樣做為我們提供了用于詞袋的那么多的數(shù)據(jù)(在閾值之上的句子)和一系列數(shù)據(jù)點(diǎn),其中我們要么選擇 BoW(在閾值之上),要么選擇 LSTM(在閾值之下),我們可以用此發(fā)現(xiàn)一個(gè)精度和計(jì)算成本。接著我們會(huì)獲得 BoW 和 LSTM 之間的一個(gè)從 0.0(僅使用 LSTM)到 1.0(僅使用 BoW)的比率,并可借此計(jì)算精度和計(jì)算時(shí)間。
九、基線(Baseline)
為了構(gòu)建基線(baseline),我們需要考慮兩個(gè)模型之間的比率。例如詞袋(BoW)使用 0.1 的數(shù)據(jù)就相當(dāng)于 0.9 倍 LSTM 的準(zhǔn)確率和 0.1 倍 BoW 的準(zhǔn)確率。其目的是取得沒(méi)有指導(dǎo)策略(guided strategy)的基線,從而在句子中使用 BoW 或 LSTM 的選擇是隨機(jī)分配的。然而,使用策略時(shí)是有成本的。我們必須首先通過(guò) BoW 模型處理所有的句子,從而確定我們是否該使用 BoW 或 LSTM。在沒(méi)有句子達(dá)到概率閥值(probability threshold)的情況下,我們可以不需要什么理由運(yùn)行額外的模型。為了體現(xiàn)這一點(diǎn),我們從以下方式計(jì)算策略成本與比率。
其中 C 代表著成本,p 代表著 BoW 使用數(shù)據(jù)的比例。
上圖是驗(yàn)證集上的結(jié)果,其比較了 BoW、LSTM(紅線)和概率閥值策略(藍(lán)線)之間不同組合比率的精度和速度,最左側(cè)的數(shù)據(jù)點(diǎn)對(duì)應(yīng)于只使用 LSTM,最右邊的只使用 BoW,中間的對(duì)應(yīng)著使用兩者的組合。藍(lán)線代表著沒(méi)有指導(dǎo)策略的 CBOW 和 LSTM 組合,紅線描述了使用 BoW 概率作為策略指導(dǎo)哪個(gè)系統(tǒng)使用多大比例。注意最大的時(shí)間節(jié)省超過(guò)了 90%,因?yàn)槠鋬H僅只使用了 BoW。有趣的是,我們發(fā)現(xiàn)使用 BoW 閥值要顯著優(yōu)于沒(méi)有使用指導(dǎo)策略(guided strategy)的情況。
我們隨后測(cè)量了曲線的均值,我們稱之為曲線下速度(Speed Under the Curve /SUC),其就如下表所示。
以上是在驗(yàn)證集中離散地選擇使用 BoW 還是 LSTM 的策略結(jié)果。每一個(gè)模型會(huì)在不同 seed 的情況下計(jì)算十次。該表格中的結(jié)果是 SUC 的均值。概率策略(probability strategy)也會(huì)和比率(Ratio)相比較。
十、學(xué)習(xí)何時(shí)跳讀何時(shí)閱讀
知道什么時(shí)候在兩個(gè)不同模型之間轉(zhuǎn)換還不夠,因?yàn)槲覀円獦?gòu)建一個(gè)更通用的系統(tǒng),學(xué)習(xí)在所有不同模型之間轉(zhuǎn)換。這樣的系統(tǒng)將幫助我們處理更復(fù)雜的行為。
在監(jiān)督學(xué)習(xí)中當(dāng)閱讀完勝于跳讀時(shí),我們可以學(xué)習(xí)嗎?
LSTM 自左到右地「閱讀」我們,每一步都存儲(chǔ)一個(gè)記憶,而「跳讀」則使用 BoW 模型。在來(lái)自詞袋模型上的概率操作時(shí),我們基于不變量做決策,這個(gè)不變量是指當(dāng)詞袋系統(tǒng)遭到質(zhì)疑時(shí),更強(qiáng)大的 LSTM 工作地更好。但是情況總是如此嗎?
當(dāng)詞袋和 LSTM 關(guān)于一個(gè)句子是正確或錯(cuò)誤的時(shí)候的「混淆矩陣」(confusion matrix)。相似于來(lái)自之前的詞袋和 LSTM 之間的混淆 T-SNE 圖。
事實(shí)上,結(jié)果證明這種情況只適用于 12% 的句子,而 6% 的句子中,詞袋和 LSTM 都錯(cuò)了。在這種情況下,我們沒(méi)有理由再運(yùn)行 LSTM,而只使用詞袋以節(jié)省時(shí)間。
十一、學(xué)習(xí)跳讀,配置
當(dāng) BoW 遭受質(zhì)疑時(shí)我們并不總是應(yīng)該使用 LSTM。當(dāng) LSTM 也犯錯(cuò)并且我們要保留珍貴的計(jì)算資源時(shí),我們可以使詞袋模型理解嗎?
讓我們?cè)僖淮慰纯?T-SNE 圖,但是現(xiàn)在再加上 BoW 和 LSTM 之間的混淆矩陣圖。我們希望找到混淆矩陣不同元素之間的關(guān)系,尤其是當(dāng) BoW 錯(cuò)誤時(shí)。
從對(duì)比圖中,我們發(fā)現(xiàn)當(dāng) BoW 是正確的,并遭受懷疑時(shí),我們很容易判決出來(lái)。然而,當(dāng) LSTM 可能是對(duì)或錯(cuò)時(shí),BoW 與 LSTM 之間并沒(méi)有明確的關(guān)系。
1. 我們能學(xué)習(xí)這種關(guān)系嗎?
另外,因?yàn)楦怕什呗砸蕾囉诙獩Q策并要求概率,其是有很大的限制性的。相反,我們提出了一個(gè)基于神經(jīng)網(wǎng)絡(luò)的可訓(xùn)練決策網(wǎng)絡(luò)(decision network)。如果我們查看混淆矩陣(confusion matrix),那么我們就能使用這些信息為監(jiān)督?jīng)Q策網(wǎng)絡(luò)生成標(biāo)簽。因此,我們就能在 LSTM 正確且 BoW 錯(cuò)誤的情況下使用 LSTM。
為了生成數(shù)據(jù)集,我們需要一個(gè)句子集,其包含了詞袋和 LSTM 的真實(shí)、潛在的預(yù)測(cè)。然而在訓(xùn)練 LSTM 的過(guò)程中,其經(jīng)常實(shí)現(xiàn)了超過(guò) 99% 的訓(xùn)練準(zhǔn)確度,并顯然對(duì)訓(xùn)練集存在過(guò)擬合現(xiàn)象。為了避免這一點(diǎn),我們將訓(xùn)練集分割成模型訓(xùn)練集(80% 的訓(xùn)練數(shù)據(jù))和決策訓(xùn)練集(余下 20% 的訓(xùn)練數(shù)據(jù)),其中決策訓(xùn)練集是模型之前所沒(méi)有見(jiàn)過(guò)的。之后,我們使用余下的 20% 數(shù)據(jù)微調(diào)了模型,并期望決策網(wǎng)絡(luò)能泛化到這一個(gè)新的、沒(méi)見(jiàn)過(guò)的但又十分相關(guān)的數(shù)據(jù)集,并讓系統(tǒng)更好一些。
詞袋和 LSTM 最初都是在「Model train」上先進(jìn)行訓(xùn)練(80% 訓(xùn)練數(shù)據(jù)),隨后這些模型被用于生成決策網(wǎng)絡(luò)的標(biāo)簽,再進(jìn)行完整數(shù)據(jù)集的訓(xùn)練。驗(yàn)證集在這段時(shí)間一直被使用。
為了構(gòu)建我們的決策網(wǎng)絡(luò),我們進(jìn)入我們低成本的詞袋系統(tǒng)的最后一個(gè)隱藏層(用來(lái)生成 T-SNE 圖的同一層)。我們?cè)谀P陀?xùn)練集上的詞袋訓(xùn)練之上疊加一個(gè)兩層 MLP。我們發(fā)現(xiàn),如果我們不遵循這個(gè)方法,決策網(wǎng)絡(luò)將無(wú)法了解 BoW 模型的趨勢(shì),并且不能很好地進(jìn)行泛化。
底部的長(zhǎng)條狀代表詞袋系統(tǒng)的層,不包含 dropout。一個(gè)雙層的 MLP 被加在頂部,一個(gè)類用于是否選擇詞袋或卓越的 LSTM。
由決策網(wǎng)絡(luò)在驗(yàn)證集上選擇的類別(在模型訓(xùn)練集上訓(xùn)練過(guò)的模型基礎(chǔ)上)接著被應(yīng)用于完全訓(xùn)練集上訓(xùn)練過(guò)但非常相關(guān)的模型上。為什么要應(yīng)用到一個(gè)完全訓(xùn)練集訓(xùn)練過(guò)的模型上?因?yàn)槟P陀?xùn)練集上的模型通常較差,因此準(zhǔn)確度會(huì)比較低。該決策網(wǎng)絡(luò)是基于在驗(yàn)證集上的 SUC 最大化而利用早停(early stopping)訓(xùn)練的。
2. 決策網(wǎng)絡(luò)的表現(xiàn)如何?
讓我們從觀察決策網(wǎng)絡(luò)的預(yù)測(cè)開(kāi)始。
數(shù)據(jù)點(diǎn)和之前使用詞袋模型時(shí)的 T-SNE 圖相同。綠色點(diǎn)代表使用詞袋預(yù)測(cè)的句子,黃色點(diǎn)代表 LSTM。
注意:這有多近似詞袋的概率截止(probability cutoff)。讓我們看看決策網(wǎng)絡(luò)最后一個(gè)隱藏層的 T-SNE 是否能夠真的聚集一些關(guān)于 LSTM 什么時(shí)候正確或錯(cuò)誤的信息。
3. 網(wǎng)絡(luò)如何執(zhí)行我們的決策?
讓我們從決策網(wǎng)絡(luò)的預(yù)測(cè)開(kāi)始。
數(shù)據(jù)點(diǎn)基于決策網(wǎng)絡(luò)最后隱藏狀態(tài)的語(yǔ)句表征,源自驗(yàn)證語(yǔ)句。顏色和之前的比較圖相同。
看起來(lái)決策網(wǎng)絡(luò)能夠從詞袋的隱藏狀態(tài)中拾取聚類。然而,它似乎不能理解何時(shí) LSTM 可能是錯(cuò)誤的(將黃色和紅色聚類分開(kāi))。
紫色曲線代表在驗(yàn)證集上新引入的決策網(wǎng)絡(luò),注意決策網(wǎng)絡(luò)如何實(shí)現(xiàn)接近但略微不同于概率閾值的解決方案。從時(shí)間曲線和數(shù)據(jù)精度來(lái)看,決策網(wǎng)絡(luò)的優(yōu)勢(shì)并不明顯。
Bow 與 LSTM 在測(cè)試集和驗(yàn)證集中的表現(xiàn)。SUC 基于準(zhǔn)確率與速度圖的平均值。每個(gè)模型都用不同種子計(jì)算了十次。表中結(jié)果來(lái)自 SUC 的平均數(shù)。標(biāo)準(zhǔn)偏差基于與比率的差異。
從預(yù)測(cè)圖、數(shù)據(jù)量、準(zhǔn)確率和 SUC 分?jǐn)?shù)中,我們可以推斷決策網(wǎng)絡(luò)很善于了解 BoW 何時(shí)正確,何時(shí)不正確。而且,它允許我們構(gòu)建一個(gè)更通用的系統(tǒng),挖掘深度學(xué)習(xí)模型的隱藏狀態(tài)。然而,它也表明讓決策網(wǎng)絡(luò)了解它無(wú)法訪問(wèn)的系統(tǒng)行為是非常困難的,例如更復(fù)雜的 LSTM。
十二、討論
我們現(xiàn)在終于明白了 LSTM 的真正實(shí)力,它可以在文本上達(dá)到接近人類的水平,同時(shí)為了達(dá)到這一水平,訓(xùn)練也不需要接近真實(shí)世界的數(shù)據(jù)量。我們可以訓(xùn)練一個(gè)詞袋模型(bag-of-words model)用于理解簡(jiǎn)單的句子,這可以節(jié)省大量的計(jì)算資源,整個(gè)系統(tǒng)的性能損失微乎其微(取決于詞袋閾值的大小程度)。
這個(gè)方法與平均相關(guān),該平均通常是當(dāng)類似于帶有高置信度的模型將被使用時(shí)而執(zhí)行的。但是,只要有一個(gè)可調(diào)整置信度的詞袋,并且不需要運(yùn)行 LSTM,我們就可以自行權(quán)衡計(jì)算時(shí)間和準(zhǔn)確度的重要性并調(diào)整相應(yīng)參數(shù)。我們相信這種方法對(duì)于那些尋求在不犧牲性能的前提下節(jié)省計(jì)算資源的深度學(xué)習(xí)開(kāi)發(fā)者會(huì)非常有幫助。
文章中有一些交互式圖示,感興趣的讀者可以瀏覽原網(wǎng)頁(yè)查閱。本文作者為 MetaMind 研究科學(xué)家 Alexander Rosenberg Johansen。據(jù)介紹,該研究的相關(guān)論文將會(huì)很快發(fā)布到 arXiv 上。
原文:https://metamind.io/research/learning-when-to-skim-and-when-to-read
【本文是51CTO專欄機(jī)構(gòu)機(jī)器之心的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】