Text2Image:一種新的NLP思路
與計(jì)算機(jī)視覺(jué)相比,自然語(yǔ)言處理 (NLP) 一直被認(rèn)為是一個(gè)難以攻克的難題。本文尋找到了一種新的 NLP 處理方式,探索將 NLP 與計(jì)算機(jī)視覺(jué)處理結(jié)合,將文本繪制成圖片。雖然目前的準(zhǔn)確率還有待優(yōu)化提高,但看起來(lái)很有應(yīng)用前景。
問(wèn)題點(diǎn)
長(zhǎng)期以來(lái),自然語(yǔ)言處理 (NLP) 一直被認(rèn)為是一個(gè)難以攻克的難題,至少與計(jì)算機(jī)視覺(jué)相比是這樣。NLP 模型需要更長(zhǎng)的運(yùn)行時(shí)間,通常更難實(shí)現(xiàn),并且需要更多的計(jì)算資源。另一方面,圖像識(shí)別模型的實(shí)現(xiàn)變得更加簡(jiǎn)單,對(duì) GPU 的負(fù)擔(dān)也更小。這讓我想到,我們可以把一個(gè)文本語(yǔ)料庫(kù)轉(zhuǎn)換成一個(gè)圖像嗎? 我們能把文本解釋成圖像嗎? 事實(shí)證明,答案是肯定的,并帶來(lái)了令人驚訝的結(jié)果!我們用這種方法來(lái)區(qū)分假新聞和真新聞。
在本文中,我們將詳細(xì)探討這種方法、結(jié)果、結(jié)論和接下來(lái)的改進(jìn)。
簡(jiǎn) 介
思路來(lái)源
將文本轉(zhuǎn)換為圖像的想法最初是受到 Gleb Esman 關(guān)于欺詐檢測(cè)的這篇文章的啟發(fā)。在這種方法中,他們將各種數(shù)據(jù)點(diǎn),如鼠標(biāo)移動(dòng)的速度、方向、加速度等轉(zhuǎn)換成彩色圖像。然后在這些圖像上運(yùn)行一個(gè)圖像識(shí)別模型,進(jìn)而可以產(chǎn)生高度準(zhǔn)確的結(jié)果。
數(shù)據(jù)
所有實(shí)驗(yàn)使用的數(shù)據(jù)是 George Mclntire 的假新聞數(shù)據(jù)集的子集。它包含大約 1000 篇假新聞和真實(shí)新聞的文章: https://github.com/cabhijith/Fake-News/blob/master/fake_or_real_news.csv.zip
Text2Image 的基本原理
讓我們首先在一個(gè)較高的層次上討論 Text2Image。其基本思想是將文本轉(zhuǎn)換成我們可以繪制的熱圖。熱圖標(biāo)識(shí)著每個(gè)單詞的 TF-IDF 值。詞頻 - 逆文檔頻率 (TF-IDF) 是一種統(tǒng)計(jì)方法,用于確定一個(gè)單詞相對(duì)于文檔中其他單詞的重要性。在基本的預(yù)處理和計(jì)算 TF-IDF 值之后,我們使用一些平滑的高斯濾波將它們繪制成對(duì)數(shù)尺度的熱圖。一旦熱圖繪制完成,我們使用 fast.ai 實(shí)現(xiàn)了一個(gè) CNN,并嘗試區(qū)分真實(shí)和虛假的熱圖。我們最終獲得了大約 71% 的穩(wěn)定準(zhǔn)確率,這對(duì)于這種新方法來(lái)說(shuō)是一個(gè)很好的開(kāi)始。這里有一個(gè)關(guān)于我們的方法的小流程圖:

還不太清楚?繼續(xù)往下看。
Text2Image 詳述
預(yù)處理
數(shù)據(jù)采用小寫(xiě)形式,刪除所有特殊字符,并將文本和標(biāo)題連接起來(lái)。文件中 85% 以上的文字也被刪除。此外,要明確避免使用單詞列表 (stopwords)。使用的是一份標(biāo)準(zhǔn)的停頓詞列表,大部分是沒(méi)有信息的重復(fù)詞。特別是要對(duì)假新聞的斷句進(jìn)行修改,這是未來(lái)值得探索的一個(gè)領(lǐng)域,特別是可以為假新聞帶來(lái)獨(dú)特的寫(xiě)作風(fēng)格。
計(jì)算 TF-IDF
為了對(duì)關(guān)鍵字進(jìn)行評(píng)分和提取,Text2Image 使用了 tf-idf 的 scikit-learn 實(shí)現(xiàn)。對(duì)于假新聞?wù)Z料庫(kù)和真實(shí)新聞?wù)Z料庫(kù),IDF 分別計(jì)算。與整個(gè)語(yǔ)料庫(kù)的單個(gè) IDF 分?jǐn)?shù)相比,計(jì)算單獨(dú)的 IDF 分?jǐn)?shù)會(huì)導(dǎo)致準(zhǔn)確性大幅提高。然后迭代計(jì)算每個(gè)文檔的 tf-idf 分?jǐn)?shù)。在這里,標(biāo)題和文本不是分開(kāi)評(píng)分的,而是一起評(píng)分的。

