何時(shí)淺探,何時(shí)深究—機(jī)器學(xué)習(xí)不是一張紙就能說(shuō)完的
譯文機(jī)器學(xué)習(xí)、深度學(xué)習(xí)與人工智能的崛起已經(jīng)成為一項(xiàng)不爭(zhēng)的事實(shí),且開(kāi)始對(duì)計(jì)算機(jī)科學(xué)領(lǐng)域產(chǎn)生極為深遠(yuǎn)的影響。正如大家所知,截至目前,在從圖像識(shí)別到圍棋競(jìng)技的眾多領(lǐng)域內(nèi),深度學(xué)習(xí)的實(shí)際表現(xiàn)已經(jīng)將人類(lèi)遠(yuǎn)遠(yuǎn)甩在身后。
深度學(xué)習(xí)社區(qū)目前正在將自然語(yǔ)言處理(簡(jiǎn)稱(chēng)NLP)視為技術(shù)研究與應(yīng)用的下一個(gè)前沿。
深度學(xué)習(xí)的一大優(yōu)勢(shì)在于,其水平提升往往能夠在各類(lèi)場(chǎng)景下實(shí)現(xiàn)通用。舉例來(lái)說(shuō),在某一領(lǐng)域中適用于深度學(xué)習(xí)的具體技術(shù)通??梢灾苯愚D(zhuǎn)移至其它領(lǐng)域,而無(wú)需經(jīng)過(guò)任何修改。更具體地講,構(gòu)建大量計(jì)算密集型圖像與語(yǔ)音識(shí)別類(lèi)深度學(xué)習(xí)模型的方法已經(jīng)全面滲透至自然語(yǔ)言處理當(dāng)中。在最新、最先進(jìn)的翻譯系統(tǒng)的幫助下,這套系統(tǒng)足以帶來(lái)遠(yuǎn)勝以往的實(shí)際表現(xiàn)——當(dāng)然,仍需要大量計(jì)算設(shè)備作為配合。盡管我們必須利用性能極強(qiáng)的系統(tǒng)從現(xiàn)實(shí)世界數(shù)據(jù)當(dāng)中偶然發(fā)現(xiàn)高度復(fù)雜的分析模型,但在另一方面,這些模型將能夠以規(guī)?;绞綉?yīng)用于其它多種任務(wù)。而這就提出了新的問(wèn)題:
是否一切任務(wù)都有必要使用如此復(fù)雜的模型?
下面我們一起來(lái)看一套雙層式MLP模型,其已經(jīng)接受相關(guān)訓(xùn)練并可實(shí)現(xiàn)情感分析。
這是一套簡(jiǎn)單的深度學(xué)習(xí)系統(tǒng),我們將其稱(chēng)為“詞袋”模型,它會(huì)把句子分為正或負(fù)兩類(lèi)。最終可視化效果由詞袋模型中雙層MLP架構(gòu)中處于上層的T-SNE隱藏層實(shí)現(xiàn)。每個(gè)數(shù)據(jù)點(diǎn)對(duì)應(yīng)一個(gè)句子,并根據(jù)深度學(xué)習(xí)系統(tǒng)的預(yù)測(cè)結(jié)論與真實(shí)目標(biāo)標(biāo)以不同顏色。圖中的邊界框體根據(jù)句子的內(nèi)容進(jìn)行繪制。感興趣的朋友可以通過(guò)鼠標(biāo)懸停與圖表進(jìn)行交互!
上圖中的邊界框體提供了一些重要的見(jiàn)解。現(xiàn)實(shí)世界當(dāng)中的數(shù)據(jù)處理任務(wù)在難度上往往有所區(qū)別——某些句子很容易分類(lèi),但其它一些句子則可能包含復(fù)雜的語(yǔ)義結(jié)構(gòu)。對(duì)于那些易于分類(lèi)的句子,我們可能并不需要高容量系統(tǒng)即可完成處理——換言之,利用較為簡(jiǎn)單的模型足以得出相同的結(jié)論。在今天的博文中,我們將探討這種猜測(cè)是否屬實(shí)。另外,文中還將展示我們通常如何運(yùn)用此類(lèi)簡(jiǎn)單模型。
文本內(nèi)容與深度學(xué)習(xí)
大多數(shù)深度學(xué)習(xí)方法要求利用浮點(diǎn)數(shù)字作為輸入內(nèi)容——除非您之前嘗試過(guò)處理文本信息,否則大家肯定會(huì)抱有以下疑問(wèn):
我該如何將文本片段與深度學(xué)習(xí)對(duì)接起來(lái)?
在處理文本內(nèi)容時(shí),其核心問(wèn)題在于如何表達(dá)任意數(shù)量的信息。目前比較流行的解決方案之一在于將文本標(biāo)記為單詞、子詞匯甚至是字符。我們可以利用word2vec或者GloVe等方案進(jìn)一步將各個(gè)單詞轉(zhuǎn)換為浮點(diǎn)矢量。如此一來(lái),大家即可通過(guò)不同單詞之間的隱含關(guān)系表達(dá)單詞意義。
選擇一個(gè)單詞,將其轉(zhuǎn)化為一個(gè)高維度嵌入體(例如三百維),而后利用PCAaftT-SNE(二者皆為高人氣降維工具,在本示例中可將其降至二維),如此一來(lái)大家即可發(fā)現(xiàn)單詞之間的有趣關(guān)聯(lián)。正如大家所見(jiàn),上圖提示uncle與aunt之間具備類(lèi)似詞義,只是分別指向男性與女性。
利用標(biāo)記化以及word2vec方法,我們可以將文本片段轉(zhuǎn)化為一條用以表達(dá)每個(gè)單詞的浮點(diǎn)序列。
現(xiàn)在,我們?cè)撊绾问褂眠@條浮點(diǎn)序列?
詞袋模型
現(xiàn)在我們來(lái)討論詞袋模型(bag-ofwords,簡(jiǎn)稱(chēng)BoW),這可能是大家接觸過(guò)的最為簡(jiǎn)單的機(jī)器學(xué)習(xí)算法之一。
選取多個(gè)詞匯表達(dá)(即底部灰色框),而后通過(guò)相加或者取平均值的方式將其歸納為另一通用表達(dá)式(藍(lán)色框),其中應(yīng)該會(huì)包含每個(gè)單詞中的部分信息。在本文當(dāng)中,這一通用表達(dá)式負(fù)責(zé)預(yù)測(cè)句子表達(dá)的情感為正抑或?yàn)樨?fù)(紅色框)。
直接對(duì)特征維度取平均值。事實(shí)證明,在簡(jiǎn)單的詞匯平均嵌入場(chǎng)景下,即使完全忽略句子內(nèi)的表達(dá)順序,這套模型仍能夠在多數(shù)簡(jiǎn)單實(shí)例中運(yùn)行良好。而與深度神經(jīng)網(wǎng)絡(luò)(稍后將進(jìn)一步說(shuō)明)相結(jié)合后,詞袋模型往往能夠給出理想的理解基準(zhǔn)線。另外,平均值是一項(xiàng)低資源占用量操作,且可幫助我們將句子的維度降低為一項(xiàng)固定大小的向量。
遞歸神經(jīng)網(wǎng)絡(luò)
某些句子中可能包含更為復(fù)雜的結(jié)構(gòu)或者需要以更高精度加以處理。單靠詞袋模型往往不足以解決這些難題,因此是時(shí)候祭出另一款神器——遞歸神經(jīng)網(wǎng)絡(luò)了!
在每個(gè)timestep(由左至右)上為RNN(灰色框)提供一條輸入內(nèi)容(例如一個(gè)單詞),并將此作為原有內(nèi)部記憶(藍(lán)色框)之外的新增內(nèi)容。RNN隨后會(huì)在新的內(nèi)部記憶(藍(lán)色框)中進(jìn)行計(jì)算,這部分結(jié)果代表的是全部此前見(jiàn)到過(guò)的單元(例如全部原有單詞)。RNN現(xiàn)在應(yīng)該已經(jīng)獲得了句子層級(jí)上的全新信息,意味著其能夠更好地預(yù)測(cè)句子所表達(dá)的情感為正抑或?yàn)樨?fù)(紅色框)。
每個(gè)嵌入單詞都會(huì)按順序被饋送至一套遞歸神經(jīng)網(wǎng)絡(luò)當(dāng)中,后者負(fù)責(zé)管理以往見(jiàn)到過(guò)的存儲(chǔ)信息,并將這部分信息與新詞匯加以結(jié)合。在使用長(zhǎng)-短期記憶單元(簡(jiǎn)稱(chēng)LSTM)或者門(mén)控遞歸單元(簡(jiǎn)稱(chēng)GRU)等知名記憶單元支持下的RNN時(shí),RNN將能夠記住包含大量單詞的句子的具體含義?。ㄓ捎贚STM獲得了成功,采用LSTM記憶單元的RNN通常也被直接稱(chēng)為L(zhǎng)STM。)這些模型當(dāng)中最大的八個(gè)彼此相互堆疊。
歡迎來(lái)到最為先進(jìn)(大概是)的深度學(xué)習(xí)模型當(dāng)中,其利用配備LSTM記憶單元的RNN實(shí)現(xiàn)語(yǔ)言翻譯。粉色、橙色與綠色框即為擁有LSTM單元的遞歸神經(jīng)網(wǎng)絡(luò)。其亦可實(shí)現(xiàn)在不同lstm層之間實(shí)現(xiàn)skip連接等處理技巧的交換,同時(shí)具備一項(xiàng)名為attention的方法。如大家所見(jiàn),綠色的LSTM指向相反的方向。當(dāng)將其與正常LSTM相結(jié)合后,即可生成所謂雙向LSTM,其能夠以兩個(gè)方向從數(shù)據(jù)序列中獲取信息。欲了解更多相關(guān)信息,請(qǐng)點(diǎn)擊此處參閱Stephen Merity發(fā)表的博文。
然而,LSTM的運(yùn)行資源需求要遠(yuǎn)遠(yuǎn)高于低成本詞袋模型,也通常需要由經(jīng)驗(yàn)豐富的深度學(xué)習(xí)工程師負(fù)責(zé)實(shí)現(xiàn)并高效支持與之配套的高性能計(jì)算硬件。
示例:情感分析
情感分析屬于一種文檔分類(lèi)機(jī)制,其可對(duì)文檔內(nèi)容的主觀傾向進(jìn)行判斷。在向其提交一個(gè)句子后,這套模型能夠評(píng)估其表達(dá)的情感為正面、負(fù)面抑或中性。
希望在客戶行動(dòng)之前通過(guò)其推文將其找到?情感分析能夠有效滿足您的需求!
在這方面,最為知名的公共數(shù)據(jù)集(也正是我們將在后文中使用的選項(xiàng))正是斯坦福情感樹(shù)圖庫(kù)(簡(jiǎn)稱(chēng)SST)。SST不僅能夠?qū)渥舆M(jìn)行分類(lèi)(正面或者負(fù)面),同時(shí)亦可對(duì)句子中的各單獨(dú)語(yǔ)法進(jìn)行判斷。但在我們的系統(tǒng)中,我們并未使用任何樹(shù)狀信息。初始SST將情感分為五種類(lèi)別:非常正面、正面、中立、負(fù)面、非常負(fù)面。出于示例的考慮,我們認(rèn)為二分法應(yīng)該更為簡(jiǎn)單且易于理解,因此我們將非常正面與正面加以合并,非常負(fù)面與負(fù)面亦進(jìn)行合并,同時(shí)將所有中性判斷結(jié)果加以去除。
我們已經(jīng)對(duì)示例中所要使用的模型架構(gòu)進(jìn)行了概括與技術(shù)性介紹。其中最重要的并非具體架構(gòu)設(shè)計(jì)方式,而在于低成本模型能夠在64項(xiàng)批量處理流程中以10毫秒延遲提供82%的驗(yàn)證準(zhǔn)確率,而高成本LSTM則在64項(xiàng)批量處理流程中以87毫秒的延遲提供僅略有改善的88%驗(yàn)證準(zhǔn)確率(頂級(jí)模型的準(zhǔn)確性一般在88%到90%之間)。
底部綠色框代表嵌入詞匯,由GloVe進(jìn)行初始化,而后提取詞意(詞袋模型)并由一套雙層MLP模型進(jìn)行分析及中性要素去除。
底部青綠色框代表嵌入詞匯,由GloVe進(jìn)行初始化。此后我們不再對(duì)嵌入詞匯進(jìn)行追蹤。這里我們使用與LSTM單元相似的具備LSTM單元的雙向RNN。我們利用RNN隱藏狀態(tài)以獲取平均值與最大值,而后是雙層MLP模型進(jìn)行分析及中性要素去除。
低成本淺探閱讀方案
在某些任務(wù)中,各類(lèi)算法能夠提供與人類(lèi)水平相近的準(zhǔn)確度,但其提出的服務(wù)器性能要求往往也令人難以承受。另外正如前文中所提出,我們并不需要始終利用LSTM這類(lèi)高性能需求量方案處理實(shí)際數(shù)據(jù)——大多數(shù)情況下詞袋模型已經(jīng)足以完成任務(wù)。但有時(shí)候,我們可能面對(duì)著以下這類(lèi)難題:
“演員表現(xiàn)非常糟糕,完全缺少真實(shí)感……但我仍然愿意給出9分好評(píng)”
作為一類(lèi)忽略順序的算法,詞袋模型肯定會(huì)將這句話理解成負(fù)面表達(dá)。然而很明顯,這樣簡(jiǎn)單且明確的表達(dá)居然成為拉低分析準(zhǔn)確率的罪魁禍?zhǔn)?mdash;—這樣的情況明顯無(wú)法接受。因此問(wèn)題就變成:
我們能否學(xué)會(huì)如何區(qū)分“簡(jiǎn)單”與“困難”兩類(lèi)句子?
另外,我們能否利用低成本模型完成這項(xiàng)任務(wù)?
深入探索
探索深度學(xué)習(xí)模型的一種主流方式,在于立足隱藏層對(duì)每個(gè)句子的表示方式進(jìn)行繪制。然而,由于隱藏層通常位于高維,因此我們可以使用T-SNE等算法首先將其降維至二維,從而以人類(lèi)可以理解的方式實(shí)施繪制。
大家可以移動(dòng)、縮放、保存并將鼠標(biāo)懸停在數(shù)據(jù)點(diǎn)上以查看其信息。請(qǐng)注意,在向右側(cè)渲染的情況下(即將數(shù)據(jù)點(diǎn)移動(dòng)至左側(cè))提示工具可能表現(xiàn)更好。
在以上圖表中,大家會(huì)看到詞袋模型(BoW)中繪制的最新隱藏層。在將鼠標(biāo)懸停至任何數(shù)據(jù)點(diǎn)時(shí),您將看到表示該數(shù)據(jù)點(diǎn)的對(duì)應(yīng)句子。句子本身的顏色由其標(biāo)簽決定。
預(yù)測(cè)標(biāo)簽(Predictios tab):系統(tǒng)預(yù)測(cè)結(jié)果與實(shí)際模型標(biāo)準(zhǔn)間的比較。數(shù)據(jù)點(diǎn)的中央表殼其預(yù)測(cè)結(jié)論(藍(lán)色為正面,紅色為負(fù)面),而周邊的線條代表實(shí)際標(biāo)簽。如此一來(lái),我們就能輕松判斷系統(tǒng)結(jié)論是否正確。
概率標(biāo)簽(Probabilities tab): 代表我們?cè)谳敵鰧又蟹峙浣o預(yù)測(cè)結(jié)論的具體概率。其負(fù)責(zé)告訴我們?cè)撃P蛯?duì)其預(yù)測(cè)結(jié)論的確信度。另外,在將鼠標(biāo)懸停至數(shù)據(jù)點(diǎn)上時(shí),圖表將提供給定數(shù)據(jù)點(diǎn)的概率,并根據(jù)模型預(yù)測(cè)結(jié)論進(jìn)行著色。需要注意的是,概率的起始值為0.5,代表任務(wù)本身為二分類(lèi)型,且值為0.5時(shí)意味著確信度最低——為五五開(kāi)。
T-SNE制圖極易受到過(guò)度解讀的影響,但其中部分因素的影響效果往往更為明顯。
T-SNE解讀
- 將句子拆分為多個(gè)聚類(lèi)(clusters)。這些聚類(lèi)包含有不同的語(yǔ)義類(lèi)型。
- 部分聚類(lèi)擁有的多重性相對(duì)簡(jiǎn)單,意味著模型對(duì)于準(zhǔn)確度擁有較高的確信度。
- 另一些聚類(lèi)則準(zhǔn)確度較低,且對(duì)結(jié)論的確信度亦不高。
- 同時(shí)包含正面與負(fù)面表達(dá)的句子往往更難進(jìn)行判斷。
下面來(lái)看根據(jù)LSTM模型生成的繪制圖表。
大家可以移動(dòng)、縮放、保存并將鼠標(biāo)懸停在數(shù)據(jù)點(diǎn)上以查看其信息。請(qǐng)注意,在向右側(cè)渲染的情況下(即將數(shù)據(jù)點(diǎn)移動(dòng)至左側(cè))提示工具可能表現(xiàn)更好。
采用與詞袋模型相同的設(shè)置,旨在對(duì)LSTM進(jìn)行深入探索!
我們可以發(fā)現(xiàn),LSTM的大多數(shù)結(jié)果與詞袋模型并無(wú)區(qū)別。然而,LSTM對(duì)于大多數(shù)結(jié)論都擁有更高的確信度,且其在判斷同時(shí)包含正面與負(fù)面表達(dá)的句子時(shí)表現(xiàn)得也要比詞袋模型更好。
如此看來(lái),詞袋模型完全有能力對(duì)句子進(jìn)行聚類(lèi)拆分,并利用概率機(jī)制據(jù)此對(duì)所作出預(yù)測(cè)的準(zhǔn)確性進(jìn)行量化判斷。以此為基礎(chǔ),我們基本可以得出以下推斷:
高確信度答案一般準(zhǔn)確性更高。
為了調(diào)查這一假設(shè),我們可以對(duì)概率閾值進(jìn)行觀察。
概率閾值
詞袋模型與LSTM已經(jīng)經(jīng)過(guò)訓(xùn)練,旨在為每個(gè)類(lèi)提供對(duì)應(yīng)概率,而我們可以將此作為確信度的衡量指標(biāo)。具體來(lái)講,如果詞袋模型返回值為1,則代表其對(duì)于預(yù)測(cè)結(jié)論極具信心。
一般來(lái)講,在預(yù)測(cè)當(dāng)中我們會(huì)選取模型所提供的可能性最高的類(lèi)。在二元分類(lèi)當(dāng)中(即非正即負(fù)),可能性必然高于0.5(否則我們將會(huì)給出相反的結(jié)論)。然而,較低的概率值代表著模型本身對(duì)于當(dāng)前論斷并不能確定。舉例來(lái)說(shuō),如果模型預(yù)測(cè)的負(fù)面值為0.49,而正面值為0.51,則代表著結(jié)論準(zhǔn)確的可能性極低。
在提到閾值時(shí),我們的實(shí)際表意是將預(yù)測(cè)概率與某個(gè)給定值進(jìn)行比較,從而評(píng)估該概率對(duì)應(yīng)的結(jié)論是否可信。舉例來(lái)說(shuō),我們可以決定直接使用概率值高于0.7的全部結(jié)論。或者,我們也可以選擇查看概率值在0.5到0.55之間的句子,從而了解模型在這一確信度區(qū)間作出了怎樣的預(yù)測(cè)——這部分內(nèi)容我們將在后方進(jìn)行詳盡說(shuō)明。
在閾值(threshold)繪圖中,條狀圖形的高度對(duì)應(yīng)兩個(gè)閾值內(nèi)數(shù)據(jù)點(diǎn)的準(zhǔn)確度,而線條則代表其以全部數(shù)據(jù)點(diǎn)(而非給定閾值)為參照時(shí)的近似準(zhǔn)確度。
在數(shù)據(jù)量(data amount)繪圖中,條的高度對(duì)應(yīng)兩個(gè)閾值之間全部數(shù)據(jù)量的累加,而線條則代表來(lái)自各閾值限定區(qū)間內(nèi)的累加數(shù)據(jù)。
通過(guò)詞袋模型繪圖,大家可能會(huì)發(fā)現(xiàn)提升概率閾值會(huì)改善預(yù)測(cè)準(zhǔn)確度。然而這一點(diǎn)在LSTM圖中則表現(xiàn)得并不明顯,這主要是由于LSTM已經(jīng)不再依賴于訓(xùn)練集,而只提供高確信度答案。
使用詞袋模型處理簡(jiǎn)單示例,LSTM則負(fù)責(zé)復(fù)雜示例。
因此,通過(guò)輸出的概率值,我們即可基本判斷句子內(nèi)容是否簡(jiǎn)單以及何時(shí)才有必要?jiǎng)佑酶鼮閺?qiáng)大的LSTM等分析系統(tǒng)。
利用概率閾值,我們創(chuàng)建出一項(xiàng)新的策略,這里將其稱(chēng)為“概率策略”。其能夠幫助我們獲取詞袋系統(tǒng)中的概率閾值,并利用LSTM進(jìn)一步處理那些確信度達(dá)不到閾值要求的預(yù)測(cè)結(jié)論。如此一來(lái),我們就能夠?qū)⒁徊糠謹(jǐn)?shù)據(jù)交由詞袋模型處理(概率高于閾值的句子),而另一部分?jǐn)?shù)據(jù)則可選擇詞袋模型或者LSTM(特別是概率低于閾值的句子)加以處理。在此之后,我們將獲得一項(xiàng)BoW與LSTM之間的使用率比值,由0.0(即只使用LSTM)到1.0(只使用BoW),從而得出分析計(jì)算所需要的時(shí)間與預(yù)期準(zhǔn)確率。
確立基準(zhǔn)
為了確立基準(zhǔn),我們需要選定兩套模型的具體使用比例,例如將0.1的數(shù)據(jù)交由BoW而將0.9的數(shù)據(jù)交給LSTM,則意味著最終準(zhǔn)確率將九成由LSTM決定,一成由BoW決定。我們的目標(biāo)在于建立起一項(xiàng)無(wú)需策略指導(dǎo)的基準(zhǔn),其能夠根據(jù)隨機(jī)分配的句子內(nèi)容決定使用BoW抑或是LSTM。然而,這項(xiàng)策略的執(zhí)行本身也需要成本。我們需要首先通過(guò)詞袋模型對(duì)全部句子進(jìn)行處理,旨在確定哪些句子適用于詞袋、而哪些適用于LSTM。如果任何一個(gè)句子的預(yù)測(cè)確信度都沒(méi)有達(dá)成基準(zhǔn)概率要求,則意味著我們必須將其全部交給LSTM——而這同時(shí)意味著我們的閾值設(shè)定可能存在問(wèn)題。為了避免這種狀況,我們決定通過(guò)以下方式計(jì)算策略的成本與模型使用比例。
其中C代表成本,而p代表詞袋模型中所使用數(shù)據(jù)的比例。
驗(yàn)證集中的結(jié)果比較了BoW與LSTM(紅線)與概率閾值策略(藍(lán)線)不同搭配比例的對(duì)應(yīng)準(zhǔn)確度與處理速度。左側(cè)的數(shù)據(jù)點(diǎn)代表僅使用LSTM的情況,而右側(cè)則代表僅使用詞袋模型的情況,二者之間則為雙方皆有使用。藍(lán)線代表在無(wú)指導(dǎo)策略影響下的BoW與LSTM組合,而紅色曲線描繪了利用詞袋概率作為策略以指導(dǎo)應(yīng)對(duì)哪部分?jǐn)?shù)據(jù)使用哪種系統(tǒng)的情況。您可將鼠標(biāo)懸停在線上以查看不同比例/概率閾值所帶來(lái)的處理時(shí)間節(jié)約效果。需要注意的是,在僅使用詞袋模型的情況下,其達(dá)到時(shí)間節(jié)約能力上限——最高約90%。
這里我們得出一項(xiàng)有趣的發(fā)現(xiàn),即使用詞袋閾值的效果要明顯優(yōu)于未使用任何指導(dǎo)策略的情況。
我們將此曲線視為曲線速度(簡(jiǎn)稱(chēng)SUC),并對(duì)其取平均值。結(jié)果如下表所示。
利用驗(yàn)證集判斷應(yīng)使用BoW或者LSTM的離散選擇結(jié)果。每種模型使用不同素材計(jì)算十次。表中的結(jié)果為SUC平均值。將概率策略與使用比例進(jìn)行比較。
了解何時(shí)淺探而何時(shí)深究
光是了解何時(shí)在兩種不同模型間切換顯然還不夠。我們希望建立一套更具通用性的系統(tǒng),用以學(xué)習(xí)何時(shí)在每種模型間切換。這樣一套系統(tǒng)能夠幫助我們處理更為復(fù)雜的行為:
我們能否通過(guò)固定的管理方式了解何時(shí)深究比淺探效果更好?
其中的“深究”代表利用LSTM由左至右進(jìn)行處理,并將每個(gè)timestep的結(jié)果保存在內(nèi)存中; “淺探”則代表使用BoW模型。在利用詞袋模型計(jì)算概率時(shí),我們可以據(jù)此作出判斷,即當(dāng)某一單詞的含義存在不確定性時(shí),更為強(qiáng)大的LSTM應(yīng)該能夠提供更準(zhǔn)確的結(jié)果——但事實(shí)是否真是如此?
詞袋模型與LSTM對(duì)同一句子存在判斷正確或不正確的混淆矩陣。其類(lèi)似于此前在詞袋模型與LSTM之間進(jìn)行混淆T-SNE繪圖。
事實(shí)上,可以看到LSTM只有12%的機(jī)率提供比BoW更好的判斷結(jié)果,而在6%的情況下詞袋模型或LSTM都無(wú)法給出正確結(jié)果??紤]到這一點(diǎn),我們似乎沒(méi)有理由使用LSTM——單純依靠詞袋模型已經(jīng)能夠帶來(lái)較為準(zhǔn)確的結(jié)果,且處理速度要快得多。
了解“淺探”——設(shè)置
也就是說(shuō),即使BoW對(duì)結(jié)果不夠確定,我們也并未總應(yīng)使用LSTM加以進(jìn)一步處理。那么我們能否讓自己的詞袋模型了解LSTM在哪些情況下會(huì)出現(xiàn)錯(cuò)誤,而哪些情況下高資源占比的LSTM能給出正確結(jié)果?讓我們?cè)俅螌徱昑-SNE繪圖,但現(xiàn)在我們要關(guān)注的是BoW與LSTM之間的混淆矩陣。我們希望找到該混淆矩陣中各元素間的關(guān)系,特別是BoW出現(xiàn)錯(cuò)誤的情況。
大家可以移動(dòng)、縮放、保存并將鼠標(biāo)懸停在數(shù)據(jù)點(diǎn)上以查看其信息。請(qǐng)注意,在向右側(cè)渲染的情況下(即將數(shù)據(jù)點(diǎn)移動(dòng)至左側(cè))提示工具可能表現(xiàn)更好。我們對(duì)BoW與LSTM的預(yù)測(cè)結(jié)果進(jìn)行比較,旨在了解二者的準(zhǔn)確率差異。這能幫助我們?cè)u(píng)估哪種模型的效果更好。另外,在將鼠標(biāo)懸停至某一數(shù)據(jù)點(diǎn)時(shí),其將提供正確性與概率。概率信息根據(jù)預(yù)測(cè)結(jié)果進(jìn)行著色。
通過(guò)比較情況來(lái)看,我們發(fā)現(xiàn)能夠更輕松地判斷BoW何時(shí)正確而何時(shí)對(duì)結(jié)果不太確定。然而,LSTM的正確及錯(cuò)誤之間則沒(méi)有明確的關(guān)聯(lián)。
我們能否把握這一關(guān)聯(lián)?
此外,概率策略本身也存在明顯的局限性,因?yàn)槠湟蕾囉诶^承式二分決策且要求配合概率值。因此,我們提出了一套基于神經(jīng)網(wǎng)絡(luò)的可訓(xùn)練決策網(wǎng)絡(luò)。如果單純著眼于混淆矩陣,我們可以利用這部分信息為監(jiān)控下的決策網(wǎng)絡(luò)生成標(biāo)簽。如此一來(lái),我們即可保證僅在BoW為錯(cuò)誤而LSTM為正確的情況下使用LSTM。
為了生成該數(shù)據(jù)集,我們需要一組句子,其中包含詞袋模型與LSTM給出的正確、底層預(yù)測(cè)。然而在訓(xùn)練當(dāng)中,LSTM通常能夠?qū)崿F(xiàn)99%甚至更高的準(zhǔn)確度,這意味著訓(xùn)練集的規(guī)模已經(jīng)不足以為其提供更多經(jīng)驗(yàn)。為了避免這種狀況,我們將訓(xùn)練集拆分為模型訓(xùn)練集(包含80%的訓(xùn)練數(shù)據(jù))與決策訓(xùn)練集(包含其余20%訓(xùn)練數(shù)據(jù)),后者在訓(xùn)練過(guò)程中始終不會(huì)被交付至模型當(dāng)中。在此之后,我們利用決策訓(xùn)練集對(duì)模型進(jìn)行細(xì)節(jié)調(diào)整,希望決策網(wǎng)絡(luò)能夠在這部分從未出現(xiàn)過(guò)的數(shù)據(jù)中提供同樣出色的預(yù)測(cè)表現(xiàn)。
詞袋模型與LSTM初始皆利用“模型訓(xùn)練”集(即80%訓(xùn)練數(shù)據(jù))進(jìn)行訓(xùn)練,接下來(lái)由這兩套模型為決策網(wǎng)絡(luò)生成標(biāo)簽,最后再利用完整數(shù)據(jù)集對(duì)模型進(jìn)行再次訓(xùn)練。在這一過(guò)程中,我們始終使用同樣的驗(yàn)證集。
為了構(gòu)建我們的決策網(wǎng)絡(luò),我們挖掘了低成本詞袋系統(tǒng)中最后一個(gè)隱藏層(我們亦利用該層生成了T-SNE繪圖)。在此之后,我們將一套雙層MLP堆疊在模型訓(xùn)練集的詞袋訓(xùn)練之上。我們發(fā)現(xiàn)如果不采取這樣的作法,則決策網(wǎng)絡(luò)將無(wú)法掌握BoW模型的變化趨勢(shì),意味著結(jié)果不能得到有效推廣。
底部青綠色框體代表來(lái)自詞袋系統(tǒng)的各層(未經(jīng)篩選)。此后,我們將一套雙層MLP堆疊在其上,并生成一個(gè)類(lèi)以判斷應(yīng)使用詞袋模型抑或LSTM。
決策網(wǎng)絡(luò)根據(jù)模型訓(xùn)練集訓(xùn)練出的模型所選擇的各個(gè)類(lèi)隨后會(huì)在整體訓(xùn)練集中進(jìn)行全面應(yīng)用——但繼續(xù)保持高度關(guān)聯(lián)性。我們之所以將該訓(xùn)練完成的模型應(yīng)用于完整訓(xùn)練集,是因?yàn)樵撃P陀?xùn)練集上的模型往往水平較差并將導(dǎo)致準(zhǔn)確度較低。在對(duì)驗(yàn)證集上的SUC進(jìn)行最大化后,決策網(wǎng)絡(luò)能夠提前停止訓(xùn)練。
我們的決策網(wǎng)絡(luò)執(zhí)行效果如何?
我們首先來(lái)看看這套決策網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果。
數(shù)據(jù)點(diǎn)與之前我們使用詞袋模型時(shí)繪制的T-SNE曲線圖相同。綠色點(diǎn)代表由詞袋模型進(jìn)行預(yù)測(cè)的句子,而黃色點(diǎn)則代表由LSTM進(jìn)行預(yù)測(cè)的句子。
這里我們需要注意結(jié)果與詞袋模型中概率閾值的相似度?,F(xiàn)在讓我們看看決策網(wǎng)絡(luò)最后一個(gè)隱藏層的T-SNE,借此了解其是否能夠準(zhǔn)確判斷LSTM預(yù)測(cè)結(jié)果的正確與錯(cuò)誤情況。
各數(shù)據(jù)點(diǎn)基于決策網(wǎng)絡(luò)最后一個(gè)隱藏層的句子表達(dá),且源自驗(yàn)證句子。其顏色所代表的含義與之前的比較繪圖一致。
看起來(lái)決策網(wǎng)絡(luò)確實(shí)能夠從詞袋模型的隱藏狀態(tài)中提取聚類(lèi)。不過(guò),其似乎無(wú)法發(fā)現(xiàn)哪些情況下LSTM也會(huì)作出錯(cuò)誤判斷(從紅色中提取黃色聚類(lèi))。
紫色曲線表示驗(yàn)證集上新引入的決策網(wǎng)絡(luò)。請(qǐng)注意決策網(wǎng)絡(luò)所使用的,與概率閾值相近但略有不同的解決方案。
從時(shí)間節(jié)約曲線上的數(shù)據(jù)準(zhǔn)確度來(lái)看,我們很難判斷這套決策網(wǎng)絡(luò)是否表現(xiàn)更好。
利用驗(yàn)證集與測(cè)試集判斷應(yīng)使用BoW或者LSTM的離散選擇結(jié)果。SUC基于準(zhǔn)確度與速度繪圖曲線的平均值。每套模型利用不同素材計(jì)算十次。表中的結(jié)果為SUC的平均值。標(biāo)準(zhǔn)偏差基于與該比例間的差異。
從預(yù)測(cè)繪圖來(lái)看,我們可以根據(jù)數(shù)據(jù)量、準(zhǔn)確度以及SUC得分判斷決策網(wǎng)絡(luò)是否能夠準(zhǔn)確判斷BoW給出的預(yù)測(cè)結(jié)果是否正確。另外,我們也能夠借此構(gòu)建起一套更具通用性的系統(tǒng),確保其能夠觸及深度學(xué)習(xí)模型當(dāng)中的隱藏狀態(tài)。然而,結(jié)果同時(shí)表明決策網(wǎng)絡(luò)很難理解其無(wú)法訪問(wèn)之系統(tǒng)的行為,例如更為復(fù)雜的LSTM。
相關(guān)討論
現(xiàn)在我們可以肯定的是,強(qiáng)大的LSTM在文本分析方面可以提供與人類(lèi)相近的表現(xiàn),然而并非全部真實(shí)數(shù)據(jù)皆需要這種精度極高的分析效果,因此我們可以訓(xùn)練一套詞袋模型以判斷當(dāng)前句子是否簡(jiǎn)單。對(duì)簡(jiǎn)單句子施以“淺探”處理能夠幫助我們節(jié)約大量計(jì)算資源與時(shí)間。
這種方法主要通過(guò)取均值實(shí)現(xiàn),且一般更適用于具有高確信度的分析模型。然而通過(guò)在詞袋模型中調(diào)整確信度標(biāo)準(zhǔn),我們同樣能夠選取適合實(shí)際情況的計(jì)算時(shí)間與準(zhǔn)確度平衡點(diǎn)。為了有效節(jié)約計(jì)算資源,我們認(rèn)為這種方法能夠?yàn)樯疃葘W(xué)習(xí)工程師們帶來(lái)一些有益的啟發(fā)。
關(guān)于引用
如果您在公開(kāi)發(fā)表的文章中引用此博文,請(qǐng)保留以下內(nèi)容:
作者:Alexander Rosenberg Johansen、Bryan McCann、James Bradbury以及 Richard Socher。2017年。
《Learning when to skim and when to read 》(相關(guān)論文即將發(fā)布)
通過(guò)更為深入地了解深度學(xué)習(xí)系統(tǒng)在哪些情況下可能出錯(cuò),我們將能夠更為明智地判斷在哪種條件下使用哪種深度學(xué)習(xí)模型。如此一來(lái),我們將可以利用最低限度計(jì)算時(shí)間獲得與預(yù)期相符的任務(wù)完成效果。
原文鏈接:https://metamind.io/research/learning-when-to-skim-and-when-to-read