計(jì)算 Term 頻率

計(jì)算 IDF
把它們相乘,就得到 tf-idf。我們對(duì)每個(gè)文檔分別進(jìn)行迭代。
處理 TF-IDF 值
對(duì)于每個(gè)文檔,將提取具有最高 TF-IDF 值的 121 個(gè)單詞。這些單詞然后用于創(chuàng)建一個(gè) 11x11 數(shù)組。在這里,選擇的單詞數(shù)量就像一個(gè)超參數(shù)。對(duì)于更短、更簡(jiǎn)單的文本,可以使用更少的單詞,而使用更多的單詞來(lái)表示更長(zhǎng)的、更復(fù)雜的文本。根據(jù)經(jīng)驗(yàn),11x11 是這個(gè)數(shù)據(jù)集的理想大小。將 TF-IDF 值按大小降序排列,而不是按其在文本中的位置映射。TF-IDF 值以這種方式映射,因?yàn)樗雌饋?lái)更能代表文本,并且為模型提供了更豐富的特性來(lái)進(jìn)行訓(xùn)練。因?yàn)橐粋€(gè)單詞可以在一篇文章中出現(xiàn)多次,所以要考慮第一次出現(xiàn)的單詞。
不按原樣繪制 TF-IDF 值,而是按對(duì)數(shù)刻度繪制所有值。這樣做是為了減少頂部和底部值之間的巨大差異。

在繪制時(shí),由于這種差異,大多數(shù)熱圖不會(huì)顯示任何顏色的變化。因此,它們被繪制在一個(gè)對(duì)數(shù)刻度上,以便更好地找出差異。

圖 1(左) 顯示了按原樣繪制的 TF-IDF 值。圖 2(右) 顯示了在對(duì)數(shù)刻度上繪制的相同值
缺點(diǎn)之一是在訓(xùn)練模型時(shí)大量的過(guò)度擬合。這可以歸因于缺乏任何數(shù)據(jù)擴(kuò)充,目前,似乎沒(méi)有數(shù)據(jù)擴(kuò)充的方法可以用于這個(gè)用例。因此,在整個(gè)數(shù)據(jù)集上使用高斯濾波來(lái)平滑這些圖。雖然它確實(shí)降低了一點(diǎn)點(diǎn)準(zhǔn)確性,但在過(guò)度擬合方面有顯著的下降,尤其是在訓(xùn)練的初始階段。
最終的熱圖
最終的熱圖尺寸為 11x11,用 seaborn 繪制。因?yàn)?x 軸和 y 軸以及顏色條在訓(xùn)練時(shí)都沒(méi)有傳達(dá)任何信息,所以我們刪除了它們。使用的熱圖類型是“等離子體”,因?yàn)樗@示了理想的顏色變化。嘗試不同的顏色組合可能是未來(lái)探索的一個(gè)領(lǐng)域。下面是最終情節(jié)的一個(gè)例子。

熱圖最終形態(tài)
訓(xùn)練我們的模型
該模型使用 fast.ai 在 resnet34 上進(jìn)行訓(xùn)練。識(shí)別出假新聞 489 篇,真新聞 511 篇。在不增加數(shù)據(jù)的情況下,在訓(xùn)練集和測(cè)試集之間采用標(biāo)準(zhǔn)的 80:20 分割。所有使用的代碼都可以在這里找到: https://github.com/cabhijith/Text2Image/blob/master/Code.html
結(jié)果

總 結(jié)
經(jīng)過(guò) 9 輪迭代后,模型的準(zhǔn)確率達(dá)到了 70% 以上。盡管對(duì)這個(gè)數(shù)據(jù)集來(lái)說(shuō)還遠(yuǎn)遠(yuǎn)不夠先進(jìn),但這種新方法似乎很有前景。以下是在訓(xùn)練過(guò)程中所做的一些觀察結(jié)果:
這個(gè)模型超差了很多。增加數(shù)據(jù)對(duì)過(guò)擬合沒(méi)有任何影響,這與我們的預(yù)期相反。進(jìn)一步的訓(xùn)練或改變學(xué)習(xí)率沒(méi)有任何效果。
增加繪圖大小有助于準(zhǔn)確性提升直到大小為 11x11,之后增加繪圖大小會(huì)導(dǎo)致準(zhǔn)確性下降。
在圖上使用一定數(shù)量的高斯濾波有助于提高精度。
下一步計(jì)劃
目前,我們正在致力于詞性標(biāo)記和手套詞嵌入的可視化。我們也在考慮修改停止詞,修改繪圖的大小和顏色模式。我們將保持持續(xù)改進(jìn)!















 
 
 











 
 
 
 